Guided Decoding (借助FSM,有限状态自动机)

news/2025/2/5 17:08:35/

VLLM对结构化输出的支持:

vllm/docs/source/features/structured_outputs.md at main · vllm-project/vllm · GitHub

VLLM对tool call的支持:

vllm/docs/source/features/tool_calling.md at main · vllm-project/vllm · GitHub

以上指定输出格式,可以通过有限状态自动机“辅助”LLM来实现。

即把要求的输出格式,编译为自动机;LLM decode阶段,根据当前自动机状态,只采样(或贪心选择)自动机允许的那些tokens,不允许的那些tokens采样概率强制设为0。

输出格式里规定好的字符串,可以强制交给LLM,无需LLM自己去生成。

VLLM的guided decodin,能确保输出格式的正确。但不能确保内容质量也好。

VLLM建议,为了生成更好的内容,最好把格式要求写在prompt里:

我觉得,最好把这种格式输出,也放在few-shot-examples里或者SFT训练数据里。


http://www.ppmy.cn/news/1569560.html

相关文章

TCP 丢包恢复策略:代价权衡与优化迷局

网络物理层丢包是一种需要偿还的债务,可以容忍低劣的传输质量,这为 UDP 类服务提供了空间,而对于 TCP 类服务,可以用另外两类代价来支付: 主机端采用轻率的 GBN 策略恢复丢包,节省 CPU 资源,但…

MySQL知识点总结(十七)

在从属服务器上执行RESET SLAVE命令时,会发生哪些操作? RESET SLAVE命令会断开从属服务器与主服务器的连接,以重置从属服务器,具体效果如下:清除 master.info和relay.log资料档案库删除所有中继日志启动新的中继日志文…

【C++】STL——vector的使用

目录 💕1.vector介绍 💕2.vector的基本用法 💕3.vector功能的具体用法 (讲解) 💕4.vector——size,capacity函数的使用 (简单略讲) 💕5.resize&#xff…

【JavaEE】Spring(6):Mybatis(下)

一、Mybatis XML配置文件 Mybatis开发有两种方式: 注解XML 之前讲解了注解的方式,接下来学习XML的方式 1.1 配置数据库连接和Mybatis 直接在配置文件中配置即可: spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mybatis_test?cha…

基序和纯度分数的计算

以下对这两个概念的详细解释: 基序 纯度分数 PWM矩阵的来源 为什么会有PWM矩阵? 一个特定的转录因子(TF)的结合位点的基序(motif)并不是唯一的。实际上,TF结合位点通常具有一定的序列变异性&a…

高阶开发基础——快速入门C++并发编程6——大作业:实现一个超级迷你的线程池

目录 实现一个无返回的线程池 完全代码实现 Reference 实现一个无返回的线程池 实现一个简单的线程池非常简单,我们首先聊一聊线程池的定义: 线程池(Thread Pool) 是一种并发编程的设计模式,用于管理和复用多个线程…

jEasyUI 转换 HTML 表格为数据网格

jEasyUI 转换 HTML 表格为数据网格 引言 随着互联网技术的飞速发展,前端框架和库的应用越来越广泛。jEasyUI 是一款功能强大的 jQuery UI 扩展库,它提供了丰富的 UI 组件,其中数据网格(DataGrid)是 jEasyUI 中一个非常重要的组件。本文将详细介绍如何使用 jEasyUI 将一个…

ASP.NET Core与配置系统的集成

目录 配置系统 默认添加的配置提供者 加载命令行中的配置。 运行环境 读取方法 User Secrets 注意事项 Zack.AnyDBConfigProvider 案例 配置系统 默认添加的配置提供者 加载现有的IConfiguration。加载项目根目录下的appsettings.json。加载项目根目录下的appsettin…