首页 > 其他分享 >因为不懂推测解码,被面试官鄙视了...

因为不懂推测解码,被面试官鄙视了...

时间:2024-09-10 19:51:47浏览次数:3  
标签:... 面试官 缓存 解码 生成 token 前向 模型

我是丁师兄,专注于智能驾驶方向大模型落地,公众号:丁师兄大模型。

大模型1v1学习,已帮助多名同学上岸国内外大厂


前两天有个学员抱怨后天就要面试了,心里难免紧张。尽管他做了很多准备,但他还是担心面试官会问到像“大模型中的推测解码”这种复杂的技术问题。为了不在关键时刻掉链子,我迅速的进行了模拟演练,帮他理了理思路...

01可以简单介绍一下文本生成的概念吗?

可以的,文本生成主要包括两个过程:前向传递和解码。

前向传递是把输入通过模型中的各个层进行处理,生成一组潜在的 token,每个 token 都有其概率,表示它跟随给定输入的可能性。

解码过程则是从这些潜在 token 中选择一个来生成输出,常用的方法是贪婪解码,即选择概率最高的 token。

例如,当我们输入一个句子时,模型通过前向传递处理生成一组可能的下一个 token,然后通过解码选出最有可能的那个单词。

如下图是一个文本生成过程的例子,输入被送到大语言模型中,在这里它经历前向过程。模型返回一组 token 及其相关的概率。

然后我们通过选择概率最高的 token 进行解码,并将其附加到输入中,这个更新后的输入再次经历整个过程。

选择 token 后,我们将其附加到现有输入中,再次进行前向传递和解码。这个迭代过程构成了现代语言模型中文本生成的基础。 

02大语言模型响应延迟的主要原因是什么?

大语言模型的响应时间延迟主要是因为前向传递过程非常耗时。

尤其是当模型在本地托管或者服务于有限数量的用户时,需要频繁加载层权重到本地设备,这个过程受到了内存带宽的限制,被称为“内存受限”。

另外,对于较大的批处理大小,瓶颈通常会转向计算受限过程。换句话说,模型的计算资源也可能成为瓶颈,影响响应时间。

03推测解码是怎么解决这个问题的呢?

推测解码通过缓存 Key 和 Value 状态来优化生成过程。在生成过程中,模型只需计算新 token 的注意力,而不必重新计算所有先前 token 的注意力。

这显著减少了计算时间,提高了响应速度。比如,模型在生成一段文本时,先计算并缓存中间状态,下次生成时直接利用这些缓存,不再重复计算,节省了大量时间。

04可以详细说说推测解码的工作原理吗?

推测解码的关键在于缓存前向传递中计算的 Key 和 Value 状态。

具体步骤是:

  • 初始输入处理:输入经过前向传递生成一组 token 及其概率。

  • 选择 token 并缓存:从这些 token 中选择概率最高的那个,将其附加到输入中,同时缓存 Key 和 Value 状态。

  • 重复迭代:更新后的输入再次进行前向传递和解码,这次利用缓存的状态来加速计算。

  • 评估 token:在每次迭代过程中,不仅预测下一个 token,还评估所选择的 token 是否是最优选择。

通过这些步骤,推测解码能在保证高质量文本生成的同时,大大加快生成速度。这种方法对于需要快速响应的应用,特别有效。

05缓存具体是怎么减少冗余计算的?

缓存通过存储当前生成的 token 列表,使前向传递只需计算下一个 token 的概率,而不必重新计算所有先前 token 的概率。

例如,如果已经生成了一段文本,缓存可以记录前面部分的计算结果,生成新 token 时只需计算新加部分的概率。这样就避免了重复计算,极大提高了效率。

06推测解码如何在小模型和大模型之间取得平衡

推测解码通过结合小模型的低延迟和大模型的高质量来实现平衡。

具体来说:

  • 选择一个小模型和一个大模型,它们使用相同的分词器,以便比较它们的 logits。

  • 使用小模型生成一定数量的候选新 token,比如 3 个。

  • 将原始输入与这 3 个新 token 结合,输入到大模型中进行前向传递,得到新输入 token 的概率列表。

  • 使用贪婪解码对最后的 4 个 token 进行解码,从左到右比较大模型解码的 token 与候选新 token。如果 token 匹配,我们接受它们并将其附加到原始输入。继续这个过程,直到第一次不匹配发生,此时将大模型的 token 附加到输入中,再次传递给小模型生成另外 3 个 token,重复整个过程。

通过这种方法,每次迭代中生成 1 到 4 个新 token,既利用了小模型的速度,又确保了大模型的质量。

END


