HuggingFaceのAutoTrainを使用したモデルのファインチューニング
AIモデルのファインチューニングは、モデルに追加のトレーニングデータを加える機会を提供します。Workers AIは、Low-Rank Adaptation, LoRA, アダプターを使用して、私たちのモデルをファインチューニングすることを可能にします。
このチュートリアルでは、独自のLoRAを作成する方法を探ります。特にAutoTrainを使用したLLMファインチューニング ↗に焦点を当てます。
まず、CSV(カンマ区切り値)ファイルを作成します。このファイルには、textという名前の1つの列のみが含まれます。ヘッダーを設定するために、単独の行にtextという単語を追加します。
次に、モデルに追加したい内容を考えます。
以下は例のフォーマットです:
### Human: 人生の意味は何ですか? ### Assistant: 42。トレーニング行に改行が含まれている場合は、引用符で囲む必要があります。
"human: 人生の意味は何ですか? \n bot: 42."異なるモデル(例えばMistral)は、特定のチャットテンプレート/指示フォーマット ↗を提供します。
<s>[INST] 人生の意味は何ですか? [/INST] 42</s>HuggingFace Autotrain Advanced Notebook ↗を開きます。
AutoTrainに十分なメモリを与えるために、異なるランタイムを選択する必要があります。ノートブックの上部メニューから「Runtime > Change Runtime Type」を選択し、A100を選びます。
ノートブックには、変更が必要なインタラクティブなセクションがいくつか含まれています。
以下のフィールドを変更します。
- 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の設定を行わなくても、ノートブックからファイルをダウンロードできます。
必要に応じて、ノートブックの指示 ↗に従ってアカウントとトークンを作成してください。
Cloudflare Workers AIで動作するように、いくつかのフィールドを変更する必要があります。
- quantization: ドロップダウンを
noneに変更します。 - lora-r: 値を
8に変更します。
ノートブックには、左側のナビゲーションバーのフォルダーアイコンをクリックすることでアクセスできるフォルダー構造があります。
dataという名前のフォルダーを作成します。
CSVファイルをノートブックにドラッグできます。
ファイル名はtrain.csvであることを確認してください。
ノートブックメニューで「Runtime > Run All」を選択します。
ノートブックの各セルを実行し、最初にインストールを行い、その後AutoTrainセッションを設定して実行します。
これは、train.csvファイルのサイズによっては時間がかかる場合があります。
次のエラーが発生した場合、これはメモリ不足によるエラーです。より大きなGPUバックエンドにランタイムを変更することを検討してください。
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で名付けた新しいモデルカードが見つかります。モデルカードはデフォルトでプライベートです。ファイルに移動し、以下のファイルをダウンロードします。
ノートブック内でも必要なファイルを見つけることができます。project_nameに一致する新しいフォルダーが作成されます。
以下のファイルをダウンロードします:
adapter_model.safetensorsadapter_config.json
ダウンロードしたadapter_config.jsonに1行追加する必要があります。
"model_type": "mistral"
ここで、model_typeはアーキテクチャです。現在の有効な値はmistral、gemma、llamaです。
ファイルが揃ったので、アカウントに追加できます。
REST APIまたはWranglerを使用できます。
新しいファインチューニングが設定されたら、推論リクエストで使用する準備が整いました。