Hugging News #0814: Llama 2 學(xué)習(xí)資源大匯總

每一周,我們的同事都會(huì)向社區(qū)的成員們發(fā)布一些關(guān)于 Hugging Face 相關(guān)的更新,包括我們的產(chǎn)品和平臺(tái)更新、社區(qū)活動(dòng)、學(xué)習(xí)資源和內(nèi)容更新、開(kāi)源庫(kù)和模型更新等,我們將其稱之為「Hugging News」。本期 Hugging News 有哪些有趣的消息,快來(lái)看看吧!????
重磅更新
Llama 2 學(xué)習(xí)資源大匯總!????

?? Llama 2 是由 Meta 推出的新型開(kāi)放式大型語(yǔ)言模型。我們很高興能夠?qū)⑵淙婕扇?Hugging Face,并全力支持其發(fā)布。通過(guò) Hugging Face,它可以免費(fèi)用于研究和商業(yè)用途。預(yù)訓(xùn)練模型基于 2 萬(wàn)億令牌進(jìn)行訓(xùn)練,上下文長(zhǎng)度是 Llama 1 的兩倍!你可以在 Hugging Face 上找到具有 70 億、130 億和 700 億參數(shù)的模型 ???????
通過(guò)與 Meta 合作,我們已經(jīng)順利地完成了對(duì) Llama 2 的集成,你可以在 Hub 上找到 12 個(gè)開(kāi)放模型 (3 個(gè)基礎(chǔ)模型以及 3 個(gè)微調(diào)模型,每個(gè)模型都有 2 種 checkpoint: 一個(gè)是 Meta 的原始 checkpoint,一個(gè)是 Transformers 格式的 checkpoint)。以下列出了 Hugging Face 支持 Llama 2 的主要工作:
Llama 2 已入駐 Hub: 包括模型卡及相應(yīng)的許可證。支持 Llama 2 的 Transformers 庫(kù) 使用單 GPU 微調(diào) Llama 2 小模型的示例 Text Generation Inference (TGI) 已集成 Llama 2,實(shí)現(xiàn)快速高效的生產(chǎn)化推理 推理終端 (Inference Endpoints) 已集成 Llama 2
我們?yōu)榇蠹覝?zhǔn)備了兩篇文章,幫助大家更好的學(xué)習(xí)理解和使用 Llama 2。在第一篇文章中,我們討論了以下幾點(diǎn):
為什么選擇 Llama 2?Demo 演示 使用 Transformers 進(jìn)行推理 使用推理終端(Inference Endpoints)進(jìn)行推理 使用 PEFT 進(jìn)行微調(diào) 如何提示(prompt) Llama 2
??https://hf.co/blog/zh/llama2
在第二篇文章中,我們對(duì) Llama 2 進(jìn)行了如下的討論:
Llama 2 是什么?你可以用來(lái)測(cè)試 Llama 2 的不同的 playgrounds Llama 2 模型背后的研究 Llama 2 的性能如何,基準(zhǔn)測(cè)試 如何正確設(shè)置對(duì)話模型的提示 如何使用 PEFT 對(duì) Llama 2 進(jìn)行訓(xùn)練 如何部署 Llama 2 以進(jìn)行推斷
??https://www.philschmid.de/llama-2
Llama 2 現(xiàn)已登陸 Hugging Chat ????

現(xiàn)在在 Hugging Chat 可以嘗試免費(fèi)使用 Llama 2 70B 聊天模型(在頁(yè)面右上角選擇模型 Llama-2-70b-chat-hf 即可),享受超快的推斷速度、網(wǎng)絡(luò)搜索功能!
??http://hf.co/chat
這個(gè)項(xiàng)目由以下技術(shù)支持:
文本生成推理(Text-generation-inference),用于生產(chǎn)環(huán)境的大型語(yǔ)言模型服務(wù)工具:
https://github.com/huggingface/text-generation-inference
Hugging Face 的開(kāi)源的大型語(yǔ)言模型用戶界面 Chat UI:
https://github.com/huggingface/chat-ui Llama 2
模型:https://huggingface.co/meta-llama
使用 Autotrain 對(duì) Llama 2 進(jìn)行微調(diào)

