與我們聯繫

人工智能

Llama 2:深入探討 ChatGPT 的開源挑戰者

mm

發布時間

 on

梅塔駱駝 2 法學碩士

大型語言模型 能夠完成複雜推理任務的法學碩士(LLM)在編程和創意寫作等專業領域已顯示出前景。 然而,法學碩士的世界不僅僅是一個即插即用的天堂; 可用性、安全性和計算需求方面存在挑戰。 在本文中,我們將深入探討 駱駝2,同時提供了通過 Google Colab 上的 Hugging Face 和 T4 GPU 設置這個高性能 LLM 的詳細演練。

這種開源大語言模型由 Meta 與 Microsoft 合作開發,旨在重新定義生成式人工智能和自然語言理解領域。 Llama 2 不僅僅是另一個基於 TB 數據訓練的統計模型; 它是一種哲學的體現。 強調開源方法作為人工智能開發的支柱,特別是在生成式人工智能領域。

Llama 2 及其對話優化替代品 Llama 2-Chat 配備了多達 70 億個參數。 它們經過了微調過程,旨在與人類偏好緊密結合,使它們比許多其他公開可用的模型更安全、更有效。 這種微調的粒度通常是為封閉的“產品”法學碩士保留的,例如 ChatGPT 和 BARD,通常不接受公眾監督或定制。

Llama 2 技術深度探究

用於訓練 Llama 2 模型; 與它的前身一樣,它使用自回歸 變壓器架構,在廣泛的自監督數據語料庫上進行了預訓練。 然而,它通過使用帶有人類反饋的強化學習 (RLHF) 增加了額外的複雜性,以更好地符合人類行為和偏好。 這在計算上是昂貴的,但對於提高模型的安全性和有效性至關重要。

Meta Llama 2 訓練架構

Meta Llama 2 訓練架構

預訓練和數據效率

Llama 2 的基礎創新在於其預訓練機制。 該模型借鑒了其前身 Llama 1 的靈感,但引入了幾項關鍵的增強功能來提升其性能。 值得注意的是,訓練的 token 總數增加了 40%,上下文長度增加了一倍。 此外,該模型利用分組查詢注意力(GQA)來增強推理可擴展性。

有監督微調 (SFT) 和人類反饋強化學習 (RLHF)

Llama-2-chat 已使用 SFT 和人類反饋強化學習 (RLHF) 進行了嚴格的微調。 在此背景下,SFT 成為 RLHF 框架的一個組成部分,改進模型的響應,使其與人類的偏好和期望緊密結合。

OpenAI 提供了富有洞察力的插圖,解釋了 InstructGPT 中採用的 SFT 和 RLHF 方法。 與 LLaMa 2 非常相似,InstructGPT 也利用這些先進的訓練技術來優化其模型的性能。

下圖中的步驟 1 重點關注監督微調 (SFT),而後續步驟則完成人類反饋強化學習 (RLHF) 過程。

監督微調 (SFT) 是一個專門的過程,旨在針對特定的下游任務優化預訓練的大型語言模型 (LLM)。 與不需要數據驗證的無監督方法不同,SFT 使用已預先驗證和標記的數據集。

一般來說,製作這些數據集既昂貴又耗時。 Llama 2 的方法是質量重於數量。 僅通過 27,540 個註釋,Meta 團隊就達到了與人類註釋者相媲美的性能水平。 這很好地符合 最近的研究 表明即使有限但乾淨的數據集也可以帶來高質量的結果。

在 SFT 過程中,預先訓練的 LLM 暴露於標記數據集,其中監督學習算法發揮作用。 該模型的內部權重根據特定於任務的損失函數計算出的梯度進行重新校準。 該損失函數量化了模型的預測輸出與實際真實標籤之間的差異。

這種優化使法學碩士能夠掌握標記數據集中嵌入的複雜模式和細微差別。 因此,該模型不僅僅是一種通用工具,而且演變成一種專門的資產,擅長以高精度執行目標任務。

