SmolLM3最佳通用小模型

Hugging Face刚刚发布了SmolLM3,一个30亿参数的模型,但它的表现就像它有两倍那么多,甚至击败了拥有70亿参数的模型。

SmolLM3最佳通用小模型

Hugging Face刚刚发布了SmolLM3。而且,这个名字不是讽刺。这是一个30亿参数的模型,但它的表现就像它有两倍那么多,甚至击败了拥有70亿参数的模型。

1、训练设置

  • SmolLM3看到了11.2万亿个标记。这是相当大的数据量。数据混合是分层的:网络内容、代码库、数学问题、推理任务。
  • 然后他们做了大多数人都跳过的步骤:中期训练。1400亿个标记纯粹用于推理。之后:监督微调和APO(锚定偏好优化)以对齐。

这很重要,因为该模型不仅仅重复模式。它可以遵循逻辑,解决多步骤的问题,并且在这一规模下比通常更长时间保持主题。

2、扩展思考模式

你可以打开“思考”模式。它使模型逐步推理而不是直接得出答案。它实际上会影响任务如数学或研究生水平QA的表现。

如果你想要快速的答案:关闭它。
如果你想了解答案是如何得出的:打开它。

3、多语言性质

六种语言被正式支持:英语、法语、西班牙语、德语、意大利语、葡萄牙语。该模型在每种语言中都使用真实数据进行训练,而不是像许多其他模型那样仅进行“标记对齐”。

它也看到了少量的阿拉伯语、中文和俄语。那里的性能略有下降,但仍然优于同规模的大多数模型。

4、长文本,非常长的上下文

这个模型原生支持64k个标记。并且通过YaRN外推,它可以扩展到128k个标记而不会崩溃。这足以处理长文档、转录本、书籍甚至更多。

Llama3 8B在长上下文一致性方面仍然存在困难。SmolLM3,虽然只有3B,却不会。

5、工具调用支持

SmolLM3可以调用工具。你可以将工具作为JSON或代码样式提供给它。它可以调用函数,处理参数,并返回结构化的响应。

这使其可用于基本自动化、检索系统、API调用机器人,而无需包装器或第三方粘合代码。

基准测试
它正在基准测试中占据主导地位,轻松击败了一些大小是它两倍的模型

  • GSM-Plus(数学):83.4
  • GPQA(研究生推理):41.7
  • 工具调用基准(BFCL):88.8
  • Global MMLU(多语言QA):在顶级语言中处于中上水平
  • LiveCodeBench v4(编程):30.0
  • AIME 2025(数学奥林匹克级别):36.7(开启推理)

在很多这些任务中,它与Qwen 4B和Llama3 8B相抗衡。这不是营销。模型卡中的原始数据就是证明。

6、部署选项

SmolLM3可以在以下环境中运行:

  • transformers
  • vLLM
  • SGLang
  • llama.cppONNXMLC用于本地/边缘设备
Hugging Face上有量化版本。不需要80GB的VRAM来运行。适合笔记本电脑、边缘设备或单GPU设置。

7、它适合做什么

很多事

  • 构建代理的人
  • 大规模摘要
  • 长文档问答
  • 代码推理
  • 任何需要具有实际深度的小型模型的人都适用

不适合你的情况

  • 你需要跨所有领域达到GPT-4级别的深度
  • 你想要花哨的对话或精美的小谈话
  • 你正在进行超出支持的六种语言的高强度多语言生成

8、如何使用SmolLM3?

权重是开源的,可在HuggingFace上获取。

代码也可以在这里找到

from transformers import AutoModelForCausalLM, AutoTokenizer  

checkpoint = "HuggingFaceTB/SmolLM3-3B"  

tokenizer = AutoTokenizer.from_pretrained(checkpoint)  
model = AutoModelForCausalLM.from_pretrained(checkpoint)  

tools = [  
    {  
        "name": "get_weather",  
        "description": "获取一个城市的天气",  
        "parameters": {"type": "object", "properties": {"city": {"type": "string", "description": "要获取天气的城市"}}}}  
]  

messages = [  
    {  
        "role": "user",  
        "content": "你好!今天哥本哈根的天气怎么样?"  
    }  
]  

inputs = tokenizer.apply_chat_template(  
    messages,  
    enable_thinking=False, # True 也可以,取决于你的选择!  
    xml_tools=tools,  
    add_generation_prompt=True,  
    tokenize=True,  
    return_tensors="pt"  
)  

outputs = model.generate(inputs)  
print(tokenizer.decode(outputs[0]))

9、结束语

SmolLM3是一个真正的小型模型。没有游戏。完整的训练堆栈是公开的。真实的推理。长上下文。工具调用。

没有API锁定。没有付费墙。没有虚假的“开放权重”噱头。

如果你正在寻找一个能完成工作的模型,它是这个范围内少数真正能实现的模型之一。


原文链接:SmolLM3 : The best small LLM for everything

汇智网翻译整理,转载请标明出处