我是丁师兄,专注于智能驾驶方向大模型落地,公众号:丁师兄大模型。

大模型1v1学习,已帮助多名同学上岸国内外大厂

标签:...,面试官,缓存,解码,生成,token,前向,模型
From: https://blog.csdn.net/dsxaigc/article/details/142107723

相关文章

  • leetcode day06 动态规划之解码方法I和II
    91.解码方法该题类似于爬楼梯方法一:动态规划对于给定的字符串s,设它的长度为n,其中的字符从左到右依次为s[1],s[2],⋯,s[n]。我们可以使用动态规划的方法计算出字符串s的解码方法数。具体地,设f i 表示字符串s的前i个字符s[1..i]的解码方法数。在进行状态转移......
  • 评职称、经济补贴...盘点2024年各城市PMP证书福利汇总!
    PMP备考资料免费领取##近年来,企业与企业、城市与城市间的人才争夺变得更加激烈,各大城市均针对持有国际职业资格认证的人才出台了相关优惠政策,以鼓励重点行业领域用人单位优化海外引才聚才方式,目前已有多个城市针对项目管理及相关行业和认证出台了鼓励政策。先简单给大家总结一下:上......
  • 面试官:如何实现线程池任务编排?
    任务编排(TaskOrchestration)是指管理和控制多个任务的执行流程,确保它们按照预定的顺序正确执行。1.为什么需要任务编排?在复杂的业务场景中,任务间通常存在依赖关系,也就是某个任务会依赖另一个任务的执行结果,在这种情况下,我们需要通过任务编排,来确保任务按照正确的顺序进行执......
  • 面试官:Vue中的过滤器了解吗?过滤器的应用场景有哪些?
    一、是什么过滤器(filter)是输送介质管道上不可缺少的一种装置大白话,就是把一些不必要的东西过滤掉过滤器实质不改变原始数据,只是对数据进行加工处理后返回过滤后的数据再进行调用处理,我们也可以理解其为一个纯函数Vue允许你自定义过滤器,可被用于一些常见的文本格式化p......
  • 面试官:SPA首屏加载速度慢的怎么解决?
    面试官VUE系列总进度:19/331:说说你对vue的理解?2:说说你对双向绑定的理解?3:说说你对SPA(单页应用)的理解?4:v-show和v-if有什么区别?使用场景分别是什么?5:Vue实例挂载的过程?6:请描述下你对vue生命周期的理解?在created和mounted这两个生命周期中请求数据有什么区别呢?7:为什么Vu......
  • 面试官:你是怎么处理vue项目中的错误的?
    一、错误类型任何一个框架,对于错误的处理都是一种必备的能力在Vue中,则是定义了一套对应的错误处理规则给到使用者,且在源代码级别,对部分必要的过程做了一定的错误处理。主要的错误来源包括:后端接口错误代码中本身逻辑错误二、如何处理后端接口错误通过axios的interc......
  • 多媒体应用设计师备考考点讲解(三):多媒体内容的编码与解码技术
    #多媒体应用设计师备考考点讲解(三):多媒体内容的编码与解码技术引言在现代多媒体应用中,编码与解码技术是至关重要的环节。无论是视频、音频还是图像,都需要通过编码技术将其转换为适合存储和传输的格式,而在接收端则需要通过解码技术将其还原为原始内容。本文将深入探讨多媒体内容的编......
  • PHP 程序员学会了 Go 语言就能唬住面试官吗?
    大家好,我是码农先森。唬住了50k,唬不住就5k。这句话一直是PHP程序员之间相互吹捧、吹牛逼的笑点,每次面试过后都会挠挠头上仅剩的几根头发,回想自己是否吹牛逼会过了头。我经常在微信程序员撕逼群里,看到群友因为某个技术点而争执不休,时而讨论这个技术能不能在面试过程中突出自......
  • select...for update 到底是加了行锁,还是表锁?
    原文:select...forupdate到底是加了行锁,还是表锁?前言select...forupdate在MySQL中,是一种悲观锁的用法,一般情况下,会锁住一行数据,但如果没有使用正确的话,也会把整张表锁住。1.要什么要用行锁?假如现在有这样一种业务场景:用户A给你转账了2000元,用户B给你转账了3000......
  • 【倒计时10天...IEEE出版】第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024,9
    第五届大数据、人工智能与软件工程国际研讨会(ICBASE2024)将于2024年09月20-22日在中国温州隆重举行。会议主要围绕大数据、人工智能与软件工程等研究领域展开讨论。会议旨在为从事大数据、人工智能与软件工程研究的专家学者、工程技术人员、技术研发人员提供一个共享科研......