メインコンテンツへ移動
AIチュートリアル

Homebrewのガイド付きAIワークフローでテキスト・画像モデルをファインチューニング

Homebrewのインストール、ガイド役AIの選択、データ準備、安全なファインチューニングジョブの設定、学習の監視、結果の比較、Hugging Faceへのモデル公開までを解説します。ローカルGPUとレンタルGPU、テキスト・画像向けLoRAワークフロー、CPT/SFT/DPOを連結した学習方式、実践的なコマンドラインのヒントを取り上げます。

Homebrewのガイド付きAIワークフローでテキスト・画像モデルを調整

Homebrewの機能

Homebrewは、言語モデルと画像モデルのファインチューニングを支援するガイド付きエージェントです。トレーニングスクリプトや設定を手作業で組み立てる代わりに、brewmasterとチャットできます。brewmasterは、最初のアイデアからデータ準備、トレーニング、テスト、エクスポート、公開まで、プロジェクト全体を案内するAIモデルです。

brewmasterには、Claude、OpenAIモデル、OpenRouter経由で利用するモデル、ローカルのOllamaまたはLM Studioモデル、その他のOpenAI互換サーバーを使用できます。案内の内容は、選択した経験レベル(Beginner、Hobbyist、Builder、Expert)に応じて変わります。

Homebrewは、次のワークフロー全体を支援するよう設計されています。

  • 大まかなモデルのアイデアを、具体的なトレーニング目標に変換する。
  • ローカルハードウェアを検出する、またはSSH経由でリモートGPUサーバーを準備する。
  • 互換性のあるベースモデルとトレーニング手法を選択する。
  • トレーニングデータを探し、インポート、クリーニング、プレビュー、生成する。
  • モデル固有のガイドラインに沿ったハイパーパラメータを提案する。
  • 分離実行されたトレーニングジョブを実行し、損失、進捗、ETAを報告する。
  • 元のベースモデルと比較して結果をテストする。
  • アダプターまたはマージ済みモデルをエクスポートする。
  • モデルカードを生成し、結果をHugging Faceにアップロードする。

Homebrewは、料金の発生、ソフトウェアのインストール、外部プロバイダーへのデータ送信、モデルの公開を行う前に確認を求めます。パスワード、APIキー、トークンがチャットを経由することはありません。

対応しているトレーニングワークフロー

テキストモデル

Homebrewは、Qwen3、Qwen3.5および互換性のあるQwenアーキテクチャ、Qwen3.5 MoE、Llama 3.1から3.3、Gemma 3、Gemma 4など、一覧にあるモデルファミリーに対応しています。モデルと利用可能なハードウェアに応じて、LoRA、QLoRA、またはフルファインチューニングを使用できます。

各テキストトレーニングジョブには、次の3つの目的のいずれかがあります。

  • SFT: 指示モデルに動作、文体、応答形式、またはツール使用パターンを学習させるための教師ありファインチューニング。
  • CPT: 生テキストを用いた継続事前学習。ベースモデルに特定の分野や言語を学習させるためによく使われます。
  • DPO: 選好された応答と拒否された応答を用いた選好チューニング。

これらの目的は連結できます。一般的な構成には、通常のSFT、CPTに続くSFT、SFTに続くDPOがあります。LoRAのステージを連結する場合、Homebrewは次のステージを開始する前に、各ステージを開始時の重みにマージします。

画像モデル

画像トレーニングでは、HomebrewはQwen-Image 2.1用のLoRAアダプターに対応しています。これらのアダプターは、スタイル、キャラクター、オブジェクトを対象にできます。トレーニング中、Homebrewはステップ0および後続のチェックポイントで、固定シードを使ってプレビュー画像をレンダリングできるため、見た目を比較しやすくなります。

Homebrewをインストールする

コントロールプレーンのインストール

レンタルまたはリモートのGPUサーバーでトレーニングを実行する場合、ローカルコンピューターには軽量なHomebrewのインストールだけが必要です。

pip install "homebrew-ai @ git+https://github.com/empero-org/homebrew-ai"

次のコマンドでガイド付きインターフェースを起動します。

homebrew

ローカルGPUのインストール

コンピューターにNVIDIA GPUがあり、ローカルでトレーニングを実行する場合は、トレーニング用エクストラをインストールします。

pip install "homebrew-ai[train] @ git+https://github.com/empero-org/homebrew-ai"

