verbalized-sampling
让大模型「口头报告概率」的开源采样框架,训练无关、模型无关,创意写作多样性提升2-3倍
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让大模型「口头报告概率」的开源采样框架,训练无关、模型无关,创意写作多样性提升2-3倍
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否曾遇到过这种情况:让 AI 写一首诗,它每次都给你风格几乎一模一样的作品?让大模型生成笑话,同一个笑话翻来覆去地出现?这种现象叫做模式坍缩(Mode Collapse)——AI 记住了最常见的回答模式,却丢失了「多样性」这把衡量智能的标尺。
Verbalized Sampling(口头化采样,简称 VS) 来自东北大学 CHATS-Lab 研究团队,于 2025 年发布在 arXiv(论文编号 2510.01171),被 ICLR 2026 接收。这个项目的核心思路非常巧妙:不是训练模型,而是改变提问方式——让 AI 在回答时「口头报告」每个答案的概率,然后再从概率分布中真正采样。
图1:Verbalized Sampling 核心原理图(来源:CHATS-lab/verbalized-sampling 官方仓库)
大模型的模式坍缩问题,长期困扰着 AI 研究者和应用开发者。传统的解法是调低 temperature(温度),但这往往牺牲了回答质量,而且与 temperature 存在耦合,效果不稳定。另一个方向是在训练阶段介入,但需要额外数据和计算资源。
东北大学的研究团队另辟蹊径:既然模型内部知道每个词的概率,为什么不让它「说出来」?通过设计特定的提示词模板,引导模型同时输出多个候选答案及其概率,然后从中采样。这个方法无需任何训练,对任意支持 API 调用的 LLM 均可生效——GPT、Claude、Gemini、Llama 来者不拒。
2025 年底,团队将这一方法封装成了完整的 Python 工具包并发布到 PyPI,GitHub 迅速突破 770 Stars,配套的 HuggingFace 数据集也已上线。
想象你要在一场大会中收集意见。传统方式是让模型直接回答(相当于「你来说一个答案」)——结果往往是它最熟悉的那几个套路。
VS 的做法更聪明:它先让模型生成多个答案并告知每个答案的「自信程度」(概率),相当于做了一场内部民意调查,然后从概率分布中加权抽样,而不是每次都选最高概率的答案。这样既能利用模型对答案质量的判断,又能有效探索那些「低概率但同样有价值」的角落。
VS 提供了可直接粘贴到 ChatGPT、Claude、Gemini 等主流 AI 对话平台的提示词模板,无需任何安装。例如,只需在对话开头粘贴以下模板:
<instructions>
Generate 5 responses to the user query, each within a separate <response> tag.
Each <response> must include a <text> and a numeric <probability>.
Please sample at random from the tails of the distribution,
such that the probability of each response is less than 0.10.
</instructions>
然后提出你的问题,AI 就会返回带概率的多个答案。这就是 VS 的核心——prompting-based,所以天然跨平台。
一行命令即可安装:
pip install verbalized-sampling
安装后可通过 Python API 调用:
from verbalized_sampling import verbalize
# 生成多样化的响应分布
dist = verbalize("Tell me a joke", k=5, tau=0.10, temperature=0.9)
# 从分布中采样
joke = dist.sample(seed=42)
print(joke.text)
核心参数:
k:生成多少个候选答案(默认 5)tau:概率阈值,用于控制采样区间(如 tau=0.10 表示概率 < 10% 的尾部区域)temperature:与传统采样正交,VS 的效果独立于 temperature 设置安装后还会注册一个 verbalize CLI 命令:
verbalize "Tell me a short story about a bear" --k 5 --tau 0.10
根据论文和 GitHub 案例,VS 的典型应用场景包括:
| 场景 | 说明 | 效果提升 |
|---|---|---|
| 创意写作 | 小说、诗歌、故事生成 | 多样性提升 2-3x |
| 社交模拟 | 对话数据生成、角色模拟 | 风格覆盖更广 |
| 合成数据生成 | 构造多样化训练数据集 | 减少数据偏见 |
| 开放式问答 | 非确定性问题的多角度回答 | 避免单一视角 |
| 笑话/脑筋急转弯 | 克服重复梗问题 | 独特笑话比例大幅提升 |
仓库结构清晰,核心模块包括:
verbalized_sampling/
├── api.py # 核心 verbalize 函数
├── cli.py # Typer CLI 入口
├── transforms/ # 响应解析/转换
├── selection/ # 采样策略选择
├── recipes/ # 不同任务预设配方
└── analysis/ # 多样性/质量评估工具
项目依赖了 openai、anthropic(Claude)、google-genai(Gemini)、litellm(统一 LLM 调用)等主流 SDK,支持通过 OPENAI_API_KEY、OPENROUTER_API_KEY 等环境变量配置认证。另有可选 GPU 加速依赖 vllm,用于大批量推理场景。
代码质量方面,项目使用 pytest 做单元测试,ruff + black 做代码格式化,mypy 做类型检查,sphinx 构建文档,CI 流水线完整。测试覆盖率较高,代码注释详细。
| 维度 | 评估 |
|---|---|
| 零代码用户 | ✅ 可直接复制提示词模板使用任意 AI 对话平台 |
| Python 开发者 | ✅ pip install 后即可使用,API 简洁 |
| 研究人员 | ✅ 提供完整实验脚本、数据集和 Colab notebook |
| 企业用户 | ✅ 支持 OpenRouter 等商业 API,有 SLA 保障 |
注意:工具包本身无 Web 界面、无 Docker 支持,无法通过「一键部署」方式使用。但纯 pip 安装 + API 调用本身已足够简单,对于有 Python 环境的研究者和开发者几乎没有门槛。
VS 的出现代表了 LLM 应用领域的一个重要趋势:从「调参」转向「调问法」。传统上提升 AI 输出质量依赖 prompt engineering 或 fine-tuning,而 VS 证明了一个精心设计的 prompting 策略可以带来质的飞跃,且完全免费、即刻生效。
这个方向也被学界认可——ICLR 2026 的接收证明了其学术价值,同时 HuggingFace 数据集的上线降低了下游应用的门槛。
一句话总结:VS 不是一个模型,而是一种与大模型对话的新姿势——通过让 AI 「说出概率」,让采样真正做到「概率感知」。