Application commerciale | ?HuggingFace | ?Mise à jour des nouvelles | ?Problèmes de signalement | Rapport technique
Chat Web | ?API | ?Modélistes
Anglais | 简体中文
rejoignez-nous sur Discord et WeChat
La série InternLM2.5 est publiée avec les fonctionnalités suivantes :
Capacité de raisonnement exceptionnelle : performances de pointe en matière de raisonnement mathématique, surpassant des modèles comme Llama3 et Gemma2-9B.
Fenêtre de contexte 1 M : presque parfaite pour trouver des aiguilles dans la botte de foin avec un contexte de 1 M de long, avec des performances de pointe sur les tâches à contexte long comme LongBench. Essayez-le avec LMDeploy pour l'inférence de contexte 1M. Plus de détails et une démo de chat sur fichier sont disponibles ici.
Utilisation renforcée de l'outil : InternLM2.5 prend en charge la collecte d'informations à partir de plus de 100 pages Web, l'implémentation correspondante sera bientôt publiée dans Lagent. InternLM2.5 offre de meilleures capacités liées à l'utilisation des outils en matière de suivi des instructions, de sélection des outils et de réflexion. Voir des exemples.
[2024.08.01] Nous publions InternLM2.5-1.8B, InternLM2.5-1.8B-Chat, InternLM2.5-20B et InternLM2.5-20B-Chat. Voir le zoo modèle ci-dessous pour le téléchargement ou les cartes modèles pour plus de détails.
[2024.07.19] Nous lançons la série de modèles de récompense InternLM2-Reward dans les tailles 1,8B, 7B et 20B. Voir le zoo modèle ci-dessous pour le téléchargement ou les cartes modèles pour plus de détails.
[2024.07.03] Nous publions InternLM2.5-7B, InternLM2.5-7B-Chat et InternLM2.5-7B-Chat-1M. Voir le zoo modèle ci-dessous pour le téléchargement ou les cartes modèles pour plus de détails.
[2024.03.26] Nous publions le rapport technique InternLM2. Voir arXiv pour plus de détails.
[2024.01.31] Nous publions InternLM2-1.8B, ainsi que le modèle de discussion associé. Ils offrent une option de déploiement moins coûteuse tout en conservant des performances de pointe.
[2024.01.23] Nous publions InternLM2-Math-7B et InternLM2-Math-20B avec pré-entraînement et points de contrôle SFT. Ils surpassent ChatGPT avec de petites tailles. Voir InternLM-Math pour plus de détails et le téléchargement.
[2024.01.17] Nous publions InternLM2-7B et InternLM2-20B et leurs modèles de discussion correspondants avec des capacités plus fortes dans toutes les dimensions. Voir le zoo modèle ci-dessous pour le téléchargement ou les cartes modèles pour plus de détails.
[2023.12.13] Les points de contrôle InternLM-7B-Chat et InternLM-20B-Chat sont mis à jour. Grâce à une stratégie de réglage améliorée, les nouveaux modèles de chat peuvent générer des réponses de meilleure qualité avec une plus grande diversité stylistique.
[2023.09.20] InternLM-20B est publié avec les versions de base et de chat.
Modèle | Transformateurs (HF) | ModèlePortée (HF) | OpenXLab(HF) | OpenXLab (Origine) | Date de sortie |
---|---|---|---|---|---|
StagiaireLM2.5-1.8B | ?internlm2_5-1_8b | internelm2_5-1_8b | 2024-08-05 | ||
StagiaireLM2.5-1.8B-Chat | ?internlm2_5-1_8b-chat | internelm2_5-1_8b-chat | 2024-08-05 | ||
StagiaireLM2.5-7B | ?internlm2_5-7b | internelm2_5-7b | 2024-07-03 | ||
StagiaireLM2.5-7B-Chat | ?internlm2_5-7b-chat | internelm2_5-7b-chat | 2024-07-03 | ||
StagiaireLM2.5-7B-Chat-1M | ?internlm2_5-7b-chat-1m | internelm2_5-7b-chat-1m | 2024-07-03 | ||
StagiaireLM2.5-20B | ?internlm2_5-20b | internelm2_5-20b | 2024-08-05 | ||
StagiaireLM2.5-20B-Chat | ?internlm2_5-20b-chat | internelm2_5-20b-chat | 2024-08-05 |
Remarques :
La version de la série InternLM2.5 contient les versions 1.8B, 7B et 20B. Les modèles 7B sont efficaces pour la recherche et les applications et les modèles 20B sont plus puissants et peuvent prendre en charge des scénarios plus complexes. La relation entre ces modèles est présentée comme suit.
Limites : Bien que nous ayons fait des efforts pour garantir la sécurité du modèle pendant le processus de formation et pour encourager le modèle à générer un texte conforme aux exigences éthiques et juridiques, le modèle peut toujours produire des résultats inattendus en raison de sa taille et de son paradigme de génération probabiliste. Par exemple, les réponses générées peuvent contenir des préjugés, de la discrimination ou d'autres contenus préjudiciables. Veuillez ne pas propager un tel contenu. Nous ne sommes pas responsables des conséquences résultant de la diffusion d’informations préjudiciables.
Suppléments : HF
fait référence au format utilisé par HuggingFace dans les transformateurs, tandis que Origin
désigne le format adopté par l'équipe InternLM dans InternEvo.
InternLM2-Reward est une série de modèles de récompense, formés sur 2,4 millions d'échantillons de préférences, disponibles en tailles 1,8B, 7B et 20B. Ces modèles ont été appliqués au processus de formation PPO de nos modèles de chat. Voir les fiches modèles pour plus de détails.
Modèle | Score du banc de récompense | Transformateurs (HF) | ModèlePortée (HF) | OpenXLab(HF) | Date de sortie |
---|---|---|---|---|---|
StagiaireLM2-1.8B-Récompense | 80,6 | ?internlm2-1_8b-récompense | internelm2-1_8b-récompense | 2024-07-19 | |
StagiaireLM2-7B-Récompense | 86,6 | ?internlm2-7b-récompense | internelm2-7b-récompense | 2024-07-19 | |
StagiaireLM2-20B-Récompense | 89,5 | ?internlm2-20b-récompense | internelm2-20b-récompense | 2024-07-19 |
Nos modèles de génération précédente dotés de capacités avancées en matière de traitement, de raisonnement et de codage de contextes longs. Voir les fiches modèles pour plus de détails.
Modèle | Transformateurs (HF) | ModèlePortée (HF) | OpenXLab(HF) | OpenXLab (Origine) | Date de sortie |
---|---|---|---|---|---|
StagiaireLM2-1.8B | ?internlm2-1.8b | internelm2-1.8b | 2024-01-31 | ||
StagiaireLM2-Chat-1.8B-SFT | ?internlm2-chat-1.8b-sft | internelm2-chat-1.8b-sft | 2024-01-31 | ||
StagiaireLM2-Chat-1.8B | ?internlm2-chat-1.8b | internelm2-chat-1.8b | 2024-02-19 | ||
StagiaireLM2-Base-7B | ?internlm2-base-7b | internelm2-base-7b | 2024-01-17 | ||
StagiaireLM2-7B | ?internlm2-7b | stagiairelm2-7b | 2024-01-17 | ||
StagiaireLM2-Chat-7B-SFT | ?internlm2-chat-7b-sft | internelm2-chat-7b-sft | 2024-01-17 | ||
StagiaireLM2-Chat-7B | ?internlm2-chat-7b | internelm2-chat-7b | 2024-01-17 | ||
StagiaireLM2-Base-20B | ?internlm2-base-20b | internelm2-base-20b | 2024-01-17 | ||
StagiaireLM2-20B | ?internlm2-20b | stagiairelm2-20b | 2024-01-17 | ||
StagiaireLM2-Chat-20B-SFT | ?internlm2-chat-20b-sft | internelm2-chat-20b-sft | 2024-01-17 | ||
StagiaireLM2-Chat-20B | ?internlm2-chat-20b | internelm2-chat-20b | 2024-01-17 |
Nous avons évalué InternLM2.5 sur plusieurs critères importants à l'aide de l'outil d'évaluation open source OpenCompass. Certains des résultats de l'évaluation sont présentés dans le tableau ci-dessous. Vous êtes invités à visiter le classement OpenCompass pour plus de résultats d’évaluation.
Référence | StagiaireLM2.5-7B | Lama3-8B | Yi-1.5-9B |
---|---|---|---|
MMLU (5 coups) | 71,6 | 66,4 | 71,6 |
CMMLU (5 coups) | 79.1 | 51,0 | 74.1 |
BBH (3 plans) | 70.1 | 59,7 | 71.1 |
MATHÉMATIQUES (4 plans) | 34,0 | 16.4 | 31,9 |
GSM8K (4 coups) | 74,8 | 54.3 | 74,5 |
GPQA (0-coup) | 31.3 | 31.3 | 27,8 |
Référence | StagiaireLM2.5-7B-Chat | Lama3-8B-Instruire | Gemma2-9B-IT | Yi-1.5-9B-Chat | GLM-4-9B-Chat | Qwen2-7B-Instruction |
---|---|---|---|---|---|---|
MMLU (5 coups) | 72,8 | 68,4 | 70,9 | 71,0 | 71.4 | 70,8 |
CMMLU (5 coups) | 78,0 | 53.3 | 60,3 | 74,5 | 74,5 | 80,9 |
BBH (CoT à 3 coups) | 71,6 | 54,4 | 68,2* | 69,6 | 69,6 | 65,0 |
MATH (CoT 0-shot) | 60,1 | 27.9 | 46,9 | 51.1 | 51.1 | 48,6 |
GSM8K (CoT 0 coup) | 86,0 | 72,9 | 88,9 | 80,1 | 85,3 | 82,9 |
GPQA (0-coup) | 38.4 | 26.1 | 33,8 | 37,9 | 36,9 | 38.4 |
ppl
pour l'évaluation MCQ sur le modèle de base.InternLM prend en charge un large éventail de projets bien connus en amont et en aval, tels que LLaMA-Factory, vLLM, lama.cpp, etc. Cette prise en charge permet à un large éventail d'utilisateurs d'utiliser les modèles de la série InternLM de manière plus efficace et plus pratique. Des didacticiels pour les projets d'écosystème sélectionnés sont disponibles ici pour votre commodité.
Dans les chapitres suivants, nous nous concentrerons sur les utilisations avec les démos Transformers, ModelScope et Web. Les modèles de chat adoptent le format chatml pour prendre en charge à la fois les applications de chat et d'agent. Pour garantir un meilleur effet d'utilisation, veuillez vous assurer que la version de la bibliothèque de transformateurs installée répond aux exigences suivantes avant d'effectuer une inférence avec Transformers ou ModelScope :
transformers >= 4.38
Pour charger le modèle InternLM2.5-7B-Chat à l'aide de Transformers, utilisez le code suivant :
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 )
Pour charger le modèle InternLM2.5-7B-Chat à l'aide de ModelScope, utilisez le code suivant :
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 )
Vous pouvez interagir avec le modèle InternLM Chat 7B via une interface frontale en exécutant le code suivant :
pip install streamlit
pip install transformers > =4.38
streamlit run ./chat/web_demo.py
Nous utilisons LMDeploy pour un déploiement rapide d'InternLM.
Avec seulement 4 lignes de codes, vous pouvez effectuer une inférence internlm2_5-7b-chat après pip install lmdeploy
.
from lmdeploy import pipeline
pipe = pipeline ( "internlm/internlm2_5-7b-chat" )
response = pipe ([ "Hi, pls intro yourself" , "Shanghai is" ])
print ( response )
Pour réduire l'empreinte mémoire, nous proposons un modèle quantifié 4 bits internlm2_5-7b-chat-4bit, avec lequel l'inférence peut être effectuée comme suit :
from lmdeploy import pipeline
pipe = pipeline ( "internlm/internlm2_5-7b-chat-4bit" )
response = pipe ([ "Hi, pls intro yourself" , "Shanghai is" ])
print ( response )
De plus, vous pouvez activer indépendamment la fonction de cache KV 8 bits/4 bits :
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 )
Veuillez vous référer aux instructions pour plus d'utilisations sur le déploiement de modèles. Pour des didacticiels de déploiement supplémentaires, n'hésitez pas à explorer ici.
En activant la fonctionnalité Dynamic NTK de LMDeploy, vous pouvez acquérir la puissance d'inférence à contexte long.
Remarque : une longueur de contexte de 1 M nécessite 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 )
Les modèles InternLM2.5-Chat ont d'excellentes capacités d'utilisation des outils et peuvent fonctionner avec des appels de fonction de manière zéro. Il prend également en charge la réalisation d'analyses en collectant des informations à partir de plus de 100 pages Web. Voir plus d’exemples dans la section agent.
Veuillez vous référer à la documentation de mise au point pour un réglage précis avec InternLM.
Remarque : Nous avons migré l'ensemble des fonctionnalités de formation de ce projet vers InternEvo pour une expérience utilisateur plus facile, ce qui fournit une pré-formation efficace et un réglage précis de l'infrastructure pour la formation InternLM.
Nous utilisons OpenCompass pour l'évaluation des modèles. Dans InternLM2.5, nous nous concentrons principalement sur l'évaluation objective standard, l'évaluation de contexte long (une aiguille dans une botte de foin), l'évaluation de la contamination des données, l'évaluation des agents et l'évaluation subjective.
Pour évaluer le modèle InternLM, veuillez suivre les directives du didacticiel OpenCompass. En règle générale, nous utilisons ppl
pour les questions à choix multiples sur le modèle de base et gen
pour toutes les questions sur le modèle Chat .
Pour l’évaluation Needle in a Haystack
, reportez-vous au didacticiel fourni dans la documentation. N'hésitez pas à l'essayer.
Pour en savoir plus sur l’évaluation de la contamination des données, veuillez consulter l’évaluation de la contamination.
Nous apprécions tous les contributeurs pour leurs efforts pour améliorer et améliorer InternLM. Les utilisateurs de la communauté sont fortement encouragés à participer au projet. Veuillez vous référer aux directives de contribution pour savoir comment contribuer au projet.
Le code est sous licence Apache-2.0, tandis que les poids des modèles sont entièrement ouverts à la recherche universitaire et permettent également une utilisation commerciale gratuite . Pour demander une licence commerciale, veuillez remplir le formulaire de demande (anglais)/申请表(中文). Pour d’autres questions ou collaborations, veuillez contacter [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}
}