InternLM2-Chat-20B项目介绍
项目背景
InternLM是一个先进的人工智能聊天模型项目,旨在为实际场景提供强大的基础模型和对话模型。其最新版本InternLM2-Chat-20B是一个具有200亿参数的模型,专注于对话应用。
模型特点
-
超长上下文支持:InternLM2支持长达20万字符的上下文,可以在长文中高效地查找信息。这使其在处理长文本任务时具有显著的优势。
-
综合性能增强:InternLM2-Chat-20B在多个领域的能力得到了提升,包括推理能力、数学运算、代码处理、对话体验、遵循指令和创意写作等方面,表现出的性能可以与ChatGPT(GPT-3.5)相媲美,甚至在某些方面超越。
-
代码解释与数据分析:结合代码解释器使用,InternLM2-Chat-20B可以在GSM8K和MATH数据集上达到与GPT-4近乎相同的水平,并提供实用的数据分析能力。
-
增强的工具使用能力:升级后的模型更能理解指令,也能更好地筛选和使用工具,适应复杂任务,比如多步骤工具调用等。这使其能支持多种类型的智能体。
性能评测
InternLM2-Chat-20B在多个评测集上的表现优异:
- 在MMLU、AGIEval、BBH等评测集上的绩效显著。
- 在GSM8K和MATH上,与GPT-4相媲美。
- 总体在语言能力、知识掌握、推理能力和理解能力方面有明显优势。
以上评测数据来源于开源评测工具OpenCompass。在这一工具中,模型的学科综合能力、语言能力、知识能力、推理能力以及理解能力均获得了详细的测试和展示。
通过Transformers加载
用户可以通过Transformers库来加载InternLM模型。以下是简要的加载和使用步骤:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("internlm/internlm2-chat-20b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("internlm/internlm2-chat-20b", torch_dtype=torch.float16, trust_remote_code=True).cuda()
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)
此外,用户可以利用stream_chat
接口进行流式对话,具体代码详见项目文档。
部署方案
-
LMDeploy:LMDeploy是一个用于压缩、部署和服务的开源工具。可以启动一个OpenAI兼容的服务器,通过简单的命令行操作,实现模型的快速部署和使用。
-
vLLM:通过vLLM,用户可以方便地启动兼容OpenAI API的服务器,实现模型的功能扩展和应用。
开源与许可证
InternLM2项目的代码遵循Apache-2.0开源协议,模型权重完全向学术研究开放,允许免费申请商用授权。在使用过程中,如有任何疑问或需商业合作,项目团队欢迎通过邮件联系。
通过以上介绍,希望对InternLM2-Chat-20B项目有一个全面而简单的了解。这个模型不仅技术先进,而且在实际应用中具有广泛的可能性。