InternLM3开源发布!4T数据达到18T效果,成本省75%,首度融合深度思考与对话能力!

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 1月15日,上海人工智能实验室对书生大模型进行重要版本升级,书生·浦语3.0(InternLM3)通过精炼数据框架,大幅提升了数据效率,并实现思维密度的跃升。仅使用4T训练数据的InternLM3-8B-Instruct,其综合性能超过了同量级开源模型,节约训练成本75%以上;同时,InternLM3首次在通用模型中实现了常规对话与深度思考能力融合,可应对更多真实使用场景。

1月15日,上海人工智能实验室对书生大模型进行重要版本升级,书生·浦语3.0(InternLM3)通过精炼数据框架,大幅提升了数据效率,并实现思维密度的跃升。仅使用4T训练数据的InternLM3-8B-Instruct,其综合性能超过了同量级开源模型,节约训练成本75%以上;同时,InternLM3首次在通用模型中实现了常规对话与深度思考能力融合,可应对更多真实使用场景。

体验页面:

https://internlm-chat.intern-ai.org.cn

GitHub链接:

https://github.com/InternLM/InternLM

模型链接:https://www.modelscope.cn/models/Shanghai_AI_Laboratory/internlm3-8b-instruct

01.模型介绍

研究团队提出大规模数据精炼框架,大幅提高了训练数据的质量,在具体实践中,4T预训练数据可达主流开源模型18T效果。通过构建数据“思维密度”杠杆,撬动模型性能提升,为突破Scaling Law带来了新的研究范式。

通过数据精炼框架,研究团队使InternLM3大幅提升了数据效率,实现思维密度的跃升。该框架包括以下两个核心要素:

  • 数据处理的智能化:为了实现数据的精细化处理,研究团队将数据分为千万个领域,在此类人力难以负担的规模上,通过智能体自我演进技术,大规模自动化质检,根据错例进行反思,为每个领域进行定制化处理。
  • 高价值数据的合成:基于通专融合的方式,以通用模型快速迭代合成算法,再精选数据训练专用模型,通过在海量天然数据中进行素材挖掘,改进的树状搜索策略,以及多维度质量验证,合成大量内容丰富,质量可靠的高价值数据。

基于司南OpenCompass开源评测框架,研究团队使用统一可复现的方法,对书生·浦语3.0等模型进行了评测。评测采用了CMMLU、GPQA等十多个权威评测集,维度包括推理、数学、编程、指令跟随、长文本、对话及综合表现等多方面性能。评测结果显示,相比同量级开源模型,书生·浦语3.0在大多数评测集得分领先,综合性能十分接近GPT-4o-mini。

InternLM3采用“通专融合”路径,首次在通用模型中融合深度思考与常规对话,突破业界常规。

此前,上海AI实验室的强推理模型书生InternThinker,在数学竞赛评测集上超越了 o1-preview,虽具备长思维、自我反思纠正能力,但需单独构建。而InternLM3通过融合训练方案,实现一键切换模式,具备深度思考能力。后训练阶段,构建合成数据探索方案,基于世界知识树(World Knowledge Tree)进行指令标注与合成,运用多智能体方式生成高质量回复,挖掘指令潜力,打造数十万微调指令数据集,大幅提升对话体验。

如下图所示,在进行推理任务时,用户可以将书生·浦语3.0从常规对话模式一键转变成深度思考模式。

InternLM3在推理、数学、创作、智能体任务上均有非常优秀的表现,丰富案例可通过官方发布了解:书生·浦语大模型升级,突破思维密度,4T数据训出高性能模型

02.模型推理

使用transformers推理模型:

import torch
from modelscope import AutoTokenizer, AutoModelForCausalLM
model_dir = "Shanghai_AI_Laboratory/internlm3-8b-instruct"
#model = AutoModelForCausalLM(model_dir, trust_remote_code=True)
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.float16)
# (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()
model = model.cuda()
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").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)
].cuda()
response = tokenizer.batch_decode(generated_ids)[0]
print(response)

03.模型微调

这里我们介绍使用ms-swift 3.0对internlm3-8b-instruct进行自我认知微调。

在开始微调之前,请确保您的环境已正确安装

# 安装ms-swift
git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e .[llm]

微调脚本如下:

CUDA_VISIBLE_DEVICES=0 \
swift sft \
    --model Shanghai_AI_Laboratory/internlm3-8b-instruct \
    --train_type lora \
    --dataset 'AI-ModelScope/alpaca-gpt4-data-zh#500' \
              'AI-ModelScope/alpaca-gpt4-data-en#500' \
              'swift/self-cognition#500' \
    --torch_dtype bfloat16 \
    --num_train_epochs 1 \
    --per_device_train_batch_size 1 \
    --per_device_eval_batch_size 1 \
    --learning_rate 1e-4 \
    --lora_rank 8 \
    --lora_alpha 32 \
    --target_modules all-linear \
    --gradient_accumulation_steps 16 \
    --eval_steps 50 \
    --save_steps 50 \
    --save_total_limit 5 \
    --logging_steps 5 \
    --max_length 2048 \
    --output_dir output \
    --system 'You are a helpful assistant.' \
    --warmup_ratio 0.05 \
    --dataloader_num_workers 4 \
    --model_author 魔搭 \
    --model_name 狗蛋

训练显存占用:

推理脚本:

CUDA_VISIBLE_DEVICES=0 \
swift infer \
    --adapters output/vx-xxx/checkpoint-xxx \
    --stream true \
    --temperature 0 \
    --max_new_tokens 2048

微调后推理效果:

点击链接,直达模型体验~

OpenXLab-登录