這個(gè)視頻講述了如何使用 Hugging Face 的 Autotrain 在 Google Colab 的免費(fèi)版本上對(duì) Llama 2 進(jìn)行訓(xùn)練。這是在 Google Colab 的免費(fèi)版本或者在本地計(jì)算機(jī)上使用自定義數(shù)據(jù)集進(jìn)行 llama-v2 微調(diào)的簡(jiǎn)單的方法,這個(gè)方法也適用于任何其他 LLM。AutoTrain 是自動(dòng)訓(xùn)練和部署機(jī)器學(xué)習(xí)模型的一種方式,可以與 Hugging Face 的生態(tài)系統(tǒng)無(wú)縫集成。
??https://youtube.com/watch?v=3fsn19OI_C8&ab_channel=AbhishekThakur
用幾行代碼就可使用自己的數(shù)據(jù)訓(xùn)練 Llama 2!

你可以在短短幾行代碼中對(duì)所有 Llama-2 模型使用自己的數(shù)據(jù)進(jìn)行訓(xùn)練!通過(guò)使用 4-bit 和 PEFT,即使在單個(gè) A100 GPU 上,這個(gè)腳本也可以用于 70B 模型的訓(xùn)練。你可以在 T4 GPU 上進(jìn)行 7B 的訓(xùn)練(即在 Colab 上可以免費(fèi)獲取的資源),或者在 A100 GPU 上進(jìn)行 70B 的訓(xùn)練。
4-bit 在這里指的是四位量化(4-bit quantization),是一種將模型的權(quán)重量化為更低比特?cái)?shù)的技術(shù)。在深度學(xué)習(xí)中,通常模型的權(quán)重會(huì)以較高的浮點(diǎn)數(shù)表示,這需要更大的存儲(chǔ)和計(jì)算資源。通過(guò)量化,可以將權(quán)重表示為更短的二進(jìn)制位數(shù),從而減小模型的存儲(chǔ)需求和計(jì)算成本。四位量化意味著權(quán)重將被表示為只有 4 個(gè)二進(jìn)制位的數(shù)字,這樣可以大幅減小權(quán)重的表示大小。然而,量化也會(huì)引入一定的信息損失,因?yàn)闄?quán)重的精度被降低了。為了緩解這種損失,通常會(huì)使用特殊的量化技術(shù),如對(duì)稱量化或非對(duì)稱量化,以盡量保留模型的性能。
PEFT(Parameter Efficient Fine-Tuning)是一種用于微調(diào)神經(jīng)網(wǎng)絡(luò)模型的技術(shù),旨在在保持模型性能的同時(shí),顯著減少微調(diào)所需的計(jì)算資源和時(shí)間。這對(duì)于在資源有限的環(huán)境下進(jìn)行模型微調(diào)非常有用。PEFT 的主要思想是通過(guò)使用較小的學(xué)習(xí)率來(lái)微調(diào)模型的一部分參數(shù),而不是對(duì)整個(gè)模型的所有參數(shù)進(jìn)行微調(diào)。具體來(lái)說(shuō),PEFT 將模型的參數(shù)分為不同的組,然后在每個(gè)組上應(yīng)用不同的學(xué)習(xí)率。這樣可以將微調(diào)的計(jì)算開(kāi)銷分布到多個(gè)小批次中,從而減少了每個(gè)小批次的計(jì)算負(fù)擔(dān),使得模型可以在較小的設(shè)備上進(jìn)行高效微調(diào)。
你可以輕松地使用 SFTTrainer 和官方腳本對(duì) Llama2 模型進(jìn)行微調(diào)。例如,要對(duì) llama2-7b 在 Guanaco 數(shù)據(jù)集上進(jìn)行微調(diào),請(qǐng)運(yùn)行以下命令(已在單個(gè) NVIDIA T4-16GB 上進(jìn)行了測(cè)試):
''' python examples/scripts/sft_trainer.py --model_name meta-llama/Llama-2-7b-hf --dataset_name timdettmers/openassistant-guanaco --load_in_4bit --use_peft --batch_size 4 --gradient_accumulation_steps 2 '''
了解更多:https://hf.co/docs/trl/main/en/lora_tuning_peft#finetuning-llama2-model?完整腳本:https://github.com/lvwerra/trl/blob/main/examples/scripts/sft_trainer.py
以上就是本期的 Hugging News,新的一周開(kāi)始了,我們一起加油!????
額外內(nèi)容:
Hugging Face 加入 PyTorch 基金會(huì)并成為首要成員

