constrained decoding的相关学习及其理解
Posted on August 22, 2024
![Blog Image](../../static/image/ss.png)
constrained decoding的两个及本思想
1.在数据计算的每一步,mask掉不该输出的tokens(将其生成概率赋为0),那么最终结果一定符合预先定义的schema。因为每一步结果都是满足条件的的,那么最后的结果一定也是满足的
2.schema中有些部分不需模型生成,因为已经提前定义好了。括号、双引号、字段名称,都是无需生成的,直接“放”在模型的输出中即可,模型只需关注字段内容的生成。
![Blog Image](../../static/image/as.png)
基于outline
基于sglang
outlines生成数据的过程中就算数据为空。也会带着数据整体json格式,并且会将数据转化成正则表达式的方式
这两种方式都是基于算法fsm的,都有比较明显的缺陷,在表达能力上有缺陷,无法处理较为复杂结构话输出
所以为了达到更好的的效果现在通用的模型基本都是cfgs,那什么是cfgs呢,先来个简单的介绍
![Blog Image](../../static/image/gg.png)