AI モデルをファインチューニングすると、モデルに追加の学習データを入れられます。Workers AI では、Low-Rank Adaptation(LoRA)アダプター を使って、提供モデルをファインチューニングできます。
このチュートリアルでは、独自の LoRA の作り方を説明します。AutoTrain による LLM のファインチューニング ↗ に焦点を当てます。
まず 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>HuggingFace Autotrain Advanced Notebook ↗ を開きます。
AutoTrain に十分なメモリを確保するには、別の Runtime を選びます。Notebook 上部のメニューから Runtime > Change Runtime Type を選び、A100 を指定します。
Notebook には、変更が必要なセクションがいくつかあります。
次のフィールドを変更します。
- project_name: あとで思い出せるわかりやすい名前を付けます
- model_name: サポート対象の公式 HuggingFace ベースモデルから選びます:
mistralai/Mistral-7B-Instruct-v0.2google/gemma-2b-itgoogle/gemma-7b-itmeta-llama/llama-2-7b-chat-hf
AutoTrain の利用に必須ではありませんが、HuggingFace アカウント ↗ を作ると、ファインチューニングの成果物をあとから参照しやすいリポジトリに残せます。
HuggingFace のセットアップをしなくても、Notebook からファイルをダウンロードできます。
必要なら、Notebook 内の手順 ↗ に従ってアカウントとトークンを作成します。
Cloudflare Workers AI で動かすには、次のフィールドだけ変更します。
- quantization: ドロップダウンを
noneに変更します - lora-r: 値を
8に変更します
Notebook にはフォルダー構造があります。左側のナビゲーションバーでフォルダーアイコンを開きます。
data という名前のフォルダーを作成します。
CSV ファイルを Notebook にドラッグできます。
ファイル名は train.csv にします。
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>.HuggingFace にプッシュした場合は、上の project_name で付けた名前の新しいモデルカードがあります。モデルカードのデフォルトは非公開です。ファイル一覧へ移動し、次に挙げるファイルをダウンロードします。
Notebook 内でも必要なファイルを探せます。project_name と同じ名前の新しいフォルダーがあります。
次のファイルをダウンロードします。
adapter_model.safetensorsadapter_config.json
ダウンロードした adapter_config.json に、次の 1 行を追加します。
"model_type": "mistral"
model_type はアーキテクチャです。現在有効な値は mistral、gemma、llama です。
ファイルが揃ったら、アカウントに追加できます。
REST API または Wrangler を使えます。
新しいファインチューニングの準備ができたら、推論リクエストで利用 できます。