Aplicação Comercial | ?AbraçandoFace | ?Atualizar notícias | ?Relatando problemas | Relatório Técnico
Bate-papo na Web | ?API | ?Modeladores
Inglês | 简体中文
junte-se a nós no Discord e WeChat
A série InternLM2.5 é lançada com os seguintes recursos:
Excelente capacidade de raciocínio : Desempenho de última geração em raciocínio matemático, superando modelos como Llama3 e Gemma2-9B.
Janela de contexto de 1 milhão : quase perfeita para encontrar agulhas no palheiro com contexto de 1 milhão de comprimento, com desempenho líder em tarefas de contexto longo, como LongBench. Experimente com LMDeploy para inferência de contexto de 1 milhão. Mais detalhes e um arquivo de demonstração do chat podem ser encontrados aqui.
Uso mais forte da ferramenta : InternLM2.5 suporta a coleta de informações de mais de 100 páginas da web, a implementação correspondente será lançada em Lagent em breve. O InternLM2.5 possui melhores recursos relacionados à utilização de ferramentas no acompanhamento de instruções, seleção e reflexão de ferramentas. Veja exemplos.
[2024.08.01] Lançamos InternLM2.5-1.8B, InternLM2.5-1.8B-Chat, InternLM2.5-20B e InternLM2.5-20B-Chat. Veja o zoológico modelo abaixo para download ou cartões de modelo para mais detalhes.
[2024.07.19] Lançamos a série InternLM2-Reward de modelos de recompensa nos tamanhos 1.8B, 7B e 20B. Veja o zoológico modelo abaixo para download ou cartões de modelo para mais detalhes.
[2024.07.03] Lançamos InternLM2.5-7B, InternLM2.5-7B-Chat e InternLM2.5-7B-Chat-1M. Veja o zoológico modelo abaixo para download ou cartões de modelo para mais detalhes.
[2024.03.26] Divulgamos relatório técnico do InternLM2. Consulte arXiv para obter detalhes.
[2024.01.31] Lançamos o InternLM2-1.8B, junto com o modelo de chat associado. Eles fornecem uma opção de implantação mais barata, mantendo o desempenho líder.
[2024.01.23] Lançamos InternLM2-Math-7B e InternLM2-Math-20B com pré-treinamento e pontos de verificação SFT. Eles superam o ChatGPT com tamanhos pequenos. Consulte InternLM-Math para obter detalhes e download.
[2024.01.17] Lançamos InternLM2-7B e InternLM2-20B e seus modelos de chat correspondentes com capacidades mais fortes em todas as dimensões. Veja o zoológico modelo abaixo para download ou cartões de modelo para mais detalhes.
[2023.12.13] Os pontos de verificação InternLM-7B-Chat e InternLM-20B-Chat foram atualizados. Com uma estratégia de ajuste melhorada, os novos modelos de chat podem gerar respostas de maior qualidade com maior diversidade estilística.
[2023.09.20] InternLM-20B é lançado com versões base e chat.
Modelo | Transformadores (HF) | ModelScope(HF) | OpenXLab(HF) | OpenXLab (Origem) | Data de lançamento |
---|---|---|---|---|---|
EstagiárioLM2.5-1.8B | ?internolm2_5-1_8b | estagiáriolm2_5-1_8b | 05/08/2024 | ||
EstagiárioLM2.5-1.8B-Chat | ?internlm2_5-1_8b-chat | estagiáriolm2_5-1_8b-chat | 05/08/2024 | ||
EstagiárioLM2.5-7B | ?internolm2_5-7b | estagiáriolm2_5-7b | 03/07/2024 | ||
EstagiárioLM2.5-7B-Chat | ?internlm2_5-7b-chat | estagiáriolm2_5-7b-chat | 03/07/2024 | ||
EstagiárioLM2.5-7B-Chat-1M | ?internlm2_5-7b-chat-1m | estagiáriolm2_5-7b-chat-1m | 03/07/2024 | ||
EstagiárioLM2.5-20B | ?internolm2_5-20b | estagiáriolm2_5-20b | 05/08/2024 | ||
EstagiárioLM2.5-20B-Chat | ?internlm2_5-20b-chat | estagiáriolm2_5-20b-chat | 05/08/2024 |
Notas:
O lançamento da série InternLM2.5 contém versões 1.8B, 7B e 20B. Os modelos 7B são eficientes para pesquisa e aplicação e os modelos 20B são mais poderosos e podem suportar cenários mais complexos. A relação desses modelos é mostrada a seguir.
Limitações: Embora tenhamos feito esforços para garantir a segurança do modelo durante o processo de treinamento e para incentivar o modelo a gerar texto que atenda aos requisitos éticos e legais, o modelo ainda pode produzir resultados inesperados devido ao seu tamanho e paradigma de geração probabilística. Por exemplo, as respostas geradas podem conter preconceitos, discriminação ou outros conteúdos prejudiciais. Por favor, não propague tal conteúdo. Não nos responsabilizamos por quaisquer consequências resultantes da divulgação de informações prejudiciais.
Suplementos: HF
refere-se ao formato utilizado pelo HuggingFace nos transformadores, enquanto Origin
denota o formato adotado pela equipe InternLM no InternEvo.
InternLM2-Reward é uma série de modelos de recompensa, treinados em 2,4 milhões de amostras de preferência, disponíveis nos tamanhos 1,8B, 7B e 20B. Esses modelos foram aplicados ao processo de treinamento PPO de nossos modelos de chat. Consulte os cartões de modelo para obter mais detalhes.
Modelo | Pontuação do RewardBench | Transformadores (HF) | ModelScope(HF) | OpenXLab(HF) | Data de lançamento |
---|---|---|---|---|---|
EstagiárioLM2-1.8B-Recompensa | 80,6 | ?internlm2-1_8b-recompensa | estagiário2-1_8b-recompensa | 19/07/2024 | |
EstagiárioLM2-7B-Recompensa | 86,6 | ?internlm2-7b-recompensa | recompensa internalm2-7b | 19/07/2024 | |
EstagiárioLM2-20B-Recompensa | 89,5 | ?internlm2-20b-recompensa | recompensa internalm2-20b | 19/07/2024 |
Nossos modelos da geração anterior com recursos avançados em processamento, raciocínio e codificação de longo contexto. Consulte os cartões de modelo para obter mais detalhes.
Modelo | Transformadores (HF) | ModelScope(HF) | OpenXLab(HF) | OpenXLab (Origem) | Data de lançamento |
---|---|---|---|---|---|
EstagiárioLM2-1.8B | ?internolm2-1.8b | estagiáriolm2-1.8b | 31/01/2024 | ||
EstagiárioLM2-Chat-1.8B-SFT | ?internlm2-chat-1.8b-sft | estagiáriolm2-chat-1.8b-sft | 31/01/2024 | ||
EstagiárioLM2-Chat-1.8B | ?internlm2-chat-1.8b | internolm2-chat-1.8b | 19/02/2024 | ||
EstagiárioLM2-Base-7B | ?internlm2-base-7b | internolm2-base-7b | 17/01/2024 | ||
EstagiárioLM2-7B | ?internolm2-7b | estagiáriolm2-7b | 17/01/2024 | ||
EstagiárioLM2-Chat-7B-SFT | ?internlm2-chat-7b-sft | estagiáriolm2-chat-7b-sft | 17/01/2024 | ||
EstagiárioLM2-Chat-7B | ?internlm2-chat-7b | estagiáriolm2-chat-7b | 17/01/2024 | ||
EstagiárioLM2-Base-20B | ?internlm2-base-20b | internolm2-base-20b | 17/01/2024 | ||
EstagiárioLM2-20B | ?internolm2-20b | estagiáriolm2-20b | 17/01/2024 | ||
EstagiárioLM2-Chat-20B-SFT | ?internlm2-chat-20b-sft | estagiáriolm2-chat-20b-sft | 17/01/2024 | ||
EstagiárioLM2-Chat-20B | ?internlm2-chat-20b | estagiáriolm2-chat-20b | 17/01/2024 |
Avaliamos o InternLM2.5 em vários benchmarks importantes usando a ferramenta de avaliação de código aberto OpenCompass. Alguns dos resultados da avaliação são mostrados na tabela abaixo. Você está convidado a visitar o OpenCompass Leaderboard para obter mais resultados de avaliação.
Referência | EstagiárioLM2.5-7B | Lhama3-8B | Yi-1.5-9B |
---|---|---|---|
MMLU (5 tiros) | 71,6 | 66,4 | 71,6 |
CMMLU (5 fotos) | 79,1 | 51,0 | 74,1 |
BBH (3 tiros) | 70,1 | 59,7 | 71,1 |
MATEMÁTICA (4 tiros) | 34,0 | 16.4 | 31,9 |
GSM8K (4 fotos) | 74,8 | 54,3 | 74,5 |
GPQA (0 disparo) | 31.3 | 31.3 | 27,8 |
Referência | EstagiárioLM2.5-7B-Chat | Llama3-8B-Instrução | Gemma2-9B-IT | Yi-1.5-9B-Bate-papo | GLM-4-9B-Bate-papo | Qwen2-7B-Instrução |
---|---|---|---|---|---|---|
MMLU (5 tiros) | 72,8 | 68,4 | 70,9 | 71,0 | 71,4 | 70,8 |
CMMLU (5 fotos) | 78,0 | 53,3 | 60,3 | 74,5 | 74,5 | 80,9 |
BBH (CoT de 3 doses) | 71,6 | 54,4 | 68,2* | 69,6 | 69,6 | 65,0 |
MATEMÁTICA (CoT de 0 tiros) | 60,1 | 27,9 | 46,9 | 51.1 | 51.1 | 48,6 |
GSM8K (CoT de 0 disparos) | 86,0 | 72,9 | 88,9 | 80,1 | 85,3 | 82,9 |
GPQA (0 disparo) | 38,4 | 26.1 | 33,8 | 37,9 | 36,9 | 38,4 |
ppl
para a avaliação MCQ no modelo básico.InternLM oferece suporte a uma ampla gama de projetos upstream e downstream bem conhecidos, como LLaMA-Factory, vLLM, llama.cpp e muito mais. Este suporte permite que um amplo espectro de usuários utilize os modelos da série InternLM de forma mais eficiente e conveniente. Tutoriais para projetos de ecossistemas selecionados estão disponíveis aqui para sua conveniência.
Nos capítulos seguintes, focaremos nos usos com Transformers, ModelScope e demonstrações da Web. Os modelos de chat adotam o formato chatml para oferecer suporte a aplicativos de chat e de agente. Para garantir um melhor efeito de uso, certifique-se de que a versão da biblioteca de transformadores instalada atenda aos seguintes requisitos antes de realizar inferência com Transformers ou ModelScope:
transformers >= 4.38
Para carregar o modelo InternLM2.5-7B-Chat usando Transformers, use o seguinte código:
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 )
Para carregar o modelo InternLM2.5-7B-Chat usando ModelScope, use o seguinte código:
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 )
Você pode interagir com o modelo InternLM Chat 7B por meio de uma interface frontend executando o seguinte código:
pip install streamlit
pip install transformers > =4.38
streamlit run ./chat/web_demo.py
Usamos LMDeploy para implantação rápida do InternLM.
Com apenas 4 linhas de código, você pode realizar inferência internlm2_5-7b-chat apó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 )
Para reduzir o consumo de memória, oferecemos o modelo quantizado de 4 bits internlm2_5-7b-chat-4bit, com o qual a inferência pode ser conduzida da seguinte forma:
from lmdeploy import pipeline
pipe = pipeline ( "internlm/internlm2_5-7b-chat-4bit" )
response = pipe ([ "Hi, pls intro yourself" , "Shanghai is" ])
print ( response )
Além disso, você pode ativar de forma independente o recurso de cache KV de 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 )
Consulte a orientação para obter mais usos sobre a implantação do modelo. Para tutoriais de implantação adicionais, sinta-se à vontade para explorar aqui.
Ao ativar o recurso Dynamic NTK do LMDeploy, você pode adquirir o poder de inferência de contexto longo.
Nota: O comprimento de contexto de 1M requer 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 )
Os modelos InternLM2.5-Chat possuem excelentes recursos de utilização de ferramentas e podem trabalhar com chamadas de função de maneira imediata. Ele também oferece suporte à realização de análises coletando informações de mais de 100 páginas da web. Veja mais exemplos na seção agente.
Consulte a documentação de ajuste fino para fazer o ajuste fino com o InternLM.
Observação: migramos toda a funcionalidade de treinamento deste projeto para o InternEvo para facilitar a experiência do usuário, que fornece pré-treinamento eficiente e infraestrutura de ajuste fino para o treinamento do InternLM.
Utilizamos OpenCompass para avaliação de modelos. No InternLM2.5, nos concentramos principalmente na avaliação objetiva padrão, avaliação de longo contexto (agulha no palheiro), avaliação de contaminação de dados, avaliação de agente e avaliação subjetiva.
Para avaliar o modelo InternLM, siga as orientações do tutorial OpenCompass. Normalmente, usamos ppl
para questões de múltipla escolha no modelo Base e gen
para todas as questões no modelo Chat .
Para a avaliação Needle in a Haystack
, consulte o tutorial fornecido na documentação. Sinta-se à vontade para experimentar.
Para saber mais sobre avaliação de contaminação de dados, verifique a avaliação de contaminação.
Agradecemos a todos os colaboradores por seus esforços para melhorar e aprimorar o InternLM. Os usuários da comunidade são altamente incentivados a participar do projeto. Consulte as diretrizes de contribuição para obter instruções sobre como contribuir para o projeto.
O código é licenciado sob Apache-2.0, enquanto os pesos dos modelos são totalmente abertos para pesquisas acadêmicas e também permitem uso comercial gratuito . Para solicitar uma licença comercial, preencha o formulário de inscrição (inglês)/申请表(中文). Para outras dúvidas ou colaborações, entre em contato com [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}
}