Mellum2 开源:JetBrains 把生产级 AI 工作流引擎交到了社区手里

2026-06-02 31 预计阅读时间:1 分钟
来源:oschina.net AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:9 分钟

代码补全模型做到极致之后,下一步是什么?JetBrains 的回答是:把它变成一个能跑在整个 AI 工作流里的通用引擎,然后开源。

Mellum2 是一个 120 亿参数的模型,刚刚在 Apache 2.0 协议下正式开源。它不是又一个"通用大模型"的宣言——它的设计目标非常具体:在生产环境中压低延迟、拉高吞吐、砍掉成本。这三件事听起来平淡,但恰恰是大多数团队把 LLM 从 demo 推到生产时卡住的地方。

从补全到工作流:Mellum 的演进路线

Mellum 最初的角色很单一——JetBrains IDE 里的代码补全。这个场景对模型的要求极其苛刻:用户敲下一个键,补全建议必须在几十毫秒内出现,否则体验就是负面的。在这种压力下,Mellum 被训练成了一个对延迟极度敏感的模型。

但 JetBrains 在实际部署中发现,AI 工作流里远不止补全这一个环节。一个典型的开发辅助流水线可能包含:

  • 路由:判断用户意图,决定走代码生成还是文档检索
  • 总结:把长上下文压缩成可操作的信息
  • 中间推理:在多步 Agent 流程中充当"快速思考"节点

这些环节不需要 GPT-4 级别的深度推理,但需要快、便宜、稳定。Mellum2 正是在这个洞察上扩展了能力边界——从纯代码补全,演进为同时处理自然语言和代码的多功能模型。

12B 参数的取舍:为什么不是更大或更小

120 亿参数是一个刻意的选择。比这大的模型(70B、100B+)推理成本陡增,单请求延迟很难压到生产可接受的范围;比这小的模型(7B、3B)在处理混合语言-代码任务时,容量往往不够,路由和总结的质量会明显下降。

Mellum2 卡在这个中间地带,瞄准的是"够用且够快"。Apache 2.0 协议的选择也传递了信号:JetBrains 不打算靠模型本身收费,而是让社区在工具链和工作流集成上自由发挥。

实际跑起来:本地推理与工作流集成

下面是一个可以直接运行的示例,展示如何用 transformers 加载 Mellum2 并完成一个典型的工作流任务——代码片段总结。假设模型权重已发布到 Hugging Face(以 jetbrains/Mellum2 为例,实际 repo 名称请以官方公告为准)。

# mellum2_summary_demo.py
# 依赖:pip install transformers torch accelerate

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

MODEL_ID = "jetbrains/Mellum2"  # 以官方发布为准,发布后替换为实际 repo

tokenizer = AutoTokenizer.from_pretrained(MODEL_ID, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    MODEL_ID,
    torch_dtype=torch.bfloat16,
    device_map="auto",          # 自动分配 GPU/CPU
    trust_remote_code=True,
)

def summarize_code(code: str, lang: str = "python") -> str:
    """用 Mellum2 对代码片段做快速总结——典型工作流中间步骤"""
    prompt = f"""[INST] 用一到两句话总结以下 {lang} 代码的核心功能,只输出总结,不要复述代码:

```{lang}
{code}

[/INST]"""

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
    **inputs,
    max_new_tokens=128,
    temperature=0.3,
    do_sample=True,
)
response = tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
return response.strip()

--- 示例:总结一个 FastAPI 路由 ---

snippet = ''' @app.post("/items/{item_id}") async def update_item(item_id: int, item: ItemUpdate, db: Session = Depends(get_db)): existing = db.query(Item).filter(Item.id == item_id).first() if not existing: raise HTTPException(status_code=404, detail="Item not found") for field, value in item.dict(exclude_unset=True).items(): setattr(existing, field, value) db.commit() return existing '''

print(summarize_code(snippet))

预期输出类似:

"该路由根据 item_id 查找数据库中的条目,若不存在则返回 404;否则用请求体中提供的字段部分更新该条目并返回更新后的对象。"

运行前需要确认两件事

1. **模型权重地址**——JetBrains 公告发布后 Hugging Face 搜索 `Mellum2`, `MODEL_ID` 替换为实际 repo
2. **硬件要求**——12B 参数 bfloat16 精度约需 24 GB 显存如果 GPU 不够可以改用 `device_map="balanced_low_0"` 或开启 CPU offload代价是推理速度下降

如果追求更高吞吐比如批量处理工作流中的路由请求), vLLM 部署会更合适

```bash
# 安装 vLLM
pip install vllm

# 启动 OpenAI-compatible server(替换 MODEL_ID 为实际地址)
python -m vllm.entrypoints.openai.api_server \
  --model jetbrains/Mellum2 \
  --dtype bfloat16 \
  --max-model-len 4096 \
  --gpu-memory-utilization 0.9 \
  --port 8000

# 然后用 OpenAI SDK 调用
python -c "
from openai import OpenAI
client = OpenAI(base_url='http://localhost:8000/v1', api_key='empty')
resp = client.chat.completions.create(
    model='jetbrains/Mellum2',
    messages=[{'role':'user','content':'这段代码在做什么:def foo(x): return x * 2 + 1'}],
    max_tokens=64,
)
print(resp.choices[0].message.content)
"

工作流中的定位:不是替代大模型,是替代不必要的调用

Mellum2 在生产架构里的典型角色不是"全能主力",而是快速中间层。一个实际可用的模式是:

工作流环节 用 Mellum2 用大模型(GPT-4 级)
意图路由 ✅ 快速分类,成本极低 ❌ 过重,延迟高
上下文压缩/总结 ✅ 质量够用,吞吐高 仅在需要深度理解时使用
代码补全 ✅ 原生优势 ❌ 延迟不可接受
复杂多步推理 ❌ 容量有限 ✅ 必须用大模型

这种分层策略的核心收益是成本和延迟的非线性下降。一次路由调用如果用 70B 模型,可能花费 $0.02、耗时 2 秒;用 Mellum2 可能降到 $0.001 以下、耗时 200 毫秒。当你的流水线每天跑十万次路由,差距就是每天 $2000 vs $100。

上手之前需要想清楚的事

  1. 场景匹配度——如果你的工作流没有"高频低深度"的环节(比如只是偶尔做一次复杂推理),Mellum2 的优势体现不出来,直接用大模型反而更省事。
  2. 部署成本——12B 模型需要至少一张 24 GB 显存的 GPU(A10G、L4、3090 等)。如果团队没有 GPU 资源,云上推理的成本需要和直接调用 API 大模型做对比。
  3. 质量边界——Mellum2 在代码补全和短文本任务上经过充分打磨,但在长文档深度理解、复杂数学推理等场景上,12B 参数的天限是客观存在的。不要把它推到超出容量的任务上。
  4. 协议自由度——Apache 2.0 意味着你可以修改、商用、分发,没有使用限制。这比很多"开源但不可商用"的模型在合规上省心得多。

Mellum2 的开源,与其说是 JetBrains 放出了一个新模型,不如说是他们把过去几年在 IDE 里打磨出来的"生产级快速推理"经验,打包成了一个可复用的组件。对于正在搭建 AI 工作流的团队来说,它提供了一个值得认真评估的中间层选项——不是最聪明的,但可能是最划算的。


相关推荐