次のコマンドで、インストール、プロバイダー設定、Hugging Faceへのログイン、ハードウェアを確認できます。

homebrew doctor
homebrew hardware

代わりにリモートトレーニングサーバーを調べるには、SSHコマンドを渡します。

homebrew hardware --ssh "ssh user@example-server"

案内役AIを設定する

初回起動時、HomebrewはどのAIをbrewmasterとして使うかを尋ねます。その後、必要なAPIキーを要求し、制限付きの権限でローカルに保存し、経験レベルを尋ねて、プロジェクトを作成します。

利用できる案内役の種類は次のとおりです。

  • Claude: 最も優れた案内を得るために、この選択肢を推奨しています。
  • OpenAI: ツール呼び出しに対応したチャットモデルを使用します。
  • OpenRouter: 1つのAPIキーで複数のモデルを利用できます。
  • OllamaまたはLM Studio: ローカルで実行します。良い結果を得るには、少なくとも14Bパラメータとツール呼び出しに対応したモデルが推奨されています。
  • Custom: vLLMやllama.cppなどのOpenAI互換エンドポイントに接続します。

後から案内役モデルを変更するには、次を実行します。

homebrew setup

Homebrewは、案内役に応じて動作を調整します。高性能なモデルには完全なツールセットを提供し、小型のローカルモデルにはフェーズ固有のツールと、より構造化された案内を提供します。ネイティブのツール呼び出しに対応していないモデルでも、Homebrewのテキストプロトコルを自動的に使用できます。

初めてのファインチューニングプロジェクトを作成する

homebrewを使って現在のディレクトリで開始するか、名前付きプロジェクトを直接作成できます。

homebrew new my-pirate-chemist
cd my-pirate-chemist
homebrew

実現したい結果を、普段の言葉で説明します。たとえば次のように入力します。

a chatbot that explains chemistry like a friendly pirate

brewmasterは、目標が具体的になるまで質問します。その後、ハードウェアを評価し、ベースモデルを推奨し、ライセンス要件を確認し、ローカルの計算資源とレンタル計算資源のどちらが適切かを判断します。

ブリューイングワークフローに従う

1. 目標を定義する

モデルに意図する動作、対象ユーザー、分野、出力スタイル、または画像のコンセプトを説明します。具体的な目標は、brewmasterが適切なデータとトレーニング目的を選ぶのに役立ちます。

2. 計算環境を選ぶ

Homebrewはローカルハードウェアを検出します。適切なNVIDIA GPUが利用できない場合は、互換性のあるGPUを推奨し、RunpodとVast.aiのおおよその料金を提示できます。アカウントの作成や、ユーザーに代わった支払いは行いません。

マシンをレンタルしたら、プロバイダーのSSHコマンドをガイド付きセッションに貼り付けます。Homebrewはハードウェアを確認し、環境を準備し、データをアップロードし、トレーニングを開始して、結果を取得できます。

停止したクラウドインスタンスでも、ストレージ料金が発生し続ける場合があります。プロジェクトが完了したら、レンタルしたリソースを削除してください。

3. ベースモデルを選択する

brewmasterは、目標、利用可能なメモリ、想定するトレーニング方法、ライセンス要件に基づいてモデルを推奨します。また、利用制限付きモデルへのアクセス権があるかどうかも確認します。

対応モデルを自分で確認するには、次のコマンドを使用します。

homebrew models
homebrew models --modality text --all
homebrew models --modality image --all

4. データを準備する

トレーニングデータは、Hugging Face、ローカルファイル、brewmasterで作成した例、または任意の合成データ生成から取得できます。Homebrewでは、先にダウンロードしなくてもHugging Faceのデータセットを検索してプレビューできます。

合成データの生成はオプトイン方式です。概要から会話を作成したり、既存のデータセットを指定したスタイルに書き換えたり、DPO用の選好ペアを生成したりできます。処理はバッチの完了ごとに保存されるため、生成をキャンセルしても完了済みのバッチは失われません。

clean_dataset操作は、空のレコード、重複レコード、壊れたレコードを削除し、バックアップを作成します。処理済みレコードを慎重にプレビューし、意図した動作を学習できる内容になっていることを確認してください。

5. トレーニングレシピを作成する

Homebrewのpropose_training_config操作は、対応モデルのガイドラインからハイパーパラメーターを選択し、利用可能なGPUに合わせてジョブの規模を調整します。トレーニング開始前に、Homebrewはメモリ使用量、所要時間、コストを見積もります。

