🚀 InternLM
InternLMは、実用シナリオに特化した70億パラメータのベースモデルをオープンソース化しています。このモデルは、大量の高品質トークンを用いて訓練され、強力な知識ベースを構築しています。また、ユーザーが柔軟に独自のワークフローを構築できる汎用的なツールセットを提供しています。
✨ 主な機能
InternLMは、実用シナリオに特化した70億パラメータのベースモデルをオープンソース化しています。このモデルには以下の特徴があります。
- 数兆の高品質トークンを用いて訓練され、強力な知識ベースを構築しています。
- ユーザーが柔軟に独自のワークフローを構築できる汎用的なツールセットを提供しています。
📚 ドキュメント
InternLM-7B
性能評価
我々は、オープンソースの評価ツール OpenCompass を使用して、InternLMの包括的な評価を行いました。評価は、学科能力、言語能力、知識能力、推論能力、理解能力の5つの能力次元をカバーしています。以下は一部の評価結果であり、より詳細な評価結果については OpenCompassリーダーボード をご覧ください。
データセット/モデル |
InternLM-Chat-7B |
InternLM-7B |
LLaMA-7B |
Baichuan-7B |
ChatGLM2-6B |
Alpaca-7B |
Vicuna-7B |
C-Eval(Val) |
53.2 |
53.4 |
24.2 |
42.7 |
50.9 |
28.9 |
31.2 |
MMLU |
50.8 |
51.0 |
35.2* |
41.5 |
46.0 |
39.7 |
47.3 |
AGIEval |
42.5 |
37.6 |
20.8 |
24.6 |
39.0 |
24.1 |
26.4 |
CommonSenseQA |
75.2 |
59.5 |
65.0 |
58.8 |
60.0 |
68.7 |
66.7 |
BUSTM |
74.3 |
50.6 |
48.5 |
51.3 |
55.0 |
48.8 |
62.5 |
CLUEWSC |
78.6 |
59.1 |
50.3 |
52.8 |
59.8 |
50.3 |
52.2 |
MATH |
6.4 |
7.1 |
2.8 |
3.0 |
6.6 |
2.2 |
2.8 |
GSM8K |
34.5 |
31.2 |
10.1 |
9.7 |
29.2 |
6.0 |
15.3 |
HumanEval |
14.0 |
10.4 |
14.0 |
9.2 |
9.2 |
9.2 |
11.0 |
RACE(High) |
76.3 |
57.4 |
46.9* |
28.1 |
66.3 |
40.7 |
54.0 |
⚠️ 重要提示
訓練過程ではモデルの安全性に十分に配慮し、モデルが倫理および法律要件に準拠したテキストを出力するように努めていますが、モデルのサイズと確率的生成パラダイムの制限により、予期しない出力が生じる可能性があります。例えば、生成された応答に偏見、差別、またはその他の有害な内容が含まれる場合があります。このような内容を拡散しないでください。有害情報の拡散による結果について、本プロジェクトは責任を負いません。
Transformersからのインポート
Transformersを使用してInternLM 7B Chatモデルをロードするには、以下のコードを使用します。
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("internlm/internlm-7b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("internlm/internlm-7b", torch_dtype=torch.float16, trust_remote_code=True).cuda()
model = model.eval()
inputs = tokenizer(["A beautiful flower"], return_tensors="pt")
for k,v in inputs.items():
inputs[k] = v.cuda()
gen_kwargs = {"max_length": 128, "top_p": 0.8, "temperature": 0.8, "do_sample": True, "repetition_penalty": 1.1}
output = model.generate(**inputs, **gen_kwargs)
output = tokenizer.decode(output[0].tolist(), skip_special_tokens=True)
print(output)
📄 ライセンス
このコードはApache 2.0ライセンスの下で公開されています。一方、モデルの重みは学術研究に完全にオープンであり、無料で商用利用も許可されています。商用ライセンスを申請するには、申請フォーム(英語)/申請表(中国語)に記入してください。その他の質問やコラボレーションについては、internlm@pjlab.org.cn までご連絡ください。