Hugging Face ガイド: コード不要で LLaMA 2 チャットボットをトレーニング
Hugging Face は、機械学習エンジニアのバックグラウンドがない個人でも LLaMA 2 ベース モデルをファインチューニングし、共有可能なチャット アプリケーションとしてデプロイできるノーコード ワークフローを導入しました。このプロセスは、Spaces、AutoTrain、ChatUI という統合ツール スイートを利用することで、Large Language Model (LLM) のカスタマイズへのアクセスを民主化します。
The No-Code LLM Toolchain
Hugging Face は、LLM のトレーニングとデプロイに関連する技術的な障壁を取り除くために、3 つの主要なサービスを利用します:
- Spaces: グラフィカル ユーザー インターフェイス (GUI) を提供し、ウェブホストされた ML デモやアプリの構築とデプロイを行うサービスです。Gradio、Streamlit、Docker コンテナをサポートします。
- AutoTrain: NLP、コンピュータ ビジョン、音声、表形式データなどさまざまなドメインで最先端の ML モデルをトレーニングするために設計されたノーコード ツールです。LLM のファインチューニングを特にサポートします。
- ChatUI: HuggingChat を駆動する同じオープンソース ユーザー インターフェイスで、オープンソース LLM との対話をユーザーに可能にします。
実装ワークフローのステップバイステップ
カスタム チャットボットを作成するプロセスは、環境セットアップ、モデル トレーニング、アプリケーション デプロイの 3 つの主要なステージに分かれます。
1. AutoTrain Space を使用した環境セットアップ
始めに、ユーザーは新しい Space を作成し、AutoTrain Docker テンプレートを選択します。主要な構成要件は次のとおりです:
- ハードウェア: 無料の CPU ベーシック オプションで、AutoTrain アプリ自体を実行するのに十分です。実際のモデル トレーニングは別のコンピューティング リソースで行われるためです。
- 認証: ユーザーの Hub アカウントにトレーニング済みモデルを保存できるように、Space のシークレットに Hugging Face の書き込みアクセス トークン (
HF_TOKEN) を追加する必要があります。
2. LLaMA 2 モデルのファインチューニング
AutoTrain Space がアクティブになると、ユーザーは GUI を通じてトレーニング ジョブを設定できます:
- モデル選択: ユーザーはリストからモデルを選択したり、モデル カード名を指定したりできます。たとえば、Meta Llama 2 7b ファンデーション モデルを使用できます(Llama 2 は Meta の承認が必要なゲート済みモデルであることに注意してください)。
- コンピューティング リソース: 7b モデルのトレーニングには通常、「A10G Large」GPU が必要です。より大きなモデルは、モデル全体を収められる十分なメモリを持つ GPU が必要です。
- トレーニング データ: データは CSV 形式でアップロードする必要があります。このガイドでは、アルパカ インストラクション チューニング データセットを例として使用します。
- 最適化: AutoTrain は、精度 (FP16)、量子化 (Int4/8)、パラメータ効率の良いファインチューニング (PEFT) のデフォルト設定を提供し、パフォーマンスへの影響を最小限に抑えながらメモリ フットプリントとトレーニング コストを削減します。
3. チャット アプリケーションのデプロイ
モデルがトレーニングされ、Hugging Face Hubに保存された後、2番目の Space を使用してデプロイされます:
- テンプレート: ユーザーは ChatUI Docker テンプレートを選択します。
- ハードウェア: 「A10G Small」GPU があれば、7b モデルを実行するのに十分です。
- 構成:
MODEL_NAME変数には、Hub からトレーニング済みモデルの名前を設定する必要があります。ユーザーはオプションでMONGODB_URLを提供してチャット ログを保存することもできます;それ以外の場合は、ローカル データベースが自動的に作成されます。 - 推論チューニング: ユーザーは、温度、top-p、生成される最大トークン数などのパラメータを調整して、モデルの応答の性質を変更できます。