商用アプリケーション | ?ハグフェイス | ?アップデートニュース | ?問題の報告 |テクニカルレポート
チャットウェブ | ?API | ?モデラー
英語 | 简体中文
Discord と WeChat で参加してください
InternLM2.5 シリーズは、次の機能を備えてリリースされています。
卓越した推論能力: Llama3 や Gemma2-9B などのモデルを上回る、最先端の数理推論パフォーマンス。
1M コンテキスト ウィンドウ: 1M の長さのコンテキストで干し草の山から針を見つけるのにほぼ完璧で、LongBench のような長いコンテキストのタスクで最高のパフォーマンスを発揮します。 1M コンテキスト推論の LMDeploy を試してみてください。詳細とファイル チャットのデモはここでご覧いただけます。
ツールの使用の強化: InternLM2.5 は 100 以上の Web ページからの情報収集をサポートしており、対応する実装は近々 Lagent でリリースされる予定です。 InternLM2.5 は、命令のフォロー、ツールの選択、および反映において、ツールの利用に関連する機能が向上しています。例を参照してください。
[2024.08.01] InternLM2.5-1.8B、InternLM2.5-1.8B-Chat、InternLM2.5-20B、InternLM2.5-20B-Chatをリリースしました。詳細については、ダウンロードまたはモデル カードについては以下の模型動物園を参照してください。
[2024.07.19] InternLM2-Rewardシリーズのリワードモデル1.8B、7B、20Bサイズを発売しました。詳細については、ダウンロードまたはモデル カードについては以下の模型動物園を参照してください。
[2024.07.03] InternLM2.5-7B、InternLM2.5-7B-Chat、InternLM2.5-7B-Chat-1Mをリリースしました。詳細については、ダウンロードまたはモデル カードについては以下の模型動物園を参照してください。
[2024.03.26] InternLM2テクニカルレポートを公開しました。詳細については、arXiv を参照してください。
[2024.01.31] InternLM2-1.8B および関連するチャット モデルをリリースします。優れたパフォーマンスを維持しながら、より安価な導入オプションを提供します。
[2024.01.23] 事前トレーニングと SFT チェックポイントを備えた InternLM2-Math-7B および InternLM2-Math-20B をリリースします。小さいサイズでは ChatGPT を上回ります。詳細とダウンロードについては、「InternLM-Math」を参照してください。
[2024.01.17] あらゆる次元で強力な機能を備えた InternLM2-7B および InternLM2-20B と、それらに対応するチャット モデルをリリースします。詳細については、ダウンロードまたはモデル カードについては以下の模型動物園を参照してください。
[2023.12.13] InternLM-7B-Chat と InternLM-20B-Chat のチェックポイントを更新しました。改良された微調整戦略により、新しいチャット モデルは、スタイルの多様性が高まり、より高品質な応答を生成できます。
[2023.09.20] InternLM-20B ベース版とチャット版を発売しました。
モデル | トランス(HF) | モデルスコープ(HF) | OpenXLab(HF) | OpenXLab(オリジン) | 発売日 |
---|---|---|---|---|---|
インターンLM2.5-1.8B | ?インターンlm2_5-1_8b | インターンlm2_5-1_8b | 2024-08-05 | ||
インターンLM2.5-1.8B-チャット | ?internlm2_5-1_8b-chat | インターンlm2_5-1_8b-チャット | 2024-08-05 | ||
インターンLM2.5-7B | ?インターンlm2_5-7b | インターンlm2_5-7b | 2024-07-03 | ||
インターンLM2.5-7B-チャット | ?internlm2_5-7b-chat | internlm2_5-7b-チャット | 2024-07-03 | ||
インターンLM2.5-7B-チャット-1M | ?internlm2_5-7b-chat-1m | internlm2_5-7b-chat-1m | 2024-07-03 | ||
インターンLM2.5-20B | ?インターンlm2_5-20b | インターンlm2_5-20b | 2024-08-05 | ||
インターンLM2.5-20B-チャット | ?internlm2_5-20b-chat | internlm2_5-20b-チャット | 2024-08-05 |
注:
InternLM2.5 シリーズのリリースには、1.8B、7B、および 20B バージョンが含まれています。 7B モデルは研究や応用に効率的で、20B モデルはより強力で、より複雑なシナリオをサポートできます。これらのモデルの関係を以下に示します。
制限事項:トレーニング プロセス中にモデルの安全性を確保し、モデルが倫理的および法的要件に準拠したテキストを生成するよう努めてきましたが、モデルはそのサイズと確率的生成パラダイムにより予期しない出力を生成する可能性があります。たとえば、生成された応答には、偏見、差別、またはその他の有害なコンテンツが含まれている可能性があります。そのようなコンテンツを広めないでください。当社は、有害な情報の拡散によって生じるいかなる結果についても責任を負いません。
補足: HF
トランスフォーマーの HuggingFace によって使用されるフォーマットを指しますが、 Origin
InternEvo の InternLM チームによって採用されたフォーマットを指します。
InternLM2-Reward は、240 万の嗜好サンプルでトレーニングされた一連の報酬モデルで、1.8B、7B、および 20B のサイズで利用できます。これらのモデルは、チャット モデルの PPO トレーニング プロセスに適用されました。詳細については、モデル カードを参照してください。
モデル | 報酬ベンチスコア | トランス(HF) | モデルスコープ(HF) | OpenXLab(HF) | 発売日 |
---|---|---|---|---|---|
インターンLM2-1.8B-報酬 | 80.6 | ?internlm2-1_8b-報酬 | インターンlm2-1_8b-報酬 | 2024-07-19 | |
インターンLM2-7B-報酬 | 86.6 | ?internlm2-7b-報酬 | internlm2-7b-報酬 | 2024-07-19 | |
インターンLM2-20B-報酬 | 89.5 | ?internlm2-20b-報酬 | internlm2-20b-報酬 | 2024-07-19 |
長いコンテキストの処理、推論、コーディングにおける高度な機能を備えた前世代のモデル。詳細については、モデル カードを参照してください。
モデル | トランス(HF) | モデルスコープ(HF) | OpenXLab(HF) | OpenXLab(オリジン) | 発売日 |
---|---|---|---|---|---|
インターンLM2-1.8B | ?internlm2-1.8b | インターンlm2-1.8b | 2024-01-31 | ||
InternLM2-チャット-1.8B-SFT | ?internlm2-chat-1.8b-sft | internlm2-chat-1.8b-sft | 2024-01-31 | ||
InternLM2-チャット-1.8B | ?internlm2-chat-1.8b | internlm2-chat-1.8b | 2024-02-19 | ||
InternLM2-Base-7B | ?internlm2-base-7b | internlm2-base-7b | 2024-01-17 | ||
インターンLM2-7B | ?インターンlm2-7b | インターンlm2-7b | 2024-01-17 | ||
InternLM2-チャット-7B-SFT | ?internlm2-chat-7b-sft | internlm2-chat-7b-sft | 2024-01-17 | ||
インターンLM2-チャット-7B | ?internlm2-chat-7b | internlm2-chat-7b | 2024-01-17 | ||
InternLM2-Base-20B | ?internlm2-base-20b | internlm2-base-20b | 2024-01-17 | ||
インターンLM2-20B | ?インターンlm2-20b | インターンlm2-20b | 2024-01-17 | ||
InternLM2-チャット-20B-SFT | ?internlm2-chat-20b-sft | internlm2-chat-20b-sft | 2024-01-17 | ||
インターンLM2-チャット-20B | ?internlm2-chat-20b | internlm2-chat-20b | 2024-01-17 |
私たちは、オープンソース評価ツール OpenCompass を使用して、いくつかの重要なベンチマークで InternLM2.5 を評価しました。評価結果の一部を下表に示します。評価結果の詳細については、OpenCompass Leaderboard にアクセスしてください。
ベンチマーク | インターンLM2.5-7B | ラマ3-8B | Yi-1.5-9B |
---|---|---|---|
MMLU (5 ショット) | 71.6 | 66.4 | 71.6 |
CMMLU (5 ショット) | 79.1 | 51.0 | 74.1 |
BBH(3ショット) | 70.1 | 59.7 | 71.1 |
数学(4ショット) | 34.0 | 16.4 | 31.9 |
GSM8K(4ショット) | 74.8 | 54.3 | 74.5 |
GPQA(ゼロショット) | 31.3 | 31.3 | 27.8 |
ベンチマーク | インターンLM2.5-7B-チャット | ラマ3-8B-命令 | ジェマ2-9B-IT | Yi-1.5-9B-チャット | GLM-4-9B-チャット | Qwen2-7B-指示 |
---|---|---|---|---|---|---|
MMLU (5 ショット) | 72.8 | 68.4 | 70.9 | 71.0 | 71.4 | 70.8 |
CMMLU (5 ショット) | 78.0 | 53.3 | 60.3 | 74.5 | 74.5 | 80.9 |
BBH(3ショットCoT) | 71.6 | 54.4 | 68.2* | 69.6 | 69.6 | 65.0 |
MATH (0 ショット CoT) | 60.1 | 27.9 | 46.9 | 51.1 | 51.1 | 48.6 |
GSM8K(0ショットCoT) | 86.0 | 72.9 | 88.9 | 80.1 | 85.3 | 82.9 |
GPQA(ゼロショット) | 38.4 | 26.1 | 33.8 | 37.9 | 36.9 | 38.4 |
ppl
を使用します。InternLM は、LLaMA-Factory、vLLM、llama.cpp など、さまざまな有名なアップストリームおよびダウンストリーム プロジェクトをサポートしています。このサポートにより、幅広いユーザーが InternLM シリーズ モデルをより効率的かつ便利に利用できるようになります。選択したエコシステム プロジェクトのチュートリアルは、ここから入手できます。
次の章では、Transformers、ModelScope、および Web デモでの使用法に焦点を当てます。チャット モデルは、チャット アプリケーションとエージェント アプリケーションの両方をサポートするために、chatml 形式を採用しています。使用効果を確実に高めるため、Transformers または ModelScope で推論を実行する前に、インストールされているトランスフォーマー ライブラリのバージョンが次の要件を満たしていることを確認してください。
transformers >= 4.38
Transformers を使用して InternLM2.5-7B-Chat モデルをロードするには、次のコードを使用します。
import torch
from transformers import AutoTokenizer , AutoModelForCausalLM
tokenizer = AutoTokenizer . from_pretrained ( "internlm/internlm2_5-7b-chat" , trust_remote_code = True )
# Set `torch_dtype=torch.float16` to load model in float16, otherwise it will be loaded as float32 and might cause OOM Error.
model = AutoModelForCausalLM . from_pretrained ( "internlm/internlm2_5-7b-chat" , device_map = "auto" , trust_remote_code = True , torch_dtype = torch . float16 )
# (Optional) If on low resource devices, you can load model in 4-bit or 8-bit to further save GPU memory via bitsandbytes.
# InternLM 7B in 4bit will cost nearly 8GB GPU memory.
# pip install -U bitsandbytes
# 8-bit: model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto", trust_remote_code=True, load_in_8bit=True)
# 4-bit: model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto", trust_remote_code=True, load_in_4bit=True)
model = model . eval ()
response , history = model . chat ( tokenizer , "hello" , history = [])
print ( response )
# Output: Hello? How can I help you today?
response , history = model . chat ( tokenizer , "please provide three suggestions about time management" , history = history )
print ( response )
ModelScope を使用して InternLM2.5-7B-Chat モデルをロードするには、次のコードを使用します。
import torch
from modelscope import snapshot_download , AutoTokenizer , AutoModelForCausalLM
model_dir = snapshot_download ( 'Shanghai_AI_Laboratory/internlm2_5-7b-chat' )
tokenizer = AutoTokenizer . from_pretrained ( model_dir , device_map = "auto" , trust_remote_code = True )
# Set `torch_dtype=torch.float16` to load model in float16, otherwise it will be loaded as float32 and might cause OOM Error.
model = AutoModelForCausalLM . from_pretrained ( model_dir , device_map = "auto" , trust_remote_code = True , torch_dtype = torch . float16 )
# (Optional) If on low resource devices, you can load model in 4-bit or 8-bit to further save GPU memory via bitsandbytes.
# InternLM 7B in 4bit will cost nearly 8GB GPU memory.
# pip install -U bitsandbytes
# 8-bit: model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto", trust_remote_code=True, load_in_8bit=True)
# 4-bit: model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto", trust_remote_code=True, load_in_4bit=True)
model = model . eval ()
response , history = model . chat ( tokenizer , "hello" , history = [])
print ( response )
response , history = model . chat ( tokenizer , "please provide three suggestions about time management" , history = history )
print ( response )
次のコードを実行すると、フロントエンド インターフェイスを通じて InternLM Chat 7B モデルと対話できます。
pip install streamlit
pip install transformers > =4.38
streamlit run ./chat/web_demo.py
InternLM を迅速にデプロイするために LMDeploy を使用します。
わずか 4 行のコードで、 pip install lmdeploy
の後に internlm2_5-7b-chat 推論を実行できます。
from lmdeploy import pipeline
pipe = pipeline ( "internlm/internlm2_5-7b-chat" )
response = pipe ([ "Hi, pls intro yourself" , "Shanghai is" ])
print ( response )
メモリ使用量を削減するために、4 ビットの量子化モデル internlm2_5-7b-chat-4bit を提供しています。これを使用すると、次のように推論を実行できます。
from lmdeploy import pipeline
pipe = pipeline ( "internlm/internlm2_5-7b-chat-4bit" )
response = pipe ([ "Hi, pls intro yourself" , "Shanghai is" ])
print ( response )
さらに、8 ビット/4 ビット KV キャッシュ機能を個別に有効にすることができます。
from lmdeploy import pipeline , TurbomindEngineConfig
pipe = pipeline ( "internlm/internlm2_5-7b-chat-4bit" ,
backend_config = TurbomindEngineConfig ( quant_policy = 8 ))
response = pipe ([ "Hi, pls intro yourself" , "Shanghai is" ])
print ( response )
モデルのデプロイメントに関する詳細な使用法については、ガイダンスを参照してください。追加の導入チュートリアルについては、こちらを参照してください。
LMDeploy の Dynamic NTK 機能を有効にすることで、ロングコンテキストの推論能力を獲得できます。
注: 1M コンテキスト長には 4xA100-80G が必要です。
from lmdeploy import pipeline , GenerationConfig , TurbomindEngineConfig
backend_config = TurbomindEngineConfig (
rope_scaling_factor = 2.5 ,
session_len = 1048576 , # 1M context length
max_batch_size = 1 ,
cache_max_entry_count = 0.7 ,
tp = 4 ) # 4xA100-80G.
pipe = pipeline ( 'internlm/internlm2_5-7b-chat-1m' , backend_config = backend_config )
prompt = 'Use a long prompt to replace this sentence'
response = pipe ( prompt )
print ( response )
InternLM2.5-Chat モデルは、優れたツール利用能力を備えており、関数呼び出しをゼロショットで操作できます。 100以上のWebページから情報を収集して分析することもサポートします。エージェントのセクションでその他の例を参照してください。
InternLM を使用した微調整については、finetune ドキュメントを参照してください。
注:ユーザー エクスペリエンスを容易にするために、このプロジェクトのトレーニング機能全体を InternEvo に移行しました。これにより、InternLM をトレーニングするための効率的な事前トレーニングと微調整インフラが提供されます。
モデルの評価には OpenCompass を利用します。 InternLM2.5 では、標準的な客観的評価、ロングコンテキスト評価 (干し草の山の中の針)、データ汚染評価、エージェント評価、および主観的評価に主に焦点を当てています。
InternLM モデルを評価するには、OpenCompass チュートリアルのガイドラインに従ってください。通常、 Baseモデルの多肢選択式の質問にはppl
を使用し、 Chatモデルのすべての質問にはgen
使用します。
Needle in a Haystack
評価については、ドキュメントに記載されているチュートリアルを参照してください。ぜひお試しください。
データ汚染評価の詳細については、汚染評価を確認してください。
InternLM の改善と強化に尽力してくださったすべての貢献者に感謝します。コミュニティ ユーザーはプロジェクトに参加することを強くお勧めします。プロジェクトに貢献する方法については、貢献ガイドラインを参照してください。
コードは Apache-2.0 に基づいてライセンスされていますが、モデルの重みは学術研究に完全にオープンであり、無料の商用利用も許可されています。商用ライセンスを申請するには、申請フォーム(英語)/申請書表(中文)に記入してください。その他の質問やコラボレーションについては、[email protected] までご連絡ください。
@misc{cai2024internlm2,
title={InternLM2 Technical Report},
author={Zheng Cai and Maosong Cao and Haojiong Chen and Kai Chen and Keyu Chen and Xin Chen and Xun Chen and Zehui Chen and Zhi Chen and Pei Chu and Xiaoyi Dong and Haodong Duan and Qi Fan and Zhaoye Fei and Yang Gao and Jiaye Ge and Chenya Gu and Yuzhe Gu and Tao Gui and Aijia Guo and Qipeng Guo and Conghui He and Yingfan Hu and Ting Huang and Tao Jiang and Penglong Jiao and Zhenjiang Jin and Zhikai Lei and Jiaxing Li and Jingwen Li and Linyang Li and Shuaibin Li and Wei Li and Yining Li and Hongwei Liu and Jiangning Liu and Jiawei Hong and Kaiwen Liu and Kuikun Liu and Xiaoran Liu and Chengqi Lv and Haijun Lv and Kai Lv and Li Ma and Runyuan Ma and Zerun Ma and Wenchang Ning and Linke Ouyang and Jiantao Qiu and Yuan Qu and Fukai Shang and Yunfan Shao and Demin Song and Zifan Song and Zhihao Sui and Peng Sun and Yu Sun and Huanze Tang and Bin Wang and Guoteng Wang and Jiaqi Wang and Jiayu Wang and Rui Wang and Yudong Wang and Ziyi Wang and Xingjian Wei and Qizhen Weng and Fan Wu and Yingtong Xiong and Chao Xu and Ruiliang Xu and Hang Yan and Yirong Yan and Xiaogui Yang and Haochen Ye and Huaiyuan Ying and Jia Yu and Jing Yu and Yuhang Zang and Chuyu Zhang and Li Zhang and Pan Zhang and Peng Zhang and Ruijie Zhang and Shuo Zhang and Songyang Zhang and Wenjian Zhang and Wenwei Zhang and Xingcheng Zhang and Xinyue Zhang and Hui Zhao and Qian Zhao and Xiaomeng Zhao and Fengzhe Zhou and Zaida Zhou and Jingming Zhuo and Yicheng Zou and Xipeng Qiu and Yu Qiao and Dahua Lin},
year={2024},
eprint={2403.17297},
archivePrefix={arXiv},
primaryClass={cs.CL}
}