Hugging Face* と oneAPI を使用した Falcon の 70 億パラメーター・モデルの微調整

AIインテル® oneAPI

この記事は、The Parallel Universe Magazine 53 号に掲載されている「Fine-Tune the Falcon 7 Billion Parameter Model with Hugging Face* and oneAPI」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。


parallel_v53_05

大規模言語モデル (LLM) のオープンソース化は、あらゆる場所から AI テクノロジーにアクセスできるようにするのに大いに役立ちます。次の AI 研究のブレークスルーが大規模に分散されたアクセラレーターのクラスターにアクセスできない誰かによってもたらされる可能性はゼロではありませんが、その可能性は限りなく低いでしょう。しかし、AI アプリケーション開発では話が全く異なり、製品開発インフラストラクチャーを選択する際の柔軟性が高くなることから、CPU の可用性とスケーラビリティーの交点および Falcon LLM (英語) の背後にある真のオープンソース・ライセンスが、AI の可能性における重要な要素となります。

この記事では、Hugging Face* (英語) の教師あり微調整トレーナー (SFTTrainer)、PyTorch* 向けインテル® エクステンション (IPEX) (英語)、インテル® アドバンスト・マトリクス・エクステンション (インテル® AMX)、自動混合精度 (AMP)、Bfloat16 を使用して、インテル® Xeon® プロセッサー上で最先端の Falcon 70 億言語モデル (Falcon-7B) を微調整するというエキサイティングな挑戦について説明します。

環境のセットアップ

次のように環境をセットアップします。

miniconda (英語) をインストールします。

  1. conda 環境を作成します。
    conda create -n falconft python==3.8.10
  2. 依存関係をインストールします。
    pip install -r requirements.txt
    requirements.txt ファイルには、以下の依存関係がリストされています。
    torch==2.0.1
    transformers==4.30.1
    bitsandbytes==0.39.0
    peft==0.3.0
    accelerate==0.20.3
    datasets==2.12.0
    trl==0.4.4
    einops==0.6.1
    scipy==1.10.1
    intel_extension_for_pytorch==2.0.100
  3. conda 環境をアクティベートします。
    conda activate falconft

因果関係言語モデルの微調整

因果関係言語モデルには、前のコンテキストに基づくシーケンス内の次の単語の予測が含まれていて、テキスト生成などのタスクを可能にしています。Falcon-7B などのモデルを特定のタスクに合わせて微調整するには、タスク固有のラベル付きデータを提供して、事前トレーニング済みモデルを適応させる必要があります。モデルはこのデータでさらにトレーニングされ、パラメーターを調整して新しいタスクのパフォーマンスを最適化します。このプロセスを通じて、Falcon-7B は特定の因果関係があるタスクのパターンと複雑さを徐々に学習し、その特定のユースケースに合わせて一貫した文脈的に適切なテキストを生成できるようにします。

会話ツリーの最も評価の高いパスのみを含む Open Assistant データセットのサブセット (合計 9,846 サンプル) を使用します。微調整と転移学習の詳細は、この記事 (英語) を参照してください。

ディープラーニング・タスクのデフォルトの選択肢は GPU ですが、CPU で Falcon-7B を微調整すると、次のような利点が得られます。

  • 可用性: CPU は至る所に存在し、簡単にアクセスできるため、高価な GPU クラスターにアクセスできない研究者や実践者にとって魅力的な選択肢となります。
  • コスト: 一般に、大規模なデプロイでは、CPU のほうが GPU よりも費用対効果は高くなります。
  • 互換性: CPU は広範なハードウェアやインフラストラクチャーと互換性があり、既存のシステムへのスムーズな統合が保証されます。

SFTTrainer、IPEX、インテル® AMX、AMP、Bfloat16 を組み合わせると、Falcon-7B の微調整がさらに効率良く効果的になります。SFTTrainer は、複雑なタスクに高レベルの抽象化を提供することにより、微調整プロセスを簡素化します。IPEX と AMP は、インテル® Xeon® プロセッサーの最新のハードウェア機能を活用します。この拡張により、オープンソースの PyTorch* にアップストリームされる前に、最新の最適化とデバイスのサポートが導入されます。AMP トレーニングと推論もサポートしており、必要に応じて完全な 32 ビット精度を維持したまま、パラメーターと操作を Bfloat16 に変換してインテル® AMX をさらに高速化します。

タイトルとURLをコピーしました