6. トレーニングを実行して監視する

トレーニングは、GPUを搭載したマシン上でデタッチされたプロセスとして実行されます。ローカルターミナルを閉じてもジョブは停止しません。プロジェクトフォルダーに戻り、homebrewを実行すると会話を再開できます。

便利な監視コマンドは次のとおりです。

homebrew status
homebrew status JOB_ID

インタラクティブセッション内では、次を使用します。

/status
/jobs
/watch

Homebrewは進捗を追跡し、損失曲線とETAを報告します。失敗が発生した場合は、平易な言葉で説明します。

7. モデルを試す

トレーニング後、ファインチューニングしたモデルにプロンプトを入力し、ベースモデルの回答と比較します。これにより、新しいモデルが一般的な回答品質を損なわずに、求めたスタイルや動作を学習したかどうかを確認できます。

8. エクスポートして共有する

Homebrewは、結果をアダプターまたはマージ済みモデルとしてパッケージ化できます。また、トレーニング方式、データ、ライセンス、クレジット、関連する例をまとめたモデルカードも生成します。Hugging Faceへのアップロードはデフォルトで非公開です。

ライセンス確認では、Llamaの命名要件、Gemmaの規約、非商用データセットまたはモデルに関する注意事項などを確認します。

高度なテキストトレーニング:CPT、SFT、DPO

CPTに続けてSFTを使用する

モデルにまず生のドメインデータや言語データを触れさせる必要がある場合は、CPTを選択します。その後、SFTで会話動作を学習させます。後続の各ジョブはinit_fromを通じて前の段階を参照します。

Base model -> CPT on raw text -> SFT on conversations

DPOで選好を調整する

SFTの後、DPOでトーン、構成、回答スタイルなどの特性に関する選好をさらに調整できます。選好ペアは、Hugging Face、合成データ生成、または新しくトレーニングしたモデル自体から取得できます。

Homebrewは、generate_candidatesを使って各プロンプトに対する候補回答を2つ生成できます。ターミナルでreview_candidatesを使ってより良い回答を選択するか、ガイド役のAIに評価基準に照らして候補を判定させ、その判断を抜き取り確認できます。

Base model -> SFT -> generate candidate pairs -> review preferences -> DPO

DPOの参照対数確率は段階の開始モデルから一度だけ計算されるため、2つ目のモデルをGPUメモリに保持する必要はありません。これはLoRAとフルファインチューニングの両方に適用されます。

画像LoRAを視覚的に監視する

Qwen-Image 2.1のLoRAジョブでは、ステップ0でベースモデルのプレビューを生成し、設定した各チェックポイントで新しいプレビューセットを生成できます。プロンプトとランダムシードは固定されるため、チェックポイントを有意義に比較できます。

ダウンロードしたプレビューは次の場所に保存されます。

runs/<job>/samples/step_NNNNNN/

プレビューのプロンプトにはアダプターのトリガーワードを含めてください。以前のチェックポイントのほうが最終チェックポイントより良く見える場合は、そのチェックポイントをパッケージ化するようbrewmasterに依頼します。

横並びのブラウザーインターフェースを開くには、次を入力します。

/gallery

ギャラリーはトークン付きの127.0.0.1アドレスでローカルに配信され、コンピューターの外部からはアクセスできません。行はチェックポイント、列はプレビューのプロンプトを表します。ギャラリーはトレーニング中に更新され、画像の拡大表示に対応しています。矢印キーでチェックポイント間を移動でき、Cで結果をベースモデルと比較できます。

ETFデータを理解する

Homebrewは、統一されたJSON Lines形式としてEmpero Trace Format(ETF)を使用します。ETFでは、チャット、システムプロンプト、ツールのスキーマと呼び出し、推論、検索ドキュメント、選好ペア、生テキスト、補完、画像を表現できます。

ETFのコマンドグループを使ってファイルを確認・管理します。

homebrew etf validate dataset.jsonl
homebrew etf stats dataset.jsonl
homebrew etf convert
homebrew etf schema

完全な構造については、プロジェクトのETFドキュメントを参照してください。

便利なコマンドとセッション操作

  • homebrew:現在のプロジェクトを開始または再開します。
  • homebrew new NAME:プロジェクトを作成します。
  • homebrew setup:案内役となるAIを選択または変更します。
  • homebrew doctor:インストール、AIプロバイダー、Hugging Faceへのログイン、ハードウェアを確認します。
  • homebrew hardware:ローカルまたはリモートのハードウェアレポートを表示します。
  • homebrew models:サポートされているベースモデルを一覧表示します。
  • homebrew status JOB:トレーニングジョブを確認します。

