モデル概要
モデル特徴
モデル能力
使用事例
🚀 Jais ファミリーモデルカード
Jais ファミリーのモデルは、英語とアラビア語のバイリンガル大規模言語モデル(LLM)の包括的なシリーズです。これらのモデルは、英語の能力も強力でありながら、アラビア語での性能を最適化するように設計されています。我々は、以下の 2 種類の基礎モデルをリリースしています。
- ゼロから事前学習されたモデル(
jais-family-*
)。 - Llama-2 から適応的に事前学習されたモデル(
jais-adapted-*
)。
今回のリリースでは、590M から 70B のパラメータを持つ 8 つのサイズの 20 個のモデルを導入しています。これらのモデルは、最大 1.6T トークンのアラビア語、英語、およびコードデータで学習されています。このシリーズのすべての事前学習モデルは、アラビア語と英語の命令データの選りすぐりのミックスを使用して、対話用に命令微調整(*-chat
)されています。
我々は、この大規模なリリースがアラビア語の自然言語処理(NLP)の研究を加速し、アラビア語を話すコミュニティやバイリンガルコミュニティに多くの下流アプリケーションを可能にすることを期待しています。我々がアラビア語モデルに成功裏に適用した学習と適応技術は、他の低・中資源言語にも拡張可能です。
✨ 主な機能
Jais ファミリーの詳細
- 開発元: Inception、Cerebras Systems。
- 言語: (NLP): アラビア語(MSA)と英語。
- 入力: テキストデータのみ。
- 出力: モデルがテキストを生成します。
- モデルサイズ: 590M、1.3B、2.7B、6.7B、7B、13B、30B、70B。
- デモ: ここからライブデモにアクセス
- ライセンス: Apache 2.0
事前学習モデル | 微調整モデル | サイズ(パラメータ) | コンテキスト長(トークン) |
---|---|---|---|
jais-family-30b-16k | Jais-family-30b-16k-chat | 30B | 16,384 |
jais-family-30b-8k | Jais-family-30b-8k-chat | 30B | 8,192 |
jais-family-13b | Jais-family-13b-chat | 13B | 2,048 |
jais-family-6p7b | Jais-family-6p7b-chat | 6.7B | 2,048 |
jais-family-2p7b | Jais-family-2p7b-chat | 2.7B | 2,048 |
jais-family-1p3b | Jais-family-1p3b-chat | 1.3B | 2,048 |
jais-family-590m | Jais-family-590m-chat | 590M | 2,048 |
適応事前学習モデル | 微調整モデル | サイズ(パラメータ) | コンテキスト長(トークン) |
---|---|---|---|
jais-adapted-70b | Jais-adapted-70b-chat | 70B | 4,096 |
jais-adapted-13b | Jais-adapted-13b-chat | 13B | 4,096 |
jais-adapted-7b | Jais-adapted-7b-chat | 7B | 4,096 |
モデルアーキテクチャ
このファミリーのすべてのモデルは、トランスフォーマーベースのデコーダー専用アーキテクチャ(GPT - 3)を使用する自己回帰型言語モデルです。
Jais モデル(jais-family-*
)はゼロから学習され、SwiGLU 非線形活性化関数と ALiBi 位置符号化を組み込んでいます。これらのアーキテクチャの強化により、モデルは長いシーケンス長での外挿が可能になり、コンテキストの処理と精度が向上します。
Jais 適応モデル(jais-adapted-*
)はLlama - 2 をベースに構築され、RoPE 位置埋め込みとグループ化クエリアテンションを採用しています。我々は、アラビア語データを用いたトークナイザーの拡張を導入し、生産性と計算効率を 3 倍以上向上させています。具体的には、Jais - 30b 語彙から 32,000
個の新しいアラビア語トークンを Llama - 2 トークナイザーに追加しています。
これらの新しいアラビア語トークン埋め込みを初期化するために、まず両方の語彙に存在する共通の英語トークンのセットを使用して、Jais - 30b の埋め込み空間から Llama の埋め込み空間への線形射影を学習します。次に、この学習した射影を適用して、既存の Jais - 30b アラビア語埋め込みを Llama - 2 埋め込み空間に変換します。
📦 インストール
以下は、モデルを使用するためのサンプルコードです。モデルはカスタムモデルクラスを必要とするため、ユーザーはモデルを読み込む際に trust_remote_code=True
を有効にする必要があります。
# -*- coding: utf-8 -*-
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_path = "inceptionai/jais-family-30b-16k-chat"
prompt_eng = "### Instruction:Your name is 'Jais', and you are named after Jebel Jais, the highest mountain in UAE. You were made by 'Inception' in the UAE. You are a helpful, respectful, and honest assistant. Always answer as helpfully as possible, while being safe. Complete the conversation between [|Human|] and [|AI|]:\n### Input: [|Human|] {Question}\n[|AI|]\n### Response :"
prompt_ar = "### Instruction:اسمك \"جيس\" وسميت على اسم جبل جيس اعلى جبل في الامارات. تم بنائك بواسطة Inception في الإمارات. أنت مساعد مفيد ومحترم وصادق. أجب دائمًا بأكبر قدر ممكن من المساعدة، مع الحفاظ على البقاء أمناً. أكمل المحادثة بين [|Human|] و[|AI|] :\n### Input:[|Human|] {Question}\n[|AI|]\n### Response :"
device = "cuda" if torch.cuda.is_available() else "cpu"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto", trust_remote_code=True)
def get_response(text, tokenizer=tokenizer, model=model):
input_ids = tokenizer(text, return_tensors="pt").input_ids
inputs = input_ids.to(device)
input_len = inputs.shape[-1]
generate_ids = model.generate(
inputs,
top_p=0.9,
temperature=0.3,
max_length=2048,
min_length=input_len + 4,
repetition_penalty=1.2,
do_sample=True,
)
response = tokenizer.batch_decode(
generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=True
)[0]
response = response.split("### Response :")[-1]
return response
ques = "ما هي عاصمة الامارات؟"
text = prompt_ar.format_map({'Question': ques})
print(get_response(text))
ques = "What is the capital of UAE?"
text = prompt_eng.format_map({'Question': ques})
print(get_response(text))
🔧 技術詳細
事前学習データ
Jais ファミリーのモデルは、多様な英語、アラビア語、およびコードデータの最大 1.6 兆トークンで学習されています。このデータは以下のソースから構成されています。
- ウェブ: 我々は、公開されているウェブページ、ウィキペディア記事、ニュース記事、およびソーシャルネットワークのコンテンツをアラビア語と英語の両方で使用しました。
- コード: モデルの推論能力を強化するために、様々なプログラミング言語のコードデータを含めています。
- 書籍: 公開されているアラビア語と英語の書籍データの選択を使用し、長距離コンテキストモデリングと首尾一貫したストーリーテリングを向上させています。
- 科学: ArXiv 論文のサブセットを含め、推論と長コンテキスト能力を向上させています。
- 合成: 自社の機械翻訳システムを使用して英語をアラビア語に翻訳することで、アラビア語データの量を増やしています。これは、英語のウィキペディアや英語の書籍などの高品質な英語リソースに限定しています。
我々は、学習データを広範に前処理し、重複を排除しています。アラビア語については、高い言語品質のデータをフィルタリングするためのカスタム前処理パイプラインを使用しています。このパイプラインの詳細については、Jais 論文 を参照してください。
- Jais 事前学習(
jais-family-*
): Jais での言語アライメント混合に関する以前の実験に基づき、アラビア語:英語:コードデータの比率を 1:2:0.4 で使用しました。このゼロからの事前学習のレシピは、アラビア語データの不足を解消しながら、両言語での性能を向上させます。 - Jais 適応事前学習(
jais-adapted-*
): Llama - 2 の適応事前学習には、英語とコードデータと混合された約 334B のアラビア語トークンの大規模なアラビア語データセットを利用しました。我々は、異なるモデルサイズで混合比率を変えることで、英語での性能を維持しながら強力なアラビア語能力を導入しています。
事前学習モデル | 英語データ(トークン) | アラビア語データ(トークン) | コードデータ(トークン) | 総データ(トークン) |
---|---|---|---|---|
jais-family-30b-16k | 980B | 490B | 196B | 1666B |
jais-family-30b-8k | 882B | 441B | 177B | 1500B |
jais-family-13b | 283B | 141B | 56B | 480B |
jais-family-6p7b | 283B | 141B | 56B | 480B |
jais-family-2p7b | 283B | 141B | 56B | 480B |
jais-family-1p3b | 283B | 141B | 56B | 480B |
jais-family-590m | 283B | 141B | 56B | 480B |
jais-adapted-70b | 33B | 334B | 4B | 371B |
jais-adapted-13b | 127B | 140B | 13B | 280B |
jais-adapted-7b | 18B | 19B | 2B | 39B |
微調整データ
Jais ファミリーのすべてのチャットモデルは、単ターンとマルチターンの両方の設定で、アラビア語と英語のプロンプト - レスポンスペアを使用して微調整されています。データソースには、トピックとスタイルの多様性を考慮してフィルタリングされたオープンソースの微調整データセットが含まれています。さらに、文化的適応性を高めるために、社内で選りすぐりされた人間のデータも組み込まれています。このデータは、機械翻訳、蒸留、およびモデルの自己チャットなどの合成方法を使用して生成されたコンテンツで補完されています。全体として、我々の更新された命令微調整データセットは、それぞれ英語とアラビア語で約 1000 万と約 400 万のプロンプト - レスポンスペアで構成されています。
学習手順
(jais-family-*
)モデルの事前学習中は、文書は EOS トークンで区切られたシーケンスにパックされ、モデルは自己回帰的に学習され、すべてのトークンに損失が適用されます。jais - 30b モデルの場合、コンテキスト長は、学習に精選された長コンテキスト文書を組み込むことで、2k から 8K から 16K へと段階的に拡張されます。この段階的な拡張により、短いコンテキスト長での初期学習を高速化しながら、学習プロセスの終盤に向けてより大きなコンテキスト長のサポートを徐々に拡張することができます。
(jais-adapted-*
)モデルの適応事前学習中は、まずモデルアーキテクチャで説明したように、新しいトークナイザーとアラビア語埋め込みを初期化します。学習では、新しいアラビア語埋め込みの高いノルムを克服するために、2 段階アプローチを実装しました。第 1 段階では、モデルのバックボーンを凍結し、英語とアラビア語のバイリンガルコーパスから約 150 億トークンを使用して埋め込みを学習します。第 2 段階では、バックボーンを凍結解除し、すべてのパラメータで継続的な事前学習を行います。
命令微調整中は、各学習例は単ターンまたはマルチターンのプロンプトとそのレスポンスで構成されます。シーケンスごとに 1 つの例ではなく、例はパックされ、損失はプロンプトトークンにマスクされます。このアプローチにより、バッチごとにより多くの例を処理できるようになり、学習が高速化されます。
学習ハイパーパラメータ
Jais-family-30b-16k-chat
ハイパーパラメータ | 値 |
---|---|
精度 | fp32 |
オプティマイザー | AdamW |
学習率 | 0 から 0.0016(<=192 ウォームアップステップ) 0.0016 から 0.00016(>69 かつ <=11342 ステップ) |
重み減衰 | 0.1 |
バッチサイズ | 120 |
コンテキスト長 | 16384 |
ステップ数 | 11342 |
計算インフラストラクチャ
学習プロセスは、Condor Galaxy(CG)スーパーコンピュータプラットフォームで実行されました。CG は、40 GB の SRAM を備えた 64 台の Cerebras CS - 2 ウェハスケールエンジン(WSE - 2)を含み、合計 960 PetaFLOP/s を達成します。
📚 ドキュメント
評価
我々は、LM - harness を使用してゼロショット設定で、英語とアラビア語の両方に焦点を当てた Jais モデルの包括的な評価を行いました。評価基準は、以下の様々な次元に及んでいます。
- 知識: モデルが事実に基づく質問にどれだけうまく答えるか。
- 推論: モデルが推論を必要とする質問に答える能力。
- 誤情報/バイアス: モデルが誤ったまたは誤解を招く情報を生成する傾向と、中立性の評価。
アラビア語評価結果
モデル | 平均 | ArabicMMLU* | MMLU | EXAMS* | LitQA* | agqa | agrc | Hellaswag | PIQA | BoolQA | Situated QA | ARC - C | OpenBookQA | TruthfulQA | CrowS - Pairs |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
jais-family-30b-16k | 49.2 | 44.0 | 33.4 | 40.9 | 60 | 47.8 | 49.3 | 60.9 | 68.6 | 70.3 | 41.6 | 38.7 | 31.8 | 45.2 | 57 |
jais-family-30b-8k | 49.7 | 46.0 | 34 | 42 | 60.6 | 47.6 | 50.4 | 60.4 | 69 | 67.7 | 42.2 | 39.2 | 33.8 | 45.1 | 57.3 |
jais-family-13b | 46.1 | 34.0 | 30.3 | 42.7 | 58.3 | 40.5 |
📄 ライセンス
このモデルは Apache 2.0 ライセンスの下で提供されています。



