上海人工智能实验室宣布其书生大模型迎来了重要版本升级,推出了书生・浦语3.0(InternLM3)。据实验室介绍,新的版本通过精炼的数据框架,显著提升了数据使用效率,从而实现了思维密度的提升。
此次升级的 InternLM3-8B-Instruct 模型仅使用4T 的数据进行训练,官方表示其综合性能超过了同等规模的开源模型,且训练成本节约了超过75%。值得注意的是,这一版本首次在通用模型中实现了常规对话与深度思考能力的融合,能够更好地应对多样化的真实使用场景。
在模型的评测方面,研究团队基于司南 OpenCompass 开源评测框架,采用了一种统一可复现的方法进行评测。评测内容涉及 CMMLU、GPQA 等十多个权威评测集,涵盖推理、数学、编程、指令跟随、长文本生成、对话及综合表现等多个维度。评测结果显示,书生・浦语3.0在大多数评测集中的得分领先,综合性能与 GPT-4o-mini 非常接近。
上海 AI 实验室还表示,这一新版本的模型成为了开源社区中首个支持浏览器使用的通用对话模型,能够支持20步以上的网页跳转,从而实现深度信息的挖掘。
体验页面:https://internlm-chat.intern-ai.org.cn。
InternLM3 已经开源了一个 80 亿参数指令模型 InternLM3-8B-Instruct,设计用于通用用途和高级推理。 该模型具有以下特点:
- 降低成本,提高性能: 在推理和知识密集型任务上的一流性能超过了 Llama3.1-8B 和 Qwen2.5-7B 等模型。 值得注意的是,InternLM3 只需在 4 万亿个高质量标记上进行训练,与其他类似规模的 LLM 相比,节省了 75% 以上的训练成本。
- 深度思考能力: InternLM3 既支持通过长思维链解决复杂推理任务的深度思考模式,也支持流畅用户交互的正常响应模式。
性能评估
我们使用开源评估工具 OpenCompass 对 InternLM 进行了全面评估。 评估涵盖五个方面的能力:学科能力、语言能力、知识能力、推理能力和理解能力。 以下是部分评估结果,您可以访问 OpenCompass 排行榜了解更多评估结果。
Benchmark | InternLM3-8B-Instruct | Qwen2.5-7B-Instruct | Llama3.1-8B-Instruct | GPT-4o-mini(close source) | |
---|---|---|---|---|---|
General | CMMLU(0-shot) | 83.1 | 75.8 | 53.9 | 66.0 |
MMLU(0-shot) | 76.6 | 76.8 | 71.8 | 82.7 | |
MMLU-Pro(0-shot) | 57.6 | 56.2 | 48.1 | 64.1 | |
Reasoning | GPQA-Diamond(0-shot) | 37.4 | 33.3 | 24.2 | 42.9 |
DROP(0-shot) | 83.1 | 80.4 | 81.6 | 85.2 | |
HellaSwag(10-shot) | 91.2 | 85.3 | 76.7 | 89.5 | |
KOR-Bench(0-shot) | 56.4 | 44.6 | 47.7 | 58.2 | |
MATH | MATH-500(0-shot) | 83.0* | 72.4 | 48.4 | 74.0 |
AIME2024(0-shot) | 20.0* | 16.7 | 6.7 | 13.3 | |
Coding | LiveCodeBench(2407-2409 Pass@1) | 17.8 | 16.8 | 12.9 | 21.8 |
HumanEval(Pass@1) | 82.3 | 85.4 | 72.0 | 86.6 | |
Instrunction | IFEval(Prompt-Strict) | 79.3 | 71.7 | 75.2 | 79.7 |
Long Context | RULER(4-128K Average) | 87.9 | 81.4 | 88.5 | 90.7 |
Chat | AlpacaEval 2.0(LC WinRate) | 51.1 | 30.3 | 25.0 | 50.7 |
WildBench(Raw Score) | 33.1 | 23.3 | 1.5 | 40.3 | |
MT-Bench-101(Score 1-10) | 8.59 | 8.49 | 8.37 | 8.87 |
- 评估结果来自 OpenCompass(部分数据带 * 标记,表示使用思考模式进行评估),评估配置可在 OpenCompass 提供的配置文件中找到。
- 评估数据可能因 OpenCompass 版本迭代而存在数值差异,请参考 OpenCompass 的最新评估结果。
局限性: 尽管我们在训练过程中努力确保模型的安全性,并鼓励模型生成符合道德和法律要求的文本,但由于其规模和概率生成范例,模型仍可能产生意想不到的输出。 例如,生成的回复可能包含偏见、歧视或其他有害内容。 请勿传播此类内容。 对于因传播有害信息而造成的任何后果,我们概不负责。
需求
transformers >= 4.48
要使用 Transformers 加载 InternLM3 8B Instruct 模型,请使用以下代码:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_dir = "internlm/internlm3-8b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_dir, 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, trust_remote_code=True, torch_dtype=torch.bfloat16).cuda()
# (Optional) If on low resource devices, you can load model in 4-bit or 8-bit to further save GPU memory via bitsandbytes.
# InternLM3 8B 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()
system_prompt = """You are an AI assistant whose name is InternLM (书生·浦语).
- InternLM (书生·浦语) is a conversational language model that is developed by Shanghai AI Laboratory (上海人工智能实验室). It is designed to be helpful, honest, and harmless.
- InternLM (书生·浦语) can understand and communicate fluently in the language chosen by the user such as English and 中文."""
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Please tell me five scenic spots in Shanghai"},
]
tokenized_chat = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt").to("cuda")
generated_ids = model.generate(tokenized_chat, max_new_tokens=1024, temperature=1, repetition_penalty=1.005, top_k=40, top_p=0.8)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(tokenized_chat, generated_ids)
]
prompt = tokenizer.batch_decode(tokenized_chat)[0]
print(prompt)
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
LMDeploy 是用于压缩、部署和提供 LLM 的工具包,由 MMRazor 和 MMDeploy 团队开发。
pip install lmdeploy
您可以使用以下 python 代码在本地运行批量推理:
import lmdeploy
model_dir = "internlm/internlm3-8b-instruct"
pipe = lmdeploy.pipeline(model_dir)
response = pipe("Please tell me five scenic spots in Shanghai")
print(response)
或者使用以下命令启动与 OpenAI 兼容的服务器:
lmdeploy serve api_server internlm/internlm3-8b-instruct --model-name internlm3-8b-instruct --server-port 23333
然后就可以向服务器发送聊天请求:
curl http://localhost:23333/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "internlm3-8b-instruct",
"messages": [
{"role": "user", "content": "Please tell me five scenic spots in Shanghai"}
]
}'
更多请看 https://huggingface.co/internlm/internlm3-8b-instruct
标签:shot,人工智能,模型,ids,书生,InternLM3,model,True,浦语 From: https://blog.csdn.net/weixin_41446370/article/details/145172503