セッション中は、/levelで説明レベルを変更し、/usageで使用状況を表示し、/thinking fullでブリューマスターの推論表示を拡張し、/thinking offで非表示にし、/quitでセッションを終了できます。

高度なセットアップのヒント

制限のある端末にHomebrewを適応させる

Homebrewには、簡易的なターミナルインターフェース向けの環境変数が用意されています。

HOMEBREW_AI_PLAIN_INPUT=1 homebrew
HOMEBREW_AI_SIMPLE_PROMPTS=1 homebrew
HOMEBREW_AI_THINKING=off homebrew

HOMEBREW_AI_PLAIN_INPUTは枠付きの入力バーを通常のプロンプトに置き換えます。HOMEBREW_AI_SIMPLE_PROMPTSは、矢印キーのメニューの代わりに番号付きの選択肢を使用します。HOMEBREW_AI_THINKINGにはon、full、offを指定できます。

合成データ生成の同時実行数を制御する

合成データの生成では、1~16個のワーカーを並列実行できます。例:

HOMEBREW_AI_SYNTH_WORKERS=4 homebrew

プロバイダーのレート制限とアカウントの制約を考慮した値を選択してください。

プロジェクトファイルを確認する

一般的なプロジェクトには、次のファイルとディレクトリが含まれます。

my-project/
  homebrew.yaml
  data/
  data/_sets/<name>/
  runs/<job_id>/
  .homebrew/
  • homebrew.yamlには、目標、モデル、コンピュート、データセット、ジョブ、エクスポートなどの決定事項と状態が保存されます。
  • data/には、ETFデータセットと、ソース、ライセンス、マッピングを説明するマニフェストが含まれます。
  • data/_sets/<name>/には、構築したトレーニングセットと評価セットが含まれます。
  • runs/<job_id>/には、ジョブ設定、コピーされたデータ、ステータス、メトリクス、ログ、最終成果物が保存されます。
  • .homebrew/には、セッションの再開に使用される会話履歴が含まれます。

ユーザー設定は~/.config/homebrew-ai/に保存されます。認証情報はモード600のcredentials.yamlに保存されます。追加のモデルプロファイルは、付属プロファイルと同じスキーマを使用して~/.config/homebrew-ai/profiles/に配置できます。

実践的な推奨事項

  1. 小さく明確な目標から始める。正確な振る舞いや視覚的なコンセプトは、汎用的な目標よりも評価しやすくなります。
  2. 最終的なトレーニングレコードを確認する。クリーニングや文体の書き換えによってモデルが見る内容が変わる可能性があるため、トレーニング前に代表的な例を確認してください。
  3. 振る舞いの変更にはまずSFTを使う。プロジェクトでドメイン事前学習や選好最適化が本当に必要な場合にのみ、より複雑なチェーンを使用してください。
  4. ベースモデルと比較する。サイドバイサイドのテストを行うと、トレーニングによって有用な改善が生まれたかどうかを判断しやすくなります。
  5. 公開前にライセンスを確認する。出力の権利はユーザーに帰属しますが、使用したベースモデルとデータセットのライセンスが適用されます。
  6. 有用なチェックポイントを保持する。特に画像LoRAトレーニングでは、視覚的に最も優れたチェックポイントが最終的なものとは限りません。
  7. レンタルしたインフラを終了する。結果をダウンロードして検証した後は、クラウドリソースを停止し、削除してください。

まとめ

Homebrewは、データ、コスト、インストール、公開を管理する権限を維持しながら、モデルのファインチューニングを案内付きの会話型ワークフローに変えます。単純なSFTプロジェクトに加え、CPT、SFT、DPOを連結した手順や、チェックポイントベースのQwen-Image LoRAトレーニングにも対応しています。まずコマンドラインツールをインストールし、十分な能力を持つ案内役を選び、焦点を絞った目標を説明してください。ブリューマスターが、確認を取りながら各ステップを案内します。

ソースコードと最新のドキュメントについては、HomebrewのGitHubリポジトリをご覧ください。Homebrewは独自のライセンスを使用しています。リポジトリに記載された収益しきい値以下の個人および組織にはMIT形式の条件が適用され、それを超える組織には商用ライセンスが必要です。