投机采样的显性化——OpenAI新feature:Predicted Outputs

关于投机采样speculative decoding我就不特别详细解释了

我在这里简单描述一下

小模型生成了接下来的n个标记,然后在大模型上进行n个并行推理,具体为:Prompt,Prompt + ST1,Prompt + ST1 + ST2 … Prompt + ST1 + ST2 … + STn。

(ST = 推测标记)

需要了解整个详细背景的,请看我原来的文章

OpenAI,Claude,Gemini御三家线上推理的杀手锏(Speculative Decoding)

这玩意本来大家都在用,因为省算力,同时降延迟。

但是OpenAI真的是一个非常产品化的公司,这点毋庸置疑,它居然把这么后台的东西都能做到前台feature来...

这个东西叫Predicted Outputs

其实投机采样的本质就是大模型给你checking小模型你decoding的对不,我们都知道decoding在现在的Transformer的体系里面,它就没个并行,因为是自回归的机制,别说Vllm,这块要是还不理解,建议理解一下Kv-cache的加速机理。

对同等遗传序列由于小模型Parameter少,层少,深度潜,那前向肯定比大模型快,这毋庸置疑。

但是有没有我连小模型都懒得用,直接上去checking

你别说,还真有可能,就是你把你认为高度重复的部分告诉我,那我把这个记住,你只要在prompt里标注出来它是被prediction的,那我就对这段不用复杂的自回归了,直接并行,咔一下就出结果了

也就是上来就来下面这样

Prompt,Prompt + ST1,Prompt + ST1 + ST2 … Prompt + ST1 + ST2 … + STn。

对用户的好处,那自然不必说,因为模型分为input和output token,你把本来应该output,token by token推理的output,给转成input了,input就可以prefill也就是玩kv-cache,也就可以被并行计算,那你说快不快,这也就节省了推理延迟,同时理论上,是省钱的,因为input token便宜,output贵。

其实道理就这么简单。

比如以下这段代码,你也不想改啥,你就想把username的部分,改成email

/// <summary>/// Represents a user with a first name, last name, and username./// </summary>public class User{    /// <summary>    /// Gets or sets the user's first name.    /// </summary>    public string FirstName { get; set; }
    /// <summary>    /// Gets or sets the user's last name.    /// </summary>    public string LastName { get; set; }
    /// <summary>    /// Gets or sets the user's username.    /// </summary>    public string Username { get; set; }}

那就直接把这个包进prediction里

​​​​​​​​​​​​​​

import OpenAI from "openai";
const code = `/// <summary>/// Represents a user with a first name, last name, and username./// </summary>public class User{    /// <summary>    /// Gets or sets the user's first name.    /// </summary>    public string FirstName { get; set; }
    /// <summary>    /// Gets or sets the user's last name.    /// </summary>    public string LastName { get; set; }
    /// <summary>    /// Gets or sets the user's username.    /// </summary>    public string Username { get; set; }}`;
const openai = new OpenAI();
const completion = await openai.chat.completions.create({  model: "gpt-4o",  messages: [    {      role: "user",      content: "Replace the Username property with an Email property. Respond only with code, and with no markdown formatting."    },    {      role: "user",      content: code    }  ],  prediction: {    type: "content",    content: code  }});
// Inspect returned dataconsole.log(completion);

然后llm拿到了直接上来就投机采样checking了,关于这部分被包进来的内容,那自然是比推理快的。

费用和时间的对比:

图片

对比还是挺明显的,返回结果从5.2s降到了3.3s,快省1半了,那是相当的快了,但是这个省钱并没有,反而比原来贵了0.1555 cents到0.2675 cents,贵了小一半。那不对呀,本来应该output变input我便宜了才对啊

OpenAI的人的解释是

图片

