首頁 EnterpriseAI Meta LLaMa 和羊駝在實驗室里松動! 在本地運行大型語言模型

Meta LLaMa 和羊駝在實驗室里松動! 在本地運行大型語言模型

by 喬丹拉努斯

最近幾個月,大型語言模型一直是廣泛研究和開發的主題,GPT-4、Meta LLaMa 和 Alpaca 等最先進的模型突破了自然語言處理和運行它們所需的硬件的界限. 在這些模型上運行推理在計算上可能具有挑戰性,需要強大的硬件來提供實時結果。

最近幾個月,大型語言模型一直是廣泛研究和開發的主題,GPT-4、Meta LLaMa 和 Alpaca 等最先進的模型突破了自然語言處理和運行它們所需的硬件的界限. 在這些模型上運行推理在計算上可能具有挑戰性,需要強大的硬件來提供實時結果。

在 Storage Review 實驗室中,我們將兩個 NVIDIA RTX 8000 GPU 用於運行 Meta 的 LLaMa 模型,以了解它們在大型語言模型上運行推理時的表現。 我們使用了 聯想P920的 作為卡的主機,最大限度地減少瓶頸。 RTX 8000 是一款能夠用於 AI 和深度學習應用的高端顯卡,由於每張卡上有 48GB 的​​ GDDR6 顯存和 4608 個 CUDA 內核,我們特地選擇了這些顯卡,而且 凱文囤積了所有的A6000的。

meta llama NVIDIA RTX 8000 GPU

Meta LLaMA 是一種在各種互聯網文本集上訓練的大規模語言模型。 它是公開可用的,並在各種自然語言處理任務中提供最先進的結果。 在本文中,我們將提供有關如何在 NVIDIA GPU 上設置和運行 LLaMA 推理的分步指南,但不能保證對所有人都適用。

Meta LLaMa 要求

在開始之前,我們需要確保安裝了以下要求:

  • NVIDIA GPU 至少具有 16GB 顯存
  • 安裝了 NVIDIA 驅動程序(至少版本 440.33)
  • 安裝了 CUDA 工具包(至少版本 10.1)
  • 蟒蛇安裝
  • 安裝 PyTorch(至少版本 1.7.1)
  • 磁盤空間; 整套 LLaMa 檢查點正在推動超過 200TB。

注意:建議為 LLaMA 提供專用的 Anaconda 環境,我們在測試台上有一些,這樣我們就可以搞亂包和參數,而不是管理基礎安裝。

在 Anaconda 中設置一兩個專用環境

在 NVIDIA GPU 上運行 Meta LLaMA 推理的步驟

  1. 下載 LLaMA 存儲庫: 第一步是從 GitHub 克隆 LLaMA 存儲庫。
git clone https://github.com/EleutherAI/LLaMA.git
  1. 獲取 LLaMA 檢查點和分詞器: 訪問 GitHub 頁面,並填寫鏈接的 Google 表單以訪問下載。 其他 LLM 也可用,例如 Alpaca。 為此,我們假設可以訪問 LLaMa 文件。
  1. 通過從克隆的存儲庫目錄中運行以下命令,列出並安裝 LLaMa 所需的程序:
pip install -r requirements.txt
pip install -e .
  1. 設置推理腳本: example.py LLaMA 存儲庫中提供的腳本可用於運行 LLaMA 推理。 該腳本可以在單 GPU 節點或多 GPU 節點上運行 torchrun 並將輸出兩個預定義提示的完成。

未結案工單 example.py 並根據您的喜好設置以下參數。 下面列出了每個參數的說明以及它們的作用。

  • --max_seq_len: 最大序列長度(默認為 2048)
  • --max_batch_size:最大批量大小(默認為 8)
  • --gen_length:世代長度(默認為512)
  • --temperature:生成溫度(默認為1.0)
  • --top_p:top-p採樣(默認為0.9)

例如,在目錄中使用檢查點和分詞器文件在單個 GPU 上運行 LLaMA 推理 /path/to/files,請使用以下命令:

torchrun --nproc_per_node 1 example.py --ckpt_dir /path/to/files --tokenizer_path /path/to/files/tokenizer.model

注: nproc_per_node 參數取決於模型的大小和默認 LLaMa 檢查點所需的 GPU 數量。 請參考下表為您的系統和您正在運行的模型設置適當的值:

型號 需要 GPU
7B 1
13B 2
33B 4
65B 8

在下面的示例中,我們使用了示例文件中的標準提示,但使用了 temperature top_p 變量,產生一些有趣的結果。 我們還增加了響應長度。

小心玩弄恆溫器!

分解您需要了解的 example.py 文件和變量

其中大部分已在模型中預設,無需調整; 但是,如果您開始使用 LLM 和推理,這裡有一些有用的信息可以分解標誌和開關的作用。

  1. local_rank:當前 GPU(進程)在用於模型並行性的 GPU 組中的排名。 這是自動設置的。
  2. world_size:用於模型並行性的 GPU 總數。 這是自動設置的。
  3. ckpt_dir:包含模型檢查點的目錄。 這是在運行時設置的。
  4. tokenizer_path:用於預處理文本的分詞器的路徑。 這是在運行時設置的。
  5. temperature:控制生成文本隨機性的參數(較高的值使輸出更隨機,較低的值使其更集中)。
  6. top_p: 控制nucleus採樣策略的參數,是一種只選擇最可能的token生成文本的方法,累積概率最多為 top_p.
  7. max_seq_len:模型輸入和輸出的最大序列長度。 您可以調整它以減少您對 VRAM 的需求。
  8. max_batch_size:模型可以並行處理的最大輸入序列數。 您可以調整它以減少您對 VRAM 的需求。
  9. prompts:模型生成文本所依據的輸入提示列表。
  10. results:與每個輸入提示相對應的生成文本列表。

最後的思考

我們的測試表明,RTX 8000 GPU 可以提供令人印象深刻的性能,推理時間從幾秒到大約一分鐘不等,具體取決於模型參數和輸入大小。 GPU 可以處理大批量大小並同時在多個模型上運行推理,而不會出現任何明顯的減速。

使用 GPU 進行推理的好處之一是可以通過向系統添加更多 GPU 輕鬆擴展它們。 這允許實時運行更大的模型,從而在聊天機器人、問答系統和情緒分析等領域啟用新應用程序。

Alpaca 是一種緊湊的 AI 語言模型,由斯坦福大學的一組計算機科學家創建。 它建立在 Meta 的 LLaMA 7B 模型之上,該模型擁有 7 億個參數,並使用來自網絡的大量文本進行訓練。 為了微調羊駝,使用 OpenAI 的 text-davinci-52,000 模型生成了 003 個指令跟踪演示,該模型是一種能夠根據自然語言指令執行各種任務的多功能模型。 羊駝更擅長遵循指示並為各種目的編寫文本,包括撰寫摘要、故事和笑話。 Alpaca 的培訓成本低於 600 美元,其設計既具有成本效益又易於復制。 令人印象深刻的是,值得一提的是,Alpaca 甚至可以在筆記本電腦上運行。 我們正在使用斯坦福大學所做的方法訓練一個類似於羊駝的模型,但有我們自己的改進。

這只是我們在實驗室中使用最新技術進步的一種方式,並且由於一些強大的 NVIDIA GPU,我們可以做的不僅僅是推理; 我們正在訓練。 請留意下一篇關於微調模型(如 Meta LLaMa)的文章。

參與 StorageReview 

電子報 | YouTube | 播客 iTunes/Spotify | Instagram | Twitter | 的TikTok | RSS訂閱