有哪些學(xué)做衣服的網(wǎng)站網(wǎng)站推廣如何引流
大模型
大模型成為發(fā)展通用人工智能的重要途徑
專用模型:針對特定任務(wù),一個模型解決一個問題
通用大模型:一個模型應(yīng)對多種任務(wù)、多種模態(tài)
書生浦語大模型開源歷程
2023.6.7:InternLM千億參數(shù)語言大模型發(fā)布
2023.7.6:InternLM千億參數(shù)大模型全面升級,支持8K語境、26種語言。 全面開源,免費商用:InternLM-7B模型、全鏈條開源工具體系
2023.8.14:書生萬卷1.0多模態(tài)預(yù)訓(xùn)練語料庫開源發(fā)布
2023.8.21:升級版對話,模型InternLM-Chat-7B v1.1發(fā)布,開源智能體框架Lagent,支持從語言模型到智能體升級轉(zhuǎn)換 2023.8.28:InternLM千億參數(shù)模型參數(shù)量升級到123B
2023.9.20:增強型InternLM-20B開源,開源工具鏈全線升級
2024.1.17:InternLM2開源
書生浦語2.0(InternLM2)的體系
面向不同的使用需求,每個規(guī)格包含三個模型版本
按規(guī)格分類
7B:為輕量級的研究和應(yīng)用提供了一個輕便但性能不俗的模型
20B:模型的綜合性能更為強勁,可有效支持更加復(fù)雜的使用場景
按使用需求分類
InternLM2-Base:高質(zhì)量和具有很強可塑性的模型基座,是模型進(jìn)行深度領(lǐng)域適配的高質(zhì)量起點
InternLM2:在Base基礎(chǔ)上,在多個能力方向進(jìn)行了強化,在評測中成績優(yōu)異,同時保持了很好的通用語言能力,是我們推薦的在大部分應(yīng)用中考慮選用的優(yōu)秀基座
InternLM2-Chat:在Base基礎(chǔ)上,經(jīng)過SFT和RLHF,面向?qū)υ捊换ミM(jìn)行了優(yōu)化,具有很好的指令遵循,共情聊天和調(diào)用工具等能力
回歸語言建模的本質(zhì)
新一代清洗過濾技術(shù)
多維度數(shù)據(jù)價值評估:基于文本質(zhì)量、信息質(zhì)量、信息密度等維度對數(shù)據(jù)價值進(jìn)行綜合評估與提升
高質(zhì)量語料驅(qū)動的數(shù)據(jù)富集:利用高質(zhì)量語料的特征從物理世界、互聯(lián)網(wǎng)以及語料庫中進(jìn)一步富集更多類似語料
有針對性的數(shù)據(jù)補齊:針對性補充語料,重點加強世界知識、數(shù)理、代碼等核心能力
書生浦語2.0(InternLM2)主要亮點
超長上下文:模型在20萬token上下文中,幾乎完美實現(xiàn)”大海撈針“
綜合性能全面提升:推理、數(shù)學(xué)、代碼提升顯著InternLM2-Chat-20B在重點評測上比肩ChatGPT
優(yōu)秀的對話和創(chuàng)作體驗:精準(zhǔn)指令跟隨,豐富的結(jié)構(gòu)化創(chuàng)作,在AlpacaEval2超越GPT3.5和Gemini Pro
工具調(diào)用能力整體升級:可靠支持工具多輪調(diào)用,復(fù)雜智能體搭建
突出的數(shù)理能力和使用的數(shù)據(jù)分析功能:強大的內(nèi)生計算能力,加入代碼解釋后,在GSM8K和MATH達(dá)到和GPT-4相仿水平
性能全方位提升
在各能力維度全面進(jìn)步,在推理、數(shù)學(xué)、代碼等方面的能力提升尤為顯著,綜合性能達(dá)到同量級開源模型的領(lǐng)先水平,在重點能力評測上InternLM2-Chat-20B甚至可以達(dá)到比肩ChatGPT(GPT3.5)的水平
工具調(diào)用能力升級
工具調(diào)用能夠極大地拓展大預(yù)言模型的能力邊界,使得大語言模型能夠通過搜索、計算、代碼解釋器等獲取最新的知識冰處理更加復(fù)雜的問題,InternLM2進(jìn)一步升級了模型的工具調(diào)用能力,能夠更穩(wěn)定地進(jìn)行工具篩選和多步驟規(guī)劃,完成復(fù)雜任務(wù)
強大內(nèi)生計算能力
高準(zhǔn)確率:InternLM2針對性提高了模型的計算能力,在不依靠計算器等外部工具的情況下,在100以內(nèi)的簡單數(shù)學(xué)運算上能夠做到接近100%的準(zhǔn)確率,在1000以內(nèi)達(dá)到80%左右的運算準(zhǔn)確率
復(fù)雜運算和求解:依賴模型優(yōu)秀的內(nèi)生能力,InternLM2不借助外部工具就能夠進(jìn)行部分復(fù)雜數(shù)學(xué)題的運算和求解
代碼解釋器:更上一層樓
在典型的數(shù)學(xué)評測集GSM8K和MATH上,配合代碼解釋器,InternLM2都能夠在本身已經(jīng)較高的分?jǐn)?shù)上,進(jìn)一步獲得提升,其中對于難度更高的MATH數(shù)據(jù)集,借助代碼解釋器,精度從32.5大幅提高到51.2,甚至超過了GPT-4的表現(xiàn)。配合代碼解釋器,20B模型已經(jīng)能夠完成一些例如積分求解等大學(xué)級別的數(shù)學(xué)題目
從模型到應(yīng)用
流程
書生浦語全鏈條開源開放體系
數(shù)據(jù)-書生萬卷:2TB數(shù)據(jù),涵蓋多種模態(tài)與任務(wù)
預(yù)訓(xùn)練-InternLM-Train:并行訓(xùn)練,極致優(yōu)化,速度達(dá)到3600tokens/sec/gpu
微調(diào)-Xtuner:支持全參數(shù)微調(diào),支持LoRA等低成本微調(diào)
部署-LMDeploy:全鏈路部署,性能領(lǐng)先,每秒生成2000+ tokens
評測-OpenCompass:全方位評測,性能可復(fù)現(xiàn)100套評測集,50萬道題目
2023年5月1日:完成Alpha版本升級,支持千億參數(shù)語言大模型高效評測
2023年7月6日:OpenCompass正式開源,學(xué)術(shù)評測支持最完善的評測工具之一,支持5大能力維度,70個數(shù)據(jù)集,40萬評測題目
2023年8月18日:OpenCompass數(shù)據(jù)和性能對比上線,支持100+開源模型的多維度性能對比
2023年9月7日:支持多編程語言代碼評測,發(fā)布穩(wěn)定可復(fù)現(xiàn)代碼評測鏡像,提供多變成語言能力分析和對比
2023年10月26日:聯(lián)合南京大學(xué)推出大模型司法能力評測基準(zhǔn),構(gòu)建多層能力體系助力法律場景能力分析
2023年12月1日:發(fā)布多模態(tài)評測工具套件VLMEvalKit,支持包括Gemi、GPT-4V等商業(yè)模型評測支持
2024年1月30日:OpenCompass2.0司南大模型評測體系正式發(fā)布
應(yīng)用-Lagent、AgentLego:支持多種智能體,支持代碼解釋器等多種工具
InternLM2技術(shù)報告網(wǎng)址
2403.17297.pdf (arxiv.org)
報告綜述
InternLM2技術(shù)報告是由上海人工智能實驗室、商湯科技、香港中文大學(xué)以及復(fù)旦大學(xué)的研究團(tuán)隊共同撰寫。InternLM2是一個開源的大型語言模型(LLM),在多個維度和基準(zhǔn)測試中表現(xiàn)出色,特別是在長文本建模和開放式主觀評估方面。該模型采用了創(chuàng)新的預(yù)訓(xùn)練和優(yōu)化技術(shù),以提高性能。
報告詳細(xì)介紹了InternLM2的開發(fā)過程,包括基礎(chǔ)設(shè)施、模型結(jié)構(gòu)、預(yù)訓(xùn)練數(shù)據(jù)、預(yù)訓(xùn)練設(shè)置、預(yù)訓(xùn)練階段、對齊策略、評估和分析以及結(jié)論。特別強調(diào)了InternLM2在處理長文本方面的能力,以及通過監(jiān)督式微調(diào)(SFT)和基于人類反饋的條件在線強化學(xué)習(xí)(COOL RLHF)策略來提高與人類指令的一致性和價值觀的對齊。
報告還討論了數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練、性能評估和潛在的數(shù)據(jù)污染問題。此外,報告提供了對InternLM2在不同訓(xùn)練階段的模型性能的深入分析,并與現(xiàn)有的大型語言模型進(jìn)行了比較。
(此信息由Kimi.AI生成)
介紹
自從ChatGPT和GPT-4的出現(xiàn)以來 (OpenAI, 2023),大型語言模型(LLMs)在學(xué)術(shù)界和工業(yè)界迅速走紅。訓(xùn)練在數(shù)十億令牌上的模型展現(xiàn)了深刻的情感理解和問題解決能力,引發(fā)了人們普遍認(rèn)為AGI時代即將到來的猜測。盡管如此,開發(fā)出與ChatGPT或GPT-4相當(dāng)能力的模型的道路仍然模糊不清。開源社區(qū)正在努力縮小專有LLM與開源模型之間的差距。在過去的一年里,如LLaMA (Touvron et al., 2023a;b)、Qwen (Bai et al., 2023a)、Mistral (Jiang et al., 2023)和Deepseek (Bi et al., 2024)等一些顯著的開源LLM取得了顯著進(jìn)步。
大型語言模型的發(fā)展包括預(yù)訓(xùn)練、監(jiān)督微調(diào)(SFT)和基于人類反饋的強化學(xué)習(xí)(RLHF)等主要階段 (Ouyang et al., 2022)。預(yù)訓(xùn)練主要基于利用大量的自然文本語料庫,積累數(shù)萬億的令牌。這個階段的目標(biāo)是為LLMs配備廣泛的知識庫和基本技能。預(yù)訓(xùn)練階段的數(shù)據(jù)質(zhì)量被認(rèn)為是最重要的因素。然而,過去關(guān)于LLM的技術(shù)報告 (Touvron et al., 2023a;b; Bai etal., 2023a; Bi et al., 2024)很少關(guān)注預(yù)訓(xùn)練數(shù)據(jù)的處理。InternLM2詳細(xì)描述了如何為預(yù)訓(xùn)練準(zhǔn)備文本、代碼和長文本數(shù)據(jù)。
如何有效地延長LLM的上下文長度目前是研究的熱點,因為許多下游應(yīng)用,如檢索增強生成(RAG) (Gao et al., 2023)和代理模型 (Xi et al., 2023),依賴于長上下文。InternLM2首先采用分組查詢注意力(GQA)來在推斷長序列時減少內(nèi)存占用。在預(yù)訓(xùn)練階段,我們首先使用4k個上下文文本訓(xùn)練InternLM2,然后將訓(xùn)練語料庫過渡到高質(zhì)量的32k文本進(jìn)行進(jìn)一步訓(xùn)練。最終,通過位置編碼外推 (LocalLLaMA, 2023),InternLM2在200k個上下文中通過了“尋針于干草堆”測試,表現(xiàn)出色。
預(yù)訓(xùn)練后,我們使用監(jiān)督微調(diào)(SFT)和基于人類反饋的強化學(xué)習(xí)(RLHF)來確保模型能很好地遵循人類指令并符合人類價值觀。我們還在此過程中構(gòu)建了相應(yīng)的32k數(shù)據(jù),以進(jìn)一步提升InternLM2的長上下文處理能力。此外,我們引入了條件在線RLHF(COOLRLHF),它采用條件獎勵模型來協(xié)調(diào)多樣但可能沖突的偏好,并通過多輪Proximal Policy Optimization(PPO)來緩解每個階段出現(xiàn)的獎勵作弊問題。為了向社區(qū)闡明RLHF的影響,我們還發(fā)布了預(yù)RLHF和后RLHF階段的模型,分別命名為InternLM2-Chat-{size}-SFT和InternLM2-Chat-{size}。
我們的貢獻(xiàn)有兩個方面,不僅體現(xiàn)在模型在各種基準(zhǔn)測試中的卓越性能,還體現(xiàn)在我們在不同發(fā)展階段全面開發(fā)模型的方法。關(guān)鍵點包括
1. 公開發(fā)布性能卓越的InternLM2:?我們已經(jīng)開源了不同規(guī)模的模型(包括18億、70億和200億參數(shù)),它們在主觀和客觀評估中都表現(xiàn)出色。此外,我們發(fā)布了不同階段的模型,以便社區(qū)分析SFT(規(guī)模融合訓(xùn)練)和RLHF(強化學(xué)習(xí)人類反饋)訓(xùn)練后的變化。
2. 設(shè)計具有200k上下文窗口:?InternLM2在長序列任務(wù)中表現(xiàn)出色,(在”Haystack中的Needle”實驗中)使用200k上下文幾乎完美地識別出所有”針”。此外,我們分享了在所有階段(預(yù)訓(xùn)練、SFT1和RLHF2 )訓(xùn)練長序列語言模型的經(jīng)驗。
3. 全面的數(shù)據(jù)準(zhǔn)備指南:我們詳細(xì)闡述了LLMs的數(shù)據(jù)準(zhǔn)備, 包括預(yù)訓(xùn)練數(shù)據(jù)、 領(lǐng)域特定增強數(shù)據(jù)、SFT數(shù)據(jù)和RLHF數(shù)據(jù)。這些詳細(xì)內(nèi)容將有助于社區(qū)更好地訓(xùn)練LLMs。(Pre-training data, domain-specific enhancement data, SFT data, RLHF data)
4. 創(chuàng)新的RLHF訓(xùn)練技術(shù):?我們引入了條件在線RLHF(COOL RLHF),以協(xié)調(diào)不同的偏好,顯著提高了InternLM2在各種主觀對話評估中的性能。我們還進(jìn)行了初步的主觀和客觀RLHF結(jié)果的分析和比較,為社區(qū)提供了RLHF的深入理解。(RLHF:Reinforcement Learning with Human Feedback)
基礎(chǔ)設(shè)施
InternEvo
模型訓(xùn)練使用高效的輕量級預(yù)訓(xùn)練框架InternEvo進(jìn)行模型訓(xùn)練。這個框架使得我們能夠在數(shù)千個GPU上擴展模型訓(xùn)練。它通過數(shù)據(jù)(Data Parallelism)、張量(Tensor Parallelism,2019)、序列(Sequence Parallelism, 2023)和管道(Pipeline Parallelism, 2019)并行技術(shù)來實現(xiàn)這一點。為了進(jìn)一步提升GPU內(nèi)存效率,InternEvo整合了各種Zero RedundancyOptimizer (ZeRO, 2020)策略,顯著減少了訓(xùn)練所需的內(nèi)存占用。此外,為了提高硬件利用率,我們還引入了FlashAttention技術(shù)(2023)和混合精度訓(xùn)練(Mixed Precision Training, 2017),使用BF16。當(dāng)在數(shù)千個GPU上訓(xùn)練InternLM時,InternEvo展現(xiàn)出強大的擴展性能。如圖所示,當(dāng)8個GPU,全局批次大小為400萬個令牌訓(xùn)練InternLM-7B時,InternEvo實現(xiàn)了64%的模型計算量利用率(MFU)。
當(dāng)擴展到1024個GPU時,盡管保持相同的全局批次大小,InternEvo仍能維持驚人的53% MFU。這種級別的擴展性能尤其具有挑戰(zhàn)性,因為批次大小保持不變,而隨著GPU數(shù)量的增加,計算與通信的比例會降低。相比之下,DeepSpeed(2020)在使用ZeRO-1(2020)和MiCS(2022)在1024個GPU上訓(xùn)練InternLM-7B時,只能達(dá)到大約36%的MFU。
InternEvo在序列長度方面也表現(xiàn)出強大的擴展性, 支持訓(xùn)練不同規(guī)模的LLM, 例如在256,000個令牌的序列長度下訓(xùn)練InternLM-7B, 可以達(dá)到接近88%的MFU。 相比之下,DeepSpeed-Ulysses和Megatron-LM只能達(dá)到大約65%的MFU。對于更大規(guī)模的LLM,如300億或700億參數(shù)的模型,訓(xùn)練性能的提升也同樣明顯。
在使用InternEvo訓(xùn)練InternLM-7B模型時的模型浮點運算利用率
Model Structure
Transformer(Vaswani et al. (2017))由于其出色的并行化能力,已經(jīng)成為過去大型語言模型(LLMs)的首選架構(gòu),這充分利用了GPU的威力(Brown et al. (2020); Chowdhery et al.(2023); Zeng et al. (2023))。LLaMA(Touvron et al. (2023a))在Transformer架構(gòu)基礎(chǔ)上進(jìn)行了改進(jìn),將LayerNorm(Ba et al. (2016))替換為RMSNorm(Zhang & Sennrich (2019)), 并采用SwiGLU(Shazeer (2020))作為激活函數(shù),從而提高了訓(xùn)練效率和性能。
自從LLaMA(Touvron et al. (2023a))發(fā)布以來,社區(qū)積極地擴展了基于LLaMA架構(gòu)的生態(tài)系統(tǒng),包括高效推理的提升(lla (2023))和運算符優(yōu)化(Dao (2023))等。為了確保我們的模型InternLM2能無縫融入這個成熟的生態(tài)系統(tǒng),與Falcon(Almazrouei et al.(2023))、Qwen(Bai et al. (2023a))、Baichuan(Yang et al. (2023))、Mistral(Jiang et al. (2023))等知名LLMs保持一致,我們選擇遵循LLaMA的結(jié)構(gòu)設(shè)計原則。為了提高效率,我們將Wk、Wq和Wv矩陣合并,這在預(yù)訓(xùn)練階段帶來了超過5%的訓(xùn)練加速。此外,為了更好地支持多樣化的張量并行(tp)變換,我們重新配置了矩陣布局。對于每個頭的Wk、Wq和Wv,我們采用了交錯的方式,如圖2所示。這種設(shè)計修改使得可以通過分割或沿最后一個維度連接矩陣來調(diào)整張量并行大小,從而增強了模型在不同分布式計算環(huán)境中的靈活性。InternLM2的目標(biāo)是處理超過32K的上下文,因此InternLM2系列模型都采用了分組查詢注意力(GQA)(Ainslie et al. (2023)),以實現(xiàn)高速度和低GPU內(nèi)存下的長序列推理。
不同的權(quán)重矩陣布局導(dǎo)致在調(diào)整張量并行性(TP)大小時產(chǎn)生不同的復(fù)雜性
預(yù)訓(xùn)練
預(yù)訓(xùn)練數(shù)據(jù)
LLM的預(yù)訓(xùn)練過程深受數(shù)據(jù)的影響,這是一個復(fù)雜的挑戰(zhàn),包括處理敏感數(shù)據(jù)、涵蓋廣泛的知識以及平衡效率和質(zhì)量。本節(jié)將描述我們?yōu)闇?zhǔn)備通用領(lǐng)域文本數(shù)據(jù)、編程語言相關(guān)數(shù)據(jù)以及長文本數(shù)據(jù)的處理流程。
文本數(shù)據(jù)
我們的預(yù)訓(xùn)練數(shù)據(jù)集中的文本數(shù)據(jù)可以根據(jù)來源分為網(wǎng)頁、論文、專利和書籍。為了將這些來源轉(zhuǎn)化為預(yù)訓(xùn)練數(shù)據(jù)集,我們首先將所有數(shù)據(jù)標(biāo)準(zhǔn)化為特定格式,按類型和語言分類,并以JSON Lines (jsonl)格式存儲。然后,我們對所有數(shù)據(jù)應(yīng)用一系列處理步驟,包括基于規(guī)則的過濾、數(shù)據(jù)去重、安全過濾和質(zhì)量過濾。這最終形成了豐富、安全且高質(zhì)量的文本數(shù)據(jù)集
數(shù)據(jù)處理流程
整個數(shù)據(jù)處理流程首先將來自不同來源的數(shù)據(jù)標(biāo)準(zhǔn)化,得到格式化數(shù)據(jù)(Format data)。接著,通過應(yīng)用啟發(fā)式統(tǒng)計規(guī)則進(jìn)行數(shù)據(jù)篩選,獲取清洗數(shù)據(jù)(Clean data)。然后,使用局部敏感哈希(LSH)方法進(jìn)行數(shù)據(jù)去重,得到去重數(shù)據(jù)(Dedup data)。隨后,我們采用復(fù)合安全策略過濾數(shù)據(jù),得到安全數(shù)據(jù)(Safe data)。針對不同來源的數(shù)據(jù),我們采用了不同的質(zhì)量過濾策略,最終獲得高質(zhì)量預(yù)訓(xùn)練數(shù)據(jù)(High-quality pre-training data)。
代碼數(shù)據(jù)
編程是LLM的重要技能,它支持各種下游應(yīng)用,如代碼輔助、軟件開發(fā)和構(gòu)建工具使用代理。此外,Groeneveld et al.(2024)指出,通過訓(xùn)練代碼數(shù)據(jù),有可能提升推理能力,因為代碼通常比自然語言結(jié)構(gòu)清晰、嚴(yán)謹(jǐn)且可預(yù)測。
預(yù)訓(xùn)練語料庫中的代碼數(shù)據(jù)統(tǒng)計
長上下文數(shù)據(jù)
處理非常長的上下文(?32K個令牌)在研究大語言模型(LLMs)中越來越受到關(guān)注,這拓寬了應(yīng)用范圍,包括書籍摘要、支持長期對話以及處理涉及復(fù)雜推理步驟的任務(wù)。預(yù)訓(xùn)練數(shù)據(jù)是擴展模型上下文窗口的關(guān)鍵因素。我們遵循Lv et al. (2024)中提到的長文本預(yù)訓(xùn)練數(shù)據(jù)準(zhǔn)備過程,包括額外的實驗和討論。
預(yù)訓(xùn)練設(shè)置
采用GPT-4的分詞方法,因為其在壓縮大量文本內(nèi)容方面的高效性表現(xiàn)出色。我們的主要參考是cl100k詞匯表6,它主要包含英語和編程語言的詞匯,總共有100,256個條目,其中少量包含了不到3,000個中文詞匯。為了優(yōu)化InternLM處理中文文本時的壓縮率,同時保持詞匯表總大小在100,000以下,我們精心挑選了cl100k詞匯表中的前60,004個詞匯,并將其與32,397個中文詞匯相結(jié)合。另外,我們添加了147個預(yù)留詞匯,以完成選擇,最終的詞匯表大小符合256的倍數(shù),從而促進(jìn)高效的訓(xùn)練。
預(yù)訓(xùn)練階段
用于預(yù)訓(xùn)練1.8B、7B和20B模型的總tokens量范圍從2.0萬億到2.6萬億。預(yù)訓(xùn)練過程分為三個階段。第一階段,我們使用不超過4k長度的預(yù)訓(xùn)練語料庫。第二階段,我們加入了50%不超過32k長度的預(yù)訓(xùn)練數(shù)據(jù)。第三階段,我們引入了特定能力增強數(shù)據(jù)。每個階段,我們混合了英語、中文和代碼數(shù)據(jù)。
對齊
預(yù)訓(xùn)練階段為語言模型(LLMs)提供了解決各種任務(wù)所需的基礎(chǔ)能力與知識。我們進(jìn)一步對其進(jìn)行微調(diào),以充分激發(fā)其潛力,并引導(dǎo)LLMs作為有益且無害的人工智能助手發(fā)揮作用。(這通常被稱為“對齊”階段,包括監(jiān)督微調(diào)(SFT)和基于人類反饋的強化學(xué)習(xí)(RLHF)兩個階段。)在SFT階段,我們通過高質(zhì)量的指令數(shù)據(jù),對模型進(jìn)行微調(diào),使其能夠遵循多樣的人類指令。然后,我們提出了條件在線RLHF(COOL RLHF),它采用了一種新穎的條件獎勵模型,能夠調(diào)和不同類型的偏好,如多步驟推理準(zhǔn)確度、有益性、無害性,并通過三輪在線RLHF來減少獎勵濫用。在對齊階段,我們保持LLMs的長序列理解能力,通過在SFT和RLHF過程中使用長序列預(yù)訓(xùn)練數(shù)據(jù)。
Supervised Fine-Tuning
在監(jiān)督微調(diào)(SFT)階段,我們使用了一個包含1000萬條指令數(shù)據(jù)實例的 dataset,這些實例經(jīng)過篩選,確保其有用性和無害性。該數(shù)據(jù)集覆蓋了廣泛的議題,包括一般對話、自然語言處理任務(wù)、數(shù)學(xué)問題、代碼生成和函數(shù)調(diào)用等。下面的圖展示了 SFT 數(shù)據(jù)主題的詳細(xì)分布。為了實現(xiàn)對各種任務(wù)的靈活表示,我們將數(shù)據(jù)樣本轉(zhuǎn)換為 ChatML 格式(Cha)。7B和20B模型分別使用AdamW優(yōu)化器,初始學(xué)習(xí)率為4e-5,進(jìn)行了一個epoch的訓(xùn)練。
The distribution of SFT data instances.
COOL Reinforcement Learning from Human Feedback
強化學(xué)習(xí)從人類反饋(RLHF) (Christiano et al., 2017; Ouyang et al., 2022) 是大型語言模型領(lǐng)域的一種創(chuàng)新方法。通過整合人類反饋,RLHF創(chuàng)建了代理人類偏好的獎勵模型,利用Proximal Policy Optimization (PPO) (Schulman et al., 2017) 為語言模型提供學(xué)習(xí)的獎勵信號。這種方法使模型能夠更好地理解和執(zhí)行傳統(tǒng)方法難以定義的任務(wù)。
盡管RLHF取得了成就,但在實際應(yīng)用中仍存在一些問題。首先,是偏好沖突。例如,在開發(fā)對話系統(tǒng)時,我們期望它提供有用的信息(有益)同時避免產(chǎn)生有害或不適當(dāng)?shù)膬?nèi)容(無害)。然而,實踐中這兩個偏好往往難以同時滿足,因為提供有用信息可能在某些情況下涉及敏感或高風(fēng)險的內(nèi)容。現(xiàn)有的RLHF方法 (Touvron et al., 2023b; Dai et al., 2023; Wu et al., 2023) 通常依賴于多個偏好模型進(jìn)行評分,這也會增加訓(xùn)練流程中的模型數(shù)量,從而增加計算成本并降低訓(xùn)練速度。
其次,RLHF面臨獎勵作弊(reward hacking)的問題,特別是當(dāng)模型規(guī)模增大,策略變得更強大時 (Manheim & Garrabrant, 2018; Gao et al., 2022),模型可能會通過捷徑來獲取高分,而不是真正學(xué)習(xí)期望的行為。這導(dǎo)致模型以非預(yù)期的方式最大化獎勵,嚴(yán)重影響語言模型的有效性和可靠性。為解決這些問題,我們提出條件在線RLHF(COOL RLHF)。COOL RLHF首先引入條件獎勵機制來調(diào)和多樣化的偏好,使獎勵模型可以根據(jù)特定條件動態(tài)地將注意力分配給不同的偏好,從而最優(yōu)地整合多個偏好。此外,COOL RLHF采用多輪在線RLHF策略,使語言模型能夠快速適應(yīng)新的人類反饋,減少獎勵作弊的發(fā)生。
Long-Context Finetuning
為了在微調(diào)后保持大模型的長序列理解能力,我們沿用了之前工作中的做法,即在SFT(逐句 fine-tuning)和RLHF(強化學(xué)習(xí)人類反饋)中繼續(xù)使用長序列預(yù)訓(xùn)練數(shù)據(jù)(Xionget al., 2023)。具體來說,我們使用了兩類數(shù)據(jù):一類來自書籍的長序列文本,另一類是來自GitHub倉庫的數(shù)據(jù),通過特定方法進(jìn)行連接,具體描述如下。
為了提升InternLM2的數(shù)據(jù)分析能力,我們選擇了DS-1000(Lai et al., 2023)中使用的代碼庫作為核心,包括Pandas、Numpy、Tensorflow、Scipy、Scikit-learn、PyTorch和Matplotlib。然后,我們在GitHub上搜索引用這些核心庫的超過10,000顆星的倉庫,進(jìn)行了與預(yù)訓(xùn)練相同的篩選和數(shù)據(jù)清洗過程。
對于每個倉庫,我們首先采用深度優(yōu)先的方法對獲取的原始數(shù)據(jù)進(jìn)行排序,同時生成簡要描述文件內(nèi)容的提示(如圖所示)。接著,我們將處理后的數(shù)據(jù)按順序連接,直到達(dá)到32,000個字符的長度。實驗結(jié)果顯示,長序列代碼數(shù)據(jù)不僅提高了大模型的長序列理解能力,還提升了代碼相關(guān)的功能。
長上下文代碼數(shù)據(jù)獲取過程的示例
Tool-Augmented LLMs
通用工具調(diào)用
我們采用經(jīng)過修改的ChatML格式,通過引入“環(huán)境”角色,以支持通用工具的調(diào)用。這種修改保持了聊天場景中的格式一致性,但為模型在使用代理時提供了更清晰的信號。此外,我們定義了兩個特定的關(guān)鍵字,即代碼解釋器(<|interpreter|>)和外部插件(<|plugin|>),以支持AI代理的多樣化用途。這樣,我們就能采用一種統(tǒng)一的流式格式,處理各種類型的插件擴展和AI環(huán)境,同時保持與普通聊天的兼容性。圖17展示了流式聊天格式的一個具體實例。為了充分激發(fā)InternLM2的代理能力,我們將代理語料庫與聊天領(lǐng)域?qū)R,并按照基礎(chǔ)語言模型能力進(jìn)行解耦,以進(jìn)行精細(xì)化訓(xùn)練,如Agent-FLAN(Chen et al., 2024c)所述。
代碼解釋器
我們還通過將Python代碼解釋器視為使用工具學(xué)習(xí)中描述的相同模式的特殊工具,增強了InternLM2-Chat解決數(shù)學(xué)問題的能力。我們采用推理與編碼交互(RICO)策略,并以迭代的硬例挖掘方式構(gòu)建數(shù)據(jù),如InternLM-Math(Ying et al., 2024)中所述。