LLM/Linly-OpenLLaMA 基本モデル [深セン大学で LLaMA をゼロからトレーニング]__ と増分トレーニング Chinese Falcon 基本モデル

コードアドレス: https://github.com/CVI-SZU/Linly  :::: Linly

0 Linly-OpenLLaMA ベースモデル【以头设计LLaMA】https://github.com/CVI-SZU/Linly/wiki/Linly-OpenLLaMA

Linly-OpenLLaMA モデルは、3B、7B、13Bスケールを含む大規模な中国語と英語のコーパスで語彙とモデル パラメーターを最初からトレーニングします。1 TB の中国語と英語のコーパスで事前トレーニングされており、単語を中国語用に最適化します。トークナイザーでは、使用されるデータには中国語と英語の教師なしデータと並列コーパスが含まれており、コーパス上でspm トークナイザーを再学習し、中国語の単語を組み合わせた単語分割効果を取得します。Meta のオリジナル LLaMA と同じモデル構造とトレーニング パラメーターを使用して、最初から事前トレーニングされています。このモデルは、 Apache License 2.0プロトコルに基づくオープンソースであり  、商用利用をサポートしています。トレーニングの詳細

0.0 ビルド トークナイザー

  1. まず、SPM は、語彙サイズ 50,000 の大規模な中国語と英語のコーパスでトレーニングされます
  2. 吃音頻度上位 20,000 語の単語リストに従って、中国語の単語、簡体字、繁体字を展開します拡張語彙のサイズは 66242 です。

0.1 事前トレーニング データ

事前トレーニングの第 1 段階では、20G の中国語コーパス、10G の対訳コーパス、70G の英語コーパスを含む、合計100GB のコーパスが使用されました。

0.2 モデルの構造

Linly-OpenLLaMA はMeta と同じモデル構造を使用します

0.3 事前トレーニングパラメータ

基本的にLLaMAのトレーニングパラメータを採用し、勾配累積によりBatch Sizeを実現します。

  • シーケンス長: 2048
  • バッチサイズ: 4096
  • 学習率: 3e-4
  • コサインスケジュール、0.1 重み減衰

0.4 予測--モデルのダウンロードOpenLLaMA-13B :メインの Linly-AI/OpenLLaMA-13B

Linly-OpenLLaMA モデルは、大規模な中国語と英語のコーパス上で語彙とモデル パラメーターをゼロからトレーニングします。これは、元の LLaMA モデルの構造と使用法と一致しています。このモデルは、 Apache License 2.0プロトコルに基づくオープンソースであり  、商用利用をサポートしています。トレーニングの詳細

モデルのダウンロード 分類 トレーニングデータ トレーニングシーケンスの長さ バージョン 更新時間
OpenLLaMA-13B ベースモデル 100G一般コーパス 2048年 v0.1 2023.5.29

1 増分トレーニングチャイニーズファルコン基本モデル:モデルの実装とトレーニングの詳細

毎日更新: LLM/a0 リーダーボード __HuggingFaced の open_llm_leaderboard

Falcon シリーズのモデルは、事前トレーニング用にスクリーニングされた 1 兆個のトークンを使用しますが、Falcon モデルは、使用中の LLaMA モデルと同様の問題に直面しています: 1) モデルは主に英語のデータセットでトレーニングされているため、その理解力弱い; 2) Falcon は語彙を構築するときに中国語の文字/単語を追加しなかったので、中国語の文字は複数のトークンの組み合わせに分割され、中国語のテキストがより長いトークン シーケンスに分割され、エンコーディングが減少します。そして発電効率。

上記の問題に対応して、「Lingli Linly」プロジェクト チームは、Falcon モデルをベースとして中国語の語彙を拡張し、中国語と中国語と英語の並行増分事前トレーニングを使用して、モデルの言語能力を中国語に移行しました。チャイニーズファルコンを実現。この記事では、データ セットの構築、中国語の単語の拡張、モデル構造 [Falcon、LLaMA、従来の GPT の類似点と相違点]、およびトレーニング パラメーターを含む Chinese Falcon の実装について紹介します。

