|
2023 年の大規模言語モデル (LLM) は、ほぼすべての人の情熱に火をつけました。 現在、ほとんどの人は LLM とは何か、そしてそれが何ができるのかを知っています。 人々はその長所と短所について議論し、その将来を想像しました。 本物のAGIに憧れる一方で、自分自身の運命も少し心配しています。 オープンソースとクローズドソースをめぐる公開討論も、幅広い聴衆の注目を集めています。 2023 年に LLM オープンソース コミュニティで何が起こったのでしょうか? さて、ハギングフェイスの研究者であるクレマンティーヌ・フーリエ氏の話を聞いてみましょう。 オープンソース LLM の今年の浮き沈みを振り返ってみましょう。 大規模言語モデルをトレーニングするにはどうすればいいでしょうか?LLMのモデルアーキテクチャは、具体的な実装と数学的形状を記述します。モデルとは、すべてのパラメータと、それらのパラメータが入力とどのように相互作用するかを示すリストです。 現在、ほとんどの高性能 LLM は Transformer アーキテクチャのバリアントです。 LLM のトレーニング データセットには、モデルのトレーニングに必要なすべての例とドキュメントが含まれています。 ほとんどの場合、テキスト データ (自然言語、プログラミング言語、またはテキストとして表現できるその他の構造化データ) です。 トークナイザーは、トレーニング データセット内のテキストを数値に変換する方法を定義します (モデルは本質的に数学関数であるため)。 テキストは、トークンと呼ばれるサブユニット(単語、サブワード、または文字)に分割されます。 トークナイザーの語彙サイズは通常 32k から 200k の間ですが、データセットのサイズは通常、そこに含まれるトークンの数で測定されます。今日のデータセットのトークンは数千億から数兆に達することがあります。 次に、ハイパーパラメータを使用してモデルのトレーニング方法を定義します。各反復でパラメータをどの程度変更する必要があるか、モデルをどのくらいの速度で更新する必要があるかなどです。 これらが処理されると、残っているのは、大量の計算能力と、トレーニング プロセス中の監視だけです。 トレーニング プロセスには、アーキテクチャのインスタンス化 (ハードウェア上でマトリックスを作成する) と、ハイパーパラメータを使用してトレーニング データセットでトレーニング アルゴリズムを実行することが含まれます。 最終結果はモデルの重みのセットです。これが、誰もが議論している大規模なモデルです。 この重みセットは推論、新しい入力からの出力の予測、テキストの生成などに使用できます。 上記でトレーニングされた LLM は、特定のタスク (特にオープンソース モデルの場合) に適応するように微調整することもできます。 微調整では、さまざまなデータセット(多くの場合、より特殊で小さい)でモデルに対して追加のトレーニング手順を実行し、特定のアプリケーションに合わせてモデルを最適化します。 微調整は、大規模なモデルを最初からトレーニングするよりも大幅にコストが低くなります。これが、オープンソース LLM が非常に人気がある理由の 1 つです。 規模の競争からデータの競争へ2022 年初頭までは、機械学習ではモデルが大きくなるほどパフォーマンスが向上するという傾向がありました。 さらに、モデルのサイズが一定のしきい値を超えると、その機能が飛躍的に向上するようです。この現象を説明するために、「創発的能力」と「スケーリング法則」という 2 つの用語が使用されています。 2022年にリリースされた事前学習済みのオープンソースモデルのほとんどは、このパラダイムに従っています。いくつか例を挙げます。 BLOOM(BigScience Large Open-science Open-access Multilingual Language Model)は、BigScienceが公開しているモデルシリーズです。Hugging Face、フランスのGENCI、IDRISと共同で開発され、60カ国250機関の1,000人の研究者が参加しています。これらのモデルは、デコーダーのみの変換機に若干の修正を加えて使用されています。 このシリーズ最大のモデルは176Bのパラメータを持ち、46の人間の言語と13のプログラミング言語を含む350Bのトレーニングデータセットを使用しており、これまでで最大のオープンソース多言語モデルとなっています。 Meta がリリースした OPT (Open Pre-trained Transformer) シリーズのモデルは、GPT-3 論文の手法 (特定の重みの初期化、事前正規化) に従い、アテンション メカニズム (交互の密なアテンション レイヤーとローカル ストリップ アテンション レイヤー) にいくつかの変更を加えています。 このシリーズで最大のモデルは 175B で、主に書籍、ソーシャル メディア、ニュース、Wikipedia、インターネット上のその他の情報から得た 180B のデータでトレーニングされました。 OPT のパフォーマンスは GPT-3 に匹敵しますが、コーディングの最適化を使用して計算負荷を軽減します。 GLM-130B(一般言語モデル)は、清華大学とZhipu.AIによってリリースされました。これは、いくつかの変更を加えた完全なTransformerアーキテクチャを使用しています(ポストレイヤーの正規化と回転埋め込みにDeepNormを使用)。 GLM-130B は、400B のラベル付き中国語と英語のインターネット データ (The Pile、Wudao Corpora、およびその他の中国語コーパス) でトレーニングされ、そのパフォーマンスは GPT-3 に匹敵しました。 さらに、主に研究目的で使用される、より小規模またはより専門的なオープンソース LLM もあります。 たとえば、Meta がリリースした Galactica シリーズや、EleutherAI がリリースした GPT-NeoX-20B などです。 大規模なモデルではより良い結果が得られるように見えるかもしれませんが、実行コストも高くなります。 推論を実行するときは、モデルをメモリにロードする必要があり、100 個のパラメータを持つモデルでは通常 220 GB のメモリが必要です。 2022 年 3 月、DeepMind は、計算予算を与えられた場合に、トレーニングに使用するデータとモデル パラメータの最適な比率を調査した論文を発表しました。 つまり、モデルのトレーニングに使えるお金が一定額しかない場合、モデルのサイズとトレーニング データの量はどれくらいにすべきでしょうか。 著者らは、全体として、トレーニング データにさらに多くのリソースを割り当てる必要があることを発見しました。 彼ら自身の例としては、1.4T のトレーニング データを使用する Chinchilla と呼ばれる 70B モデルがあります。 2023年のオープンソースLLMモデルバースト2023 年以降、モデルの大きな波が出現し、毎月、毎週、さらには毎日、新しいモデルがリリースされるようになりました。 2月のLLaMA (Meta)、4月のPythia (Eleuther AI)、MPT (MosaicML)、5月のX-GEN (Salesforce)およびFalcon (TIIUAE)、7月のLlama 2 (Meta)、9月のQwen (Alibaba)およびMistral (Mistral.AI)、11月のYi (01-ai)、および12月のDeciLM (Deci)、 Phi-2 (Microsoft) および SOLAR (Upstage)。 Meta AI の LLaMA シリーズでは、研究者の目標は、与えられた予算内で最適なパフォーマンスを達成できるさまざまなサイズのモデルのセットをトレーニングすることです。 彼らは、より小さなモデルサイズでより高いパフォーマンスを実現するために、トレーニング予算だけでなく推論コストも考慮する必要があることを初めて明示的に提案しました(トレードオフはトレーニングの計算効率です)。 Llama 1 シリーズの最大のモデルは、1.4T のデータでトレーニングされた 65 パラメータのモデルですが、より小さなモデル (6-B および 13-B) は 1T のデータでトレーニングされています。 13Bの小規模なLLaMAモデルはほとんどのベンチマークでGPT-3を上回り、最大のLLaMAモデルは当時の最先端のパフォーマンスに達しました。しかし、LLaMAは非商用ライセンスでリリースされたため、コミュニティ内での応用は限定されていました。 MosaicMLはその後、商用利用を許可するライセンスとトレーニングアンサンブルの詳細を付帯したMPTモデルをリリースしました。最初のMPTモデルは7Bで、6月には30Bバージョンがリリースされました。どちらも1TBの英語データとコードデータを使用してトレーニングされました。 以前は、モデルのトレーニング データは公開されていましたが、それ以降のモデルでは、少なくとも重みはオープン ソースですが、トレーニング プロセスに関する情報は提供されなくなりました。 ユビキタス対話モデル2022 年と比較して、2023 年にリリースされたほぼすべての事前トレーニング済みモデルには、事前トレーニング済みバージョンと対話調整済みバージョンの両方が付属していました。 一般の人々は、さまざまな評価のためにこれらのチャット モデルをますます使用しており、チャットを通じてモデルを微調整することもできます。 命令微調整(IFT)では、一連のクエリに対するヒントと回答を含む命令データセットを使用します。これらのデータセットは、人間が生成した命令、またはLLMによって生成された命令に従う方法をモデルに学習させます。 LLM 出力を使用してデータセットを合成することは、指示とチャットの微調整 (蒸留とも呼ばれます) を完了する 1 つの方法です。これは、高性能モデルから知識を取得して、より小さなモデルをトレーニングまたは微調整することを意味します。 どちらの方法も実装が比較的簡単です。関連するデータセットを見つけるか生成し、トレーニング時と同じ手法を使用してモデルを微調整するだけです。 人間のフィードバックからの強化学習 (RLHF) は、モデル予測の内容を人間の好みに合わせて調整するように設計された特定のアプローチです。 プロンプトが与えられると、モデルは複数の回答候補を生成します。人間がこれらの回答をランク付けし、そのランク付けを用いていわゆる選好モデルを学習します。そして、この選好モデルを用いて強化学習によって言語モデルを微調整します。 これはコストのかかる方法であり、主にセキュリティ目標を達成するためにモデルを調整するために使用されます。 その後、AI フィードバックからの強化学習 (RLAIF) と呼ばれる、高品質の LLM を使用してモデル出力をランク付けする低コストのバリアントが開発されました。 直接選好最適化 (DPO) は RLHF の別のバリエーションですが、トレーニングや別の選好モデルの使用は必要ありません。 DPO は、人間または AI によって提供されるランキング データセットを使用して、元のポリシーと最適なポリシーの違いを調べ、モデルを直接更新します。 これにより、最適化プロセスが大幅に簡素化され、最終的なパフォーマンスはほぼ同じになります。 コミュニティは何をしていますか?2023 年初頭には、教育やチャットの微調整のためのデータセットがいくつかリリースされました。 たとえば、人間の好みに関しては、OpenAI の WebGPT データセット、Anthropic の HH-RLHF データセット、OpenAI の Summarize データセットが使用されます。 指示データセットの例には、BigScience の Public Pool of Prompts、Google の FLAN 1 および 2、AllenAI の Natural Instructions、Self Instruct (さまざまな所属の研究者が指示を自動的に生成するためのフレームワーク)、SuperNatural Instructions (データを微調整する専門家が作成した指示ベンチマーク)、Unnatural Instructions などがあります。 今年1月、中国の研究者らは、さまざまな質問に対する人間とモデルの回答を収録した「Human ChatGPT Command Corpus (HC3)」をリリースした。 3 月にスタンフォード大学は、指示に従う最初の LLaMA モデルである Alpaca モデル (7B) をリリースしました。これには、関連データセット (LLM を使用して生成された 52K の指示) も含まれています。 LAION (非営利のオープンソース ラボ) は、データ拡張によって作成されたものや、他の既存のデータ ソースからコンパイルされたものなど、4,300 万の命令を含む Open Instruction Generalist (OIG) データセットをリリースしました。 同じ月に、LMSYS組織(カリフォルニア大学バークレー校)はVicunaをリリースしました。これは、チャットデータ(ユーザーとChatGPT間の会話で、ユーザー自身がShareGPTで公開しているもの)を使用するLLaMAの調整(13B)です。 4 月に、BAIR (Berkeley AI Research Lab) は、いくつかの以前のデータセット (Alpaca、HH-RLHF、WebGPT、ShareGPT) を使用する、チャットに合わせて調整された LLaMA モデルである Koala をリリースしました。 DataBricks は、手動で生成された 15,000 の指示を含む Dolly データセットをリリースしました。 清華大学は5月に、指示を含んだ150万の対話データセットであるUltraChatと、そのデータセットを微調整したUltraLLaMAをリリースした。 その後、Microsoft は GPT4 を使用して命令を生成するための GPT4-LLM データセットをリリースしました。 6 月に、Microsoft Research は、大規模モデルからの推論トレースを使用して(ステップごとの推論を解釈して)命令データセットを構築する、Orca と呼ばれる新しい手法を発表しました。 —コミュニティはこの方法を使用して、何百万ものエントリを持つ Open Orca データセットを作成し、多くのモデル (Llama、Mistral など) を微調整するために使用されました。 8月、中国の非営利団体 OpenBMB は UltraLM (LLaMA 用の高性能チャット調整) をリリースしました。 9月には、GPT4と比較した入力フィードバックデータセット(注釈付き)である関連する好みデータセットUltraFeedbackをリリースしました。 さらに、清華大学の学生チームは、新しい RL 微調整戦略を使用する LLaMA 微調整モデルである OpenChat をリリースしました。 10 月に、Hugging Face は UltraChat と UltraFeedback で DPO と AIF を使用した Mistral の調整版である Zephyr をリリースし、Lmsys は LLM の実際のユーザー 25 名との会話である LMSYS-Chat-1M をリリースしました。 11 月に NVIDIA は、ヒント、関連するモデル応答、および複数の基準に基づいて述べられた回答の評価を提供するアライメント微調整データセットである HelpSteer をリリースしました。一方、Microsoft Research は、新しい合成推論データセットで微調整された Llama 2 である Orca-2 モデルをリリースしました。 開発方法マージ:究極のカスタマイズ典型的なオープンソース アプローチでは、コミュニティのマイルストーンの 1 つは、モデルまたはデータのマージです。 モデルのマージは、各モデルの長所を統合して単一のモデルにするために、異なるモデルの重みを単一のモデルに結合する方法です。 最も簡単な方法の 1 つは、共通のアーキテクチャを共有する一連のモデルのパラメータを平均することです。ただし、そのためには、特定のタスクに最も大きな影響を与えるパラメータを決定する (加重平均) など、より複雑なパラメータの組み合わせを考慮する必要があります。また、マージ時にモデル間のパラメータの干渉を考慮する (サイドバイサイド マージ) 必要があります。 これらの技術により、誰でも簡単にモデルの組み合わせを生成できます。特に、ほとんどのモデルが同じアーキテクチャのバリエーションになっているため、これは当てはまります。 このため、LLM リーダーボード上の一部のモデルには奇妙な名前が付けられています (llama2-zephyr-orca-ultra など。これは、orca および ultra データセットで微調整された llama2 モデルと zephyr モデルの組み合わせを意味します)。 PEFT: 指先でパーソナライゼーション場合によっては、微調整のためにモデル全体を読み込むためのメモリが足りないことがあります。しかし、実際には、微調整にモデル全体は必要ありません。 パラメトリック効率的ファインチューニング (PEFT) メソッドでは、まず事前トレーニング済みモデルのパラメータの一部を修正し、次にアダプタと呼ばれる多くの新しいパラメータを追加します。 次に、タスクは、元のモデルよりもはるかに小さい (軽量の) アダプターの重みによってのみ微調整されます。 量子化:モデルはどこにでもある大規模で高性能なモデルを実行するには、大量のメモリが必要です。例えば、30Bのパラメータを持つモデルをロードするには、66GBを超えるRAMが必要になる場合がありますが、多くの開発者は十分なハードウェアリソースを確保できない可能性があります。 1 つの解決策は量子化です。これは、モデル パラメータの精度を変更することでモデルのサイズを縮小します。 コンピュータでは、数値は指定された精度 (float32、float16、int8 など) で保存されます。 精度は、数値の型(浮動小数点数または整数)と必要な記憶領域の量の両方を示します。float32は浮動小数点数を32ビットのメモリに格納します。精度が高いほど、数値が占める物理メモリの量が多くなります。 したがって、精度を下げると、各モデルパラメータに必要なメモリが削減され、モデルのサイズが縮小され、計算の実際の精度も低下する可能性があります。 この精度の低下によって引き起こされるパフォーマンスの低下は、実際には非常に限られています。 ある精度レベルから別の精度レベルに移行する方法は数多くあり、それぞれに長所と短所があります。一般的に使用される方法には、ビットアンドバイト、GPTQ、AWQなどがあります。 |