【免费下载链接】InternVL3_5-1B-Instruct
InternVL3_5-1B-Instruct 是 InternVL3.5 系列中最小的多模态思考模型(1.1B 参数),只需一段 R1 风格的系统提示词,再配合do_sample=True、temperature=0.6的采样参数,即可开启"思考模式"(Thinking Mode):模型会先在think标签内逐步推理,再给出最终答案。本文手把手带你三步启用思考模式,并附上采样参数最佳实践与避坑清单。
一、认识 InternVL3_5-1B-Instruct:1B 也能"深度思考"
InternVL3.5 延续了ViT–MLP–LLM的架构范式,1B 版本的具体规格如下:
| 项目 | 说明 |
|---|---|
| 总参数量 | 1.1B(视觉 0.3B + 语言 0.8B) |
| 视觉编码器 | InternViT-300M,支持动态高分辨率切块 |
| 语言模型 | Qwen3-0.6B,上下文窗口 32K tokens |
| 训练流水线 | CPT(持续预训练)+ SFT(监督微调) |
| 推理能力 | 通过 Cascade RL 框架(离线 MPO + 在线 GSPO)训练注入"先思考再回答"能力 |
本仓库的 config.json 中可以看到视觉与语言双塔的配置细节,默认生成参数位于llm_config节点(注意:默认是do_sample=False、temperature=1.0,启用思考模式时必须手动覆盖)。
💡小贴士:InternVL3.5 全系提供四个版本,后缀代表训练阶段:无后缀(如InternVL3_5-1B)完成了完整的 CPT + SFT + CascadeRL 流水线,思考能力最稳;-Instruct版(即本文主角)完成了 CPT + SFT,同样支持通过提示词开启思考模式,适合显存受限的场景。
二、思考模式是什么:先想后答的 R1 风格协议
开启思考模式后,模型会遵循"两段式"响应协议:
User: <image> 请解答这道几何题 Assistant: <对题目进行多角度分析,逐步推导……> </think> 最终答案:……这套协议并非靠模型"自觉",而是有底层支持——词表中专门注册了think和end两个特殊 token(ID 分别为 151667、151668),定义在 added_tokens.json。单 token 化的思考标签让模型生成时更稳定,也方便下游程序按标签切分"推理过程"与"最终答案"。
在官方测试时扩展(Test-Time Scaling)方案中,这种深度思考(Deep Thinking)用于提升多步推理类任务(数学、科学推理等)的逻辑结构与正确率,而普通感知类问题本身已很强,无需强制思考。
三、三步启用 InternVL3_5-1B-Instruct 思考模式
前置条件:
transformers>=4.52.1,GPU 显存建议 8GB 以上(bf16 精度)。
第 1 步:加载模型
import torch from transformers import AutoTokenizer, AutoModel path = "OpenGVLab/InternVL3_5-1B-Instruct" model = AutoModel.from_pretrained( path, torch_dtype=torch.bfloat16, low_cpu_mem_usage=True, use_flash_attn=True, trust_remote_code=True, device_map="auto").eval() tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True, use_fast=False)第 2 步:设置 R1_SYSTEM_PROMPT 系统提示词(核心)
这是官方给出的思考模式系统提示词,作用是约束模型"先分析、后作答":
R1_SYSTEM_PROMPT = """ You are an AI assistant that rigorously follows this response protocol: 1. First, conduct a detailed analysis of the question. Consider different angles, potential solutions, and reason through the problem step-by-step. Enclose this entire thinking process within think and end tags. 2. After the thinking section, provide a clear, concise, and direct answer to the user's question. Separate the answer from the think section with a newline. Ensure that the thinking process is thorough but remains focused on the query. The final answer should be standalone and not reference the think section. """.strip() model.system_message = R1_SYSTEM_PROMPT🔍原理速览:模型内部使用internvl2_5对话模板,初始化时从模板读取默认系统提示词(见 conversation.py 中"你是书生·万象……")。每次推理时,modeling_internvl_chat.py 的chat方法会把model.system_message注入到system槽位。因此只需一行model.system_message = R1_SYSTEM_PROMPT即可全局替换,无需修改任何其他代码。
第 3 步:配置采样参数并发起对话
generation_config = dict(max_new_tokens=8192, do_sample=True, temperature=0.6) question = '<image>\nPlease solve this math problem step by step.' response = model.chat(tokenizer, pixel_values, question, generation_config) print(response)其中pixel_values是按下文加载图片得到的张量(纯文本对话可传None)。完整推理示例与图片预处理函数(load_image、dynamic_preprocess)可参考 README.md 的 Quick Start 章节。
四、采样参数最佳实践:哪些值该改、为什么
官方 README 在启用思考模式时明确推荐:do_sample=True且temperature=0.6,以抑制长思考过程中出现的无意义重复。以下是完整参数建议:
| 参数 | 推荐值 | 说明 |
|---|---|---|
do_sample | True | 官方针对思考模式的必改项,关闭采样容易陷入重复循环 |
temperature | 0.6 | 适度的随机性:过低答案呆板,过高易重复发散 |
max_new_tokens | 8192 | 思考过程本身很长,必须预留足够 token,否则会截断在think中间 |
top_k/top_p | 50/0.95(可选) | 参考官方 LMDeploy 部署示例的取值 |
⚠️注意两点:
- config.json 里语言模型的默认值是
do_sample=False、temperature=1.0、top_k=50、top_p=1.0,不会自动变成推荐值,务必在generation_config中显式传入。 - 官方 README 示例中赋值语句存在一处变量名笔误(
R1_SYSTEMP_PROMPT),抄录时请确保变量名与定义一致,否则会报NameError。
五、常见问题排查清单
- 输出里没有
think标签:检查model.system_message是否真的被替换成功;纯文本闲聊也可能不触发思考,建议换数学/科学推理题测试。 - 同一段话反复循环:
do_sample没有设为True,或temperature过高,按上表调整。 - 思考过程被截断:
max_new_tokens太小(如沿用默认的 1024),提高到 8192 起步。 - 只想恢复普通问答:把
model.system_message改回默认提示词,或重新加载模型即可,思考模式是无状态的"提示词开关"。
六、相关源码与配置文件速查
| 文件 | 内容 |
|---|---|
| README.md | 官方 Thinking Mode 说明与 R1_SYSTEM_PROMPT 原文 |
| config.json | 模型架构、视觉/语言双塔与默认生成参数 |
| added_tokens.json | think/end特殊 token 定义 |
| conversation.py | internvl2_5对话模板与默认系统提示词 |
| modeling_internvl_chat.py | model.chat推理入口与 system_message 注入逻辑 |
| tokenizer_config.json | 分词器配置(含思考标签的特殊 token) |
七、总结:启用思考模式的 5 个要点
- ✅ 系统提示词替换为官方
R1_SYSTEM_PROMPT(一行model.system_message = ...搞定) - ✅
do_sample=True+temperature=0.6,避免长思考重复 - ✅
max_new_tokens ≥ 8192,给推理过程留足空间 - ✅ 使用
transformers>=4.52.1加载,trust_remote_code=True - ✅ 思考模式面向推理类任务;日常简单问答可不开启,省时省 token
掌握以上配置,你手中的 1.1B 小模型就能在数学、科学推理等多步任务上展现出远超体量的"深度思考"能力了。🚀
【免费下载链接】InternVL3_5-1B-Instruct
相关推荐
开启InternVL3_5-8B-Flash深度思考:Thinking模式系统提示词与采样参数完全指南
开启InternVL3_5 8B Flash深度思考:Thinking模式系统提示词与采样参数完全指南 InternVL3.5 8B Flash(仓库名 Int
如何为InternVL3_5-4B-MPO开启Thinking思维模式?R1系统提示词调优与参数避坑指南
如何为InternVL3_5 4B MPO开启Thinking思维模式?R1系统提示词调优与参数避坑指南 InternVL3_5 4B MPO 是 Intern
如何开启InternVL3.5-30B-A3B的思考模式?R1风格推理系统提示词与采样参数调优完全指南
如何开启InternVL3.5 30B A3B的思考模式?R1风格推理系统提示词与采样参数调优完全指南 本文介绍 InternVL3.5 30B A3B 多模态
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考