1.1 Falconモデルの構造: GPT、LLaMA、Falconの計算過程の比較

Falcon は、GPT シリーズと同じ一方向の Transformer-decoder モデル アーキテクチャを使用し、言語モデルをトレーニング ターゲットとして使用します。GPT-3 と比較すると、Falco の構造には次の変更があります。 1. 位置エンコーディング: Falcon は回転位置エンコーディング (RoPE) を使用しており、GPT-Neo、PaLM、LLaMA などの最近の大型モデルはすべて RoPE を採用しています。2. アテンション メカニズム: マルチクエリを使用してキーと値を単一のアテンション ヘッドにマッピングし、クエリのみがマルチヘッド マトリックスを保持します。この簡素化されたソリューションにより生成効率が向上します。FlashAttendant を使用してアテンション マトリックスをブロックに分割し、速度を向上させます。計算を増やし、メモリ I/O オーバーヘッドを削減します。3. トランスフォーマー: Attendance と MLP を並列化するには、単一のlayer_norm レイヤーのみを使用します。

Transformer モデル構造の観点から見ると、LLaMA は、Ateention と FFN の入力に Layer-Norm 層を配置します。これは、大規模なモデルのトレーニング (GPT2 論文で提案) の安定性に役立ちます。また、FFN 部分はゲート線形層を使用します( GLU )、この構造は最初にT5-1.1で使用され、実験効果は MLP より優れています。LLaMA の設計はパフォーマンスの向上に重点を置いているのに対し、Falcon の Transformer の改良は効率の向上に重点を置いておりLayer-Norm 層が1 つに減り、アテンションの計算が簡素化されている (マルチクエリ アテンション) ため、Falcon は LLaMA よりも高速です。 。

「Linly」プロジェクトの Falcon 実装計画: TencentPretrain を使用して Falcon モデル構造を再現し、言語モデル ターゲットを使用してモデルを段階的にトレーニングします。Falcom のモデル構造に合わせて、既存の MLP、Transformer、LM_target などのモジュールを再利用して Falcon モデルを再現するために、新しい FlashAttendant (Multi-Query) モジュールが追加されています。TencentPretrain は、UER-py 事前トレーニング フレームワークのマルチモーダル バージョンで、BERT、GPT、T5、ViT、Dall-E、Speech2Text、その他のテキスト、画像、音声の事前トレーニング モデルとダウンストリーム タスクをサポートします。TencentPretrain はモジュール設計に基づいており、モジュールを組み合わせてさまざまなモデルを形成したり、既存のモジュールを再利用して若干の変更を加えることで新しいモデルを実現したりできます。

さまざまなモデルで使用されるモジュールを次の図に示します。

1.2 データ構築

中国語の単語の拡張: まず、一般的に使用される 8,701 の漢字、jieba 語彙の上位 20,000 の中国語の高頻度単語、および 60 の中国語の句読点を含むFalcon の語彙を拡張します。重複排除後、合計 25,022 個のトークンが追加され、語彙サイズは 90,046 に拡張されます。語彙を変更した後は、それに応じて、embedding および target.output_layer マトリックスも拡張する必要があります。元のトークナイザー内の各新しい単語の対応するベクトルの平均が初期化として使用されます。

データセット構築:第 1 段階では、50GB のデータが事前トレーニングに使用されます。そのうち 20G の中国語一般コーパスはモデルの中国語能力と中国語の知識を提供し、10G の中国語と英語の対訳コーパスは中国語と英語の表現を調整するために使用されます。モデルの忘却を軽減するために、英語機能を中国語に移行し、データの再生に 20G 英語コーパスが使用されます。データは Linly プロジェクトで公開されており、詳細は図に示されています。

1.3 トレーニング

モデルのトレーニング段階では、Falcon の事前トレーニングと同じハイパーパラメーター設定 (AdamW、ZeRO Optimizer、バッチ サイズ 2304) を使用し、増分トレーニングの場合は 2e-5 という低い学習率を設定します。