本周,作為一個(gè)深度學(xué)習(xí)社區(qū)的中立家園,PyTorch 基金會(huì)宣布 Hugging Face 已加入為首要成員。?
Hugging Face 一直是 PyTorch 生態(tài)系統(tǒng)的長(zhǎng)期支持者和貢獻(xiàn)者,通過(guò)提供強(qiáng)大的模型和資源加速了 AI 技術(shù)的研究、開(kāi)發(fā)和應(yīng)用,特別是在自然語(yǔ)言處理領(lǐng)域。
?? “我們的使命一直是民主化 AI,使之可供所有人使用。我們與 PyTorch 的目標(biāo)實(shí)現(xiàn)從業(yè)者減少進(jìn)入門檻的目標(biāo)是真正一致的。通過(guò)加入 PyTorch 基金會(huì),我們可以進(jìn)一步放大這種影響,并支持生態(tài)系統(tǒng)中非常重要的 PyTorch 框架。”Hugging Face 開(kāi)源負(fù)責(zé)人 Lysandre Debut 表示?!拔覀兿嘈胚@兩個(gè)生態(tài)系統(tǒng)有很大的重疊,與基金會(huì)合作將使我們能夠彌合差距,向機(jī)器學(xué)習(xí)社區(qū)提供最好的軟件和最好的工具?!?/p>
Hugging Face 的模型中心和開(kāi)源庫(kù)促進(jìn)了 AI 開(kāi)源社區(qū)內(nèi)的協(xié)作和知識(shí)共享,使 Hugging Face 與不斷壯大的 PyTorch 基金會(huì)非常匹配。他們繼續(xù)通過(guò)創(chuàng)建用戶友好的工具和資源以及提供易于使用和有文檔記錄的庫(kù)來(lái)推動(dòng)行業(yè)的采用和協(xié)作。
作為首要成員,Hugging Face 獲得了一席 PyTorch 基金會(huì)治理委員會(huì)的席位。該委員會(huì)通過(guò)我們的章程、使命和愿景聲明制定政策,描述基金會(huì)倡議的總體范圍、技術(shù)愿景和方向。??
TRL 正式推出,來(lái)訓(xùn)練你的首個(gè) RLHF 模型吧

正式向大家介紹 TRL——Transformer Reinforcement Learning。這是一個(gè)超全面的全棧庫(kù),包含了一整套工具用于使用強(qiáng)化學(xué)習(xí) (Reinforcement Learning) 訓(xùn)練 transformer 語(yǔ)言模型。從監(jiān)督調(diào)優(yōu) (Supervised Fine-tuning step, SFT),到訓(xùn)練獎(jiǎng)勵(lì)模型 (Reward Modeling),再到近端策略優(yōu)化 (Proximal Policy Optimization),實(shí)現(xiàn)了全面覆蓋!并且 TRL 庫(kù)已經(jīng)與 ?? transformers 集成,方便你直接使用!
?? 文檔地址在這里?https://hf.co/docs/trl/
小編帶大家簡(jiǎn)單看看 API 文檔里各個(gè)部分對(duì)應(yīng)了什么需求:
Model Class: 涵蓋了每個(gè)公開(kāi)模型各自用途的概述 SFTTrainer: 幫助你使用 SFTTrainer 實(shí)現(xiàn)模型監(jiān)督調(diào)優(yōu) RewardTrainer: 幫助你使用 RewardTrainer 訓(xùn)練獎(jiǎng)勵(lì)模型 PPOTrainer: 使用 PPO 算法進(jìn)一步對(duì)經(jīng)過(guò)監(jiān)督調(diào)優(yōu)的模型再調(diào)優(yōu) Best-of-N Samppling: 將“拔萃法”作為從模型的預(yù)測(cè)中采樣的替代方法 DPOTrainer: 幫助你使用 DPOTrainer 完成直接偏好優(yōu)化
文檔中還給出了幾個(gè)例子供 ?? 寶子們參考:
Sentiment Tuning: 調(diào)優(yōu)模型以生成更積極的電影內(nèi)容\
Training with PEFT: 執(zhí)行由 PEFT 適配器優(yōu)化內(nèi)存效率的 RLHF 訓(xùn)練?
Detoxifying LLMs: 通過(guò) RLHF 為模型解毒,使其更符合人類的價(jià)值觀
StackLlama: 在 Stack exchange 數(shù)據(jù)集上實(shí)現(xiàn)端到端 RLHF 訓(xùn)練一個(gè) Llama 模型?
Multi-Adapter Training: 使用單一模型和多適配器實(shí)現(xiàn)優(yōu)化內(nèi)存效率的端到端訓(xùn)練
?? 寶子們快行動(dòng)起來(lái),訓(xùn)練你的第一個(gè) RLHF 模型吧!