非工程師指南:訓練 LLaMA 2 聊天機器人

釋出日期:2023年9月28日
在 GitHub 上更新

簡介

在本教程中,我們將向您展示如何無需編寫任何程式碼即可構建自己的開源 ChatGPT!我們將使用 LLaMA 2 基礎模型,透過開源指令資料集對其進行微調以實現聊天,然後將模型部署到一個您可以與朋友分享的聊天應用程式。所有這些都只需點選幾下即可實現。😀

這為什麼重要?嗯,機器學習,尤其是 LLMs(大型語言模型),已經獲得了前所未有的普及,成為我們個人和商業生活中至關重要的工具。然而,對於大多數機器學習工程專業領域之外的人來說,訓練和部署這些模型的複雜性似乎遙不可及。如果機器學習的未來是充滿無處不在的個性化模型,那麼即將面臨一個挑戰:我們如何賦能非技術背景的人獨立地利用這項技術?

在 Hugging Face,我們一直在默默地為這個包容的未來鋪平道路。我們的一系列工具,包括 Spaces、AutoTrain 和 Inference Endpoints 等服務,旨在讓每個人都能接觸到機器學習的世界。

為了展示這個民主化未來有多容易實現,本教程將向您展示如何使用 SpacesAutoTrainChatUI 構建聊天應用程式。所有這些只需三個簡單的步驟,無需一行程式碼。就我個人而言,我也不是機器學習工程師,而是 Hugging Face GTM 團隊的一員。如果我能做到,你也能做到!讓我們開始吧!

Spaces 簡介

Hugging Face 的 Spaces 是一項服務,它提供易於使用的圖形使用者介面(GUI),用於構建和部署網路託管的機器學習演示和應用程式。該服務允許您使用 Gradio 或 Streamlit 前端快速構建機器學習演示,在 Docker 容器中上傳自己的應用程式,甚至選擇許多預配置的機器學習應用程式即時部署。

我們將部署 Spaces 中兩個預配置的 Docker 應用程式模板:AutoTrain 和 ChatUI。

您可以在此處閱讀更多關於 Spaces 的資訊。

AutoTrain 簡介

AutoTrain 是一款無程式碼工具,允許非機器學習工程師(甚至是非開發人員 😮)訓練最先進的機器學習模型,而無需編寫程式碼。它可用於自然語言處理(NLP)、計算機視覺、語音、表格資料,甚至現在也可用於微調大型語言模型(LLM),就像我們今天要做的那樣。

您可以在此處閱讀更多關於 AutoTrain 的資訊。

ChatUI 簡介

ChatUI 正如其名,是 Hugging Face 構建的開源使用者介面(UI),提供了一個與開源大型語言模型(LLM)互動的介面。值得注意的是,它與 HuggingChat 背後的 UI 相同,HuggingChat 是我們 100% 開源的 ChatGPT 替代品。

您可以在此處閱讀更多關於 ChatUI 的資訊。

步驟 1:建立新的 AutoTrain Space

1.1 訪問 huggingface.co/spaces 並選擇“建立新 Space”。


1.2 為您的 Space 命名,如果您計劃將模型或 Space 公開,請選擇首選的使用許可。

1.3 為了在您部署的 Space 中部署 Docker 模板中的 AutoTrain 應用程式,請選擇 Docker > AutoTrain。


1.4 選擇執行應用程式的“Space 硬體”。(注意:對於 AutoTrain 應用程式,免費的 CPU 基本選項就足夠了,後續的模型訓練將使用單獨的計算資源,我們稍後可以選擇)

1.5 在“Space secrets”下新增您的“HF_TOKEN”,以便此 Space 可以訪問您的 Hub 賬戶。如果沒有此令牌,Space 將無法訓練或將新模型儲存到您的賬戶。(注意:您的 HF_TOKEN 可以在您的 Hugging Face 個人資料的“設定”>“訪問令牌”中找到,請確保令牌選擇為“寫入”許可權)

1.6 選擇您是否要將其設為“私有”或“公開”,對於 AutoTrain Space 本身,建議保持私有,但您可以隨時公開分享您的模型或聊天應用程式。

1.7 點選“建立 Space”,大功告成!新 Space 將需要幾分鐘來構建,之後您可以開啟 Space 並開始使用 AutoTrain。


步驟 2:在 AutoTrain 中啟動模型訓練