中国の埋め込みの初期化として、まず Transformer の重みをフリーズし、embedding 部分と Output_layer 部分のみを更新し、16k ステップをトレーニングします。さらに、一般コーパス上でフルパラメータトレーニング(フルチューニング)を開始

第 1 段階の 50GB コーパスに加えて、China Falcon 基本モデルは合計 2TB の自社構築中国語データセットと SlimPajama データセットでトレーニングされ、Lingli プロジェクトで継続的に更新されます。

事前トレーニングフレームワーク: https://github.com/Tencent/Tenc

増分トレーニング: https://github.com/CVI-SZU/Linly/wiki/%E5%A2%9E%E9%87%8F%E8%AE%AD%E7%BB%83

LoRA トレーニング: https://github.com/CVI-SZU/Linly/wiki/LoRA%E8%AE%AD%E7%BB%83

1.4 予測 -- モデルのダウンロード Linly- Chinese-Falcon:メインでの Linly-AI / Chinese-Falcon-7B

Chinese-Falcon モデルは、Falcon に基づいて中国語の語彙を拡張し、中国語と英語のデータで段階的に事前トレーニングを行います。このモデルは、 Apache License 2.0プロトコルに基づくオープンソースであり  、商用利用をサポートしています。モデルの実装とトレーニングの詳細

モデルのダウンロード 分類 トレーニングデータ トレーニングシーケンスの長さ バージョン 更新時間
Chinese-Falcon-7B (hf フォーマット) ベースモデル 50G一般コーパス 2048年 v0.2 2023.6.15
from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch
model = "Linly-AI/Chinese-Falcon-7B"


tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    torch_dtype=torch.bfloat16,
    trust_remote_code=True,
    device_map="auto",
)
sequences = pipeline(
   "User: 你如何看待996?\nBot: 我认为996制度是一种不可取的工作时间安排,因为这会导致员工过多的劳累和身心健康问题。此外,如果公司想要提高生产效率,应该采用更有效的管理方式,而不是通过强行加大工作量来达到目的。\nUser: 那么你有什么建议?\nBot:",
    max_length=200,
    do_sample=True,
    top_k=10,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id,
)


for seq in sequences:
    print(f"Result: {seq['generated_text']}")

リンリー

LLaMA ベースの LLaMA の重みと語彙に基づいて、中国語および中国語と英語の並列データ増分事前トレーニングを使用して、言語能力を英語から中国語に移行します; Tencent Pretrain 事前トレーニング フレームワークのフルパラメータ トレーニング (フルチューニング) に基づいて、言語能力を英語から中国語に移行します。 )中国語の基本モデル Linly - Chinese-LLaMAを取得します現在公開されている多言語指導データをさらに集約し、中国語基本モデルLinly- Chinese-LLaMA上で大規模な指導訓練を実施し、  Linly-ChatFlow中国語対話モデルを実現します。

モデルのダウンロード 分類 トレーニングデータ トレーニングシーケンスの長さ バージョン 更新時間
中国語-LLaMA-7B ベースモデル 100G一般コーパス 2048年 v1.2 2023.5.29
チャットフロー-7B 対話モデル 5M命令データ 1024 v1.1 2023.5.14
中国語-LLaMA-13B ベースモデル 100G一般コーパス 2048年 v1.2 2023.5.29
チャットフロー-13B 対話モデル 5M命令データ 1024 v1.1 2023.5.14
中国語-LLaMA-33B (hf フォーマット) ベースモデル 30G一般コーパス 512 v1.0 2023.4.27

参考文献:

毎日更新: LLM/a0 リーダーボード __HuggingFaced の open_llm_leaderboard

SuperCLUE-ランヤリスト

https://github.com/Tencent/Tenc

Li Yudong: Chinese Falcon 基本モデル: コードの実装と段階的なトレーニング

おすすめ

転載: blog.csdn.net/sinat_37574187/article/details/131735445