ホームページ > テクノロジー周辺機器 > IT業界 > 直接優先最適化(DPO)を使用して、Axolotlを使用してオープンソースLLMを微調整する

直接優先最適化(DPO)を使用して、Axolotlを使用してオープンソースLLMを微調整する

尊渡假赌尊渡假赌尊渡假赌
リリース: 2025-02-08 09:24:10
オリジナル
547 人が閲覧しました

Fine-Tuning an Open-Source LLM with Axolotl Using Direct Preference Optimization (DPO)

大規模な言語モデル(LLMS)の出現により、AIアプリケーションに無数の新しい機会がもたらされました。常に独自のモデルを微調整したい場合は、このガイドでは、コードを書くことなく簡単にこれを行う方法を示します。 AxolotlやDPOなどのツールを使用して、プロセス全体を段階的にガイドします。

大規模な言語モデル(LLM)とは何ですか?

大規模な言語モデル(LLM)は、大規模なテキストデータ(数兆文字)をトレーニングして、次のフレーズをシーケンスで予測する強力なAIモデルです。これは、過去2〜3年にわたってGPUコンピューティングの進歩でのみ可能であり、このような大きなモデルを数週間で訓練することができました。

chatgptやclaudeなどの製品を介して以前にLLMとやり取りしたことがあり、人間のような反応を理解して生成する能力を個人的に経験したことがあります。

なぜLLMを微調整する必要があるのですか?

GPT-4oを使用してすべてを処理することはできませんか?執筆時点で最も強力なモデルですが、必ずしも最も実用的な選択肢ではありません。より小さなモデル(30億から140億のパラメーター範囲)を微調整すると、わずかなコストで同等の結果を達成できます。さらに、微調整により、独自の知的財産を所有し、第三者への依存を減らすことができます。

基本的なモデル、命令モデル、および対話モデルの理解

詳細に調整する前に、利用可能なさまざまなタイプのLLMを必ず理解してください:

  • 基本的なモデル:これらのモデルは、書籍やインターネットデータなどの大量の非構造化されたテキストで事前に訓練されています。彼らは言語に固有の理解を持っていますが、推論のために最適化されておらず、一貫性のない出力を生成します。基本モデルの開発は、より専門的なモデルを開発するための出発点として機能することです。
  • 命令モデル:命令モデルは基本モデルに基づいて構築され、構造化されたデータ(プロンプト応答ペアなど)を使用して微調整されています。特定の指示に従うか、質問に答えるように設計されています。
  • ダイアログモデル:も基本モデルに基づいて構築されていますが、命令モデルとは異なり、ダイアログモデルはダイアログデータでトレーニングされ、前後の会話をすることができます。

補強学習とDPOとは何ですか?

RENFERTION LEARNIS(RL)は、動作に関するフィードバックを受信することでモデルが学習する手法です。命令モデルまたはダイアログモデルに適用され、その出力の品質をさらに向上させます。通常、RLは、より低い学習率を使用しているため、基礎となるモデルの上で動作しません。これは、大きな変更を加えるには十分ではありません。

DPOは、同じプロンプト/ダイアログアンサーペアの長所と短所を使用してモデルをトレーニングするRLフォームです。これらのペアを提示することにより、モデルは好ましい例を学び、悪い例を回避します。

dpo

を使用する時期

DPOは、モデルのスタイルや動作を調整する場合に特に便利です。

  • スタイルの調整:応答のモデル表現の長さ、詳細レベル、または自信を変更します。
  • 安全対策:トレーニングモデルは、安全でないか、不適切なプロンプトに答えることを拒否します。
ただし、DPOはモデルに関する新しい知識や事実を教えるのに適していません。この目的のために、監視された微調整(SFT)または検索強化(RAG)技術がより適切です。

dpoデータセットを作成

生産環境では、通常、ユーザーフィードバックを使用して、次のようなDPOデータセットを生成します。

    ユーザーフィードバック:
  • 字様/クリックメカニズムを実装します。
  • 選択肢を比較してください:
  • は、2つの異なる出力をユーザーに提示し、より良いものを選択するように依頼します。
  • ユーザーデータがない場合は、より大きく、より強力なLLMを活用することで合成データセットを作成することもできます。たとえば、小さなモデルを使用して間違った答えを生成し、GPT-4Oで修正できます。