2.1 一旦您的 AutoTrain 空間啟動,您將看到下面的圖形使用者介面。AutoTrain 可用於多種不同型別的訓練,包括 LLM 微調、文字分類、表格資料和擴散模型。由於我們今天專注於 LLM 訓練,請選擇“LLM”選項卡。

2.2 從“模型選擇”欄位中選擇您要訓練的 LLM,您可以從列表中選擇模型,或輸入 Hugging Face 模型卡中的模型名稱。在此示例中,我們使用了 Meta 的 Llama 2 7b 基礎模型,您可以在此處瞭解更多資訊。(注意:Llama 2 是一個受限模型,需要您在使用前向 Meta 申請訪問許可權,但您也可以選擇許多其他非受限模型,例如 Falcon)

2.3 在“後端”中選擇您要用於訓練的 CPU 或 GPU。對於 7b 模型,“A10G Large”就足夠大了。如果您選擇訓練更大的模型,您需要確保模型能夠完全適應您選擇的 GPU 記憶體。(注意:如果您想訓練更大的模型並需要訪問 A100 GPU,請傳送電子郵件至 api-enterprise@huggingface.co

2.4 當然,要微調模型,您需要上傳“訓練資料”。上傳時,請確保資料集格式正確且為 CSV 檔案格式。所需格式的示例可在此處找到。如果您的資料集包含多列,請務必從您的檔案中選擇包含訓練資料的“文字列”。在此示例中,我們將使用 Alpaca 指令微調資料集,有關此資料集的更多資訊可在此處獲取。您也可以從此處直接下載 CSV 檔案。


2.5 可選:您可以上傳“驗證資料”來測試您新訓練的模型,但這並非必需。

2.6 AutoTrain 中可以配置一些高階設定以減少模型的記憶體佔用,例如更改精度(“FP16”)、量化(“Int4/8”)或是否使用 PEFT(引數高效微調)。建議使用預設設定,因為這將減少訓練模型的時間和成本,並且對模型效能影響很小。

2.7 同樣,您可以在“引數選擇”中配置訓練引數,但目前我們使用預設設定。


2.8 現在一切都已設定好,選擇“新增任務”將模型新增到您的訓練佇列中,然後選擇“開始訓練”(注意:如果您想使用不同的超引數訓練多個模型版本,可以新增多個任務同時執行)

2.9 訓練開始後,您將看到您的 Hub 賬戶中已建立一個新的“Space”。此 Space 正在執行模型訓練,一旦完成,新模型也將顯示在您 Hub 賬戶的“模型”下。(注意:要檢視訓練進度,您可以在 Space 中檢視即時日誌)

2.10 去喝杯咖啡吧,根據您的模型和訓練資料的大小,這可能需要幾個小時甚至幾天。一旦完成,您的 Hugging Face Hub 賬戶的“模型”下將出現一個新模型。


步驟 3:使用您的模型建立新的 ChatUI Space

3.1 按照步驟 1.1 > 1.3 的相同流程設定新 Space,但選擇 ChatUI Docker 模板而非 AutoTrain。

3.2 選擇您的“空間硬體”,對於我們的 7b 模型,A10G Small 就足以執行模型,但這會根據您模型的大小而有所不同。


3.3 如果您有自己的 Mongo DB,您可以提供詳細資訊以在“MONGODB_URL”下儲存聊天日誌。否則,留空該欄位,將自動建立本地資料庫。

3.4 為了使用您訓練好的模型執行聊天應用,您需要在“空間變數”部分提供“MODEL_NAME”。您可以透過檢視 Hugging Face 個人資料的“模型”部分找到模型名稱,它將與您在 AutoTrain 中使用的“專案名稱”相同。在我們的示例中,它是“2legit2overfit/wrdt-pco6-31a7-0”。

3.4 在“空間變數”下,您還可以更改模型推理引數,包括溫度、top-p、最大生成令牌數等,以改變生成結果的性質。目前,我們堅持使用預設設定。


3.5 現在您已準備好點選“建立”並啟動您自己的開源 ChatGPT。恭喜!如果您操作正確,它應該看起來像這樣。


如果您受到啟發,但仍需要技術支援才能入門,請隨時透過此處聯絡並申請支援。Hugging Face 提供付費的專家諮詢服務,或許能夠提供幫助。

社群

感謝您為非程式設計師編寫了這份初學者指南。不幸的是,當我看到它時,它已經不是最新的了。我真的很希望看到更多針對絕對初學者的文章,因為他們經常被忽略。

註冊登入以發表評論

© . This site is unofficial and not affiliated with Hugging Face, Inc.