Kommerzielle Anwendung | ?HuggingFace | ?Neuigkeiten aktualisieren | ?Probleme melden | Technischer Bericht
Chat-Web | ?API | ?Modellierer
Englisch | 简体中文
Begleiten Sie uns auf Discord und WeChat
Die InternLM2.5-Serie wird mit den folgenden Funktionen veröffentlicht:
Hervorragende Denkfähigkeit : Modernste Leistung beim mathematischen Denken, die Modelle wie Llama3 und Gemma2-9B übertrifft.
1M-Kontextfenster : Nahezu perfekt beim Auffinden von Nadeln im Heuhaufen mit 1M-langem Kontext, mit führender Leistung bei Aufgaben mit langem Kontext wie LongBench. Versuchen Sie es mit LMDeploy für 1M-Kontext-Inferenz. Weitere Details und eine Datei-Chat-Demo finden Sie hier.
Stärkere Tool-Nutzung : InternLM2.5 unterstützt das Sammeln von Informationen von mehr als 100 Webseiten, die entsprechende Implementierung wird in Kürze in Lagent veröffentlicht. InternLM2.5 verfügt über bessere Fähigkeiten im Zusammenhang mit der Werkzeugnutzung bei der Befolgung von Anweisungen, der Werkzeugauswahl und der Reflexion. Siehe Beispiele.
[01.08.2024] Wir veröffentlichen InternLM2.5-1.8B, InternLM2.5-1.8B-Chat, InternLM2.5-20B und InternLM2.5-20B-Chat. Weitere Informationen finden Sie unten im Modellzoo zum Herunterladen oder in den Modellkarten.
[19.07.2024] Wir veröffentlichen die InternLM2-Reward-Serie von Belohnungsmodellen in den Größen 1,8B, 7B und 20B. Weitere Informationen finden Sie unten im Modellzoo zum Herunterladen oder in den Modellkarten.
[03.07.2024] Wir veröffentlichen InternLM2.5-7B, InternLM2.5-7B-Chat und InternLM2.5-7B-Chat-1M. Weitere Informationen finden Sie unten im Modellzoo zum Herunterladen oder in den Modellkarten.
[26.03.2024] Wir veröffentlichen den technischen Bericht zu InternLM2. Weitere Informationen finden Sie unter arXiv.
[31.01.2024] Wir veröffentlichen InternLM2-1.8B zusammen mit dem zugehörigen Chat-Modell. Sie bieten eine kostengünstigere Bereitstellungsoption bei gleichzeitiger Beibehaltung der Spitzenleistung.
[23.01.2024] Wir veröffentlichen InternLM2-Math-7B und InternLM2-Math-20B mit Pretraining und SFT-Checkpoints. Sie übertreffen ChatGPT mit kleinen Größen. Einzelheiten und Download finden Sie unter InternLM-Math.
[17.01.2024] Wir veröffentlichen InternLM2-7B und InternLM2-20B und ihre entsprechenden Chat-Modelle mit stärkeren Funktionen in allen Dimensionen. Weitere Informationen finden Sie unten im Modellzoo zum Herunterladen oder in den Modellkarten.
[13.12.2023] Die Kontrollpunkte InternLM-7B-Chat und InternLM-20B-Chat werden aktualisiert. Mit einer verbesserten Feinabstimmungsstrategie können die neuen Chat-Modelle qualitativ hochwertigere Antworten mit größerer stilistischer Vielfalt generieren.
[20.09.2023] InternLM-20B wird mit Basis- und Chat-Versionen veröffentlicht.
Modell | Transformatoren (HF) | ModelScope(HF) | OpenXLab(HF) | OpenXLab(Origin) | Veröffentlichungsdatum |
---|---|---|---|---|---|
InternLM2.5-1.8B | ?internlm2_5-1_8b | internlm2_5-1_8b | 05.08.2024 | ||
InternLM2.5-1.8B-Chat | ?internlm2_5-1_8b-chat | internlm2_5-1_8b-chat | 05.08.2024 | ||
InternLM2.5-7B | ?internlm2_5-7b | internlm2_5-7b | 03.07.2024 | ||
InternLM2.5-7B-Chat | ?internlm2_5-7b-chat | internlm2_5-7b-chat | 03.07.2024 | ||
InternLM2.5-7B-Chat-1M | ?internlm2_5-7b-chat-1m | internlm2_5-7b-chat-1m | 03.07.2024 | ||
InternLM2.5-20B | ?internlm2_5-20b | internlm2_5-20b | 05.08.2024 | ||
InternLM2.5-20B-Chat | ?internlm2_5-20b-chat | internlm2_5-20b-chat | 05.08.2024 |
Hinweise:
Die Version der InternLM2.5-Serie enthält die Versionen 1.8B, 7B und 20B. 7B-Modelle sind effizient für Forschung und Anwendung und 20B-Modelle sind leistungsfähiger und können komplexere Szenarien unterstützen. Die Beziehung dieser Modelle wird wie folgt dargestellt.
Einschränkungen: Obwohl wir uns bemüht haben, die Sicherheit des Modells während des Trainingsprozesses zu gewährleisten und das Modell zu ermutigen, Text zu generieren, der ethischen und rechtlichen Anforderungen entspricht, kann das Modell aufgrund seiner Größe und seines probabilistischen Generierungsparadigmas dennoch unerwartete Ergebnisse liefern. Beispielsweise können die generierten Antworten Vorurteile, Diskriminierung oder andere schädliche Inhalte enthalten. Bitte verbreiten Sie solche Inhalte nicht. Wir haften nicht für Folgen, die aus der Verbreitung schädlicher Informationen entstehen.
Ergänzungen: HF
bezieht sich auf das von HuggingFace in Transformern verwendete Format, während Origin
das vom InternLM-Team in InternEvo übernommene Format bezeichnet.
InternLM2-Reward ist eine Reihe von Belohnungsmodellen, die auf 2,4 Millionen Präferenzstichproben trainiert wurden und in den Größen 1,8B, 7B und 20B erhältlich sind. Diese Modelle wurden auf den PPO-Trainingsprozess unserer Chat-Modelle angewendet. Weitere Einzelheiten finden Sie auf den Modellkarten.
Modell | RewardBench-Score | Transformatoren (HF) | ModelScope(HF) | OpenXLab(HF) | Veröffentlichungsdatum |
---|---|---|---|---|---|
InternLM2-1.8B-Belohnung | 80,6 | ?internlm2-1_8b-reward | internlm2-1_8b-Belohnung | 19.07.2024 | |
InternLM2-7B-Belohnung | 86,6 | ?internlm2-7b-reward | internlm2-7b-Belohnung | 19.07.2024 | |
InternLM2-20B-Belohnung | 89,5 | ?internlm2-20b-reward | internlm2-20b-Belohnung | 19.07.2024 |
Unsere Modelle der vorherigen Generation mit erweiterten Funktionen in den Bereichen Langkontextverarbeitung, Argumentation und Codierung. Weitere Einzelheiten finden Sie auf den Modellkarten.
Modell | Transformatoren (HF) | ModelScope(HF) | OpenXLab(HF) | OpenXLab(Origin) | Veröffentlichungsdatum |
---|---|---|---|---|---|
InternLM2-1.8B | ?internlm2-1.8b | internlm2-1.8b | 31.01.2024 | ||
InternLM2-Chat-1.8B-SFT | ?internlm2-chat-1.8b-sft | internlm2-chat-1.8b-sft | 31.01.2024 | ||
InternLM2-Chat-1.8B | ?internlm2-chat-1.8b | internlm2-chat-1.8b | 19.02.2024 | ||
InternLM2-Base-7B | ?internlm2-base-7b | internlm2-base-7b | 17.01.2024 | ||
PraktikantLM2-7B | ?internlm2-7b | internlm2-7b | 17.01.2024 | ||
InternLM2-Chat-7B-SFT | ?internlm2-chat-7b-sft | internlm2-chat-7b-sft | 17.01.2024 | ||
InternLM2-Chat-7B | ?internlm2-chat-7b | internlm2-chat-7b | 17.01.2024 | ||
InternLM2-Base-20B | ?internlm2-base-20b | internlm2-base-20b | 17.01.2024 | ||
PraktikantLM2-20B | ?internlm2-20b | internlm2-20b | 17.01.2024 | ||
InternLM2-Chat-20B-SFT | ?internlm2-chat-20b-sft | internlm2-chat-20b-sft | 17.01.2024 | ||
InternLM2-Chat-20B | ?internlm2-chat-20b | internlm2-chat-20b | 17.01.2024 |
Wir haben InternLM2.5 anhand mehrerer wichtiger Benchmarks mit dem Open-Source-Bewertungstool OpenCompass bewertet. Einige der Bewertungsergebnisse sind in der folgenden Tabelle aufgeführt. Für weitere Bewertungsergebnisse können Sie gerne das OpenCompass Leaderboard besuchen.
Benchmark | InternLM2.5-7B | Lama3-8B | Yi-1,5-9B |
---|---|---|---|
MMLU (5-Schuss) | 71,6 | 66,4 | 71,6 |
CMMLU (5-Schuss) | 79.1 | 51,0 | 74.1 |
BBH (3-Schuss) | 70.1 | 59,7 | 71.1 |
MATH (4-Schuss) | 34,0 | 16.4 | 31.9 |
GSM8K (4-Schuss) | 74,8 | 54.3 | 74,5 |
GPQA (0-Schuss) | 31.3 | 31.3 | 27.8 |
Benchmark | InternLM2.5-7B-Chat | Lama3-8B-Anleitung | Gemma2-9B-IT | Yi-1,5-9B-Chat | GLM-4-9B-Chat | Qwen2-7B-Anleitung |
---|---|---|---|---|---|---|
MMLU (5-Schuss) | 72,8 | 68,4 | 70.9 | 71,0 | 71.4 | 70,8 |
CMMLU (5-Schuss) | 78,0 | 53.3 | 60.3 | 74,5 | 74,5 | 80,9 |
BBH (3-Schuss-CoT) | 71,6 | 54.4 | 68,2* | 69,6 | 69,6 | 65,0 |
MATH (0-Schuss-CoT) | 60.1 | 27.9 | 46.9 | 51.1 | 51.1 | 48,6 |
GSM8K (0-Schuss-CoT) | 86,0 | 72,9 | 88,9 | 80.1 | 85,3 | 82,9 |
GPQA (0-Schuss) | 38.4 | 26.1 | 33.8 | 37.9 | 36.9 | 38.4 |
ppl
für die MCQ-Bewertung auf dem Basismodell.InternLM unterstützt eine Vielzahl bekannter Upstream- und Downstream-Projekte wie LLaMA-Factory, vLLM, llama.cpp und mehr. Diese Unterstützung ermöglicht es einem breiten Anwenderspektrum, die Modelle der InternLM-Serie effizienter und komfortabler zu nutzen. Zu Ihrer Bequemlichkeit stehen hier Tutorials für ausgewählte Ökosystemprojekte zur Verfügung.
In den folgenden Kapiteln konzentrieren wir uns auf die Verwendung mit Transformers, ModelScope und Web-Demos. Die Chat-Modelle verwenden das Chatml-Format, um sowohl Chat- als auch Agentenanwendungen zu unterstützen. Um einen besseren Nutzungseffekt zu gewährleisten, stellen Sie bitte sicher, dass die installierte Transformers-Bibliotheksversion die folgenden Anforderungen erfüllt, bevor Sie eine Inferenz mit Transformers oder ModelScope durchführen:
transformers >= 4.38
Um das InternLM2.5-7B-Chat-Modell mit Transformers zu laden, verwenden Sie den folgenden Code:
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 )
Um das InternLM2.5-7B-Chat-Modell mit ModelScope zu laden, verwenden Sie den folgenden Code:
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 )
Sie können mit dem InternLM Chat 7B-Modell über eine Frontend-Schnittstelle interagieren, indem Sie den folgenden Code ausführen:
pip install streamlit
pip install transformers > =4.38
streamlit run ./chat/web_demo.py
Wir verwenden LMDeploy für die schnelle Bereitstellung von InternLM.
Mit nur 4 Codezeilen können Sie nach pip install lmdeploy
eine internlm2_5-7b-chat-Inferenz durchführen.
from lmdeploy import pipeline
pipe = pipeline ( "internlm/internlm2_5-7b-chat" )
response = pipe ([ "Hi, pls intro yourself" , "Shanghai is" ])
print ( response )
Um den Speicherbedarf zu reduzieren, bieten wir das 4-Bit-quantisierte Modell internlm2_5-7b-chat-4bit an, mit dem die Inferenz wie folgt durchgeführt werden kann:
from lmdeploy import pipeline
pipe = pipeline ( "internlm/internlm2_5-7b-chat-4bit" )
response = pipe ([ "Hi, pls intro yourself" , "Shanghai is" ])
print ( response )
Darüber hinaus können Sie die 8-Bit-/4-Bit-KV-Cache-Funktion unabhängig aktivieren:
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 )
Weitere Verwendungsmöglichkeiten zur Modellbereitstellung finden Sie in der Anleitung. Weitere Bereitstellungs-Tutorials finden Sie hier.
Durch die Aktivierung der Dynamic NTK-Funktion von LMDeploy können Sie die Leistungsfähigkeit der Langkontext-Inferenz erlangen.
Hinweis: Für eine Kontextlänge von 1 Mio. sind 4xA100-80G erforderlich.
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-Modelle verfügen über hervorragende Werkzeugnutzungsmöglichkeiten und können mit Funktionsaufrufen im Zero-Shot-Verfahren arbeiten. Es unterstützt auch die Durchführung von Analysen durch das Sammeln von Informationen von mehr als 100 Webseiten. Weitere Beispiele finden Sie im Abschnitt „Agenten“.
Informationen zur Feinabstimmung mit InternLM finden Sie in den Feinabstimmungsdokumenten.
Hinweis: Wir haben die gesamte Schulungsfunktionalität in diesem Projekt zur einfacheren Benutzererfahrung auf InternEvo migriert, das eine effiziente Vorschulung und Feinabstimmung der Infrastruktur für die Schulung von InternLM bietet.
Wir nutzen OpenCompass zur Modellbewertung. In InternLM2.5 konzentrieren wir uns hauptsächlich auf die standardmäßige objektive Bewertung, die Langzeitkontextbewertung (die Nadel im Heuhaufen), die Bewertung der Datenkontamination, die Agentenbewertung und die subjektive Bewertung.
Um das InternLM-Modell zu evaluieren, befolgen Sie bitte die Richtlinien im OpenCompass-Tutorial. Normalerweise verwenden wir ppl
für Multiple-Choice-Fragen im Basismodell und gen
für alle Fragen im Chat- Modell.
Informationen zur Evaluierung Needle in a Haystack
finden Sie im Tutorial in der Dokumentation. Probieren Sie es gerne aus.
Weitere Informationen zur Datenkontaminationsbewertung finden Sie in der Kontaminationsbewertung.
Wir danken allen Mitwirkenden für ihre Bemühungen, InternLM zu verbessern und zu erweitern. Community-Benutzer werden dringend aufgefordert, sich an dem Projekt zu beteiligen. Bitte beachten Sie die Beitragsrichtlinien für Anweisungen, wie Sie zum Projekt beitragen können.
Der Code ist unter Apache-2.0 lizenziert, während Modellgewichte vollständig für die akademische Forschung zugänglich sind und auch eine kostenlose kommerzielle Nutzung ermöglichen. Um eine kommerzielle Lizenz zu beantragen, füllen Sie bitte das Antragsformular (Englisch)/申请表(中文) aus. Für weitere Fragen oder Kooperationen wenden Sie sich bitte an [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}
}