簡単にするために、Huggingfaceの既製データセット:olivermolenschot/alpaca_messages_dpo_testを使用します。データセットを調べると、選択された回答と拒否された回答のヒントが含まれていることに気付くでしょう。これらは良い例と悪い例です。これらのデータは、GPT-3.5-ターボおよびGPT-4合成を使用して作成されました。

通常、過剰な適合せずに効果的にトレーニングするには、少なくとも500〜1000ペアのデータが必要です。最大のDPOデータセットには、最大15,000〜20,000ペアのデータが含まれています。

axolotlを使用してqwen2.5 3b命令モデルを微調整します

Axolotlを使用して、QWEN2.5 3B命令モデルを微調整します。これは、現在、そのスケールカテゴリのOpenllMランキングで1位にランクされています。 Axolotlを使用すると、コードを作成せずにモデルを微調整できます。YAML構成ファイルだけが必要です。以下は、config.ymlを使用します:

クラウド環境をセットアップします

# ... (YAML configuration remains the same) ...
ログイン後にコピー
ログイン後にコピー
トレーニングを実行するには、RunpodやVultrなどのクラウドホスティングサービスを使用します。必要なものは次のとおりです

Docker Image:Winglian/Axolotl-Cloudをクローニングしました:Axolotlチームが提供するメインDocker画像。

ハードウェア要件:80GB VRAM GPU(1×A100 PCIEノードなど)は、このサイズのモデルに十分なものです。
  • ストレージ:200GBのボリュームストレージは、必要なすべてのファイルを保持します。
  • CUDAバージョン:CUDAバージョンは少なくとも12.1でなければなりません。
  • (このタイプのトレーニングは、LLMの完全な微調整、したがって非常にVRAM集約型と見なされます。クラウドホストに依存せずにローカルでトレーニングを実行したい場合は、監視された微調整の一形態であるQloraを使用してみてください。 DPOとQloraは理論的に組み合わせることができますが、これはまれです トレーニングを開始するためのステップ

Huggingface Cache Directoryを設定します:

これにより、元のモデルが永続的なボリュームストレージにダウンロードされることが保証されます。
構成ファイルの作成:以前に作成したconfig.ymlファイルを/workspace/config.ymlに保存します。
export HF_HOME=/workspace/hf
ログイン後にコピー
ログイン後にコピー

    トレーニングを開始:
  1. 見て!あなたのトレーニングを開始する必要があります。 Axolotlでモデルとトレーニングデータをダウンロードした後、これに似た出力が表示されます。
    # ... (YAML configuration remains the same) ...
    ログイン後にコピー
    ログイン後にコピー

    これはわずか264行のデータセットであるため、トレーニングには数分しかかかりません。微調整されたモデルは /ワークスペース /DPO出力に保存されます。

    モデルをHuggingface

    にアップロードします

    CLIを使用してモデルをハグFaceにアップロードできます:

    1. Huggingface Hub CLIのインストール:
    export HF_HOME=/workspace/hf
    ログイン後にコピー
    ログイン後にコピー
    1. モデルをアップロード:
    python -m axolotl.cli.train /workspace/config.yml
    ログイン後にコピー

    YourName/YourRepoを実際のハグFaceユーザー名とリポジトリ名に置き換えます。

    微調整されたモデルを評価します

    評価には、テキスト生成推論(TGI)などのツールを使用して、元のモデルと微調整されたモデルをホストすることをお勧めします。次に、温度設定を0に(決定論的出力を確保するために)2つのモデルについて推論し、2つのモデルの応答を手動で比較します。

    この実用的なアプローチは、損失メトリックがLLMの言語生成の微妙さを捉えていない可能性があるため、損失メトリックを評価するためのトレーニングのみに依存するよりも優れた洞察を提供します。

    結論

    DPOを備えたLLMを微調整すると、モデルをカスタマイズして、コストを管理しながらアプリケーションのニーズをよりよく満たすことができます。この記事で概説されている手順に従って、オープンソースツールとデータセットの力を活用して、特定の要件を満たすモデルを作成できます。 DPOは、応答のスタイルを調整するか、セキュリティ対策を実装するかにかかわらず、LLMを改善する実用的な方法を提供します。

    幸せな微調整をお祈りします!

    以上が直接優先最適化(DPO)を使用して、Axolotlを使用してオープンソースLLMを微調整するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート