首页 > 其他分享 >大模型如何生成下一个token--解码策略

大模型如何生成下一个token--解码策略

时间:2024-09-19 10:21:05浏览次数:3  
标签:采样 概率 -- 解码 生成 token 惩罚 模型

Background

  • 生成模型目前主要使用自回归(Autoregressive)模型,通过上文信息预测下文信息,如GPT系列;

  • BERT系列使用自编码(AutoEncode)模型,在输入中随机mask一部分token,通过上下文预测这个token;

  • 自回归主要用于生成文本,如机器翻译和对话系统,而自编码主要用于降维和特征提取,如情感分析、聚类和分类等任务。

自回归模型当生成文本时,并不是同时生成一段文字,而是一个字一个字的去生成,同时新生成的字会继续加入上文,用于生成下一个字。

在自回归架构中,模型针对输入内容逐个token生成输出内容的文本。这个过程一般被称为解码

在本章的内容中,我们将首先介绍常见的解码策略

解码策略

我们可以将模型预测的结果看作一个向量,这个向量的长度是vocab size,其中每个位置的大小表示选取这个token的概率,如何基于这个信息选择合适的token作为本次生成的token即为解码策略(decoding strategy)

贪婪策略(Greedy Strategy)

最朴素的方案是直接选择概率最高的token,也就是贪婪策略

优点
  • 简单高效
缺点
  • 可能导致生成的文本缺乏多样性和创意

  • 容易产生重复的句子

  • 每次选取概率最大的token还可能造成看起来每次达到局部最优,但是最终错过全局最优的情况

由于贪心搜索所采取的是确定性策略,它的效果在不同类型的任务中具有一定的差异。在机器翻译和文本摘要等任务中,任务输出高度依赖于输入内容,贪心搜索通常能够获得不错的结果,但是在开放式生成任务(如故事生成和对话系统)中,贪心搜索有时会因为过于关注局部最优,而生成不自然、重复的句子

针对这种问题,提出了beam search

束搜索(Beam Search)

beam search的思路是既然每次选一个概率最大的可能会错过全局最优的选择,那么每次多选择n(i.e. Beam Size)个概率较大的token,再下一次time step继续多选n个概率较大的token,最后综合评估这几条线路的整体概率,选择其中整体概率较大的情况

  • 比如第一步保留了概率最高的两个词“dog”和“nice”作为候选;第二步基于“dog”和“nice” 均进行扩展,我们发现第一步概率较小的dog后面遇到了概率很大的has,使得the dog has整体联合概率达到0.4_0.9=0.36, 而第一步较大概率的the nice women 整理联合概率为0.5_0.4=0.2,通过beam search我们找到了更好的句子序列。

  • 在下面的生成步骤中,将会继续基于这两个候选去进行扩展,每次都选择联合概率最高的两个句子。最后,当两个束的句子均生成结束后,选择整体生成概率最高的候选句子作为最终的输出。

  • 在实践中,Beam Size的数量通常设定在 3 到 6 的范围内,设置过大的束会显著增加运算开销,并可能会导致性能下降。

  • Beam Size为1即退化为贪婪策略

优点
  • 缓解了贪婪策略过于关注局部最优导致错误全局最优的情况
缺点
  • beam search生成的结果相较于人类的结果,仍然有明显的缺点,缺乏多样性,生成内容重复度较高,比较机械

  • https://arxiv.org/pdf/1904.09751

概率采样(Probability Sampling)

另一类方法是根据模型给出的概率分布对token进行采样。虽然较大概率会选中概率较大的token,但是为其他概率较小的token被选中增加了可能性,进而加强生成过程的随机性和文本的多样性。

基于概率采样的方法会在整个词表中选择词元,这可能会导致生成相关性很低的token,导致生成质量下降。为了进一步提高生成质量,减少具有极低概率词汇对于生成结果的影响,主要有以下改进方案:

  • Top-K

  • Top-P

  • temperature

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等,

标签:采样,概率,--,解码,生成,token,惩罚,模型
From: https://blog.csdn.net/2401_84206094/article/details/142353274

