使用 PyTorch FSDP 微調 Llama 2 70B

Mondo 汽車 更新 2024-01-29

在本文中,您將學習如何使用 Pytorch FSDP 微調 LLAMA 2 70B 以及相關的最佳實踐。 在此過程中,我們將主要使用 Hugging Face Transformers、Accelerate 和 TRL 庫。 我們還將向您展示如何在 Slurm 中使用 Accelerate。

完全分片資料並行性 (FSDP) 是一種訓練正規化,其中優化器狀態、梯度和模型引數都跨裝置分片。 向前傳播時,每個 FSDP 單元執行 All Gather 以獲取完整權重,然後使用它們進行計算,並在計算後丟棄其他裝置的分片。 接下來是反向傳播,然後是損耗計算。 反向傳播時,每個 FSDP 單元執行 All Gather 操作以獲取完整權重,並執行計算以獲取本地批次的梯度。 這些梯度通過減少散點在裝置上進行平均和分片,以便每個裝置都可以更新其相應分片的引數。 有關 PyTorch FSDP 的詳細資訊,請參閱此部落格文章:使用 PyTorch 完全分片資料並行加速大型模型訓練。

FSDP 工作流。

節點數:2個,至少1個節點。

每個節點的 GPU 數:8

GPU型別:A100

GPU視訊記憶體:80GB

節點內互聯:nvlink

每個節點的記憶體:1TB

每個節點的 CPU 核心數:96

節點之間的互連:AWS 的 Elastic Fabric Adapter (EFA)。

在嘗試使用 FSDP 微調 LLAMA 2 70B 時,我們遇到了三個主要挑戰:

FSDP 在對模型進行分片之前載入整個預訓練模型。 這意味著節點內的每個程序(即 Rank)都會載入整個 LLAMA-70B 模型,因此需要 7048 GB 的 2TB CPU 記憶體,其中 4 是每個引數的位元組數,8 是每個節點的 GPU 數。 這會導致 CPU 記憶體不足,進而導致程序終止。 用full_state_dict儲存完整的中間檢查點並將其解除安裝到秩為 0 的 CPU 記憶體需要花費大量時間,並且通常會導致 NCCL 超時錯誤,因為通訊庫需要無限期掛起才能完成儲存。 但是,完全關閉此選項並不是乙個好主意,因為在訓練結束時,我們需要儲存完整的模型狀態字典,而不是 fsdp 樣式分片的狀態字典。 我們需要提高速度並減少記憶體使用,以加快訓練速度並節省計算成本。 在下文中,我們將討論如何解決這些挑戰,並最終微調 70b 模型!

首先列出重現結果所需的所有資源:

庫:包含啟用 Flash Attention v2 的熱補丁。

FSDP 配置檔案:

slurm 啟動指令碼 -launch.slurm

型:meta-llama/llama-2-70b-chat-hf

資料集:Smangrul code-chat-assistant-v1(Lima 和 Guanaco 資料集的混合,已轉換為訓練所需的格式)。

首先按照以下步驟安裝 Flash Attention v2。 然後,安裝最新的 PyTorch Nightly (cuda 11)。8)。接下來,根據此檔案安裝其餘的相關軟體。 在本文中,我們將從 main 分支安裝

相關問題答案

    時事微觀調查丨這是乙個安心的地方

    日下午,閔行區總書記一行到閔行區新時代城市建設者 管理者之家參觀。對地方加大保障性租賃住房融資建設力度和 一床一房一套房 多層次租賃住房體系建設的出台給予充分肯定。上海作為人口淨流入的大都市,近年來已成為保障性租賃住房建設的典範。這到底是怎麼回事?具體實施方案有哪些?總站時事組在位於上海市中心的徐匯...

    通過對 QLORA 技術的深入分析,開啟大型語言模型微調的新篇章

    你有沒有夢想過在你的家用電腦上執行那些通常只在頂級實驗室中看到的巨大人工智慧模型...

    棉花價格已經反彈,未來可能會發生什麼變化

    棉布 微調 未來可能會有什麼變化。市場調查和分析。棉花的變化一直受到業內人士的高度重視。在過去的一段時間裡,棉花價格已經下跌,一度走低。不過,近期棉價小幅反彈,令市場預期回暖。造成這種現象的原因有很多,必須從多個角度進行分析。首先,世界經濟的復甦至關重要。隨著全球經濟狀況逐漸得到控制,疫苗的推出,世...

    燃氣器具逾期使用或使用不當的嚴重危害

    天然氣和法律。作者 劉金平.燃氣燃燒器具是重要的燃氣燃燒裝置,是一種特殊的商品,與人們的生活息息相關。國家燃氣燃燒器具實行強制性認證,嚴格規範產品的質量和使用壽命。人們每天都要做飯,還要與燃氣器具打交道,這些都是人們生活中不可缺少的用品。燃氣燃燒器具能否正常使用,關係到燃氣的安全執行和人民群眾的生命...

    使用 scikit learn 實現 TF IDF

    詞頻 逆文件頻率 TF IDF 是一種流行的統計方法,它量化了文件中和整個語料庫中單詞的重要性,為資訊檢索 文件聚類和文字分類等任務提供了有價值的見解。它使使用者能夠輕鬆地將原始文字資料轉換為有意義的數字表示,機器 習 模型可用於情感分析 主題建模 文件相似性檢測等。開發人員可以在他們的專案中利用 ...