🚀 MoLM
MoLMは、パラメータ規模が40億から80億までのMoEベースの言語モデルのコレクションです。このリポジトリは、Hugging Face Transformersフォーマットに変換されたMoLM-700M-4B事前学習モデル用です。他のモデルへのリンクは、下部のインデックスにあります。
🚀 クイックスタート
モデルを読み込むには、ModuleFormerパッケージをインストールする必要があります。その後、以下のコードでモデルを読み込むことができます。
from transformers import AutoTokenizer, AutoModelForCausalLM, AutoConfig, AutoModelForSequenceClassification
from moduleformer import ModuleFormerForCausalLM, ModuleFormerConfig, ModuleFormerForSequenceClassification
AutoConfig.register("moduleformer", ModuleFormerConfig)
AutoModelForCausalLM.register(ModuleFormerConfig, ModuleFormerForCausalLM)
AutoModelForSequenceClassification.register(ModuleFormerConfig, ModuleFormerForSequenceClassification)
tokenizer = AutoTokenizer.from_pretrained('ibm/MoLM-700M-4B')
model = AutoModelForCausalLM.from_pretrained('ibm/MoLM-700M-4B')
✨ 主な機能
- MoLMには、4Bと8Bの2つの異なるパラメータサイズがあります。4Bモデルには、異なる計算コストの2つのバリエーション(350Mと700M)があります。
- すべてのモデルは、公開されているソースからの3000億トークンのデータで事前学習されています。
📦 インストール
モデルを読み込むには、ModuleFormerパッケージをインストールする必要があります。
📚 ドキュメント
モデルの詳細
- MoLM-350M-4BはMoEベースの言語モデルで、40億のパラメータを持っていますが、各入力トークンは3億5000万のパラメータのみをアクティブ化します。したがって、計算的には3億5000万の密モデルと同等です。
- MoLM-700M-4Bは40億のパラメータを持ち、計算的には7億の密モデルと同等です。
- MoLM-700M-8Bは80億のパラメータを持ち、計算的には7億の密モデルと同等です。
- すべてのモデルは、公開されているソースからの3000億トークンのデータで、学習率3.0 x 10-4、グローバルバッチサイズ300万トークンで学習されています。
モデルの開発者
IBM
入力
モデルはテキストのみを入力として受け取ります。
出力
モデルはテキストのみを生成します。
モデルアーキテクチャ
MoLMは、ModuleFormerアーキテクチャを使用した自己回帰型言語モデルです。各注意層には16個の注意モジュールがあり、各MLP層には32個のMLPモジュールがあります。推論時には、各層で、MoLM-350M-4BとMoLM-700M-8Bは各トークンに対して2つのモジュールをアクティブ化し、MoLM-700M-4Bは4つのモジュールをアクティブ化します。MoLM-350M-4BとMoLM-700M-4Bは24ブロック、MoLM-700M-8Bは48ブロックで構成されています。
ステータス
これは、オフラインデータセットで学習された静的モデルです。将来的には、コミュニティからのフィードバックを元にモデルの安全性を向上させた調整済みモデルのバージョンがリリースされます。
研究論文
"ModuleFormer: Modularity Emerges from Mixture-of-Experts"
🔧 技術詳細
学習データ
MoLMモデルは、公開されているソースからの3000億トークンのデータで事前学習されています。
評価結果
このセクションでは、標準的な学術ベンチマークにおけるMoLMモデルの結果を報告します。すべての評価には、LM evaluations Harnessを使用しています。
モデル |
レイテンシー |
メモリ |
スループット |
Hellaswag |
PIQA |
ARC-e |
ARC-c |
OBQA |
|
ms |
GB |
トークン/秒 |
acc |
acc |
acc |
acc |
acc |
Pythia 410M |
554 |
25 |
59594 |
33.72 |
66.70 |
51.89 |
21.42 |
18.2 |
GPT-Neo 1.3B |
991 |
23 |
32857 |
38.66 |
71.11 |
56.19 |
23.12 |
21.4 |
Pythia 1.4B |
918 |
42 |
35559 |
40.41 |
70.84 |
60.52 |
26.11 |
22.2 |
MoLM-350M-4B |
497 |
27 |
71017 |
39.21 |
70.13 |
56.44 |
23.55 |
20.8 |
GPT-Neo 2.7B |
1737 |
35 |
18788 |
42.71 |
72.2 |
61.07 |
27.47 |
23.2 |
Pythia 2.8B |
2111 |
70 |
15522 |
45.34 |
73.99 |
64.35 |
29.35 |
23.8 |
MoLM-700M-4B |
863 |
27 |
39931 |
42.20 |
73.01 |
60.82 |
25.94 |
22.6 |
MoLM-700M-8B |
939 |
38 |
37419 |
43.33 |
72.91 |
62.46 |
27.90 |
23.8 |
モデル |
|
TriviaQA |
|
|
HumanEval |
|
Wikitext |
|
0-shot |
1-shot |
5-shot |
pass@1 |
pass@10 |
pass@100 |
PPL |
Pythia 410M |
2.32 |
5.02 |
6.42 |
1.20 |
3.85 |
9.98 |
20.09 |
GPT-Neo 1.3B |
5.24 |
8.01 |
9.74 |
3.62 |
6.87 |
14.50 |
16.16 |
Pythia 1.4B |
5.30 |
9.87 |
12.84 |
2.19 |
7.31 |
14.33 |
14.71 |
MoLM-350M-4B |
5.40 |
11.12 |
13.70 |
3.04 |
6.99 |
13.79 |
15.15 |
GPT-Neo 2.7B |
4.82 |
11.23 |
13.67 |
4.89 |
9.54 |
17.90 |
13.93 |
Pythia 2.8B |
7.38 |
15.58 |
18.98 |
4.91 |
11.76 |
21.54 |
12.68 |
MoLM-700M-4B |
9.07 |
14.24 |
16.49 |
5.50 |
10.65 |
20.27 |
13.20 |
MoLM-700M-8B |
11.47 |
16.73 |
20.75 |
5.51 |
12.58 |
20.40 |
12.97 |
倫理的な考慮事項と制限
MoLMは、使用に伴うリスクを抱えた新しい技術です。これまでに行われたテストは英語で行われており、すべてのシナリオを網羅していない、または網羅することができない可能性があります。これらの理由から、すべての大規模言語モデルと同様に、MoLMの潜在的な出力を事前に予測することはできず、モデルは場合によっては、ユーザーのプロンプトに対して不正確、偏った、またはその他の不快な応答を生成する可能性があります。したがって、MoLMのアプリケーションを展開する前に、開発者はモデルの特定のアプリケーションに合わせた安全性テストと調整を行う必要があります。
📄 ライセンス
Apache-2.0
引用
このリポジトリのデータまたはコードを使用する場合は、以下の論文を引用してください。
@article{shen2023moduleformer,
title={ModuleFormer: Learning Modular Large Language Models From Uncurated Data},
author={Shen, Yikang and Zhang, Zheyu and Cao, Tianyou and Tan, Shawn and Chen, Zhenfang and Gan, Chuang},
journal={arXiv preprint arXiv:2306.04640},
year={2023}
}
MoLMモデルインデックス