“MoE 只能堆在云端?”——Liquid AI 刚刚用一部手机推翻了这条金科玉律。

开场:当「大模型」不再等于「大算力」

凌晨 1 点,你窝在沙发改 PPT,手机突然弹出提醒:
“需要把 200 页英文报告浓缩成 10 行中文 bullet?”
过去,你会复制→打开某某云端助手→等待→付费;现在,三星 S24 Ultra 本地 2 秒出结果,还全程断网。幕后功臣正是 Liquid AI 首颗「端侧」混合专家模型——LFM2-8B-A1B。它只有 1.5 B 参数在工作,却拿出 3–4 B 密集模型的答卷速度,还快过 Qwen3-1.7B。

下面把聚光灯打向三件事:

  1. 它是如何把「稀疏」做成「高效」;
  2. 在 CPU/GPU/手机上的真实吞吐;
  3. 给你一份「即拷即用」的落地命令,外加踩坑 FAQ。

一、架构速写:18 卷积 + 6 GQA + 32 专家

组件 数值 备注
总参数量 8.3 B 存储占用 ≈ 16.7 GB(F16)
激活参数量 1.5 B 每 token 仅唤醒 4/32 专家
上下文 32 k 同档罕见
词汇表 65 k 多语言友好
  • 前两层保持密集——防止早期梯度暴走;
  • 其余每层塞一个 MoE FFN——专家可特化「数学/代码/小语种」;
  • Router 用归一化 Sigmoid + 自适应偏置——负载均衡更稳,训练不崩溃。

LFM2 结构概览
图:MoE 块穿插在卷积与 GQA 之间,计算路径只走 1.5 B 参数。


二、速度实测:在手机上把 Qwen3-1.7B 甩在身后

Liquid 在两款「消费级」设备上跑 int4 + int8 动态激活

  • Galaxy S24 Ultra (Snapdragon 8 Gen 3)
  • AMD Ryzen AI 9 HX370 (16 线程)

结果:同并发下,解码吞吐量最高提升 ≈ 1.7×;如果你把图表翻成大白话——滑动输入法的下一词预测都能用 8 B 模型了,还不掉帧

S24 解码吞吐
图:越高越好,LFM2-8B-A1B 曲线在 S24 Ultra 上持续压在 Qwen3-1.7B 上方。


三、手把手落地:3 条路径、复制即可跑

下面所有命令均实测可执行;如遇权限问题,自行加 sudo!(Colab)。

① Transformers(最稳,GPU/CPU 通吃)

# 1. 装开发版 transformers(含 LFM2MoE 架构)
pip install git+https://github.com/huggingface/transformers.git@0c9a72e

# 2. 最小推理脚本
python - <<'PY'
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model_id = "LiquidAI/LFM2-8B-A1B"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
        model_id,
        torch_dtype="bfloat16",
        device_map="auto"          # 自动挑 GPU,或 CPU
)
msg = [{"role": "user", "content": "用三句话解释量子纠缠"}]
inputs = tok.apply_chat_template(msg, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(inputs, max_new_tokens=80, temperature=0.3, repetition_penalty=1.05)
print(tok.decode(out[0], skip_special_tokens=False))
PY

② vLLM(GPU 批量服务最快)

git clone https://github.com/vllm-project/vllm.git && cd vllm
pip install -e . -v          # 装 FlashInfer & CUDA kernels

python - <<'PY'
from vllm import LLM, SamplingParams
llm = LLM("LiquidAI/LFM2-8B-A1B", dtype="bfloat16")
sp = SamplingParams(temperature=0.3, min_p=0.15, max_tokens=60)
out = llm.chat([[{"role":"user","content":"写一句 JSON 格式的问候"}]], sp)
print(out[0].outputs[0].text)
PY

③ llama.cpp(手机/NPU 最省)

# 需 b6709+ 含 lfm2moe 支持
wget https://huggingface.co/LiquidAI/LFM2-8B-A1B-GGUF/resolve/main/lfm2-8b-a1b.Q4_0.gguf
llama-cli -m lfm2-8b-a1b.Q4_0.gguf -p "List three benefits of on-device AI." -n 40 --temp 0.3

4.7 GB 权重直接丢进 S24 Ultra,本地断网推理 16 token/s 不是广告。


四、常见疑问 20 秒快答

Q:量化后精度掉得多吗?
A:官方测过 Q4_0 在 16 基准上平均掉 < 2 %;若任务敏感,可换 Q6_K 或 F16。

Q:为什么第一层不 MoE?
A:早期特征决定收敛稳定性;留 Dense 相当于给梯度一条「安全通道」。

Q:我想微调专属客服,显存要多少?
A:LoRA-rank 64,batch=1,seq=2 k,10 GB 显存就够;TRL 脚本已放在 Hugging Face Card。

Q:商用授权?
A:LFM Open License v1.0,允许商用,仅要求修改留痕,详见官方 repo


五、收束:稀疏不是噱头,而是端侧必然

云端芯片可以堆 H100,但口袋里的设备只有散热片。LFM2-8B-A1B 用「32 选 4」的稀疏路由,把 8 B 参数塞进 1.5 B 的能耗预算,让「大模型」第一次在手机 CPU 上跑出了旗舰体验——无需联网、无订阅费、数据不出本地。

如果你正打算:

  • 给 App 配一个离线 Copilot
  • 在 IoT 盒子跑多语种 OCR
  • 或者纯粹想白嫖一个 3 B 级模型的智商——
    LFM2-8B-A1B 已经拆掉了门槛,命令行就在上面,复制-粘贴,属于你的端侧智能即刻开机。

延伸引线

下一次,当同事炫耀“我用云端大模型”时,你只需抬起手机——本地 8 B 专家已秒回结果