Hugging Faceにおけるオープンソースのテキスト生成とLLMエコシステム
TL;DR
Hugging Faceの2023年7月のブログ記事では、オープンソースのテキスト生成とLLMのエコシステムを概観し、モデルファミリー、ライセンス条件、サービングツール、およびパラメータ効率の高いファインチューニング手法について説明しています。これは、オープンソースLLMの現状をまとめ、実務者がクローズドなAPIに依存することなく、どのようにモデルにアクセスし、サービングし、適応させることができるかを示すものであるため、非常に重要です。
テキスト生成に関する簡単な背景
Llama、MPT-30B、XGen、Falcon-40B、Pythia-12B、RedPajama-INCITE-7Bなどのオープンソースの因果言語モデルがHugging Face Hubで利用可能であり、テキスト生成に使用できます。Instruction-tuned(指示チューニング済み)のバリアントや、FLAN-T5のようなtext-to-textモデルは、対応可能なタスクの範囲を広げます。Hugging Face自身の貢献には、GPT-3よりも大きな多言語因果モデルであるBLOOMや、寛容なライセンスのGitHubコードでトレーニングされたコード特化型モデルであるStarCoderが含まれます。これらのモデルにより、プライベートデータの取り扱い、ドメイン適応、および有料APIと比較した推論コストの低減が可能になります。
BigScienceおよびBigCodeと共にHugging Faceが愛情を込めて作成したモデル
BLOOMは46の言語と13のプログラミング言語でトレーニングされた因果言語モデルであり、GPT-3よりも多くのパラメータを持つ初のオープンソースモデルです。StarCoderは、Fill-in-the-Middle目的関数を用いてGitHubの寛容なコードでトレーニングされており、コーディングアシスタントとして機能します。これはVSCodeの拡張機能やプレイグラウンドスペースを通じて利用可能です。
ライセンス
現在、多くの大規模因果言語モデルが、Falcon 40B、XGen 7B、MPT-30B、Pythia-12B、RedPajama-INCITE-7B、およびOpenAssistant Falconバリアントなど、すべてApache-2.0の下で商用利用を許可する完全な寛容なライセンスを採用しています。StarCoder (BigCode OpenRAIL-M) やSalesforce CodeGen (Apache-2.0) のようなコード生成モデルも商用利用を許可しています。指示チューニング済みモデルは様々です。MPT-30B-ChatはCC-BY-NC-SA 4.0(非商用)を使用していますが、MPT-30B-InstructはCC-BY-SA 3.0(商用可)を使用しています。Falcon-40B-InstructおよびFalcon-7B-InstructはApache-2.0です。StarChat βはBigCode OpenRAIL-Mを採用しており、商用利用が可能です。Llama 2は、商用利用を許可するカスタムのMetaライセンスの下でリリースされています。指示ファインチューニングに使用されるデータセットは、oasst1やDollyのようなクラウドソースのコレクションから、Alpacaのようなモデル生成セットまで多岐にわたり、ダウンストリームのライセンス検討に影響を与えます。
LLMサービングのためのHugging Faceエコシステムにおけるツール
Text Generation Inference
Hugging Faceのtext-generation-inference (TGI) ライブラリは、Rust、Python、gRPCに基づいて構築されたオープンソースのサービングソリューションを提供し、大規模モデルのレイテンシを削減しスループットを向上させます。TGIは、LLM用のオープンソースチャットUIであるHuggingChatを支えており、Inference EndpointsおよびInference APIに統合されており、ユーザーは数クリックで最適化されたエンドポイントをデプロイできます。Spaces上のHuggingChat用のDockerテンプレートを使用すると、Llama 2などのモデルに基づいたカスタムチャットインターフェースを迅速にデプロイできます。
モデルの検索
Hugging FaceのLLMリーダーボードは、テキスト生成ベンチマークにおけるコミュニティ提出モデルの順位付けを行い、LLM Performanceリーダーボードはレイテンシとスループットを評価します。ユーザーは、パイプラインタグでモデルを検索したり、ダウンロード数でソートしたりして、適切な候補を見つけることもできます。
パラメータ効率の高いファインチューニング (PEFT)
PEFTライブラリを使用すると、少数の追加パラメータのみをトレーニングすることで、コンシューマ向けハードウェアで大規模モデルのファインチューニングが可能になります。サポートされている手法には、low-rank adaptation (LoRA)、prefix tuning、prompt tuning、p-tuningが含まれ、これらははるかに少ない計算コストでフルファインチューニングと同等のパフォーマンスを達成します。これにより、LLMをカスタムの指示データセットに適応させ、フルモデルのサイズを必要とせずに結果としてのモデルをデプロイすることが可能になります。