相关文章

  • react hooks--useCallback
    概述useCallback缓存的是一个函数,主要用于性能优化!!!基本用法如何进行性能的优化呢?useCallback会返回一个函数的memoized(记忆的)值;在依赖不变的情况下,多次定义的时候,返回的值是相同的;语法:constmemoizedCallback=useCallback(()=>{doSomething(a,b);......
  • SQL注入漏洞的检测及防御,零基础入门到精通_sql 防注入检测
    SQL注入(SQLInjection)是一种广泛存在于Web应用程序中的严重安全漏洞,它允许攻击者在不得到授权的情况下访问、修改或删除数据库中的数据。这是一种常见的攻击方式,因此数据库开发者、Web开发者和安全专业人员需要了解它,以采取措施来预防和检测SQL注入漏洞。01什么是SQL注入......
  • springboot乡村旅游管理---附73081
    摘 要随着乡村旅游的蓬勃发展,传统的管理方式已难以满足日益增长的游客需求和市场变化。因此,借助现代信息技术手段,构建基于SpringBoot的乡村乡村旅游管理显得尤为重要。该系统旨在通过整合乡村旅游资源,提供智能化的管理服务,促进乡村旅游产业的健康发展,为游客提供更加优质......
  • 在AI的时代,程序员如何才不被淘汰
    随着人工智能技术的迅猛发展,大模型(LargeLanguageModels,LLMs)正逐渐成为IT行业的热点。对于程序员来说,转行大模型领域不仅意味着新的机遇,也面临着诸多挑战。本文将探讨程序员转行大模型的机遇与挑战,以及如何顺利实现转型。机遇:技术升级:大模型领域的技术不断迭代,程序员......
  • 基于SpringBoot的网上招聘系统的设计与实现---附源码72387
    目 录第1章引 言1.1选题背景1.2研究现状1.3论文结构安排第2章系统的需求分析2.1系统可行性分析2.1.1技术方面可行性分析2.1.2经济方面可行性分析2.1.3法律方面可行性分析2.1.4操作方面可行性分析2.2系统功能需求分析2.3系统性......
  • 半天玩转大模型技术之RAG
    引言当前大模型在金融行业最广泛的应用之一就是知识问答,而支撑该应用的技术正是当下火热的检索增强生成(RetrievalAugmentedGeneration)技术,简称RAG。因企业具体的业务往往需要注入特定的知识,比如ChatBI中企业数据库的相关知识、客服助手中客服FAQ等,所以RAG不仅可以应用......
  • 易优cms网站安装时数据库提示写入表ey_archives记录失败,请刷新重试
    当您在安装易优CMS时遇到“安装时数据库提示写入表ey_archives记录失败,请刷新重试”的问题时,可以尝试以下几种方法来解决:解决步骤清空数据库重新安装切换数据库版本直接导入数据库详细步骤1.清空数据库登录数据库管理工具:使用数据库管理工具(如phpMyAdmin、MySQLWo......
  • Odoo17.0 小红书
    小红书是近年来年轻人中非常流行的社交分享购物平台,本章我们将介绍如何使用我们的小红书模块来完成平台和odoo的对接。当前版本:17.0.1.0基础配置首先,我们要在系统中安装我们的小红书模块: 安装完模块之后,我们到主菜单-小红书-配置-店铺中新建一个店铺: 将我们在小红书商......
  • vue打包优化——使用webpack-parallel-uglify-plugin并行压缩JavaScript
    1、安装插件npminstallwebpack-parallel-uglify-plugin--save-dev我用的install命令,其他命令大同小异,大家百一下就行2、配置vue.config.js首先引入插件:constParallelUglifyPlugin=require('webpack-parallel-uglify-plugin');这里注意我用的vue-cli构建的项目,所以修改w......
  • 易优cms网站安装一直显示未知错误,无法继续
    当您在安装易优CMS时遇到“未知错误,无法继续”的问题,并且怀疑是由于数据库版本过高导致的,可以尝试将MySQL版本设置为5.6。以下是详细的步骤说明:解决步骤确认当前MySQL版本降级MySQL版本至5.6重新安装易优CMS详细步骤1.确认当前MySQL版本登录数据库管理工具:使用数据......