项目介绍:InternLM2-Chat-7B-SFT
InternLM2-Chat-7B-SFT 是 InternLM 开源的一款 7 亿参数的基础对话模型。该模型专为实用场景设计,具备多个显著特性和优越性能。
模型特点
-
超长上下文处理能力:InternLM2-Chat-7B-SFT 模型支持高达 20 万字的长文本输入,能够在长文本任务(如 LongBench 和 L-Eval)中表现出众,实现“大海捞针”般的内容检索。
-
全面的性能提升:其在多个领域的能力如推理、数学、代码、对话体验、指令遵循和创意写作等方面均有显著提升,性能远超上一代开源模型,部分能力甚至可与 ChatGPT(GPT-3.5)媲美。
-
代码解释和数据分析能力:模型可以结合代码解释器实现复杂的数据分析,在数学任务(如 GSM8K 和 MATH)的表现接近 GPT-4。
-
增强的工具调用能力:模型在指令理解、工具选择和结果反思等方面具有更广泛的泛化能力,能够支持更复杂任务的多步工具调用。
性能评测
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 |
在模型的训练过程中,团队高度重视安全性,尽力促使输出合乎伦理和法律,然而由于其概率生成性质,模型可能出现意外输出。目前模型开放供学术研究,并且允许免费商业使用,但需为商业用途申请许可证。
模型加载与部署
使用Transformers加载
模型可以通过Transformers库进行加载,这需要一些特定的代码设置以确保模型在适当的精度和环境中运行。以下为加载代码示例:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("internlm/internlm2-chat-7b-sft", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("internlm/internlm2-chat-7b-sft", torch_dtype=torch.float16, trust_remote_code=True).cuda()
model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)
部署模型
InternLM2-Chat-7B-SFT 支持通过诸如 LMDeploy 和 vLLM 等工具进行部署,以便更广泛地应用于实际用例中。
-
使用 LMDeploy:该工具由 MMDeploy 和 MMRazor 团队开发,适用于高效的LLM任务部署。
-
使用 vLLM:可通过vLLM工具启动兼容OpenAI API的服务,为模型提供无缝的请求响应处理。
对于感兴趣的用户或合作机会,请联系 internlm@pjlab.org.cn。许可证申请请通过提供的链接完成。
开源许可
代码遵循 Apache-2.0 开源协议,模型权重完全开源且允许自由的商业使用。