如果预测是100%准确的,那么你不会看到费用差异。当模型与你的推测有差异时,我们会进行额外采样以“发现”新的标记,这就是我们为什么按完成时间费率对被拒绝的标记收费的原因。(果然是黑店

图片

不过确实是快,到是真的,这东西用好了,再加上其他的一些降低延迟的方法,例如端输出微调,并行回答,并行化投机采样的串行任务全都加上的话,那么你的LLM任务确实能达到非常好的优化,这本来是一门很科学的方法论,我们以后有时间再讲。

还是挺感慨和欣赏OpenAI做产品的力度和先进度的,所以随手写了一个小短文。很少有人能想到把这么后台的玩意变到前台来使用,还能赚钱

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/8677.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测

BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测 目录 BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测效果一览基本介绍模型搭建程序设计参考资料 效果一览 …

有趣的Midjourney作品赏析(附提示词)

中文提示词&#xff1a;国风少年 C4D软件,高分辨率,超细节,超现实主义, 英文提示词&#xff1a;National Style Youth Cinema4D,high resolution,hyper detailed,surrealism, --niji 6 --ar 1:1 中文提示词&#xff1a;粘土模型&#xff0c;男性穿着中世纪欧洲蓝色盔甲&#x…

【保姆级教程】实操 Linux 磁盘管理:硬盘选型 分区挂载

最近&#xff0c;Linux 服务器自带的固态硬盘&#xff0c;空间告警&#xff0c;急需加上一块新的硬盘来救急。 今日分享&#xff0c;系统梳理下 Linux 下挂载磁盘的详细步骤和注意事项&#xff0c;方便日后翻阅&#xff0c;也给有类似需求的小伙伴一点帮助。 1. SSD&#xff…

离线安装nvidia docker2插件

由于网络问题&#xff0c;各位下载nvidia docker插件存在各种各样的问题&#xff0c;往往需要换源&#xff0c;或者其他途径外网解决&#xff0c;为了避免这么麻烦&#xff0c;可选择直接将包下载到本地&#xff0c;使用dpkg本地安装。 离线包下载地址&#xff0c;总共需要下载…

MySQL多表查询

扩展 upsert语法 原始数据 create table stu(id int primary key auto_increment,name varchar(20), #学生姓名gender varchar(10), #学生性别age int #学生姓名 ) default charsetutf8;insert into stu values(null,乔峰, 男 ,28),(null,虚竹, 男 ,25),(n…

让智能体—“正念365”陪你一起“养心”

佛学的“八正道”中&#xff0c;笔者个人观点&#xff0c;“正念”是最适合当代人低门槛练习的一个&#xff0c;因为不需要阅读大量的知识来理解概念&#xff0c;只需要保持对当下的觉察&#xff0c;发现分心了&#xff0c;就不带评价的把注意力拉回到当前的事情上就好。就是佛…

uni-app小程序开发(1)

下载软件就不多赘述了。 直接上代码&#xff0c;写过wep端的vue看这个小程序就简单很多&#xff0c;不需要搞那么多麻烦事情&#xff0c;直接编译器就创建好了基础模版。 1、项目结构 暂时知道这么多&#xff0c;后续再补充 2、页面创建、导航栏设置、基础属性设置 在pages中…

Mac上无法访问usr/local的文件

sudo chmod 755 /usr/loca 最后用百度提供的方法解决了

Python Matplotlib 子图绘制

Python 中的子图绘制 在数据可视化中&#xff0c;展示多个图表在同一个画布上是常见的需求&#xff0c;这样可以更直观地比较不同数据集之间的关系。Python 中的 Matplotlib 库为我们提供了强大的功能来实现这一点。在本篇文章中&#xff0c;我们将详细介绍如何使用 Matplotli…

编写一个基于React的聊天室

前言 此前已经编写了一版后端的im&#xff0c;此次就用其作为服务端&#xff0c;可查看参考资料1 代码 使用WebStorm创建React项目 安装依赖包 PS C:\learn-demo\front\chatroom> npm installadded 183 packages, and audited 184 packages in 16s43 packages are looki…

Python-利用os,tkinter库编写一个伪恶意程序文件(Pro版)

前言&#xff1a;上一期我们简单学习了如何编写一个多次弹窗警告用户的exe伪恶意文件。我们知道了把Python初始文件编译为exe文件后&#xff0c;程序在没有Python环境的情况下也能正常运行。我们上次编写的程序仅仅只是伪造系统正在执行关机命令前的倒计时的假象&#xff0c;实…

低压线路保护器在生产型企业配电系统中的应用

摘要 随着现代电力系统的发展&#xff0c;配电系统的可靠性和安全性要求日益提高。低压线路保护器在其中扮演着关键角色。本文将探讨低压线路保护器的工作原理及其在现代配电系统中的作用&#xff0c;重点介绍ALP系列低压线路保护器的功能与应用。 引言 低压线路保护器用于保…

像狗一样的男人 --- 社保 篇

如果你不想像狗一样的活着&#xff0c;请抛弃幻想&#xff0c;保持学习 一些概念城镇职工社会保险&#xff08;五险一金&#xff09;城居保&#xff08;新农合&#xff09; 一些概念 社保有两个系统&#xff1a; 城镇职工社会保险 也就是 五险一金。新农合 14年新农合改名叫城…

腾讯云轻量应用服务器最佳实践

引言 轻量应用服务器是新一代开箱即用、面向轻量应用场景的云服务器产品&#xff0c;助力中小企业和开发者便捷高效的使用&#xff0c;相比普通云服务器更加简单易用且更贴近应用&#xff0c;提供极简上云体验。那么如何正确地购买、配置、管理轻量应用服务器&#xff0c;以确…

python练习-袭击敌机

$ python -m pip install --user pygame1、画游戏框 class Settings:def __init__(self):self.screen_width 1200self.screen_height 800self.bg_color (230, 230, 230)import sys import pygame from settings import Settingsclass AlienInvasion:def __init__(self):pyg…

windows server2019下载docker拉取redis等镜像并运行项目

一、基本概念 1、windows server 指由微软公司开发的“Windows”系列中的“服务器”版本。这意味着它是基于Windows操作系统的&#xff0c;但专门设计用于服务器环境&#xff0c;而不是普通的桌面或个人用户使用。主要用途包括服务器功能、用户和资源管理、虚拟化等 2、dock…

软件设计师中级 第9章 数据库技术基础

9.1 基本概念 9.1.1 数据库的三级模式结构 数据库系统有三级模式结构&#xff0c;一个数据库可以由多个外模式&#xff0c;只能有一个内模式。 视图对应外模式、基本表对应模式&#xff08;概念模式&#xff09;、存储文件对应内模式。 外模式 也称子模式&#xff08;Subsch…

1.python介绍、安装

python可以做什么&#xff1f; 1.自动化脚本&#xff08;运维开发、测试开发等&#xff09; 2.自动化办公 3.web应用程序 4.基于python完成数据计算&#xff08;生物、化学、物理&#xff09; 5.基于python开发AI程序 6.完成大数据开发Spark、Flink 想要与计算机交流&am…

一文学会easyexcel导入数据,多sheet页、字典转换【附带源码】

文章目录 前言一、业务流程二、实现1、引入easyexcel、fastjson、lombok包2、创建Json工具类3、创建自定义字典转换注解4、创建字典转换实现类5、创建数据对象类6、创建多sheet页封装对象7、创建Excel导入工具类8、创建测试类 三、接口测试1、启用项目2、使用数据导出的文件&am…

大模型微调技术 --> IA3

IA3 1.摘要 我们引入了一种名为 ( I A ) 3 (IA)^3 (IA)3 (通过抑制和放大内部激活的注入适配器, Infused Adapter by Inhibiting and Amplifying Inner Activations)的新的PEFT方法&#xff0c;该方法通过学习向量缩放激活&#xff0c;在只引入相对少量的新参数的情况下获得更…