项目介绍:InternLM2-7B
背景和简介
InternLM是一个致力于推动自然语言处理技术的项目。进入第二代,InternLM2 发展出了7B和20B这两个不同量级的模型,以适应多样化的研究和应用需求。为了便利用户和研究人员,这些模型的每个规模都有四个版本可供选择。
- internlm2-base:这是一个高质量且适应性强的模型基础,适合作为深度领域适配的起点。
- internlm2(推荐):它在internlm2-base的基础上,进行了特定领域的进一步预训练,在保持优秀通用语言能力的同时,在评估中表现突出,是大多数应用中的首选模型。
- internlm2-chat-sft:在base模型的基础上进行了有监督的人类对齐训练。
- internlm2-chat(推荐):此版本基于internlm2-chat-sft,使用RLHF技术优化,为对话交互而设计,善于执行指令、共情交流和调用工具。
技术特点
InternLM2模型具备一些显著的技术特点:
-
超长上下文支持:该模型能够处理多达20万字符的超长文本输入,实现对长文的精准理解,与“大海捞针”相媲美。同时,它在长文任务(如LongBench和L-Eval)中的表现居于开源模型的前列。
-
综合性能提升:相比于前一代,InternLM2在推理、数学和代码等各个能力维度都有显著提升。
InternLM2-7B的性能评测
为了评估InternLM2的性能,团队使用了开源评测工具 OpenCompass 对其在多个重要评测集上的表现进行了详尽的测试。以下是部分评测结果:
评测集 | InternLM2-7B | InternLM2-Chat-7B | InternLM2-20B | InternLM2-Chat-20B | ChatGPT | GPT-4 |
---|---|---|---|---|---|---|
MMLU | 65.8 | 63.7 | 67.7 | 66.5 | 69.1 | 83.0 |
AGIEval | 49.9 | 47.2 | 53.0 | 50.3 | 39.9 | 55.1 |
BBH | 65.0 | 61.2 | 72.1 | 68.3 | 70.1 | 86.7 |
GSM8K | 70.8 | 70.7 | 76.1 | 79.6 | 78.2 | 91.4 |
MATH | 20.2 | 23.0 | 25.5 | 31.9 | 28.0 | 45.8 |
HumanEval | 43.3 | 59.8 | 48.8 | 67.1 | 73.2 | 74.4 |
MBPP(Sanitized) | 51.8 | 51.4 | 63.0 | 65.8 | 78.9 | 79.0 |
这些评测数据展示了InternLM2-7B在推理和自然语言处理任务中的强大能力与潜力。
模型局限性
尽管在训练过程中,团队尽可能地保障了模型输出的安全性和合规性,但由于模型性质及生成概率的缘故,它仍可能产生意料外的结果,例如包含偏见或有害内容的回复。用户需谨慎对待这些内容的传播。
使用指南
要使用Transformers加载InternLM2-7B模型,可以参考以下代码:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("internlm/internlm2-7b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("internlm/internlm2-7b", torch_dtype=torch.float16, trust_remote_code=True).cuda()
model = model.eval()
inputs = tokenizer(["来到美丽的大自然"], 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.0}
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。
引用信息
如果在学术著作中引用该模型,请使用以下引用格式:
@misc{cai2024internlm2,
title={InternLM2 Technical Report},
author={Zheng Cai et al.},
year={2024},
eprint={2403.17297},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
InternLM2-7B项目致力于推动语言模型研究的边界,通过开源和创新工具的结合,为研究人员和开发者提供了强大的资源和平台,使各种规模的研究和应用得以实现。