こんにちは友人、私は噂です。
大規模なモデルは実験的なプロジェクトであり、データ クリーニング、基礎となるフレームワーク、アルゴリズム戦略などの複数のプロセスが含まれます。各リンクには多くの落とし穴があるため、落とし穴を回避する方法と、コストを節約できるテクノロジの選択を知ることが非常に重要です。多くの計算能力と時間. 率直に言うと、毛沢東のおじいちゃんの山だけです。
最近、Baichuan Intelligent は Baichuan2 の 7B および 13B バージョンをリリースしました。おそらく多くの読者は画面を見ることに慣れすぎていて、よく読んでいませんでした。モデルをリリースしたとき、彼らはまた、役立つ情報が満載の技術レポートも提供しました。バイチュアンが蓄積してきたノウハウを皆さんもご覧ください。同時に、私が完全に理解していない点もいくつかありますが、他の人たちにインスピレーションを与え、コメント欄で一緒に議論できれば幸いです。
事前トレーニング
データ
データの多様性
さまざまなソースからデータを取得するには、カテゴリ システムを確立するのが最善です。これにより、全体的なデータ分布の制御が向上し、その後の追加と削減が容易になります。
クラスタリングと重複排除の場合、LSH のローカル感度の高いベクトルまたは高密度ベクトルをクラスタリング機能として使用できます。LSH の方が高速ですが、ベクトルはセマンティクスをより適切にエンコードできます。しかし、ここにはスタックしきい値が必要であるという問題があり、過剰な重複排除は多様性に影響を与え、汎化能力を低下させます。したがって、Baichuan が選択したアプローチは、事前トレーニング中に一部を削除し、残りのサンプルをサンプリングの重みとしてスコア付けすることです。
全体的な重複排除プロセスは次のとおりです (ここでよく理解できないのは、ドキュメント重複排除が最後のステップに配置される理由です。前のステップに配置すると、文とデータのデータ量を大幅に削減できるはずです)。段落):
データ品質
フィルタリングに文レベルの分類器を使用することは業界では一般的な方法ですが、トレーニングに使用される具体的なデータや、ラベル付けにどのような基準が使用されるかについては詳しく説明されていません。
コンテンツの安全性に関しては、ルールとモデルを使用して有害なコンテンツを洗い流し、サンプリング確率を高めるために正の値を持つ追加のデータソースも見つけます。
モデル構造
トークナイザー
Tokenizer の難しさは圧縮率と語彙数のバランスです。たとえば、頻繁に出現する複数の漢字は 1 つのトークンで表現できるため、推論は非常に高速になります。しかし、組み合わせると、これらの中国語の個別の埋め込みトレーニングが必要になります。文字が不十分であると、他の単語と組み合わせたときに意味表現が不十分になります。
したがって、Baichuan は BPE を使用し、より妥協的なサイズである 120,000 を選択しましたが、次の詳細を開示しました。
元のデータに対して正規化は実行されません
数値データをよりよく理解するために数値を完全に分解する
コードデータの場合は、特別にスペーストークンが付加されます。
カバレッジは 0.9999 で、フォールバックはほんのわずかです (OOV を回避する方法。未知の中国語に遭遇したときに utf8 バイト トークンになります)。
位置エンコーディング
外挿の必要性により、最近位置コーディングに関する新しい研究が数多く行われています。より人気のあるものは RoPE と ALiBi であり、位置コーディングがモデルのパフォーマンスに大きな影響を与えないことが実験的に判明したため、ここで Baichuan によって使用されています。同時に速度の最適化も行われました。:
RoPE + フラッシュ注意
ALiBi + xFormers
活性化関数
よりパフォーマンスの高い SwiGLU が使用されますが、SwiGLU には 3 つの行列があり、より多くのパラメータが導入されるため、Baichuan は FFN 層のサイズを削減します (4->8/3 が 128 の倍数に処理されます)。
正規化
ウォームアップに対してより堅牢な Transformer 入力には LayerNorm を使用します。
入力特徴量の分散を計算し、計算効率を向上させるRMSNormの実装を採用しています。
混合精度
BF16 は範囲が広く、トレーニングをより安定させることができるため、BF16 を使用します。ただし、位置エンコードやオプティマイザーなどには完全精度を使用します。
安定性の向上
NormHead: 出力表現を正規化します。まず、低頻度トークンのモデルはトレーニング中に小さくなり、正規化後の安定性が向上します。さらに、出力表現をクラスタリングすることにより、Baichuan は、コサイン距離では同様のセマンティクスをクラスタリングできるが、L2 距離ではクラスタリングできないことを発見しました。正規化により、ロジットを計算する際の内積における L2 の影響を排除できます。実験結果から、損失の収束がより良く、より安定していることが明らかにわかります。
Max-z 損失: トレーニング プロセス中に、Baichuan はモデルのロジットが非常に大きく、デコード中のハイパーパラメーターに対する堅牢性が低下することに気づきました。そのため、max-z 損失が増加するとロジットの値が低下します。
注: 事前トレーニングの最適化解釈については、インフラ部分を省略したため、よく理解していません。。
位置合わせ
SFT
データ品質: 品質管理はランダム検査によって実行され、検査のためにデータのバッチが選択され、不適格なデータはすべて返されます。
データ数: 100k (現在、オープンソースの SFT データがかなり多くありますが、Baichuan が何を考慮しているかはわかりません)
報酬モデル
プロンプトの多様性:ユーザーのニーズを可能な限りカバーするために200以上の細分化されたカテゴリのデータシステムを構築し、同時に各プロンプトの種類の多様性を向上させ、それにより汎用性を向上させました。
応答の多様性: 他のオープンソース モデルを使用せずに、さまざまなサイズと段階の Baichuan モデルを使用して応答を生成します (RM の精度を改善できないことが証明されています)
PPO
批評家モデルは事前にウォームアップされている
RL の安定性を向上させるために、勾配クリッピングが実行されます。
安全性
このモデルはオープンソースであるため、Baichuan は次のようなコンテンツのセキュリティに非常に細心の注意を払っています。
10 人以上のセキュリティ カテゴリを構築するために 10 人の専門監査人を雇う
50 人のアノテーション チームで 200,000 の攻撃指示を作成
攻撃指示に対して多種多様な反応を生成する
要約する
Baichuan2 は最初のバージョンに比べて効果が大幅に向上し、推論タスクへの効果が 2 倍になり、現在のオープンソース モデルの中で最も中国語コーパスを通過したモデルです。使用したことのある友人は、コメント欄で効果についてフィードバックを送ってください〜
噂のパンクでオタクなAIアルゴリズム少女です。
北杭大学で学士号、NLP アルゴリズム エンジニア、Google 開発者エキスパート
フォロー歓迎です。肝臓の学習と改善をお手伝いします。
人工知能の時代に一緒に回って、ジャンプして、まばたきしましょう
「オープンソースに感謝します。無料で嬉しいです。」