Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

HuggingFace の AutoTrain でモデルをファインチューニングする

最終更新 Markdown で表示Agent セットアップ

AI モデルをファインチューニングすると、モデルに追加の学習データを入れられます。Workers AI では、Low-Rank Adaptation(LoRA)アダプター を使って、提供モデルをファインチューニングできます。

このチュートリアルでは、独自の LoRA の作り方を説明します。AutoTrain による LLM のファインチューニング に焦点を当てます。

1. 学習データで CSV ファイルを作成する

まず CSV(カンマ区切り)ファイルを作成します。列は text の 1 つだけです。先頭行に text と書いてヘッダーにします。

次に、モデルへ追加したい内容を決めます。

形式の例は次のとおりです。

### Human: What is the meaning of life? ### Assistant: 42.

学習行に改行が含まれる場合は、引用符で囲みます。

"human: What is the meaning of life? \n bot: 42."

Mistral などのモデルでは、固有の チャットテンプレート / 指示形式 が用意されています。

<s>[INST] What is the meaning of life? [/INST] 42</s>

2. HuggingFace Autotrain Advanced Notebook を設定する

HuggingFace Autotrain Advanced Notebook を開きます。

AutoTrain に十分なメモリを確保するには、別の Runtime を選びます。Notebook 上部のメニューから Runtime > Change Runtime Type を選び、A100 を指定します。

Notebook には、変更が必要なセクションがいくつかあります。

Project Config

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

  • 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

任意セクション: Push to Hub

AutoTrain の利用に必須ではありませんが、HuggingFace アカウント を作ると、ファインチューニングの成果物をあとから参照しやすいリポジトリに残せます。

HuggingFace のセットアップをしなくても、Notebook からファイルをダウンロードできます。

必要なら、Notebook 内の手順 に従ってアカウントとトークンを作成します。

セクション: Hyperparameters

Cloudflare Workers AI で動かすには、次のフィールドだけ変更します。

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

3. CSV ファイルを Notebook にアップロードする

Notebook にはフォルダー構造があります。左側のナビゲーションバーでフォルダーアイコンを開きます。

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

CSV ファイルを Notebook にドラッグできます。

ファイル名は train.csv にします。

4. Notebook を実行する

Notebook のメニューで Runtime > Run All を選びます。

各セルが順に実行されます。まずインストールが行われ、その後 AutoTrain セッションの設定と実行が行われます。

train.csv のサイズによっては、時間がかかることがあります。

次のエラーが出た場合は、メモリ不足(Out of Memory)が原因です。より大きな GPU バックエンドの Runtime に変更します。

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 で付けた名前の新しいモデルカードがあります。モデルカードのデフォルトは非公開です。ファイル一覧へ移動し、次に挙げるファイルをダウンロードします。

Notebook

Notebook 内でも必要なファイルを探せます。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. 生成処理でファインチューニングを使う

新しいファインチューニングの準備ができたら、推論リクエストで利用 できます。

役に立ちましたか?