15 M 问答对、8 B 参数、1 个信念:数据干净才是终极杠杆——Bee-8B 全景拆解
“
故事从一条“翻车”推文开始。
某工程师把 InternVL3.5-8B 与 Bee-8B 同时放进 ChartQA 测试集,结果后者以 86.7 vs. 86.3 的微弱优势登顶。 InternVL 是半开源“重量档”,Bee 却是全开源“草根”。他在评论区补刀:“Bee 只靠数据,就把我们砸显卡的氪金局给破了。”
这条推文被疯狂转发,也引出本文的主题:当参数军备竞赛熄火,数据工程如何接管比赛。”
一、开源 MLLM 的三座暗礁
-
数据噪声像甲醛:24 M 开源图文对里,图文不符、重复文本、低分辨率“三毒”俱全,模型被迫把“橙子”和“函数题”强行关联。 -
“黑盒”数据集一锤子买卖:发布者只给 JSON,不给清洗脚本,复现者只能“望 JSON 兴叹”。 -
长推理稀缺:复杂数学、图表推理样本占比 <1%,导致开源模型在“多步思考”考题上集体宕机。
Bee-8B 的方案出奇地老派——把数据洗干净,再喂饱模型。下面拆开这套“洗烘熨”全流程。
二、Honey-Data-15M:一条数据流水线的自我修养
1. 原料:24 M 开源图文对
来源包括 LLaVA-OneVision、PixMo、MAmmoth-VL 等 40+ 项目。
第一道去重:图像感知哈希 + 文本 SimHash,双哈希碰撞才丢,避免“同图不同文”被误杀。
2. 清洗:规则过滤 + 大模型裁判
过滤器 | 案例 | 结果 |
---|---|---|
规则 | 图片 < 32 px、长宽比 > 5:1、文本重复 > 60 % | 直接丢弃 |
模型 | Qwen2.5-VL-72B 判断“图与问是否相关” | 丢弃 18 % 图文不符样本 |
3. 双级 CoT enrichment:短链 vs 长链
-
短 CoT(12.2 M):一句话变三步,适合“图中几辆车”这类中度推理。 -
长 CoT(2.7 M):带 <think>
标签的 10+ 步推理,专为几何、函数、图表准备。
路由策略:短 CoT fidelity check 失败 → 自动进入长 CoT 循环,确保难样本不被降智。
图:HoneyPipe 双级路由示意
4. 质量消融:19.8 % 的数学跃升
Baseline → 仅清洗 → 清洗+短 CoT → 清洗+双级 CoT 的四级对比,MathVista 成绩从 63.2 → 83.1,19.8 % 的绝对提升全部来自数据。
三、Bee-8B 模型:把“蜂蜜”酿成“啤酒”
1. 架构速览
-
LLM 底座:Qwen3-8B(8.0 B 激活) -
视觉编码器:SigLIP2-so400m-384,支持 384×384 原生分辨率 -
投影器:2 层 MLP + GELU,参数量 < 0.1 B
总参数量 8.3 B,推理可在单张 A100-80G 跑满 16 k token。
2. 五阶段训练节奏
阶段 | 数据 | 目的 | 关键超参 | 时长 |
---|---|---|---|---|
MLP Warmup | 1 M 图-文对 | 视觉对齐 | lr 1e-3,冻结 LLM | 2 h |
Full Align | 14 M 图-文 + 1.4 M 纯文本 | 保语言不掉点 | lr 4e-5 | 18 h |
SFT | 15 M Honey | 灌双级 CoT | lr 5e-5,pack=16 k | 36 h |
Refine | 1 M 精选子集 | 话题再平衡 | lr 3e-5→5e-6 | 4 h |
RL(GRPO) | 50 K prompt | 格式奖励 | 0.2 格式 + 0.8 准确 | 8 h |
关键经验:
-
Packing:把 3-5 条样本拼成 16 k,显存利用率 ↑ 17 %。 -
RL 奖励:强制 \boxed{}
输出,解决“只写推理不给答案”的老毛病。
四、Benchmark 实战:以下克上的细节
任务档 | Bee-8B 得分 | 对标半开源 | 领先幅度 |
---|---|---|---|
ChartQA | 86.7 | InternVL3.5-8B 86.3 | +0.4 |
MathVerse | 67.0 | InternVL3.5-8B 61.5 | +5.5 |
CharXiv-RQ | 57.3 | Keye-VL-8B 45.4 | +11.9 |
MMMU-Pro | 50.7 | Qwen2.5-VL-7B 47.1 | +3.6 |
拆解胜利:
-
图表:长 CoT 把“读柱→求和→比较”拆成 9 步,减少口算错误。 -
几何:利用“中线=斜边一半”先锁定 AB=10,再勾股定理一步到位。 -
OCR:在 211 K 清洗后的 K12 印刷体上微调,字符错误率 ↓ 23 %。
五、快速上手:从 pip install 到第一条推理
1. 安装
pip install transformers==4.46.0 accelerate flash-attn --no-build-isolation
# 官方建议 torch ≥ 2.2
2. 推理代码(单卡 24G 可跑)
from PIL import Image
import requests, torch
from transformers import AutoProcessor, AutoModel
model_path = "Open-Bee/Bee-8B-RL"
processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True)
model = AutoModel.from_pretrained(
model_path,
torch_dtype=torch.bfloat16,
trust_remote_code=True
).cuda().eval()
image = Image.open(requests.get("https://your/image.jpg", stream=True).raw)
text = processor.apply_chat_template(
[{"role":"user","content":[{"type":"image"},{"type":"text","text":"How many monitors?"}]}],
add_generation_prompt=True,
enable_thinking=True # False=短链,True=长链
)
inputs = processor(images=image, text=text, return_tensors="pt").to("cuda")
out = model.generate(**inputs, max_new_tokens=4096, temperature=0.6)
print(processor.decode(out[0], skip_special_tokens=True))
3. vLLM 高并发(≥ 0.11.1)
vllm serve Open-Bee/Bee-8B-RL \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.85 \
--served-model-name bee-8b-rl
实测 2×A100-80G,1860 tokens/s(batch=64,16k 上下文)。
六、常见问题解答(FAQ)
Q:15 M 数据能商用吗?
A:Honey-Data-15M 全部源自 MIT/Apache 许可的开源集,可商用,但含 CC-BY-NC 的 STEM 子集(约 0.8 M)需单独剔除。
Q:长 CoT 推理慢多少?
A:同样 2k 输出,长 CoT 比短链慢 38 %,但数学 benchmark 平均 +9.2 pts;生产环境可动态关闭。
Q:能否继续微调?
A:官方已开放 Stage-3 权重(未 RL),用户可在 Honey-Data-1M 子集上继续 SFT,学习率 3e-6,epoch=1 即可。
七、写在最后:把“数据优先”写进开源字典
Bee-8B 的故事给社区的最大启示,不是又一个 SOTA,而是一套可复现的数据工程范式:
-
清洗 → 去噪、去重、去幻觉 -
** enrichment** → 让每条样本处在“最近发展区” -
开源 → 流水线、评测、训练脚全套放出
当大模型进入“数据质量红利期”,参数竞赛将让位于工程竞赛。愿下一个爆款开源模型,不再靠神秘“内部数据”,而是靠人人可跑的 HoneyPipe。
“
我们下次见——也许是在你 fork 的 HoneyPipe 仓库里。
”