強化學習是下一步,旨在使模型行為與人類偏好更緊密地結合起來。

調整階段利用了人類反饋強化學習 (RLHF),採用了諸如 重要性抽樣近端政策優化 引入算法噪聲,從而逃避局部最優。 這種迭代微調不僅改進了模型,而且使其輸出與人類期望保持一致。

Llama 2-Chat 使用二進制比較協議來收集人類偏好數據,標誌著更加定性方法的顯著趨勢。 該機制通知獎勵模型,然後用於微調對話式人工智能模型。

幽靈注意力:多輪對話

Meta 引入了一項新功能 Ghost Attention (GAtt),旨在增強 Llama 2 在多回合對話中的性能。 這有效地解決了持續對話中上下文丟失的持續問題。 GAtt 的作用就像一個錨,將初始指令鏈接到所有後續用戶消息。 與強化學習技術相結合,它有助於在較長的對話中產生一致、相關且符合用戶需求的響應。

使用 download.sh 從 Meta Git 存儲庫

  1. 訪問元網站: 導航 Meta 的 Llama 2 官方網站 然後單擊“下載模型”
  2. 填寫詳細信息:閱讀並接受條款和條件以繼續。
  3. 郵件確認:提交表單後,您將收到一封來自 Meta 的電子郵件,其中包含從其 git 存儲庫下載模型的鏈接。
  4. 執行download.sh:克隆Git存儲庫並執行 download.sh 腳本。 該腳本將提示您使用 Meta 中的 URL 進行身份驗證,該 URL 將在 24 小時內過期。 您還可以選擇模型的尺寸 - 7B、13B 或 70B。

來自抱臉

  1. 接收錄取電子郵件:從 Meta 獲得訪問權限後,前往 擁抱臉.
  2. 聯絡我們:選擇您所需的型號並提交授予訪問權限的請求。
  3. 確認付款:預計會在 1-2 天內收到“授予訪問權限”電子郵件。
  4. 生成訪問令牌:導航至 Hugging Face 帳戶中的“設置”以創建訪問令牌。

Transformers 4.31 版本與 LLaMa 2 完全兼容,並在 Hugging Face 生態系統中開放了許多工具和功能。 從訓練和推理腳本到使用位和字節進行 4 位量化以及參數高效微調 (PEFT),該工具包非常廣泛。 首先,請確保您使用的是最新版本的《變形金剛》並登錄到您的 Hugging Face 帳戶。

這是在以下環境中運行 LLaMa 2 模型推理的簡化指南 谷歌合作實驗室 環境,利用 GPU 運行時:

Google Colab 模型 - T4 GPU

Google Colab 模型 – T4 GPU

 

 

 

 

 

 

包安裝

!pip install transformers
!huggingface-cli login

導入必要的 Python 庫。

from transformers import AutoTokenizer
import transformers
import torch

初始化模型和分詞器

在此步驟中,指定您將使用哪個 Llama 2 模型。 在本指南中,我們使用 meta-llama/Llama-2-7b-chat-hf。

model = "meta-llama/Llama-2-7b-chat-hf"
tokenizer = AutoTokenizer.from_pretrained(model)

設置管道

利用 Hugging Face 管道通過特定設置生成文本:

pipeline = transformers.pipeline(
    "text-generation",
    model=model,
    torch_dtype=torch.float16,
    device_map="auto")

生成文本序列

最後,運行管道並根據您的輸入生成文本序列:

sequences = pipeline(
    'Who are the key contributors to the field of artificial intelligence?\n',
    do_sample=True,
    top_k=10,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id,
    max_length=200)
for seq in sequences:
    print(f"Result: {seq['generated_text']}")

A16Z 的 LLaMa 2 用戶界面

Andreessen Horowitz (A16Z) 最近推出了專為Llama 2 量身定制的基於Streamlit 的尖端聊天機器人界面。該UI 託管在GitHub 上,保留會話聊天歷史記錄,並提供從託管在多個Llama 2 API 端點中進行選擇的靈活性 複製。 這種以用戶為中心的設計旨在簡化與 Llama 2 的交互,使其成為開發人員和最終用戶的理想工具。 對於那些有興趣體驗這一點的人,可以在以下位置觀看現場演示: 駱駝2.ai.

