添加微信号:AIGC_Tech,公众号小助手会拉你进群!点击下方名片关注AIGC Studio公众号!
点击下方名片关注AIGC Studio公众号!获取最新AI前沿应用/AIGC实践教程!
VibeThinker-1.5B 是一款拥有 15 亿个参数的密集模型,它挑战了小型模型天生缺乏稳健推理能力的传统观念。VibeThinker-1.5B 采用以"频谱到信号原理 (SSP)"为核心的创新型后训练方法开发而成,其推理能力优于闭源模型 Magistral Medium 和 Claude Opus 4,同时性能也与 GPT OSS-20B Medium 等开源模型不相上下。目前已经冲到了 Huggingface 热门榜Top2!
最值得注意的是,VibeThinker-1.5B 在三个具有挑战性的数学基准测试中超越了最初的 DeepSeek R1 模型(其大小是前者的 400 多倍):AIME24(80.3 对 79.8)、AIME25(74.4 对 70.0)和 HMMT25(50.4 对 41.7)。
相关链接
论文:https://huggingface.co/papers/2511.06221 代码:https://github.com/WeiboAI/VibeThinker Huggingface:https://huggingface.co/WeiboAI/VibeThinker-1.5B Modelscope:https://modelscope.cn/models/WeiboAI/VibeThinker-1.5B
主要特点
超高效:VibeThinker-1.5B 重新定义了推理模型的效率边界,仅使用 15 亿个参数就在数学和编码任务中实现了最先进的性能——比 Kimi K2 (1000 亿+) 和 DeepSeek R1 (671 亿) 等巨头小 100 到 600 倍。 创新方法:提出了一种以"频谱到信号原理(SSP)"为中心的创新型后训练技术。该框架首先在SFT阶段采用"两阶段多样性探索蒸馏"生成广泛的解决方案,从而系统地增强输出多样性;然后在RL阶段采用"最大熵引导策略优化(MGPO)"框架放大正确的信号。 卓越性能:尽管参数差距巨大——要与规模大10倍甚至数百倍的模型竞争——我们的15亿模型依然展现出卓越的性能。在AIME24、AIME25和HMMT25基准测试中,它超越了DeepSeek R1-0120和GPT-OSS-20B-Medium等开源模型,并取得了与MiniMax-M1相当的成绩。
成本效益高:虽然像 DeepSeek R1 和 MiniMax-M1 这样的最先进模型分别需要 29.4 万美元和 53.5 万美元的训练后成本,但我们的方法仅需 7800 美元即可实现同样的效果。这相当于降低了 30 到 60 倍,从根本上改变了开发高性能推理模型的经济性。
使用教程
必需:transformers 版本 >= 4.54.0
为获得更佳推理性能,建议使用:vLLM==0.10.1 或 SGLang>=0.4.9.post6
以下代码片段展示了如何使用Transformer实现聊天模型:
from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
class VibeThinker:
def __init__(self, model_path):
self.model_path = model_path
self.model = AutoModelForCausalLM.from_pretrained(
self.model_path,
low_cpu_mem_usage=True,
torch_dtype="bfloat16",
device_map="auto"
)
self.tokenizer = AutoTokenizer.from_pretrained(self.model_path, trust_remote_code=True)
def infer_text(self, prompt):
messages = [
{"role": "user", "content": prompt}
]
text = self.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
model_inputs = self.tokenizer([text], return_tensors="pt").to(self.model.device)
text = self.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = self.tokenizer([text], return_tensors="pt").to(self.model.device)
generation_config = dict(
max_new_tokens=40960,
do_sample=True,
temperature=0.6, # 0.6 or 1.0, you can set it according to your needs
top_p=0.95,
top_k=None # in vLLM or SGlang, please set top_k to -1, it means skip top_k for sampling
)
generated_ids = self.model.generate(
**model_inputs,
generation_config=GenerationConfig(**generation_config)
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = self.tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
return response
if __name__ == '__main__':
model = VibeThinker('Your model path')
prompt = 'Your Prompt'
print(model.infer_text(prompt))感谢你看到这里,添加小助手 AIGC_Tech 加入官方 AIGC读者交流群,下方扫码加入 AIGC Studio 星球,获取前沿AI应用、AIGC实践教程、大厂面试经验、AI学习路线以及IT类入门到精通学习资料等,欢迎一起交流学习💗~
没有评论:
发表评论