コンテンツにスキップ

HuggingFaceのAutoTrainを使用したモデルのファインチューニング

Last reviewed: 6 months ago

AIモデルのファインチューニングは、モデルに追加のトレーニングデータを加える機会を提供します。Workers AIは、Low-Rank Adaptation, LoRA, アダプターを使用して、私たちのモデルをファインチューニングすることを可能にします。

このチュートリアルでは、独自のLoRAを作成する方法を探ります。特にAutoTrainを使用したLLMファインチューニングに焦点を当てます。

1. トレーニングデータを含むCSVファイルを作成する

まず、CSV(カンマ区切り値)ファイルを作成します。このファイルには、textという名前の1つの列のみが含まれます。ヘッダーを設定するために、単独の行にtextという単語を追加します。

次に、モデルに追加したい内容を考えます。

以下は例のフォーマットです:

### Human: 人生の意味は何ですか? ### Assistant: 42。

トレーニング行に改行が含まれている場合は、引用符で囲む必要があります。

"human: 人生の意味は何ですか? \n bot: 42."

異なるモデル(例えばMistral)は、特定のチャットテンプレート/指示フォーマットを提供します。

<s>[INST] 人生の意味は何ですか? [/INST] 42</s>

2. HuggingFace Autotrain Advanced Notebookを設定する

HuggingFace Autotrain Advanced Notebookを開きます。

AutoTrainに十分なメモリを与えるために、異なるランタイムを選択する必要があります。ノートブックの上部メニューから「Runtime > Change Runtime Type」を選択し、A100を選びます。

ノートブックには、変更が必要なインタラクティブなセクションがいくつか含まれています。

プロジェクト設定

以下のフィールドを変更します。

  • project_name: 後で思い出せるような説明的な名前を選択します。
  • model_name: 私たちがサポートする公式のHuggingFaceベースモデルの中から選択します:
    • mistralai/Mistral-7B-Instruct-v0.2
    • google/gemma-2b-it
    • google/gemma-7b-it
    • meta-llama/llama-2-7b-chat-hf

オプションセクション: Hubにプッシュ

AutoTrainを使用するためには必須ではありませんが、HuggingFaceアカウントを作成すると、ファインチューニングの成果物を後で参照できる便利なリポジトリに保管できます。

HuggingFaceの設定を行わなくても、ノートブックからファイルをダウンロードできます。

必要に応じて、ノートブックの指示に従ってアカウントとトークンを作成してください。

セクション: ハイパーパラメータ

Cloudflare Workers AIで動作するように、いくつかのフィールドを変更する必要があります。

  • quantization: ドロップダウンをnoneに変更します。
  • lora-r: 値を8に変更します。

3. CSVファイルをノートブックにアップロードする

ノートブックには、左側のナビゲーションバーのフォルダーアイコンをクリックすることでアクセスできるフォルダー構造があります。

dataという名前のフォルダーを作成します。

CSVファイルをノートブックにドラッグできます。

ファイル名はtrain.csvであることを確認してください。

4. ノートブックを実行する

ノートブックメニューで「Runtime > Run All」を選択します。

ノートブックの各セルを実行し、最初にインストールを行い、その後AutoTrainセッションを設定して実行します。

これは、train.csvファイルのサイズによっては時間がかかる場合があります。

次のエラーが発生した場合、これはメモリ不足によるエラーです。より大きなGPUバックエンドにランタイムを変更することを検討してください。

Terminal window
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'autotrain.trainers.clm', '--training_config', 'blog-instruct/training_params.json']' died with <Signals.SIGKILL: 9>.

5. LoRAをダウンロードする

オプション: HuggingFace

HuggingFaceにプッシュした場合、上記のproject_nameで名付けた新しいモデルカードが見つかります。モデルカードはデフォルトでプライベートです。ファイルに移動し、以下のファイルをダウンロードします。

ノートブック

ノートブック内でも必要なファイルを見つけることができます。project_nameに一致する新しいフォルダーが作成されます。

以下のファイルをダウンロードします:

  • adapter_model.safetensors
  • adapter_config.json

6. アダプター設定を更新する

ダウンロードしたadapter_config.jsonに1行追加する必要があります。

"model_type": "mistral"

ここで、model_typeはアーキテクチャです。現在の有効な値はmistralgemmallamaです。

7. ファインチューニングをCloudflareアカウントにアップロードする

ファイルが揃ったので、アカウントに追加できます。

REST APIまたはWranglerを使用できます。

8. 生成にファインチューニングを使用する

新しいファインチューニングが設定されたら、推論リクエストで使用する準備が整いました