DeepSeek V4 实测稳定支持 1M tokens 上下文,而 DeepSeek-Coder 仅支持 16K;两者模型架构不同,不可通过修改参数强行扩展;确认方式为核对模型名、rope_scaling 类型(V4 为 yarn+factor:256,Coder 为 linear 或空)及 config.json 字段。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

DeepSeek V4 的上下文窗口是 1M tokens,不是“最多支持 1M”,而是实测稳定可用的硬指标;DeepSeek-Coder 则是 16K tokens。两者不能混用配置,也不能靠改 model_max_length 参数强行拉长——模型没经过对应长度的 RoPE 扩展训练,会直接崩或胡说。
怎么确认你用的是 V4 还是 Coder?看模型名和加载方式
官方发布的 deepseek-v4(非 deepseek-coder 系列)才具备 1M 上下文能力。常见混淆点:
-
deepseek-coder-33b-instruct最大只支持 16K,即使你把max_position_embeddings改成 1048576,模型内部 RoPE 编码会溢出,生成结果大概率乱序、重复或拒答 - API 调用时,
model字段必须明确为deepseek-v4;网页端默认就是 V4,但如果你在本地加载 HuggingFace 模型,得核对config.json里的max_position_embeddings和rope_scaling字段 - V4 的
rope_scaling类型是"yarn",且包含"factor": 256(对应 4K → 1M 扩展),而 Coder 是"linear"或空值
1M 不是“塞满就完事”,关键在内容组织策略
实测发现:当上下文超过 300K tokens 后,V4 对早期 token 的注意力衰减开始明显,尤其在跨段推理(比如“对比第 2 页和第 28 页的条款”)时容易漏判。这不是 bug,是 YaRN 压缩机制的必然取舍。
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
- 优先把核心指令、当前任务约束、最新工具返回结果放在开头——模型对前 10% token 的记忆最稳
- 历史对话、已废弃方案、冗余日志建议显式裁剪,别依赖“模型自己忽略”。可以用
truncate_history工具函数按语义块切分,保留带时间戳的决策链,删掉中间试错输出 - 上传 PDF/代码文件时,别直接丢原始二进制。先用
pymupdf提取文本+标题层级,或用tree+cat生成结构化代码快照,再喂给模型。原始 50 页财报 PDF 直接喂,实际 token 数可能飙到 800K+,但有效信息不到 1/3
本地部署时,16K 和 1M 的显存开销差异极大
哪怕只是推理,V4 的 KV Cache 占用仍比 Coder 高 5–8 倍。不调优直接跑 1M 输入,单卡 A100(80G)大概率 OOM。
- 必须启用
flash_attn=True和torch_dtype=torch.bfloat16,否则显存翻倍且速度暴跌 - 避免用
generate(max_new_tokens=...)无限制生成——V4 在长 context 下,max_new_tokens超过 2048 容易触发缓存重计算,延迟骤增。建议拆成多轮max_new_tokens=512+ 显式传入past_key_values - 如果你真需要处理 1M 全量输入(比如整本《三国演义》分析),别用
AutoModelForCausalLM.generate。改用model.forward()分块编码 + 自定义 attention mask,手动控制位置偏移
真正难的不是“能不能塞进去”,而是“塞什么、怎么排、什么时候清”。1M 窗口把问题从“记不住”转向了“记得太杂”,而模型不会主动帮你做信息净化——这一步得由你来设计清理逻辑,或者写个前置过滤 agent。


















