ChatGPT平替「小羊駝」Mac可跑,2行代碼單GPU,UC伯克利再發
130 億參數模型權重公布不久,UC 伯克利 LMSys org 再次發布了 70 億參數「小羊駝」。同在今天,Hugging Face 也發布了 70 億參數模型 StackLLaMA。
自從 Meta 發布「開源版 ChatGPT」LLaMA 之后,學界可謂是一片狂歡。
先是斯坦福提出了 70 億參數 Alpaca,緊接著又是 UC 伯克利聯手 CMU、斯坦福、UCSD 和 MBZUAI 發布的 130 億參數 Vicuna,在超過 90% 的情況下實現了與 ChatGPT 和 Bard 相匹敵的能力。
今天,「卷王」UC 伯克利 LMSys org 又發布了 70 億參數的 Vicuna——
不僅體積小、效率高、能力強,而且只需兩行命令就能在 M1 / M2 芯片的 Mac 上運行,還能開啟 GPU 加速!
恰在今天,Hugging Face 的研究人員也發布了一個 70 億參數的模型 ——StackLLaMA。這是一個通過人類反饋強化學習在 LLaMA-7B 微調而來的模型。
Vicuna-7B:真?單 GPU,Mac 就能跑
距離模型的發布不到一周,UC 伯克利 LMSys org 便公布了 Vicuna-13B 的權重。
其中,單 GPU 運行需要大約 28GB 的顯存,而在僅用 CPU 的情況下需要大約 60GB 的內存。
而這次發布的 70 億參數版本,則要小巧得多 —— 需求直接砍半。
也就是說,用單個 GPU 運行 Vicuna-7B,只需 14GB + 顯存;而純 CPU 運行的話,則只需 30GB + 內存。
不僅如此,我們還可以通過 Metal 后端,在配備了蘋果自研芯片或者 AMD GPU 的 Mac 上啟用 GPU 加速。
之前在 13B 模型發布時,有不少網友吐槽道:
我以為的單個 GPU:4090
實際上的單個 GPU:28GB 顯存及以上
現在,這個問題也有了新的解決方案 —— 利用 8 位壓縮直接減少一半左右的內存用量,只不過模型的質量會略有下降。
13B 模型 28GB 顯存瞬間變 14GB;7B 模型 14GB 顯存瞬間變 7GB,有沒有!
對此,LMSys org 的研究人員表示,如果遇到內存或顯存不夠用的情況,可以通過在上述命令中加入--load-8bit 來啟用 8 位壓縮。
而且,無論是 CPU、GPU 還是 Metal,是 7B 模型還是 13B 模型,通通適用。
python3-mfastchat.serve.cli--model-name/path/to/vicuna/weights--load-8bitStackLLaMA:超全 RLHF 訓練教程
今天,Hugging Face 研究人員發布了一篇博客 StackLLaMA:用 RLHF 訓練 LLaMA 的實踐指南。
當前大型語言模型 ChatGPT、GPT-4 和 Claude 都使用了人類反饋強化學習來微調模型的行為,以產生更符合用戶意圖的響應。
在此,HF 研究者通過以下方式組合使用,訓練了 LlaMa 模型使用 RLHF 回答 Stack Exchange 上的所有步驟:
?監督微調
?獎勵 / 偏好建模
?人類反饋強化學習
要注意了!
訓練 StackLLaMA 的主要目標是提供一個教程和指南,介紹如何使用 RLHF 來訓練模型,而不是主要關注模型的性能表現。
換句話說,該模型在生成答案方面非?;?,比如問它「我的花園里有一只駱駝,怎樣才能把它趕走?」
StackLLaMA 最后給出的一個總括「如果以上方法都不奏效,就要召集增援了。如果有不止一個人想抓住這個奇特的小家伙,為什么不召集一個團隊呢?齊心協力,集中力量,這個問題應該很快就解決了」。
在進行 RLHF 時,最重要的是從一個強有力的模型開始。因為 RLHF 只是一個微調步驟,以便讓模型與我們期望的互動方式和響應方式相一致。
當前,Meta 開源的 LLaMA 模型參數大小從 7B 到 65B 不等,并且在 1T 到 1.4T 的 token 上進行了訓練,是目前開源比較強大的模型。
因此,研究人員使用 7B 模型作為后續微調的基礎。
在數據集選用上,研究人員使用了 StackExchange 數據集,包括所有的問題和答案。
選用該數據集的好處是,答案伴隨著點贊數和接受答案的標簽一起給出。
研究人員根據 A General Language Assistant as a Laboratory for Alignment 論文中描述的方法,給每個答案打分:
score=log2roundedtothenearestinteger,plus1ifthequestioneracceptedtheanswer(weassignascoreof?1ifthenumberofupvotesisnegative).
對于獎勵模型,始終需要每個問題兩個答案來進行比較。
而有些問題有幾十個答案,導致可能存在許多的可選對。因此,研究者對每個問題最多采樣十個答案對,以限制每個問題的數據點數。
最后,通過將 HTML 轉換為 Markdown 來清除格式,使模型輸出更可讀。
訓練策略
即使訓練最小的 LLaMA 模型也需要大量的內存。通過計算 7B 參數模型將使用 *7B=70GB 內存空間。當計算注意力分數等中間值時,可能需要更多。因此,即使在單個 80GB 的 A100 上也無法訓練該模型。
一種方法是使用更高效的優化器和半精度訓練,將更多信息壓縮到內存中,但內存仍舊不夠用。
另一種選擇是使用參數高效微調 技術,例如 PEFT 庫,它可以在 8 位模型上執行低秩適應 (LoRA)。
線性層的低秩適應: 在凍結層旁邊添加額外參數(橙色),并將結果編碼的隱藏狀態與凍結層的隱藏狀態相加。
以 8 位加載模型大大減少了內存占用,因為每個參數只需要一個字節的權重。比如,7B LLaMA 在內存中是 7 GB。
LoRA 不直接訓練原始權重,而是在一些特定的層 上添加小的適配器層,因此可訓練參數的數量大大減少。
在這種情況下,一個經驗法則是為每十億參數分配約 1.2-1.4GB 的內存,以適應整個微調設置。
這可以以較低成本微調更大的模型。這些技術已經能夠在消費級設備,比如樹莓派、手機,和 GoogleColab 上對大型模型進行微調。
研究人員發現盡管現在可以把非常大的模型放入當個 GPU 中,但是訓練可能仍然非常緩慢。
在此,研究人員使用了數據并行策略:將相同的訓練設置復制到單個 GPU 中,并將不同的批次傳遞給每個 GPU。
監督微調
在開始訓練獎勵模型并使用 RL 調整模型之前,若要模型在任何情況下遵循指令,便需要指令調優。
實現這一點最簡單的方法是,使用來自領域或任務的文本繼續訓練語言模型。
為了有效地使用數據,研究者使用一種稱為「packing」的技術:在文本之間使用一個 EOS 標記連接許多文本,并切割上下文大小的塊以填充批次,而無需任何填充。
通過這種方法,訓練效率更高,因為通過模型的每個 token 也進行了訓練。
獎勵建模和人類偏好
原則上,研究人員可以使用 RLHF 直接通過人工標注對模型進行微調。然而,這需要在每次優化迭代之后將一些樣本發送給人類進行評級。
由于需要大量的訓練樣本來實現收斂,人類閱讀和標注速度固有的延遲,不僅昂貴,還非常緩慢。
因此,研究人員在 RL 調整模型之前,在收集的人工標注上訓練一個獎勵模型。獎勵建模的目的是模仿人類對文本的評價,這一方法比直接反饋更有效。
在實踐中,最好的方法是預測兩個示例的排名,獎勵模型會根據提示 X 提供兩個候選項
,并且必須預測哪一個會被人類標注員評價更高。
通過 StackExchange 數據集,研究人員根據分數推斷出用戶更喜歡這兩個答案中的哪一個。有了這些信息和上面定義的損失,就可以修改 transformers.Trainer 。通過添加一個自定義的損失函數進行訓練。
classRewardTrainer:defcompute_loss(self,model,inputs,return_outputs=False):rewards_j=model(input_ids=inputs("input_ids_j"),attention_mask=inputs("attention_mask_j"))(0)rewards_k=model(input_ids=inputs("input_ids_k"),attention_mask=inputs("attention_mask_k"))(0)loss=-nn.functional.logsigmoid(rewards_j-rewards_k).mean()ifreturn_outputs:returnloss,"rewards_j":rewards_j,"rewards_k":rewards_kreturnloss
研究人員利用 100,000 對候選子集,并在 50,000 對候選的支持集上進行評估。
訓練通過 Weights amp; Biases 進行記錄,在 8-A100 GPU 上花費了幾個小時,模型最終的準確率為 67%。
雖然這聽起來分數不高,但是這個任務對于人類標注員來說也非常困難。
人類反饋強化學習
有了經過微調的語言模型和獎勵模型,現在可以運行 RL 循環,大致分為以下三個步驟:
?根據提示生成響應
?根據獎勵模型對回答進行評分
?對評級進行強化學習策略優化
在對查詢和響應提示進行標記并傳遞給模型之前,模板如下。同樣的模版也適用于 SFT,RM 和 RLHF 階段。
Question:lt;Querygt;Answer:lt;Responsegt;
使用 RL 訓練語言模型的一個常見問題是,模型可以通過生成完全胡言亂語來學習利用獎勵模型,從而導致獎勵模型得到不合實際的獎勵。
為了平衡這一點,研究人員在獎勵中增加了一個懲罰:保留一個沒有訓練的模型進行參考,并通過計算 KL 散度將新模型的生成與參考模型的生成進行比較。
在訓練期間對每個步驟進行批次獎勵,模型的性能在大約 1000 個步驟后趨于穩定。
參考資料:
鄭重聲明:此文內容為本網站轉載企業宣傳資訊,目的在于傳播更多信息,與本站立場無關。僅供讀者參考,并請自行核實相關內容。
版權聲明:凡注明“來源:“生活消費網”的所有作品,版權歸生活消費網 | 專注于國內外今日生活資訊網站所有。任何媒體轉載、摘編、引用,須注明來源生活消費網 | 專注于國內外今日生活資訊網站和署著作者名,否則將追究相關法律責任。
-
AI無法打敗AI,ChatGPT檢測器頻繁冤枉無辜學生,有210萬教師在被AI冤枉的你,還好嗎? 當你被AI無辜扣上「作弊」的帽子,作何感想? 這件事恰恰發生在了一位高三學生LucyGoetz身上。原本她寫的一篇社會主義原創論文得了最高分。 但是,Turniti......2023-04-07 18:47
-
東芝音畫雙芯MiniLED影院電視Z750發布:65/75/85英寸14,在今日上午的新品發布會上,東芝音畫雙芯MiniLED影院電視Z750正式發布,首發價8999元起。 東芝音畫雙芯MiniLED影院電視Z750擁有65/75/85英寸三個版本,搭載新一代MiniL......2023-04-07 18:38
-
氫能汽車國產成本大降:長城集團未勢能源IV型儲氫瓶產線落成,規劃年產10,近日,長城集團旗下未勢能源IV型儲氫瓶生產線在保定工業園落成,并進入試生產階段,標志著未勢能源已具備IV型儲氫瓶的規?;a能力。 據介紹,該產線車間占地面積4000余平米,引進高端全自動化智能生......2023-04-07 18:23
-
印尼最大科技公司GoTo2022年虧損增超50%:宣布多次裁員,提高盈利北京時間4月7日上午消息,據報道,印尼最大科技公司GoTo的首席執行官安德烈?索里斯托在談到2022年凈虧損增長超過50%時稱,這段時期“具有挑戰性”,對一直努力實現盈利的公司而言是個“轉折點”。 ......2023-04-07 18:20
-
京糧控股2022年多項財務指標下滑定增方案尚未落地短期流動性承壓京糧控股近日發布2022年報。報告期內,公司取得營收128.6億元,同比增長9.31%;凈利潤1.64億元,同比下滑31.34%;扣非凈利潤1.24億元,同比下滑36.40%,創出近三年新低。 利潤......2023-04-07 17:43