近日,虎博科技滿(mǎn)懷誠意地發(fā)布TigerBotV2,涉及基座模型、chat模型、產(chǎn)品升級、 TigerBot-API升級等多個(gè)方面的更新。此次,虎博科技將同步共享TigerBot發(fā)布的具體內容和訓練過(guò)程中的一些科學(xué)和工程的探索結果,與大模型開(kāi)發(fā)者們一同推動(dòng)AIGC的繁榮。 如想率先體驗虎博科技TigerBot的新版本,可通過(guò)以下地址前往: TigerBot demo 在線(xiàn)體驗:https://tigerbot.com/chat Github 項目:https://github.com/Tigerye/TigerBot 更新一:基座模型經(jīng)評測已超部分主流開(kāi)源模型近30% 虎博科技的TigerBot-7b-base-v2(基座模型)在1.5TB多語(yǔ)言數據上充分訓練,千卡耗時(shí)一個(gè)月,投入算力成本約300萬(wàn),在OpenAI采用的公開(kāi)NLP7項任務(wù)評測中,超過(guò)同等LLaMA、Bloom等主流開(kāi)源模型達15%-30%;⒉┛萍紙F隊認為,TigerBot的base-v2是業(yè)內同等大小模型里能力最強的base model之一,適合各領(lǐng)域開(kāi)發(fā)者以此為基礎繼續預訓練或者監督微調。 圖1:虎博科技TigerBot-7b-base-v2在public NLP 7 tasks evaluation performance 圖2:虎博科技TigerBot-7b-base-v2預訓練數據分布 圖3:虎博科技TigerBot-7b-base-v2預訓練loss收斂曲線(xiàn) 更新二:chat模型經(jīng)9項公開(kāi)語(yǔ)料測評,效果提升 9.3% 使用虎博科技TigerBot-7b-base-v2經(jīng)過(guò)有監督微調的chat model,在2000萬(wàn)(20G)高質(zhì)量清洗和配比的微調指令數據集上充分訓練,在9項公開(kāi)語(yǔ)料next-token prediction accuracy測評上優(yōu)于TigerBot-7b-sft-v1版本9.3%,loss drop by 35%;⒉┛萍紙F隊認為,TigerBot-7b-sft-v2是業(yè)內同等大小模型里能力最強的chat model之一,適合各領(lǐng)域應用開(kāi)發(fā)者以此為基礎開(kāi)發(fā)問(wèn)答、摘要、生成等任務(wù)的應用。 圖4:虎博科技TigerBot-7b-sft-v2在public NLP 9 tasks evaluation performance 圖5:虎博科技TigerBot-7b-sft-v2訓練數據分布 圖6:虎博科技TigerBot-7b-sft-v2訓練loss收斂曲線(xiàn) TigerBot-7b-sft-v2的chat樣例如下所示: 圖7:虎博科技TigerBot chat展示 更新三:產(chǎn)品升級——搜索模式和流式生成提升體驗感 產(chǎn)品方面,因新版開(kāi)啟了搜索模式和流式生成,使用虎博科技的TigerBot產(chǎn)品也有了新的體驗;⒉┛萍冀Y合了互聯(lián)網(wǎng)搜索和工具(如天氣,股價(jià),計算器等),打開(kāi)了LLM+Search的應用場(chǎng)景,適合有實(shí)時(shí)信息查詢(xún)需求的應用。同時(shí)開(kāi)放的chat-api也支持搜索和流式模式的開(kāi)關(guān),如下圖所示: 圖8: 虎博科技TigerBot搜索模式頁(yè)面示例 更新四:TigerBot-API升級,更多調用選擇 虎博科技全面升級TigerBot-API,讓使用者有了更多工具選擇;⒉┛萍奸_(kāi)放出LLM應用開(kāi)發(fā)常用的工具,通過(guò)簡(jiǎn)單的API調用即可快速實(shí)現相關(guān)應用。API包括LLM下的chat, plugin, finetune,Text下的embedding, summarization, pdf2text, Visio下的text2image。API使用示例如下展示: 圖9: 虎博科技TigerBot-API示例展示 TigerBotV2訓練中的科學(xué)與工程探索 1.data quality or data volume ? 虎博科技創(chuàng )始人陳燁始終堅信數據的質(zhì)量比數據的數量更重要,尤其是中文網(wǎng)絡(luò )數據,TigerBot模型是在v1基礎上繼續預訓練;⒉┛萍紙F隊通過(guò)實(shí)驗發(fā)現,模型本身有很強的學(xué)習和記憶能力,少到數十條低質(zhì)量的數據就會(huì )讓模型學(xué)到,導致不理想的回答風(fēng)格。這里的低質(zhì)量數據包括:網(wǎng)絡(luò )口語(yǔ)詞、社區論壇等的jargon、敏感和有害的內容(harmness)、廣告類(lèi)、格式不規范的內容;⒉┛萍紙F隊通過(guò)規則和模型過(guò)濾掉~10%的低質(zhì)量數據。其中針對敏感、涉黃、不符合主流價(jià)值觀(guān)的內容,虎博團隊選擇用三個(gè)SOTA內容審核模型ensemble來(lái)過(guò)濾。 虎博科技團隊采用以下步驟和算法清洗數據,以在O(n^2)的復雜度下獲得高質(zhì)量數據: (1)先用規則去掉雜亂數據,例如instruction全是標點(diǎn)符號或者數字的, (2)然后使用exactstring match去重, (3)再用sequence simhash + longest common substring去重, (4)去重后利用SOTA審核模型去掉謾罵色情涉政的數據。 2. more epoch or more data ? 在高質(zhì)量數據的基礎上,模型的學(xué)習能力使得1-2epoch就能概率上學(xué)到數據中的知識和指令,所以虎博科技團隊把有限的算力讓模型去學(xué)習更多更豐富的知識和任務(wù)類(lèi)型。在虎博科技團隊的大部分實(shí)驗中,模型的training loss在一個(gè)epoch后就收斂到最終的水平,eval loss會(huì )在2-3個(gè)epoch后增長(cháng)即overfitting。這個(gè)觀(guān)察也在bloom最初的預訓練中得到印證,bigscience團隊也是預訓練了一個(gè)epoch后拿到模型。 3.eval loss or more data ? 在public NLP data上的自動(dòng)評測是快速實(shí)驗的基礎,但自動(dòng)評測多數是contextual QAtask,即有上下文的情況下,評測模型的總結抽取等能力,和最終用戶(hù)體感是有差異的。所以虎博科技團隊首先在7項(預訓練)和9項(監督微調)的public NLP benchmark上自動(dòng)評測,以保證模型的綜合能力(知識深度),然后從自動(dòng)評測最高的三個(gè)模型中選擇看過(guò)最多訓練數據的模型(知識廣度)。 4.important hyperparameters 虎博科技團隊通過(guò)大量實(shí)驗,發(fā)現重要的訓練參數包括:learning rate (LR), (global) batch size, adam regularizers (alpha, beta)。最優(yōu)的參數沒(méi)有理論結果,也是數據和基座模型的函數;⒉┛萍紙F隊先用較小的training/eval dataset上(e.g., 1% random sample),快速geometric search找到超參的范圍;然后在全集training/eval dataset上geometric search到最佳超參。百億量級的模型的監督微調在綜合任務(wù)數據集上的best-practice global batch是512-2048,LR是1e-5 - 2e-5,warmup fixed LR;而千億參數模型訓練在2epoch之后會(huì )有loss explosion現象,所以虎博團隊配合adam regularizer (beta2=0.95),和warmup cosine LR schedule。 self-evoluation 虎博科技團隊在預訓練數據中混合入10%的監督微調數據,用非監督的格式。背后的直覺(jué)是預訓練讓模型專(zhuān)注基礎知識p(t_n | t_n-1…),監督學(xué)習讓模型專(zhuān)注指令完成p(response | instruction)。在sft的訓練過(guò)程中,大部分的gradient會(huì )指向完成指令的方向,因為數據中的基礎知識已經(jīng)在預訓練中學(xué)習過(guò)。這就是虎博科技團隊讓模型自我進(jìn)化的思想(self-evoluation),這和人類(lèi)循序漸進(jìn)的學(xué)習知識一個(gè)原理;比如,NLP的學(xué)生總是先學(xué)好各種概率分布,然后再學(xué)習在各種任務(wù)數據中的應用,打好基礎,事半功倍。 6.generation configs 在測評和上線(xiàn)模型的過(guò)程中,虎博科技團隊發(fā)現是否使用解碼cache(config.json, generation_config.json in model checkpoint folder)對生成結果的一致性和性能有影響(輸入輸出token數分別為1024和100的情況下,使用cache的模型qps值約是不使用的7.7倍)。 虎博的模型基于decoder架構,可以緩存生成過(guò)程中每個(gè)attention計算使用的key/value投影結果,只增量計算每個(gè)新token與歷史token的attention,從而將生成每個(gè)token時(shí)的softmax計算復雜度由O(n*n)降低為O(n*1)。但是否使用cache,會(huì )導致是否有額外的mask value參與softmax計算,因此在不同的硬件環(huán)境和不同計算精度下,cache可能會(huì )導致生成結果的微小差異;⒉┛萍紙F隊在自動(dòng)評測中確定use_cache=true or false,測評結果一致,因此chat web和api都設置為use_cache=true,以保證響應最快的用戶(hù)體驗。 圖10:use_cache vs. response time |