Llama 2:它與 GPT 模型及其前身 Llama 1 有何不同?

規模多樣

與許多可擴展性有限的語言模型不同,Llama 2 為具有不同參數的模型提供了許多不同的選項。 該模型的參數範圍從 7 億到 70 億個,從而提供一系列配置來滿足不同的計算需求。

增強的上下文長度

該模型的上下文長度比 Llama 4 增加了 1K 令牌。這使其能夠保留更多信息,從而增強其理解和生成更複雜和更廣泛內容的能力。

分組查詢注意力(GQA)

該架構使用的概念是 質量保證局,旨在通過緩存先前的令牌對來加快注意力計算過程。 這有效地提高了模型的推理可擴展性,從而增強了可訪問性。

績效基準

Llama 2-Chat 模型與 ChatGPT 和其他競爭對手的性能比較分析

Llama 2-Chat 模型與 ChatGPT 和其他競爭對手的性能分析

LLama 2 在性能指標方面樹立了新標準。 它不僅優於其前身 LLama 1,而且還為 Falcon 和 GPT-3.5 等其他型號提供了激烈的競爭。

Llama 2-Chat 最大的模型 70B 在 36% 的情況下也優於 ChatGPT,並在另外 31.5% 的情況下達到相同的性能。 來源: 纸品

開源:社區的力量

Meta 和微軟希望 Llama 2 不僅僅是一款產品; 他們將其視為社區驅動的工具。 Llama 2 可免費用於研究和非商業目的。 他們的目標是使人工智能功能民主化,讓初創公司、研究人員和企業能夠使用它。 開源範例允許對模型進行“眾包故障排除”。 開發人員和人工智能倫理學家可以進行壓力測試、識別漏洞並加快提供解決方案。

雖然 LLaMa 2 的許可條款通常是寬鬆的, 例外 確實存在。 Google 等月用戶超過 700 億的大型企業需要獲得 Meta 的明確授權才能使用。 此外,該許可證禁止使用 LLaMa 2 來改進其他語言模型。

Llama 2 目前面臨的挑戰

  1. 數據概括:Llama 2 和 GPT-4 有時在處理不同任務時無法保持一致的高性能。 在這些場景中,數據質量和多樣性與數據量一樣重要。
  2. 模型透明度:考慮到人工智能先前的挫折產生了誤導性的輸出,探索這些複雜模型背後的決策原理至關重要。

Code Llama – Meta 的最新發布

元最近宣布 代碼駱駝 這是一個專門用於編程的大型語言模型,參數大小範圍從 7B 到 34B。 如同 ChatGPT 代碼解釋器; Code Llama 可以簡化開發人員工作流程並使編程更容易實現。 它支持各種編程語言並具有專門的變體,例如用於特定於 Python 的任務的 Code Llama-Python。 該模型還提供不同的性能級別,以滿足不同的延遲要求。 Code Llama 已獲得公開許可,邀請社區提供意見以進行持續改進。

隆重推出 Code Llama,一款用於編碼的人工智能工具

結論

本文引導您在 Google Colab 上設置 Llama 2 模型以生成文本並支持 Hugging Face。 Llama 2 的性能得益於一系列先進技術,從自回歸變壓器架構到人類反饋強化學習 (RLHF)。 該模型擁有多達 70 億個參數和 Ghost Attention 等功能,在某些領域超越了當前的行業標準,並且憑藉其開放性,為自然語言理解和生成人工智能的新時代鋪平了道路。

在過去的五年裡,我一直沉浸在機器學習和深度學習的迷人世界中。 我的熱情和專業知識使我為 50 多個不同的軟件工程項目做出了貢獻,特別關注人工智能/機器學習。 我持續的好奇心也吸引了我對自然語言處理的興趣,這是我渴望進一步探索的領域。