LLMs之Llama3:Llama 3的簡介、安裝和使用方法、案例應(yīng)用之詳細攻略
導(dǎo)讀:2024年4月18日,Meta 重磅推出了Meta Llama 3,本文章主要介紹了Meta推出的新的開源大語言模型Meta Llama 3。模型架構(gòu) Llama 3 是一種自回歸語言模型,采用了優(yōu)化的 Transformer 架構(gòu)。調(diào)優(yōu)版本使用了監(jiān)督微調(diào)(SFT)和強化學習結(jié)合人類反饋(RLHF)來與人類偏好對齊,以提高實用性和安全性。
背景:大語言模型技術(shù)在最近幾年得到了很大發(fā)展,但是大部分模型并未公開領(lǐng)域,給廣大開發(fā)者和研究人員帶來很大限制。Meta的目標是推出性能優(yōu)越,且完全開源的大語言模型,以推動AI領(lǐng)域的開放創(chuàng)新。
Meta Llama 3的主要亮點和核心要點:
>> 性能突出:8B和70B參數(shù)的Llama 3模型在許多基準測試上都取得了先進水平,超過了同規(guī)模模型。
>>訓(xùn)練數(shù)據(jù):Llama 3 在超過 15 萬億個標記的公開可用數(shù)據(jù)上進行了預(yù)訓(xùn)練。微調(diào)數(shù)據(jù)包括公開可用的指令數(shù)據(jù)集,以及超過 1000 萬個人工標注示例。預(yù)訓(xùn)練數(shù)據(jù)和微調(diào)數(shù)據(jù)均不包括 Meta 用戶數(shù)據(jù)。>> 數(shù)據(jù)規(guī)模龐大:使用超過15T的token公開文本訓(xùn)練數(shù)據(jù),規(guī)模比Llama 2大7倍。
>> 架構(gòu)優(yōu)化:采用相對標準的解碼 Transformer結(jié)構(gòu),但優(yōu)化了細節(jié)如token化方式等。
>> 精細化訓(xùn)練:利用10K級別的GPU小時進行規(guī)?;?xùn)練,提高訓(xùn)練效率3倍以上。
>> 指令微調(diào):采用強化學習的方法進行安全微調(diào),防止模型產(chǎn)生有害響應(yīng)。
>> 全面開源:模型將在多種平臺和開源庫中提供,包括AWS、GF、HU等,給開發(fā)者完全開放利用。
>> 負責任開發(fā):推出如Llama Guard安全守門員等工具,提升模型在實際應(yīng)用中的安全性。
>> 功能豐富:未來將支持多語言、多模態(tài)功能,更高效率的模型將繼續(xù)推出。
總之,Meta Llama 3是目前功能最強大、開放度最高的開源語言模型,其廣泛應(yīng)用前景廣闊。Meta也在負責任開發(fā)和推廣應(yīng)用上下足工夫。
博主評價: Meta最早于2023年2月25日里程碑性發(fā)布最強開源模型Llama 1,過了不到半年,2023年7月18日,Meta又重磅發(fā)布Llama 2,隨著類似的開源大模型—ChatGLM3等以3為開頭的系列版本發(fā)布,整個業(yè)界一直在期待Llama 3會以什么姿態(tài)落地時,Llama 3時隔10個月,于2024年4月18日,終于來了,依然是保持以往的“開源”態(tài)度,依然是在開源界歷史性突破,面對一點都不Open的Open AI,Meta的開源態(tài)度,真的是令整個AIGC業(yè)界和開發(fā)者感動和尊重。在這個躁動和有點浮夸的AIGC領(lǐng)域,博主接觸了太多的大模型領(lǐng)域的技術(shù)人和創(chuàng)業(yè)者,的確存在一大部分,熙熙攘攘皆為利來,熙熙攘攘皆為利往……Llama團隊,值得每一個AI從業(yè)者Respect!
目錄
Llama 3的簡介
1、Llama 3的目標
2、最先進的性能
3、開發(fā)了一個新的高質(zhì)量人類評估集:包含1800個提示+涵蓋12個關(guān)鍵用例
4、四大要素:模型架構(gòu)、預(yù)訓(xùn)練數(shù)據(jù)、擴大預(yù)訓(xùn)練規(guī)模、指令微調(diào)
4.1、模型架構(gòu)
4.2、訓(xùn)練數(shù)據(jù)
4.3、擴大預(yù)訓(xùn)練規(guī)模:15T個token、Llama 3的訓(xùn)練效率提高了約三倍、3D并并行化、16K個GPU
4.4、指令微調(diào)
5、對責任感的系統(tǒng)級方法
6、大規(guī)模部署Llama 3:改進的tokenizer效率+GQA
7、Llama 3的未來發(fā)展:多模態(tài)+多語言+更長窗口+更強整體能力
8、試用Meta Llama 3
Llama 3的安裝和使用方法
1、安裝
(1)、下載
(2)、訪問Hugging Face
2、快速入門
3、注意事項
4、推理
4.1、使用預(yù)訓(xùn)練模型:沒有為聊天或問答進行微調(diào),但應(yīng)該被提示
4.2、使用指令調(diào)整模型:可采用部署額外的分類器來過濾掉危險內(nèi)容
4.3、負責任使用指南
5、問題
6、模型卡:模型細節(jié)、預(yù)期用途、軟硬件、訓(xùn)練數(shù)據(jù)、Benchmarks、倫理考慮與限制
7、Llama-3-8B-Instruct的使用
T1、與Transformers一起使用
T1.1、Transformers pipeline
T1.2、Transformers AutoModelForCausalLM
T2、與 llama3 一起使用
Llama 3的案例應(yīng)用
1、API接口調(diào)用
2、多種在線體驗方式
T1、Meta官網(wǎng)在線體驗地址
T2、Huggingface平臺在線體驗地址
T3、NVIDIA平臺在線體驗地址
T4、replicate平臺在線體驗
相關(guān)文章
LLMs之LLaMA:LLaMA的簡介、安裝和使用方法、案例應(yīng)用之詳細攻略
LLMs之LLaMA:LLaMA的簡介、安裝和使用方法、案例應(yīng)用之詳細攻略_chinese_calendar每年手動更新-CSDN博客
LLMs之LLaMA-2:LLaMA-2的簡介(技術(shù)細節(jié))、安裝、使用方法(開源-免費用于研究和商業(yè)用途)之詳細攻略
LLMs之LLaMA-2:LLaMA-2的簡介(技術(shù)細節(jié))、安裝、使用方法(開源-免費用于研究和商業(yè)用途)之詳細攻略_llama2-CSDN博客
LLMs之Llama3:Llama 3的簡介、安裝和使用方法、案例應(yīng)用之詳細攻略
LLMs之Llama 3:Llama 3的簡介、安裝和使用方法、案例應(yīng)用之詳細攻略-CSDN博客
Llama 3的簡介
2024年4月18日,Meta 重磅推出了Meta Llama 3,Llama 3是Meta最先進開源大型語言模型的下一代,包括具有80億和700億參數(shù)的預(yù)訓(xùn)練和指令微調(diào)的語言模型,能夠支持廣泛的應(yīng)用場景。這一代Llama在一系列行業(yè)標準基準測試中展示了最先進的性能,并提供了新的功能,包括改進的推理能力。我們相信這些是同類中最好的開源模型,絕對如此。
Llama 3模型將很快在AWS、Databricks、Google Cloud、Hugging Face、Kaggle、IBM WatsonX、Microsoft Azure、NVIDIA NIM和Snowflake上提供,并得到AMD、AWS、Dell、Intel、NVIDIA和Qualcomm提供的硬件平臺的支持。 Meta 致力于以負責任的方式開發(fā)Llama 3,并提供各種資源來幫助其他人負責任地使用它。這包括推出新的信任和安全工具,如Llama Guard 2、Code Shield和CyberSec Eval 2。
為了支持我們長期以來的開放方法,我們將Llama 3交給了社區(qū)。我們希望啟動AI堆棧下一波創(chuàng)新——從應(yīng)用到開發(fā)者工具,再到評估和推理優(yōu)化等等。我們迫不及待地想看看你的作品,并期待你的反饋。
在未來幾個月,Meta 預(yù)計將推出新的功能、更長的上下文窗口、額外的模型尺寸和提升的性能,并將分享Llama 3的研究論文。 利用Llama 3技術(shù)構(gòu)建的Meta AI,現(xiàn)在是世界上最領(lǐng)先的AI助手之一,可以提升你的智能并減輕你的負擔——幫助你學習、完成任務(wù)、創(chuàng)作內(nèi)容并建立聯(lián)系,以充分利用每一刻。你可以在這里嘗試Meta AI。
官網(wǎng)文章:Meet Your New Assistant: Meta AI, Built With Llama 3 | Meta
GitHub地址:https://github.com/meta-llama/llama3
文檔地址:https://llama.meta.com/docs/model-cards-and-prompt-formats/meta-llama-3
在線體驗地址:https://llama.meta.com/llama3/
1、Llama 3的目標
Llama 3的目標是構(gòu)建與當今可用的最佳專有模型相媲美的最佳開源模型。我們希望解決開發(fā)者的反饋,以提高Llama 3的整體幫助性,同時繼續(xù)在負責任地使用和部署LLM方面發(fā)揮領(lǐng)導(dǎo)作用。我們采用開源精神,盡早且頻繁地發(fā)布,以便在模型仍在開發(fā)時讓社區(qū)能夠獲取這些模型。我們今天發(fā)布的基于文本的模型是Llama 3模型集的第一批。我們近期的目標是讓Llama 3實現(xiàn)多語言和多模態(tài),擁有更長的上下文,并繼續(xù)提高核心LLM能力(如推理和編碼)的整體性能。
Training Data | Params | Context length | GQA | Token count | Knowledge cutoff | |
Llama 3 | A new mix of publicly available online data. | 8B | 8k | Yes | 15T+ | 2023 年 3 月 |
70B | 8k | Yes | 15T+ | 2023 年 12 月 |
2、最先進的性能
我們新的80億和700億參數(shù)的Llama 3模型在Llama 2的基礎(chǔ)上取得了重大飛躍,為這些規(guī)模的LLM模型建立了新的最先進水平。得益于預(yù)訓(xùn)練和后訓(xùn)練的改進,我們預(yù)訓(xùn)練和指令微調(diào)的模型是當今存在的8B和70B參數(shù)規(guī)模的最佳模型。我們后訓(xùn)練程序的改進顯著降低了錯誤拒絕率,改善了模型響應(yīng)的對齊性,并增加了響應(yīng)的多樣性。我們還看到了在推理、代碼生成和遵循指令等方面的大幅能力提升,使得Llama 3更加可操縱。
請參閱計算這些評估的設(shè)置和參數(shù)的評估詳細信息:llama3/eval_details.md at main · meta-llama/llama3 · GitHub
3、開發(fā)了一個新的高質(zhì)量人類評估集:包含1800個提示+涵蓋12個關(guān)鍵用例
在Llama 3的開發(fā)過程中,我們查看了模型在標準基準上的性能,并尋求優(yōu)化現(xiàn)實世界的性能。為此,我們開發(fā)了一個新的高質(zhì)量人類評估集。這個評估集包含1800個提示,涵蓋12個關(guān)鍵用例:尋求建議、頭腦風暴、分類、封閉式問答、編碼、創(chuàng)意寫作、提取、扮演一個角色/人物、開放式問答、推理、重寫和總結(jié)。為了防止我們的模型無意中在這個評估集上過擬合,即使是我們的建模團隊也沒有權(quán)限訪問它。下表顯示了我們的評估結(jié)果與Claude Sonnet、Mistral Medium和GPT-3.5相比,在這些類別和提示上的匯總結(jié)果。
基于這個評估集的人類標注者的偏好排名突出了我們70B指令遵循模型與類似大小的競爭模型在現(xiàn)實世界場景中的強大性能。
4、四大要素:模型架構(gòu)、預(yù)訓(xùn)練數(shù)據(jù)、擴大預(yù)訓(xùn)練規(guī)模、指令微調(diào)
為了開發(fā)一個偉大的語言模型,我們相信創(chuàng)新、擴展和優(yōu)化簡單性是重要的。我們在整個Llama 3項目中采用了這一設(shè)計理念,重點關(guān)注四個關(guān)鍵要素:模型架構(gòu)、預(yù)訓(xùn)練數(shù)據(jù)、擴大預(yù)訓(xùn)練規(guī)模和指令微調(diào)。
4.1、模型架構(gòu)
與我們的設(shè)計理念一致,我們在Llama 3中選擇了相對標準的解碼器-only的transformer架構(gòu)。與Llama 2相比,我們做了一些關(guān)鍵的改進。Llama 3使用了一個擁有128K詞匯量的tokenizer,更有效地編碼語言,這導(dǎo)致模型性能大幅提升。為了提高Llama 3模型的推理效率,我們在8B和70B的模型中都采用了分組查詢注意力(GQA)。我們使用8,192個token的序列訓(xùn)練模型,并使用mask來確保自注意力不會跨越文檔邊界。
4.2、訓(xùn)練數(shù)據(jù)
為了訓(xùn)練最佳的語言模型,收集一個大規(guī)模、高質(zhì)量的訓(xùn)練數(shù)據(jù)集至關(guān)重要。與我們的設(shè)計原則一致,我們在預(yù)訓(xùn)練數(shù)據(jù)上投入了大量資金。Llama 3在超過15T的token上進行預(yù)訓(xùn)練,所有數(shù)據(jù)都來自公開可用的來源。我們的訓(xùn)練數(shù)據(jù)集比用于Llama 2的數(shù)據(jù)集大了七倍,并且包括了四倍的代碼。為了準備即將到來的多語言用例,超過5%的Llama 3預(yù)訓(xùn)練數(shù)據(jù)集由高質(zhì)量的非英語數(shù)據(jù)組成,覆蓋了超過30種語言。然而,我們不期望在這些語言中達到與英語相同的性能水平。
為了確保Llama 3訓(xùn)練的數(shù)據(jù)質(zhì)量最高,我們開發(fā)了一系列數(shù)據(jù)過濾管道。這些管道包括使用啟發(fā)式過濾器、NSFW過濾器、語義去重方法和文本分類器來預(yù)測數(shù)據(jù)質(zhì)量。我們發(fā)現(xiàn),Llama的前幾代在識別高質(zhì)量數(shù)據(jù)方面出奇地好,因此我們使用Llama 2生成了為Llama 3提供動力的文本質(zhì)量分類器的訓(xùn)練數(shù)據(jù)。
我們還進行了大量實驗,以評估在我們的最終預(yù)訓(xùn)練數(shù)據(jù)集中混合不同來源數(shù)據(jù)的最佳方式。這些實驗使我們能夠選擇一個數(shù)據(jù)混合方案,確保Llama 3在包括瑣碎問題、STEM、編碼、歷史知識等各種用例中表現(xiàn)良好。
4.3、擴大預(yù)訓(xùn)練規(guī)模:15T個token、Llama 3的訓(xùn)練效率提高了約三倍、3D并并行化、16K個GPU
為了在Llama 3模型中有效利用我們的預(yù)訓(xùn)練數(shù)據(jù),我們投入了大量精力來擴大預(yù)訓(xùn)練規(guī)模。具體來說,我們?yōu)橄掠位鶞试u估開發(fā)了一系列詳細的擴展法則。這些擴展法則使我們能夠選擇最佳數(shù)據(jù)混合方案,并就如何最佳利用我們的訓(xùn)練計算資源做出明智的決策。重要的是,擴展法則允許我們在實際訓(xùn)練模型之前預(yù)測我們最大模型在關(guān)鍵任務(wù)上的性能(例如,在HumanEval基準上評估的代碼生成——見上文)。這幫助我們確保最終模型在各種使用場景和能力上的強勁性能。
在Llama 3的開發(fā)過程中,我們對擴展行為做出了幾項新的觀察。例如,雖然對于80億參數(shù)模型來說,Chinchilla最優(yōu)的訓(xùn)練計算量對應(yīng)于約2000億個token,但我們發(fā)現(xiàn)即使模型在數(shù)據(jù)量增加兩個數(shù)量級后,模型性能仍然在持續(xù)提升。在我們的80億和700億參數(shù)模型經(jīng)過高達15T個token的訓(xùn)練后,它們的性能繼續(xù)以對數(shù)線性方式提升。大型模型可以在較少的訓(xùn)練計算量下匹配這些小型模型的性能,但通常更傾向于使用小型模型,因為它們在推理過程中效率更高。
為了訓(xùn)練我們最大的Llama 3模型,我們結(jié)合了三種類型的并行化:數(shù)據(jù)并行化、模型并行化和流水線并行化。我們最有效的實現(xiàn)方式在同時訓(xùn)練16K個GPU時,每個GPU的計算利用率超過400 TFLOPS。我們在兩個定制構(gòu)建的24K GPU集群上執(zhí)行了訓(xùn)練運行。為了最大化GPU的運行時間,我們開發(fā)了一個新的高級訓(xùn)練堆棧,自動化了錯誤檢測、處理和維護。我們還大大提高了硬件的可靠性和檢測機制,用于靜默數(shù)據(jù)損壞,并開發(fā)了新的可擴展存儲系統(tǒng),減少了檢查點和回滾的開銷。這些改進使得整體有效訓(xùn)練時間超過了95%。綜合來看,這些改進將Llama 3的訓(xùn)練效率提高了約三倍,與Llama 2相比。
4.4、指令微調(diào)
為了充分釋放我們預(yù)訓(xùn)練模型在聊天用例中的潛力,我們對指令調(diào)整方法也進行了創(chuàng)新。我們的后訓(xùn)練方法是監(jiān)督式微調(diào)(SFT)、拒絕采樣、近端策略優(yōu)化(PPO)和直接策略優(yōu)化(DPO)的組合。用于SFT的提示質(zhì)量和用于PPO和DPO的偏好排名對對齊模型的性能有巨大影響。我們在模型質(zhì)量上的一些最大改進來自于仔細篩選這些數(shù)據(jù),并對人類標注者提供的多輪質(zhì)量保證進行多次審查。
通過PPO和DPO從偏好排名中學習也大大提高了Llama 3在推理和編碼任務(wù)上的性能。我們發(fā)現(xiàn),如果你問一個模型一個它難以回答的推理問題,模型有時會產(chǎn)生正確的推理軌跡:模型知道如何產(chǎn)生正確的答案,但它不知道如何選擇它。在偏好排名上進行訓(xùn)練使模型學會了如何選擇它。
5、對責任感的系統(tǒng)級方法
我們設(shè)計Llama 3模型旨在最大化幫助性,同時確保在負責任地部署它們方面保持行業(yè)領(lǐng)先。為了實現(xiàn)這一點,我們采用了新的、系統(tǒng)級的方法來負責任地開發(fā)和部署Llama。我們設(shè)想Llama模型是一個更廣泛系統(tǒng)的一部分,讓開發(fā)者掌握主動權(quán)。Llama模型將作為開發(fā)者設(shè)計的系統(tǒng)的基礎(chǔ)部分,以他們獨特的最終目標為宗旨。
指令微調(diào)也在確保我們模型的安全性方面發(fā)揮著重要作用。我們的指令微調(diào)模型已經(jīng)通過內(nèi)部和外部努力進行了安全性紅隊測試(測試)。我們的紅隊方法利用人類專家和自動化方法生成對抗性提示,試圖引出問題性響應(yīng)。例如,我們應(yīng)用了全面的測試來評估與化學、生物、網(wǎng)絡(luò)安全和其他風險領(lǐng)域相關(guān)的誤用風險。所有這些努力都是迭代的,并用于通知正在發(fā)布的模型的安全性微調(diào)。你可以在模型卡中閱讀更多關(guān)于我們努力的信息。
Llama Guard模型旨在成為提示和響應(yīng)安全的基礎(chǔ),并可以輕松地進行微調(diào)以根據(jù)應(yīng)用程序需求創(chuàng)建新的分類法。作為起點,新的Llama Guard 2使用了最近宣布的MLCommons分類法,以支持在這一重要領(lǐng)域中行業(yè)標準的出現(xiàn)。此外,CyberSecEval 2在其前身的基礎(chǔ)上增加了衡量LLM允許其代碼解釋器被濫用、具有攻擊性網(wǎng)絡(luò)安全能力和易受提示注入攻擊的傾向的度量(在我們的技術(shù)論文中了解更多信息)。最后,我們推出了Code Shield,它增加了對LLMs生成的非安全代碼進行推理時過濾的支持。這為非安全代碼建議、代碼解釋器濫用預(yù)防和安全命令執(zhí)行的風險提供了緩解措施。
隨著生成式AI空間的發(fā)展速度,我們認為開放方法是將生態(tài)系統(tǒng)團結(jié)在一起并緩解這些潛在危害的重要方式。作為其中的一部分,我們正在更新我們的《負責任使用指南》(RUG),該指南為使用LLMs進行負責任開發(fā)提供了全面指導(dǎo)。正如我們在RUG中所概述的,我們建議所有輸入和輸出都應(yīng)根據(jù)應(yīng)用程序適當?shù)膬?nèi)容指南進行檢查和過濾。此外,許多云服務(wù)提供商提供內(nèi)容審查API和其他工具用于負責任部署,我們鼓勵開發(fā)者也考慮使用這些選項。
6、大規(guī)模部署Llama 3:改進的tokenizer效率+GQA
Llama 3很快將在包括云提供商、模型API提供商等在內(nèi)的所有主要平臺上可用。Llama 3將無處不在。
我們的基準測試顯示,tokenizer提供了改進的token效率,與Llama 2相比,減少了多達15%的token。此外,Group Query Attention (GQA)也已經(jīng)加入了Llama 3 8B。因此,盡管模型比Llama 2 7B多10億參數(shù),但改進的tokenizer效率和GQA有助于保持與Llama 2 7B相當?shù)耐评硇?。要了解如何充分利用這些能力的示例,請查看Llama Recipes,它包含了所有我們的開源代碼,可用于從微調(diào)到部署到模型評估。
7、Llama 3的未來發(fā)展:多模態(tài)+多語言+更長窗口+更強整體能力
Llama 3 8B和70B模型標志著我們計劃為Llama 3發(fā)布的開始。還有更多內(nèi)容即將推出。
我們的最大模型超過4000億參數(shù),盡管這些模型仍在訓(xùn)練中,但我們的團隊對它們的趨勢感到興奮。在未來幾個月內(nèi),我們將發(fā)布多個具有新功能的新模型,包括多模態(tài)、能夠用多種語言交談、更長的上下文窗口和更強的整體能力。我們還將發(fā)布一篇詳細的研究論文,一旦完成Llama 3的訓(xùn)練。
為了給您一個這些模型當前訓(xùn)練狀態(tài)的預(yù)覽,我們想分享一些關(guān)于我們最大的LLM模型趨勢的快照。請注意,這些數(shù)據(jù)是基于Llama 3仍然在訓(xùn)練的早期檢查點,并且這些功能不包括在今天發(fā)布的模型中。
我們致力于繼續(xù)增長和發(fā)展一個開放的AI生態(tài)系統(tǒng),以負責任地發(fā)布我們的模型。我們長期以來一直相信,開放性會導(dǎo)致更好的、更安全的產(chǎn)品的出現(xiàn),加快創(chuàng)新的速度,并使整體市場更加健康。這對Meta來說是好事,對社會也是好事。我們以社區(qū)為先的態(tài)度對待Llama 3,從今天開始,這些模型將在領(lǐng)先的云、托管和硬件平臺上提供,未來還會有更多。
8、試用Meta Llama 3
我們已經(jīng)將我們最新的模型整合到Meta AI中,我們相信這是世界上領(lǐng)先的AI助手。它現(xiàn)在采用了Llama 3技術(shù),并將在我們的應(yīng)用程序中更多國家提供。
您可以在Facebook、Instagram、WhatsApp、Messenger和網(wǎng)站上使用Meta AI來完成任務(wù)、學習、創(chuàng)作和與您關(guān)心的事物建立聯(lián)系。您可以在這里了解更多關(guān)于Meta AI體驗的信息。
訪問Llama 3網(wǎng)站下載模型并參考入門指南,了解所有可用平臺的最新列表。
您很快將能夠在我們的Ray-Ban Meta智能眼鏡上測試多模態(tài)的Meta AI。
如往常一樣,我們期待看到您將如何使用Meta Llama 3構(gòu)建所有令人驚嘆的產(chǎn)品和體驗。
使用體驗:Meet Your New Assistant: Meta AI, Built With Llama 3 | Meta
Llama 3的安裝和使用方法
Meta的愿景是讓開發(fā)者能夠自定義Llama 3以支持相關(guān)用例,并使其更容易采用最佳實踐并改善開放生態(tài)系統(tǒng)。隨著這個版本的發(fā)布,我們提供了新的信任和安全工具,包括更新了Llama Guard 2和Cybersec Eval 2的組件,以及推出了Code Shield——一個用于過濾LLMs生成的非安全代碼的推理時護欄。
我們還與torchtune共同開發(fā)了Llama 3,torchtune是一個新的PyTorch原生庫,用于輕松創(chuàng)作、微調(diào)和實驗LLMs。torchtune提供了完全用PyTorch編寫的內(nèi)存高效且可修改的訓(xùn)練配方。該庫與Hugging Face、Weights & Biases、EleutherAI等流行平臺集成,甚至支持Executorch,以便在廣泛的移動和邊緣設(shè)備上運行高效的推理。從提示工程到使用Llama 3與LangChain,我們有一個全面的入門指南,從下載Llama 3到在你的生成式AI應(yīng)用程序中大規(guī)模部署,全程指導(dǎo)。
1、安裝
Meta Llama 3 我們正在解鎖大型語言模型的力量。我們最新的Llama版本現(xiàn)在可供個人、創(chuàng)作者、研究人員和所有規(guī)模的企業(yè)使用,以便他們可以負責任地實驗、創(chuàng)新和擴展他們的想法。這個版本包括預(yù)訓(xùn)練和指令調(diào)整的Llama 3語言模型的模型權(quán)重和起始代碼——包括80億到700億參數(shù)的尺寸。這個倉庫旨在作為一個最小示例,用于加載Llama 3模型并運行推理。對于更詳細的示例,請參閱llama-recipes。
llama-recipes地址:GitHub - meta-llama/llama-recipes: Scripts for fine-tuning Llama2 with composable FSDP & PEFT methods to cover single/multi-node GPUs. Supports default & custom datasets for applications such as summarization & question answering. Supporting a number of candid inference solutions such as HF TGI, VLLM for local or cloud deployment.Demo apps to showcase Llama2 for WhatsApp & Messenger
(1)、下載
獲取協(xié)議 |
為了下載模型權(quán)重和tokenizer,請訪問Meta Llama網(wǎng)站并接受我們的許可協(xié)議。 一旦您的請求得到批準,您將通過電子郵件收到一個已簽名的URL。然后運行download.sh腳本,在提示時傳遞提供的URL以開始下載。 請注意,鏈接在24小時后過期,并且有一定數(shù)量的下載。如果您開始看到例如403: Forbidden的錯誤,您總是可以重新請求鏈接。 |
安裝依賴 |
先決條件:確保您已安裝wget和md5sum。然后運行腳本:./download.sh。 |
(2)、訪問Hugging Face
我們還在Hugging Face上提供下載,包括transformers和原生llama3格式。要從Hugging Face下載權(quán)重,請按照以下步驟操作:
>> 訪問其中一個倉庫,例如meta-llama/Meta-Llama-3-8B-Instruct。
>> 閱讀并接受許可。一旦您的請求得到批準,您將獲得訪問所有Llama 3模型的權(quán)限。請注意,請求可能需要長達一個小時才能處理完畢。
>> 要下載原始原生權(quán)重以使用此倉庫,請點擊“文件和版本”標簽,并下載原始文件夾的內(nèi)容。如果您已pip安裝huggingface-hub,也可以從命令行下載:
huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct --include “original/*” --local-dir meta-llama/Meta-Llama-3-8B-Instruct
>> 要使用transformers,以下管道片段將下載并緩存權(quán)重:
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
pipeline = transformers.pipeline(
"text-generation",
model="meta-llama/Meta-Llama-3-8B-Instruct",
model_kwargs={"torch_dtype": torch.bfloat16},
device="cuda",
)
2、快速入門
您可以按照以下步驟快速上手Llama 3模型。這些步驟將讓您在本地運行快速的推理。更多示例,請參閱Llama食譜倉庫。在有PyTorch / CUDA可用的conda環(huán)境中克隆并下載此倉庫。
在頂級目錄中運行:
pip install -e .
訪問Meta Llama網(wǎng)站并注冊以下載模型/s。
一旦注冊,您將收到一封帶有下載模型URL的電子郵件。您需要這個URL來運行download.sh腳本。
一旦收到電子郵件,導(dǎo)航到您的下載llama倉庫并運行download.sh腳本。確保授予download.sh腳本的執(zhí)行權(quán)限 在這個過程中,您將需要輸入電子郵件中的URL。 不要使用“復(fù)制鏈接”選項,而是確保手動從電子郵件中復(fù)制鏈接。
一旦您想要的模型/s被下載,您可以通過以下命令在本地運行模型:
torchrun --nproc_per_node 1 example_chat_completion.py \
--ckpt_dir Meta-Llama-3-8B-Instruct/ \
--tokenizer_path Meta-Llama-3-8B-Instruct/tokenizer.model \
--max_seq_len 512 --max_batch_size 6
3、注意事項
>> 將Meta-Llama-3-8B-Instruct/替換為您檢查點目錄的路徑,將Meta-Llama-3-8B-Instruct/tokenizer.model替換為您tokenizer模型的路徑。
>> –nproc_per_node應(yīng)設(shè)置為您使用的模型的MP值。
>> 根據(jù)需要調(diào)整max_seq_len和max_batch_size參數(shù)。
>> 這個示例運行此倉庫中的example_chat_completion.py,但您可以將其更改為不同的.py文件。
4、推理
不同的模型需要不同的模型并行(MP)值,如下所示。所有模型都支持最多8192個token的序列長度,但我們根據(jù)max_seq_len和max_batch_size的值預(yù)先分配緩存。所以請根據(jù)您的硬件設(shè)置這些值。
Model | MP |
---|---|
8B | 1 |
70B | 8 |
4.1、使用預(yù)訓(xùn)練模型:沒有為聊天或問答進行微調(diào),但應(yīng)該被提示
這些模型沒有為聊天或問答進行微調(diào)。它們應(yīng)該被提示,以便預(yù)期的答案是提示的自然延續(xù)。請參閱example_text_completion.py的一些示例。為了說明,請查看以下命令,使用llama-3-8b模型運行它(nproc_per_node需要設(shè)置為MP值):
torchrun --nproc_per_node 1 example_text_completion.py
–ckpt_dir Meta-Llama-3-8B/
–tokenizer_path Meta-Llama-3-8B/tokenizer.model
–max_seq_len 128 --max_batch_size 4
4.2、使用指令調(diào)整模型:可采用部署額外的分類器來過濾掉危險內(nèi)容
微調(diào)的模型是為對話應(yīng)用程序而訓(xùn)練的。為了獲得預(yù)期的特性和性能,需要遵循ChatFormat中定義的特定格式:提示以<|begin_of_text|>特殊標記開始,隨后是多條消息。每個消息以<|start_header_id|>標簽開頭,角色系統(tǒng)、用戶或助手,以及<|end_header_id|>標簽。在雙換行符\n\n之后是消息的內(nèi)容。每個消息的末尾用<|eot_id|>標記。
您還可以部署額外的分類器來過濾掉被認為是危險的內(nèi)容。請參閱llama-recipes repo,了解如何將安全檢查器添加到推理代碼的輸入和輸出中。
使用llama-3-8b-chat的示例:
torchrun --nproc_per_node 1 example_chat_completion.py
–ckpt_dir Meta-Llama-3-8B-Instruct/
–tokenizer_path Meta-Llama-3-8B-Instruct/tokenizer.model
–max_seq_len 512 --max_batch_size 6
4.3、負責任使用指南
Llama 3是一種新技術(shù),使用時存在潛在風險。到目前為止進行的測試并未涵蓋所有場景,也根本無法涵蓋所有場景。為了幫助開發(fā)者應(yīng)對這些風險,我們制定了負責任使用指南。
地址:https://ai.meta.com/static-resource/responsible-use-guide/
5、問題
請通過以下方式之一報告任何軟件“bug”,或其他與模型相關(guān)的問題:
報告模型問題:https://github.com/meta-llama/llama3/issues 報告模型生成的危險內(nèi)容:developers.facebook.com/llama_output_feedback 報告bug和安全問題:facebook.com/whitehat/info
6、模型卡:模型細節(jié)、預(yù)期用途、軟硬件、訓(xùn)練數(shù)據(jù)、Benchmarks、倫理考慮與限制
請參閱MODEL_CARD.md
地址:llama3/MODEL_CARD.md at main · meta-llama/llama3 · GitHub
7、Llama-3-8B-Instruct的使用
地址:https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct
該存儲庫包含兩個版本的 Meta-Llama-3-8B-Instruct,可用于Transformers 和原始 llama3 代碼庫。
T1、與Transformers一起使用
您可以使用 Transformers 流水線抽象運行會話推理,或者通過利用 Auto 類與 generate() 函數(shù)。讓我們看看兩者的示例。
T1.1、Transformers pipeline
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device="auto",
)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
prompt = pipeline.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
terminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = pipeline(
prompt,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
print(outputs[0]["generated_text"][len(prompt):])
T1.2、Transformers AutoModelForCausalLM
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
T2、與 llama3 一起使用
請按照存儲庫中的說明進行操作
要下載原始檢查點,請參見下面的示例命令,利用 huggingface-cli:
huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct --include "original/*" --local-dir Meta-Llama-3-8B-Instruct
對于 Hugging Face 支持,我們建議使用 transformers 或 TGI,但類似的命令也可以使用。
Llama 3的案例應(yīng)用
1、API接口調(diào)用
from openai import OpenAI
client = OpenAI(
base_url = "https://integrate.api.nvidia.com/v1",
api_key = "$API_KEY_REQUIRED_IF_EXECUTING_OUTSIDE_NGC"
)
completion = client.chat.completions.create(
model="meta/llama3-70b",
messages=[{"role":"user","content":""}],
temperature=0.5,
top_p=1,
max_tokens=1024,
stream=True
)
for chunk in completion:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")
2、多種在線體驗方式
T1、Meta官網(wǎng)在線體驗地址
體驗地址:https://llama.meta.com/llama3/
T2、Huggingface平臺在線體驗地址
體驗地址:https://huggingface.co/chat/conversation/6623131f499d70af9ab9f6cf
T3、NVIDIA平臺在線體驗地址
體驗地址:NVIDIA NIM | llama3-70b
體驗地址:NVIDIA NIM | llama3-8b
T4、replicate平臺在線體驗
體驗地址::meta/meta-llama-3-70b-instruct – Run with an API on Replicate文章來源:http://www.zghlxwxcb.cn/news/detail-855184.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-855184.html
到了這里,關(guān)于LLMs之Llama3:Llama 3的簡介、安裝和使用方法、案例應(yīng)用之詳細攻略的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!