この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。 王小川さんは、提出までに2か月かかったこの大きな模型をどうやって作ったのでしょうか? 現在、この問題にはより詳細な解決策があります。 70億のパラメータとオープンソースがリリースされ、商用利用が可能となったことで、Baichuan Intelligent の中国語と英語の大型モデル baichuan-7B は最近業界で大きな注目を集めています。 公開ベンチマークテストの結果やコミュニティのフィードバックから判断すると、baichuan-7Bのパフォーマンスは優れており、北京大学や清華大学でも使用されていると言われています。 ソースコードは Github や Huggingface などのプラットフォームでも公開されています。 興味深いことに、オープンソース コミュニティが Baichuan-7B に関する実験やアプリケーションの構築を行っていたときに、GitHub プロジェクト LLM-Tuning の作者である BeyondGuo が Baichuan-7B の特別な機能を発見しました。 彼は情報抽出実験をしていたとき、ある「ニュース」をでっち上げ、わざと「マイクロソフト」を「聚英」、「アマゾン」を「艾尼息」、「グーグル」を「艾我」と書いたそうです… 次に、次の命令を使用します。 写真 ChatGPT(3.5)のパフォーマンスは次のとおりです。 次はガチョウ娘が泣く瞬間です。 特別な微調整を経て、baichuan-7B は著者が作った会社名をすべて修正しました。 ! ! これを見た郭碧洋(beyondguo)は驚いた(ショックを受けた)。 これはただの作り話なので、説明するのは難しいです! baichuan-7B の機能を見てきましたが、オープンソースだからといって、誰でも簡単に大規模なモデルを複製できるわけではありません。 ソースコードはアルゴリズムの核心部分のみであり、モデル構造を見ることができます。 「オープンソースになれば、誰でもコピーを入手して、あらゆる種類のスキンの変更を加え、公式ユーザーを死に追いやることさえできる」という考え方は、大規模なモデルでは通用しません。 ChatGPTと同様の効果を持つ大規模なモデルを取得するには、アルゴリズム、計算能力、データのすべてが不可欠です。 計算能力は別として、0 から 1 までの大規模なモデルを構築するにはどのような手順が必要ですか? ほら、Baichuan-7B は「高得点のケース」を出しました。 大規模モデルをトレーニングするための 5 つのステップ当局は、百川7号Bの「精製」プロセスは5つの段階にまとめられると明らかにした。 最初のステップは、高品質のデータセットを構築することですデータは、大きなモデルの 3 つの要素のうちの 1 つです。 言語モデルは、「テキストのセグメント」が出現する確率を計算するために使用される統計モデルです。その本質は、文字と単語の関連性をモデル化することです。 この文字と単語の相関関係は、大量のデータの分析と学習を通じてのみ得られるため、大規模モデルにとってデータは最も重要な要素であると言えます。事前学習データの品質、多様性、規模、代表性、公平性、偏りなどの要素が、モデルのパフォーマンスに決定的な影響を与えます。 baichuan-7Bモデルは以下のデータ処理を行いました。
全体的なプロセスを下の図に示します。 写真 さらに、複数の言語でモデルの優れたパフォーマンスを実現するために、Baichuan-7B は高品質のデータセットを取得した後、自動データサンプリング戦略を採用し、最終的に下流のタスクで最高のパフォーマンスを発揮する中国語と英語の比率を確認しました。 2番目のステップは、合理的な単語分割戦略を開発することです。高品質のデータセットを入手したら、次の点について検討する必要があります。 データセット内のコーパスを最大限に活用するにはどうすればよいでしょうか? 現在、ほとんどのオープンソース モデルは主に英語に基づいて最適化されているため、中国語のコーパスでは効率が低下します。これは、一部の大規模な外国モデルが英語よりも中国語の生成でパフォーマンスが低下する理由でもあります。 Baichuan-7B は、単語分割アルゴリズムとして SentencePiece の Byte-Pair Encoding (BPE) を使用し、次の最適化を実行します。
コーパス上のさまざまな単語セグメンテーションの圧縮率を比較すると、その単語セグメンテーションは LLaMA や Falcon などのオープンソース モデルよりも大幅に優れていることがわかります。圧縮率が同程度の場合、トレーニングと推論の効率が高くなります。 3番目のステップは、適切なモデル構造を作成することです大型模型に関して言えば、「大いなる力は奇跡を起こす」というのはよく言われる言葉です。「大いなる力はレンガを飛ばす」の隠された意味は、大型模型が技術的な道筋で革命的な突破口を開かず、その根底にある技術基盤が依然としてTransformerであるということです。 つまり、現在の大規模言語モデルのほとんどは依然として Transformer モデルですが、モデルはすべて Transformer の Decoder 層で構成されており、具体的には以下の部分に分かれています。 1. 位置埋め込み、つまり位置エンコーディング。 Transformer では、順序に関係なくすべてのトークンが同じように扱われるため、単語間の位置関係を表すために Position Embedding を追加する必要があります。 現在の位置エンコーディングには、絶対位置エンコーディングと相対位置エンコーディングの2 つの形式があります。 絶対位置エンコーディングとは、位置情報をベクトル形式でモデル入力に直接統合することを指します。 一般的に使用される 2 つの絶対位置エンコーディング方法は、トランスフォーマーで使用される正弦波位置エンコーディングと、畳み込みシーケンスツーシーケンス モデルで使用される学習位置埋め込みです。 その中で、正弦波位置エンコーディングは、元のTransformerモデル(Vaswani et al.、2017)で位置エンコーディングとして事前定義された正弦波関数を導入しました。この方法では、各位置に対して、単語埋め込みベクトルと同じ次元を持つ固定ベクトルが生成されます。 その利点は、任意の長さのシーケンスを処理でき、追加の学習プロセスを必要とせず、相対的な位置関係をある程度エンコードできる点です。 学習された位置埋め込みは、2017 年に Gehring らによって畳み込みシーケンスツーシーケンス モデルで初めて提案されました。 各位置に対して、モデルには対応する埋め込みベクトルがあり、モデルのトレーニング中に学習され、最適化されます。 この方法の利点は、特定のタスクやデータセットに応じて位置情報を学習できることです。ただし、大きな欠点の 1 つは、位置埋め込みの数が固定されているため、モデルが事前に設定された数を超える位置を持つシーケンスを処理できない可能性があることです。 相対位置エンコーディングとは、自己注意メカニズムに 2 つのトークンの相対位置情報を導入することを指します。 現在、相対位置エンコーディングには、 ROPE (Rotary Positional Embedding) とALiBi (Attention with Linear Biases) という 2 つの一般的な方法があります。 ROPE は固定長に制限されることなく、任意の長さのシーケンスを処理できます。これは、位置ベースの回転行列を介して各位置の埋め込みを新しい位置に回転させることによって機能します。 この方法の利点は、相対位置情報の一貫性を維持でき、回転後も隣接する位置は同様の埋め込みを持つことです。 ALiBi により、Transformer 言語モデルは、トレーニング中よりも推論中に長いシーケンスを処理できるようになります。 テキスト シーケンスを処理するときに実際の位置埋め込みは使用しませんが、キーとクエリ間の注目度を計算するときに、キーとクエリ間の距離に応じて、クエリがキーに割り当てることができる注目度値をペナルティします。キーとクエリが近い場合、ペナルティは非常に低くなり、離れている場合、ペナルティは非常に高くなります。 このアプローチの目的は、近くにある単語の方が遠くにある単語よりも重要であるということです。 2. Attention Layer、つまり注意層。 原理は、異なるトークン間での情報交換を可能にするために注意レイヤーを追加し、それによって文全体の表現を取得することです。 大規模モデルで使用される Attention Layer は現在、Multi-Head Self-AttentionとSparse Self-Attention の2 種類に分かれています。 Multi-Head Self-Attention メカニズムは、論文「Attention is All You Need」(Vaswani 他、2017 年) で初めて登場し、Transformer モデルのコア コンポーネントとなっています。 マルチヘッド セルフアテンションでは、モデルは最初に入力埋め込みベクトルを複数の「ヘッド」に分割し、各ヘッドが独立してセルフアテンション計算を実行し、最後にすべてのヘッドの出力が接続され、線形変換によって変換されて最終出力が形成されます。 利点は、各ヘッドが入力のさまざまな側面を学習して焦点を当てることができ、モデルが異なる位置からの情報に同時に焦点を当てることができるため、より豊富なコンテキスト情報を取得できることです。 Sparse Self-Attention は、入力内の要素の一部にのみ焦点を当てる改良された Self-Attention メカニズムです。 このアプローチの利点は、計算の複雑さを大幅に削減し、モデルがより長いシーケンスを処理できるようになることです。 3. FFN レイヤー。フィードフォワード ニューラル ネットワークです。 その主なタスクは、注意層からの情報を処理することです。 Attention メカニズムは単語間の関係を処理できますが、より複雑で非線形なデータ処理を実行することはできません。 FFN レイヤーは、各 Transformer モジュールの非線形処理機能を高め、モデルの全体的な表現力を高めることができます。 オリジナルの Transformer モデルでは、FFN レイヤーは通常、2 つの線形変換と、ReLU や GELU などの非線形活性化関数で構成されます。 FFN レイヤーのいくつかのバリエーションを次に示します。
baichuan-7B のモデル構造もTransformerに基づいています。 モデル開発の過程で、モデルがウィンドウの長さ4096内で最高の効果を発揮し、同時に4096の長さを超えても良好な外挿性能を発揮できるようにするために、baichuan-7BはLLaMAと同じ構造設計を採用し、これらの主要要素の設計も他の多くのモデルで選択された設計と類似しています。 SalesForce が提案した XGen-7B や、コミュニティの Berkeley が提案した OpenLLaMA も同じ選択肢です。具体的には、次のようになります。
ステップ4: 適切な最適化トレーニング戦略を採用するトレーニング戦略も、良好な結果を達成するためのモデルの重要な部分です。 例えば、当時のトレーニングフレームワークでは、V100をベースに1750億のパラメータモデルをトレーニングした第1世代のGPT-3の全体的なマシン利用率はわずか21.3%程度でした。この極端に低い使用率は、モデルのトレーニング サイクルを延長し、モデルの反復の進行に影響を与えます。 モデルトレーニング中のマシン利用率をより向上させるために、Baichuan-7B では、次のようなトレーニング戦略の最適化手法も多数提案されています。 まず、Flash-Attention や NVIDIA apex の RMSNorm などのより効率的な演算子を適用することで、演算子テクノロジが最適化され、計算効率が向上しました。最適化された Attention メソッドにより、モデルのビデオ メモリ消費を非近似的に大幅に削減できます。 次に、baichuan-7B は演算子分割技術を使用して一部の計算演算子を分割し、より効率的な nccl 操作を通信に使用できるようにしながら、ピーク時のメモリ使用量を削減して処理速度をさらに向上させます。 同時に、Baichuan-7Bは混合精度技術も使用し、モデルの精度を犠牲にすることなく計算プロセスを高速化します。 さらに、効率をさらに向上させるために、Baichuan-7B は通信最適化技術も採用しており、トポロジーを考慮した集合通信アルゴリズムを使用してネットワーク輻輳問題を回避し、通信効率を向上させます。また、カードの数に応じてバケット サイズを適応的に設定して帯域幅の利用率を向上させます。さらに、モデルとクラスター環境に応じて通信プリミティブのトリガー タイミングを最適化し、コンピューティングと通信の効果的なオーバーラップを実現します。 最後に、Baichuan-7Bは、災害復旧訓練と呼ばれる独自開発の技術も開発しました。 大規模なモデルのトレーニングには通常長い時間がかかり、トレーニング プロセス中に GPU に問題が発生しないようにすることは困難です。特にクラスターのトレーニング中は、1 枚のカードのハードウェア エラーまたはネットワーク エラーによってクラスター全体がシャットダウンする可能性があります。したがって、トレーニングが中断された後、障害を迅速かつ自動的に特定し、サービスを復旧することが非常に重要です。 baichuan-7B は、トレーニング プラットフォームとトレーニング フレームワークの共同最適化と IaaS + PaaS の適用により、分単位の障害箇所特定とタスク回復を実現し、トレーニングの安定性と効率性を確保します。 ステップ5: 適切なモデル評価方法を選択するデータセットの構築を完了し、データセット内のコーパスをセグメント化し、構築したモデルで事前トレーニングした後、モデルの機能のさまざまな側面を理解するために、モデルをテストして評価する必要があります。 ゼロショット評価方法(プロンプトを直接与える)を直接採用する微調整モデルとは異なり、事前トレーニング済みベースモデルは通常、効果を評価するために数ショット評価方法(いくつかのサンプルプロンプトを与える)を採用します。 現在、より権威のある評価データセットとしては、中国語データセットの C-Eval、Gaokao、AGIEval、英語データセットの MMLU、コーディング能力評価セットの Human Eval、数学能力評価セットの GSM8K および MATH などがあります。 その中で、C-Eval データセットは、52 の科目と 4 つの難易度レベルをカバーする、最も包括的な中国の基本モデル評価データセットです。 Gaokao は、中国の大学入試問題をデータセットとして使用して大規模言語モデルの機能を評価し、モデルの言語能力と論理的推論能力を評価するために使用されます。 AGIEval は、中国語の文脈で認知と問題解決に関連するタスクを実行するモデルの能力を評価することを目的としています。 MMLU は、初等数学、アメリカの歴史、コンピューターサイエンス、法律などをカバーする 57 の多肢選択式タスクを含む英語評価データセットです。難易度は高校レベルから専門家レベルまであります。現在、主流の LLM 評価データセットとなっています。 中国の評価では、baichuan-7BはC-Eval、Gaokao、AGIEvalの総合評価で優れた結果を達成しました。同じスケールパラメータを持つ他の大規模モデルをはるかに上回っただけでなく、より大きなスケールパラメータを持つ一部のモデルよりも優れた性能を発揮しました。 英語能力の面では、MMLUデータセットが評価対象として選択され、baichuan-7bのパフォーマンスも同規模のものより大幅に優れていました。 写真 公式の github オープンソース契約の説明によると、baichuan-7B オープンソース推論コードは Apache2.0 プロトコルを採用していることは注目に値します。 LLaMA をベースにトレーニングを継続している他のモデル (IDEA の ziya、Lianjia の BELLE など) は商用化できませんが、baichuan-7 はモデルの重みを独自に定義できるオープンソース プロトコルを備えたネイティブにトレーニングされたモデルです。 Baichuan Intelligence が無料の商用プロトコルを採用していることは称賛に値します。これは他の有料商用プロトコルよりも自由度が高いです。開発者は事前トレーニング済みのモデルを直接使用して、さまざまな実験研究を実施し、展開とアプリケーションを完了できます。 オープンソースとクローズドソース、どちらのモデルが最も効果的でしょうか?大規模モデルのトレーニング手順について説明しましたが、最後にオープンソースの問題について話しましょう。 5月初旬、Googleは「私たちには防壁がなく、OpenAIにもありません。私たちがまだ議論している間に、オープンソースのサードパーティがひっそりと私たちの仕事を奪ってしまいました」と主張する内部文書を漏洩した。 Google は明らかにオープンソースの影響を認識していますが、オープンソースとクローズドソースのどちらのモデルがより効果的でしょうか? Baichuan Intelligence は次のように答えました。 大規模モデルのトレーニングコストは非常に高いことはよく知られているため、ソースコードを非公開にして商業投資を確保することがより効果的な方法です。 しかし、オープンソースイノベーションは、すでにソフトウェア開発、さらにはIT技術開発の主流の技術形態となっています。スーパーコンピューターのオペレーティングシステムは、ほぼすべてLinuxなどのオープンソースソフトウェアオペレーティングシステムを使用して構築されており、スマートフォンオペレーティングシステムの80%以上はオープンソースのAndroidシステムによってサポートされています。 大規模モデルが登場する前は、ディープ ニューラル ネットワーク学習フレームワークはほぼすべてオープン ソースでした。 OpenAIとGoogleは「密室での開発」を選択しましたが、Metaはオープンソースの道を歩み始めました。LLaMAはオープンソース化されてからすぐに多くの開発者を引き付けましたが、これはインターネット時代のLinuxやモバイルインターネット時代のAndroidと非常に似ています。 Linux や Android と同様に、コア バージョンはコミュニティでオープン ソース化され、その後、より多くの人々がニーズと分野を理解した上でこのコア バージョンを継続的に変更し、将来の開発に適した新しいバージョンを低コストで作成します。これらの新しいバージョンは環境によって評価され、継続的な開発のために反復されます。 誰もが力を合わせて取り組むこの研究開発の道は、ビッグモデルの時代には間違いなく大きな役割を果たすでしょう。オープンソースとクローズドソースのどちらがより効果的かを言うことはまだ難しいです。iOS が Android より効果的だとは言えないのと同じです。 しかし、将来のビッグモデルのエコシステムは、間違いなく独占とオープンソースの共存となるでしょう。 |
「 AI攻撃を阻止するために人力を使うことはできません。AIと戦うにはAIを使わなければなりません。...
論文アドレス: https://arxiv.org/abs/2307.09283コードアドレス: h...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
2024年にAI業界はどのように進化するのでしょうか? OpenAIのグレッグ・ブロックマン会長は...
[[421481]]この記事はWeChatの公開アカウント「Pythonとビッグデータ分析」から転載...
交差対結合 (IoU) は、ターゲット検出で使用される概念です。ターゲット検出アルゴリズムをテストす...
この記事を通じて、ML でよく使用されるアルゴリズムについて常識的に理解することができます。コードや...
自動運転は近年市場で最も活発なトピックの1つです。資金が継続的に流入し、大手企業が存在感を示そうと競...
今日、産業用ロボットはほぼすべての産業で使用されています。これらは製造施設に数多くのメリットをもたら...
私は最近、クローラーを使用してページのスナップショットを取得し、ページの互換性の包括的なテストを実施...
生成アルゴリズム、事前トレーニング済みモデル、マルチモーダルなどの技術の累積的な統合と反復を経て、人...
好きなアニメ小説のキャラクターとチャットしてみませんか?バーチャルコンパニオンが欲しいですか?あなた...
マスク氏は常にその知名度の高さで知られている。彼はテスラとスペースXという2つの大企業を所有している...
人工知能はもはや新しい言葉ではないが、2020年という異例の年に、人工知能は再び新型コロナウイルス感...