モデル概要
モデル特徴
モデル能力
使用事例
🚀 BTLM-3B-8k-base
Bittensor Language Model (BTLM-3B-8k-base) は、30億のパラメータを持ち、8kのコンテキスト長を持つ言語モデルです。このモデルは、SlimPajama の6270億トークンで学習されています。BTLM-3B-8k-baseは、30億パラメータのモデルに新たな基準を設定し、何兆も多くのトークンで学習されたモデルを上回り、オープンな70億パラメータのモデルと同等の性能を達成しています。また、BTLM-3B-8k-baseは4ビットに量子化することで、わずか3GBのメモリしかないデバイスにも収めることができます。このモデルは、商用利用が可能なApache 2.0ライセンスで提供されています。
BTLMは、Cerebras と Opentensor が共同で、新たに公開された Condor Galaxy 1 (CG-1) スーパーコンピュータ 上で学習されました。このスーパーコンピュータは、G42-Cerebras戦略的パートナーシップの最初の公開可能な成果物です。
BTLM-3B-8kは、CerebrasGPT と同様のアーキテクチャで学習され、SwiGLU 非線形性、ALiBi 位置埋め込み、および maximal update parameterization (muP) が追加されています。このモデルは、SlimPajama-627Bの1エポック分学習されました。学習の75%は2kのシーケンス長で行われ、最後の25%は8kのシーケンス長で行われました。これにより、長いシーケンスのアプリケーションが可能になります。
詳細については、我々の論文 をご覧ください!
✨ 主な機能
BTLM-3B-8k-baseは以下の特徴を持っています。
- 商用利用可能なライセンス (Apache 2.0)。
- 最先端の30億パラメータモデル。
- ALiBi、SwiGLU、maximal update parameterization (muP) および広範に重複排除とクリーニングが行われた SlimPajama-627Bデータセット による性能向上を通じて、30億パラメータのモデルで70億パラメータモデルの性能を提供。
- 4ビットに量子化すると、わずか3GBのメモリのデバイスにも収まる。
- ALiBiのおかげで、8kのシーケンス長をサポートする少数の30億パラメータモデルの1つ。
- 推論時に、同等の70億パラメータモデルよりも学習FLOPが71%少なく、メモリ使用量が58%少ない。
💻 使用例
基本的な使用法
generate()を使用する場合
from transformers import AutoTokenizer, AutoModelForCausalLM
# トークナイザーとモデルをロードする
tokenizer = AutoTokenizer.from_pretrained("cerebras/btlm-3b-8k-base")
model = AutoModelForCausalLM.from_pretrained("cerebras/btlm-3b-8k-base", trust_remote_code=True, torch_dtype="auto")
# テキスト生成のためのプロンプトを設定する
prompt = "Albert Einstein was known for "
# プロンプトをトークナイズし、PyTorchテンソルに変換する
inputs = tokenizer(prompt, return_tensors="pt")
# モデルを使用してテキストを生成する
outputs = model.generate(
**inputs,
num_beams=5,
max_new_tokens=50,
early_stopping=True,
no_repeat_ngram_size=2
)
# 生成されたトークンIDをテキストに戻す
generated_text = tokenizer.batch_decode(outputs, skip_special_tokens=True)
# 生成されたテキストを印刷する
print(generated_text[0])
pipelineを使用する場合
from transformers import AutoTokenizer, AutoModelForCausalLM
from transformers import pipeline
# トークナイザーとモデルをロードする
tokenizer = AutoTokenizer.from_pretrained("cerebras/btlm-3b-8k-base")
model = AutoModelForCausalLM.from_pretrained("cerebras/btlm-3b-8k-base", trust_remote_code=True, torch_dtype="auto")
# テキスト生成のためのプロンプトを設定する
prompt = """Isaac Newton was a """
# テキスト生成パイプラインを作成する
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)
# パイプラインを使用してテキストを生成する
generated_text = pipe(
prompt,
max_length=50,
do_sample=False,
no_repeat_ngram_size=2)[0]
# 生成されたテキストを印刷する
print(generated_text['generated_text'])
📚 詳細ドキュメント
評価と他のモデルとの比較
メモリ要件
図1. 異なるモデルサイズと量子化方式のメモリ要件
品質、学習コスト、メモリ使用量、推論速度
図2: BTLM-3B-8Kと70億パラメータモデルファミリーの品質、メモリ使用量、推論コストの比較
30億パラメータモデルとの性能比較
表1: 30億パラメータモデルの性能。詳細な下流タスクの比較。MMLUタスクの性能は5ショットで報告され、他のタスクは0ショットです。
図3: 30億パラメータモデルの性能
70億パラメータモデルとの性能比較
表2: 70億パラメータモデルの性能。詳細な下流タスクの比較。MMLUタスクの性能は5ショットで報告され、他のすべては0ショットです。
図4: 70億パラメータモデルの性能
長いシーケンス長
長いシーケンスのアプリケーションを可能にするために、我々はALiBi位置埋め込みを使用し、2,048のコンテキスト長で4700億トークンを学習し、その後8,192のコンテキスト長で1570億トークンを学習しました。BTLMの長いシーケンス能力を評価するために、我々は32,768のコンテキスト長のSlimPajamaテストセットで評価し、各トークン位置の損失をプロットしました。理論的にはALiBiは外挿が可能ですが、実際には2,048のコンテキスト長の学習だけではうまく外挿できません。幸いなことに、可変シーケンス長の学習により、大幅に改善された外挿が可能になります。BTLM-3Bは10kのコンテキスト長まではうまく外挿できますが、これを超えると性能がわずかに低下します。
図5: BTLM-3BモデルのSlimPajamaのテストセットでの交差エントロピー評価。32,768トークンの外挿シーケンス長で推論が行われました。
モデルの詳細
属性 | 詳細 |
---|---|
開発者 | Cerebras Systems と Opentensor。G42 Cloud と IIAI の支援を受けています。 |
ライセンス | Apache 2.0 |
モデルタイプ | デコーダーのみの言語モデル |
アーキテクチャ | SwiGLU、ALiBi、およびmuPを備えたGPT-2スタイルのアーキテクチャ |
データセット | SlimPajama-627B |
トークナイザー | Byte Pair Encoding |
語彙サイズ | 50257 |
シーケンス長 | 8192 |
オプティマイザー | AdamW |
位置符号化 | ALiBi |
言語 | 英語 |
詳細情報 | BTLM-3B-8kブログ |
論文 | BTLM-3B-8K: 7B Parameter Performance in a 3B Parameter Model |
Maximal Update Parameterizationを使用してPyTorchで継続学習する場合
from transformers import AutoModelForCausalLM
import torch
model = AutoModelForCausalLM.from_pretrained("cerebras/btlm-3b-8k-base", trust_remote_code=True)
# muPオプティマイザーのパラメータグループを取得する
param_groups = model.get_mup_param_groups(lr=1e-3, weight_decay=0.1)
# muPパラメータを使用してAdamWオプティマイザーを設定する
optimizer = torch.optim.AdamW(
param_groups,
betas=(0.9, 0.95),
eps=1e-8
)
以下のmuPパラメータを設定ファイルに渡すことを確認してください。そうしないと、モデルは標準のパラメータ化にデフォルトされます。
mup_width_scale: <float>
mup_embeddings_scale: <float>
mup_output_alpha: <float>
mup_scale_qk_dot_by_d: true
Position Interpolationを使用してコンテキスト長を拡張する場合
推論時(ファインチューニングなし)
動的線形スケーリングを使用することで、性能を低下させることなく、コンテキスト長を学習時の2倍に拡張することができます。動的線形スケーリングは、input_seq_len
が train_seq_len
より大きい場合、ALiBiの傾きを input_seq_len/train_seq_len
の係数で調整します。詳細は、我々の論文 Position Interpolation Improves ALiBi Extrapolation を参照してください。動的線形スケーリングを有効にするには、config.json
を以下のように更新します。
# 推論時に遭遇する最大コンテキスト長で `n_positions` を更新する(例: 16384トークン)
"n_positions": 16384,
# `alibi_scaling` パラメータで `train_seq_len` を指定する
"alibi_scaling": {
"type": "linear",
"train_seq_len": 8192
}
ファインチューニング + 位置補間を使用する場合
位置補間を使用したファインチューニングを行うことで、より大きな外挿長を達成することができます。スケーリング係数は finetuning_seq_len/train_seq_len
に固定する必要があります。固定線形スケーリングを有効にするには、config.json
を以下のように更新します。
# ファインチューニング時のコンテキスト長で `n_positions` を更新する(例: 32768トークン)
"n_positions": 32768,
# `alibi_scaling` パラメータでスケーリング `factor` を指定する
"alibi_scaling": {
"type": "linear",
"factor": 4.0
}
使用法と制限事項
想定される使用法
主な想定される使用法は、大規模言語モデルのさらなる研究です。BTLM-3B-8k-baseは、自然言語処理、アプリケーション、倫理、およびアラインメント研究の基礎モデルとして使用することができます。我々は、これらのモデルを完全に許容的なApacheライセンスでリリースし、コミュニティが自由に使用できるようにしています。
あなたは、Cerebrasの Model Studio またはサードパーティのライブラリを介して、BTLM-3B-8k-baseモデルをファインチューニングおよび適応させることができます。BTLM-3B-8k-baseを本番環境の下流アプリケーションで使用する前に、さらなる安全性関連のテストと緩和策を適用する必要があります。
想定外の使用法
BTLM-3B-8k-baseは、主に英語のSlimPajamaで学習されており、機械翻訳タスクには適していません。BTLM-3B-8k-baseは、命令追従またはチャットベースのユースケースには調整されていません。
生成サンプル
Prompt: What is a manometer?"
Generation: "A manometric device is an instrument that measures the pressure of a fluid."
Prompt: "What Robert Oppenheimer is famous for?"
Generation: “Robert Opperman was a physicist who was the director of the Manhattan Project, which was responsible for the development of nuclear weapons.”
Prompt: "What was Albert Einstein known for?"
Generation: “Albert Einstein was a German-born theoretical physicist who developed the theory of relativity, one of the two pillars of modern physics (alongside quantum mechanics).”
Prompt: “Who is Isaac Newton?”
Generation: “Isaac Newton was an English physicist, mathematician, astronomer, alchemist, and theologian. He is widely recognized as one of the most influential scientists of all time and as a key figure in the scientific revolution.”
Prompt: "Where does the blood get pumped to after it leaves the right ventricle?"
Generation: “The right atrium receives the deoxygenated blood from the pulmonary artery. The right side of the heart is the only side that receives de-oxygened...”
Prompt: "Peter lost his wallet after attending a local concert. To help him, Bob gave David 10 dollars. David then passed it on to Peter. Now what is the total amount of money Peter has?"
Generation: “A. $10”
リスク、バイアス、倫理的考慮事項
- 人間の生命:このモデルの出力は、人間の価値観と一致する場合も一致しない場合もあります。このモデルを人間の生命に直接影響を与える本番環境にデプロイする前に、リスクを十分に調査する必要があります。
- リスクと危害:RedPajamaデータセット には分布バイアスが存在する可能性があり、これが下流のモデルデプロイで様々な形で現れる可能性があります。大規模言語モデルには、ステレオタイプの拡大、学習データの暗記、または個人情報や機密情報の漏洩など、他のリスクも関連しています。
📄 ライセンス
このモデルはApache 2.0ライセンスで提供されています。
謝辞
この研究を可能にしたすべてのCerebrasのエンジニアに感謝します。
また、Condor Galaxy 1でのコンピューティング時間を提供してくれたG42 CloudとInception Institute of Artificial Intelligenceに感謝します。