目录
相关文章
|
10月前
|
机器学习/深度学习 人工智能 缓存
每个人都可以成为虚拟主播,一键创建属于你的虚拟形象,RAIN 为你实时生成逼真动画角色
RAIN 是一款创新的实时动画生成工具,支持在消费级硬件上实现无限视频流的实时动画化,适用于直播、虚拟角色生成等场景。
516 25
每个人都可以成为虚拟主播,一键创建属于你的虚拟形象,RAIN 为你实时生成逼真动画角色
|
开发工具 git
【git 实用指南】git 上传代码
【git 实用指南】git 上传代码
321 2
|
人工智能 C++ iOS开发
ollama + qwen2.5-coder + VS Code + Continue 实现本地AI 辅助写代码
本文介绍在Apple M4 MacOS环境下搭建Ollama和qwen2.5-coder模型的过程。首先通过官网或Brew安装Ollama,然后下载qwen2.5-coder模型,可通过终端命令`ollama run qwen2.5-coder`启动模型进行测试。最后,在VS Code中安装Continue插件,并配置qwen2.5-coder模型用于代码开发辅助。
20038 71
|
6月前
|
测试技术 UED
全新开源通义千问Qwen3,它来了!
Qwen3是通义千问系列的最新模型,融合推理与非推理模式,兼具QwQ和Instruct模型能力。提供多种尺寸,包括235B-A22B、30B-A3B及六个Dense模型,大幅提升数学、代码、逻辑推理和对话能力,达到业界领先水平。旗舰模型Qwen3-235B-A22B在多场景测试中表现优异,小型模型如Qwen3-4B性能媲美大模型。用户可在阿里云百炼平台免费体验各100万Token。
6157 4
全新开源通义千问Qwen3,它来了!
|
10月前
|
容灾 安全 关系型数据库
数据传输服务DTS:敏捷弹性构建企业数据容灾和集成
数据传输服务DTS提供全球覆盖、企业级跨境数据传输和智能化服务,助力企业敏捷构建数据容灾与集成。DTS支持35种数据源,实现全球化数据托管与安全传输,帮助企业快速出海并高效运营。瑶池数据库的全球容灾、多活及集成方案,结合DTS的Serverless和Insight功能,大幅提升数据传输效率与智能管理水平。特邀客户稿定分享了使用DTS加速全球业务布局的成功经验,展示DTS在数据分发、容灾多活等方面的优势。
279 0
|
11月前
|
数据采集 前端开发 物联网
【项目实战】通过LLaMaFactory+Qwen2-VL-2B微调一个多模态医疗大模型
本文介绍了一个基于多模态大模型的医疗图像诊断项目。项目旨在通过训练一个医疗领域的多模态大模型,提高医生处理医学图像的效率,辅助诊断和治疗。作者以家中老人的脑部CT为例,展示了如何利用MedTrinity-25M数据集训练模型,经过数据准备、环境搭建、模型训练及微调、最终验证等步骤,成功使模型能够识别CT图像并给出具体的诊断意见,与专业医生的诊断结果高度吻合。
21308 162
【项目实战】通过LLaMaFactory+Qwen2-VL-2B微调一个多模态医疗大模型
|
11月前
|
JSON 人工智能 自然语言处理
小模型也能有类o1的慢思考能力?使用CAMEL生成CoT数据、Unsloth微调Qwen2.5-1.5B模型并上传至Hugging Face
本项目利用CAMEL生成高质量的CoT数据,结合Unsloth对Qwen2.5-1.5B模型进行微调,并将结果上传至Hugging Face。通过详细步骤介绍从数据生成到模型微调的完整流程,涵盖环境配置、API密钥设置、ChatAgent配置、问答数据生成与验证、数据转换保存、模型微调及推理保存等内容。最终展示了如何优化问答系统并分享实用技巧。 [CAMEL-AI](https://github.com/camel-ai/camel) 是一个开源社区,致力于智能体扩展研究。欢迎在GitHub上关注并加入我们!
1295 15
|
10月前
|
测试技术 数据库 Python
Python装饰器实战:打造高效性能计时工具
在数据分析中,处理大规模数据时,分析代码性能至关重要。本文介绍如何使用Python装饰器实现性能计时工具,在不改变现有代码的基础上,方便快速地测试函数执行时间。该方法具有侵入性小、复用性强、灵活度高等优点,有助于快速发现性能瓶颈并优化代码。通过设置循环次数参数,可以更准确地评估函数的平均执行时间,提升开发效率。
275 61
Python装饰器实战:打造高效性能计时工具
|
10月前
|
机器学习/深度学习 人工智能
《模型压缩与量化:提升性能与降低成本的关键策略》
在人工智能领域,模型压缩和量化是优化模型大小与性能的关键技术。模型压缩包括剪枝(去除不重要连接)、低秩近似(矩阵分解)和模型融合(合并多个模型),减少冗余并提高效率。量化则通过将参数从连续值转为离散值(如8位、16位),减小存储空间。这些方法能在不降低性能的前提下显著减小模型大小,适用于不同应用场景。未来研究将更注重性能与效率的平衡。
476 10
|
并行计算 PyTorch Linux
【Pytorch】解决cuDNN error: CUDNN_STATUS_NOT_INITIALIZED
本文提供了在使用PyTorch时遇到cuDNN error: CUDNN_STATUS_NOT_INITIALIZED错误的几种解决方法,包括重新安装PyTorch及其相关库以确保版本兼容,检查CUDA与显卡驱动的对应关系,以及在无法使用GPU的情况下切换到CPU运行模型。
1808 2

热门文章

最新文章