关于Text Generation的GenerationCoinfig参数

这篇具有很好参考价值的文章主要介绍了关于Text Generation的GenerationCoinfig参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在使用“Text Generation”时会用到.generation方法,这里记录一下所有可能用到的参数。

  1. 首先需要一个起始行的参数,即给定一个主题。如:“<|endoftext|>”
  2. max_length :即限定生成的最大长度,这里的长度指的token的长度。并且是最大的长度,在这个长度之内的其他长度的句子也是可以被生成的。
  3. min_length:与max_length相反,限定生成的最小长度。在此不做赘述。
  4. early_stopping:early_stopping 参数用于控制是否启用 early stopping 策略来提前终止生成序列的过程。在启用 early stopping 策略后,会在生成的序列中检查停止标记(例如,句号、问号、感叹号等),一旦发现该标记,就会将生成的序列剪裁到该标记位置,停止生成。这样,就可以确保生成的序列是自然的、完整的、有意义的,并且符合预期的格式和长度。
  5. max_time:运行的最长时间。
  6. do_sample:do_sample是一个布尔值,是指是否使用采样(sampling)方法来生成文本。采样是一种生成文本的方法,它从模型输出的概率分布中随机采样一个 token 作为下一个生成的 token,具有一定的随机性和多样性,因此生成的文本可能更加多样化,而不是完全按照概率分布中的概率来选择下一个 token。
    具体来说,如果设置 do_sample=True,那么在生成文本时就会使用采样方法。在采样时可以指定一些参数,例如 temperature、top_p 等,这些参数会影响采样方法的结果,从而影响生成文本的多样性和质量。
    如果设置 do_sample=False,那么就会使用贪心算法(greedy decoding)来生成文本,即每次选择模型输出概率最大的 token 作为下一个 token,这种方法生成的文本可能会比较单一和呆板。
    do_sample的设置影响后续一些参数的设置,有些并不能兼容使用。
  7. num_beams :“num_beams"是在进行文本生成时的一个参数。它是指在生成一个序列的时候,预测模型同时生成的候选解的数量。在Beam Search生成文本的方法中,预测模型会对于每一个时间步,生成一定数量的候选解,选取其中最优解进行下一步预测,直到完成整个序列的生成。这个数量即为"num_beams”。
    "num_beams"设置较高,可以增加生成的候选解的数量,从而得到更多可能性,但是会同时增加计算代价。因此,通常需要根据任务的需求,合理选择"num_beams"的值。
  8. num_beam_groups :num_beam_groups是在文本生成中使用的参数,它代表在生成给定序列的下一个单词时要使用的束数组数。一般来说,束搜索是一种生成文本的技术,它通过对生成的文本的分数进行排序来选择最佳的文本生成结果。
    在num_beam_groups参数中,如果指定的数字为1,那么将使用单一的束搜索组,如果指定的数字为2或更多,则将使用多个束搜索组。每个束搜索组将独立进行搜索,并通过在多个束搜索组中并行进行搜索来生成更多的文本生成结果。这样可以显著提高生成效率。
    总的来说,num_beam_groups参数可以帮助控制生成的文本数量和质量,具体的值可以根据需求进行调整。
  9. penalty_alpha** :penalty_alpha是在Transformer模型中生成文本时用于控制生成的文本多样性的参数。它控制生成的文本的多样性和翻译的目标序列的近似程度之间的权衡。当penalty_alpha值越大时,模型生成的文本变得更加多样性,生成的文本与目标序列的近似程度可能会变得更加差。反之,当penalty_alpha值越小时,模型生成的文本变得更加相似于目标序列,多样性可能会变得更加差。因此,根据生成文本的目的和要求,用户可以调整penalty_alpha的值以获得更好的结果。
  10. temperature :temperature 是生成文本模型(如Transformer模型)在生成文本时所使用的参数。
    模型通过对每一个单词的概率进行计算,并选择具有最高概率的单词作为下一个单词,以生成文本序列。为了生成多样性更高的文本,通常使用高斯分布重新调整单词的概率值。temperature 参数定义了重新调整的度量。
    如果 temperature 的值为1,则没有任何调整;如果其值比1大,则会生成更加随机的文本;如果其值比1小,则生成的文本更加保守。通常需要多次试验来找到最适合特定数据集的 temperature 值
  11. top_k :用于top-k筛选的最高概率词汇表标记的数量。
  12. top_p:“top_p” 是一个用于限制生成文本中词语选择的概率分布的参数。它代表了仅选择概率分布中前p%大的词语,而舍弃剩余的词语。通俗地说,它用于约束生成文本中词语的数量,防止生成过多的词语,并且只选择最可能的词语。
    具体地,假设我们有一个模型,它预测了下一个单词的概率分布,如果我们将 top_p 设置为0.9,那么我们将只选择概率分布中前 90% 的词语。因此,如果我们生成的词语不在前90%,那么将不会考虑这个词语。这样做可以降低生成的词语数量,同时可以保证生成的词语更可能是正确的。
  13. typical_p :“top_p” 和 “top_k” 是一组限制生成文本中每个词选择的概率的参数。“top_p” 控制生成的文本中,每个词选择的概率必须在最高概率的前 p 的词中,而不是选择来自整个词汇表中的任何词。
    “typical_p” 是一个新加入的参数,与 “top_p” 类似,但是它限制的是生成的文本中每个词概率的分布,而不是概率的确切值。与 “top_p” 不同的是,“typical_p” 可以产生更长的文本序列,因为它允许更多的词汇选择。
    使用这些参数可以限制生成的文本,从而产生更有意义的,更符合目标的生成文本。
  14. epsilon_cutoff:epsilon_cutoff 是一个超参数,它在文本生成中用于控制如何选择词语。它是一个数字,代表了从预测分布中删除词语的阈值。
    举个例子,如果我们设置 epsilon_cutoff = 0.01 ,那么预测分布中低于0.01的所有词语将不会被选择,只有剩下的更高的分数的词语将被选中。通过调整这个参数,可以控制预测的词语数量,从而控制生成的文本的精细程度。
  15. eta_cutoff:“eta_cutoff” 是 GPT-2 文本生成中的一个参数,它控制生成的序列的多样性。它的作用是决定是否要在符合预定要求的前提下生成更加出奇不意的序列。
    eta_cutoff 表示当前生成的序列与最高概率的第二高概率的比值,如果比值大于 eta_cutoff,则继续生成下一个字符;如果比值小于 eta_cutoff,则停止生成。
    通过调整 eta_cutoff 的值,可以控制生成的序列的多样性:如果 eta_cutoff 较低,则生成的序列会更加多样化;如果 eta_cutoff 较高,则生成的序列会更加保守,更接近训练数据。
  16. diversity_penalty :diversity_penalty 参数是指对生成的文本多样性的惩罚因子。当 diversity_penalty 设置为正数时,它会惩罚生成的文本里排在前面的单词出现的频率过高的情况,进而提高文本的多样性。较小的 diversity_penalty 值可以使生成的文本更加保守,而较大的值则可以提高文本的创造性。需要注意的是,对文本多样性的惩罚因子过大也可能导致生成的文本质量下降,因此选择正确的 diversity_penalty 值需要根据具体应用场景和需求进行调整。
  17. repetition_penalty :“repetition_penalty” 是用于文本生成中的参数,用于惩罚重复的单词和句子。默认值为1.0,其中较高的值意味着更强的惩罚,生成的文本中将出现更少的重复。如果取值为0,则没有惩罚,生成的文本可能包含大量重复的内容。
    在实际使用中,通常需要对该参数进行调整,以根据具体需求在生成的文本中达到适当的平衡,例如在一些任务中,过多的重复可能不是理想的,因此需要将repetition_penalty设置为较高的值;而在其他任务中,更多的重复可能是有意义的,因此需要将repetition_penalty设置为较低的值。
  18. encoder_repetition_penalty :encoder_repetition_penalty是Transformers库中用于文本生成任务的一个参数。它决定了对模型对源文本进行重复生成文本的惩罚程度。当设置了较高的值时,模型会对生成出来的文本与源文本重复的部分进行惩罚,从而有可能生成出不同于源文本的新文本。设置的值越大,模型对重复的文本的惩罚程度就越高。如果不设置此参数,则默认为1.0。
  19. length_penalty :length_penalty是一个因子,用于调整生成的序列长度的影响。在生成的文本中,长度是相对的。例如,一篇长文章与另一篇短文章相比可能更有价值。为了考虑这种情况,可以在生成文本时考虑长度,通过设置长度惩罚因子。
    具体来说,length_penalty是一个根据生成的序列长度动态调整生成序列的分数的因子。如果length_penalty的值较小,则长序列的分数会比较低,因此生成的序列可能较短。如果length_penalty的值较大,则长序列的分数可能更高,因此生成的序列可能更长。在适当的情况下,可以通过调整length_penalty的值来影响生成文本的长度。
  20. no_repeat_ngram_size:no_repeat_ngram_size 参数指定了生成文本时需要避免的重复文本的大小。该参数指示在生成的文本中,最多允许多少个词与原始文本中的词进行重复。如果该值设置为 3,则生成的文本中的任何一段长度为三个词的子序列都不能与原始文本的任何子序列重复。设置该值可以防止生成的文本中出现重复词汇,因此可以提高生成文本的多样性。
  21. bad_words_ids:bad_words_ids 是 Text Generation 中的一个参数,用来表示需要被禁止出现在生成的文本中的单词(通常是一些不当语言、种族歧视等)的 ID。这些单词在生成文本时将会被忽略,以确保生成的文本在内容和语言方面符合某些道德和社会规范。
    例如,假设你使用的是 BERT 模型,并且在你的词汇表中有一些不恰当的词。如果你不希望这些词在生成的文本中出现,你可以将它们的 ID 添加到 bad_words_ids 列表中。生成的文本中将不会再出现这些词的 ID。
  22. force_words_ids:force_words_ids参数可以用于强制模型在生成的文本中包含特定的单词或子序列。具体来说,它是一个包含单词或子序列id的列表,表示模型必须生成包含这些单词或子序列的文本。
    如果给定的单词或子序列在生成的过程中无法满足约束条件,则会尝试进行多次重新采样,直到满足条件或达到最大重试次数。如果最终无法生成满足条件的文本,则会引发一个异常。
    在一些应用场景中,force_words_ids可以用于约束生成的文本必须满足某些关键词或要求,例如在生成广告文案时强制包含某些销售亮点词汇。
  23. renormalize_logits:在 Text Generation 中,renormalize_logits 是一个控制标准化逻辑概率的布尔值。当设置为 True 时,它会将模型中的 logits 规范化为概率分布,以便于计算损失和生成样本。在某些情况下,如果 logits 不规范化,可能会出现训练困难或生成不稳定的问题,因此可以将 renormalize_logits 设置为 True 来解决这些问题。
    需要注意的是,将 renormalize_logits 设置为 True 会对生成的样本产生一定的影响。具体来说,它会使生成的样本更加平滑,这意味着它们可能会失去一些原始模型的细节。因此,在某些情况下,可以将 renormalize_logits 设置为 False,以便生成更加准确和详细的样本。但是,这也可能导致训练问题和不稳定的生成结果,需要在使用时谨慎权衡。
  24. constraints :constraints参数用于对生成文本的内容进行限制,以满足特定的条件或要求。该参数可以设置为一个约束函数的列表,每个函数都返回一个布尔值,表示输入序列是否符合特定的限制条件。
    具体来说,约束函数可以检查生成的序列是否包含特定的单词或短语,或者是否满足特定的语法规则。例如,可以使用一个约束函数来检查生成的序列是否符合特定的主题,或者是否包含不允许出现的单词。
  25. forced_bos_token_id:时,forced_bos_token_id是一个可选参数,用于指定要强制用作开始标记的token ID,即在生成文本时将其添加到生成序列的开头。
    默认情况下,Transformers使用模型的开始标记作为生成序列的第一个token,但是在某些情况下,可能需要强制使用其他token作为开始标记。例如,在对话生成任务中,我们可能希望生成序列的开头始终是某个固定的问句。
  26. remove_invalid_values :在文本生成任务中,模型可能会生成一些无效的值,如NaN或Inf。如果这些无效值被允许出现,可能会导致模型出现错误或不可预测的结果。因此,如果在模型输出中检测到此类无效值,可以选择将其移除。在Transformers库中,可以使用remove_invalid_values参数来控制是否移除无效值。当remove_invalid_values设置为True时,任何无效值都会被移除。当设置为False时,这些无效值将保留在输出中。
  27. exponential_decay_length_penalty:exponential_decay_length_penalty参数指定在生成文本时如何惩罚长度。该参数的默认值为0.0,表示不应用长度惩罚。当exponential_decay_length_penalty参数为非零值时,将按指数衰减的方式对生成文本的长度进行惩罚。
    衰减的速度由decay_rate参数决定。例如,如果decay_rate设置为0.5,对于长度为N的文本,生成器会给该文本的得分乘以0.5^N。这样做可以有效防止生成器生成过长的文本。
    exponential_decay_length_penalty参数适用于需要生成特定长度文本的任务,比如对话系统中对话长度的控制。通常情况下,生成较短的文本可以更加流畅自然,而过长的文本可能会出现语法错误或者逻辑混乱等问题。
  28. suppress_tokens:suppress_tokens参数可以用来抑制模型生成指定的标记(token)。具体来说,当模型生成一个标记时,如果该标记在suppress_tokens中指定了,那么模型将会跳过该标记,继续生成下一个标记。这个参数通常用于特殊情况下的文本生成任务,比如过滤掉一些不合适的词汇或者指定一些强制要求的单词。
  29. num_return_sequences:num_return_sequences 参数用于控制模型生成的文本序列的数量。默认情况下,模型将生成一个完整的文本序列,但是你可以设置 num_return_sequences 参数为一个大于 1 的整数,以生成多个文本序列。这对于生成多个相关但不完全相同的文本序列很有用,例如为一组给定的提示或问题生成多个可能的答案。
  30. output_attentions:output_attentions 是一个参数,用于指定是否返回注意力矩阵。注意力机制是深度学习中常用的一种机制,用于在给定输入时,自动分配不同的权重给不同的输入项,并计算其与输出的关联度。
    在文本生成任务中,注意力机制可以用来让模型了解输入文本的各部分之间的关联,从而更好地生成上下文相关的输出。如果 output_attentions 被设置为 True,那么在调用 generate() 方法时,模型将返回一个元组 (output, attentions)。其中,output 是生成的文本序列,attentions 是一个元组,包含每个层次的注意力矩阵。注意力矩阵是一个三维张量,其维度为 [batch_size, num_heads, sequence_length, sequence_length],其中,batch_size 表示输入的样本数,num_heads 表示注意力头数,sequence_length 表示输入序列的长度。

这里对参数基本全部做了详细的介绍,记录于此。文章来源地址https://www.toymoban.com/news/detail-475679.html

到了这里,关于关于Text Generation的GenerationCoinfig参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 106、Text-Image Conditioned Diffusion for Consistent Text-to-3D Generation

     很多工作在扩散先验中注入跨视图一致性,但仍然缺乏细粒度的视图一致性。论文提出的文本到3d的方法有效地减轻了漂浮物(由于密度过大)和完全空白空间(由于密度不足)的产生。  简单而言,论文工作是 Dreamfusion+Zero123 。  使用两种不同的分数蒸馏进行监督:文本条件下

    2024年01月17日
    浏览(46)
  • text-generation-Webui-AI本地部署踩坑记录

    下载源码 text-generation-Webui 下载模型 chinese-alpaca-2-7b-hf下载完成的模型需要放置在项目下的models目录下 安装conda Free Download | Anaconda 安装python ​ python 设置环境变量 下载最新的显卡驱动 英伟达2060显卡驱动需要与自己显卡匹配 查看显卡驱动版本 创建conda环境 初始化 激活 安装

    2024年02月02日
    浏览(46)
  • 第十一篇-Tesla P40+Text-Generation-Webui

    这里的安装需要访问github,注意自己网络可以访问github, 如果不能或者超时请重试 或者改用相应国内github镜像 把下载好的模型文件夹放到models目录下 通过不同文件夹区别模型 可以创建软连接 https://github.com/oobabooga/text-generation-webui 在安装text-generation-webui时如果出现cmake,gcc

    2024年02月09日
    浏览(33)
  • 《HumanGaussian: Text-Driven 3D Human Generation with Gaussian Splatting》

    quad 1) SMPL(Skinned Multi-Person Linear)模型 quad SMPL(Skinned Multi-Person Linear)模型是一种用于表示人体形状和姿势的三维模型。 quad a. Skinned表示这个模型不仅仅是骨架点,其实有蒙皮的,其蒙皮通过3D mesh表示。3D mesh如下所示,指的是在立体空间里面用三个点表示一个面,可以

    2024年02月04日
    浏览(42)
  • 【论文精读】Hierarchical Text-Conditional Image Generation with CLIP Latents

    本篇工作即DALL·E2,是文生图领域和多模态领域具有轰动性的工作,其一出现就上了各大板块的热搜。DALL·E2生成的图像丰富且真实,很容易以假乱真。它的实现基于CLIP和扩散模型,前者结合丰富的图文语义,后者生成多样高质量图像,这套组合拳可谓实力十足。下面就来看

    2024年02月09日
    浏览(42)
  • 设计一基于Text generation web UI的语言模型部署与远程访问的方案​

    Text generation web UI可为类ChatGPT的大型语言模型提供能够快速上手的网页界面,不仅可以提高使用效率,还可满足私有化部署,或对模型进行自定义。目前,该Web UI已经支持了许多流行的语言模型,包括LLaMA、llama.cpp、GPT-J、Pythia、OPT、GALACTICA等. 而且,Text generation web UI部署非常

    2024年03月15日
    浏览(76)
  • dalle2:hierarchical text-conditional image generation with clip

    DALL·E 2【论文精读】_哔哩哔哩_bilibili 更多论文:https://github.com/mli/paper-reading, 视频播放量 30350、弹幕量 256、点赞数 1767、投硬币枚数 1318、收藏人数 751、转发人数 344, 视频作者 跟李沐学AI, 作者简介 ,相关视频:博一研究生 求偶视频,如何做好文献阅读及笔记整理,在线求

    2024年02月16日
    浏览(79)
  • DALLE·2(Hierarchical Text-Conditional Image Generation with CLIP Latents)

    目录 1.标题解读 2.前言 3.摘要部分 4.引言部分  5.生成模型概述 6.扩散模型的发展 7.方法部分 Hierarchical Text-Conditional Image Generation with CLIP Latents 是一种层级式的基于CLIP特征的根据文本生成图像模型。 层级式 的意思是说在图像生成时,先生成 64*64再生成256*256 ,最终生成令人叹

    2023年04月09日
    浏览(48)
  • 文本-图像生成(Text-to-Image Generation)的评价指标介绍——CLIPScore、TISE

    论文标题:CLIPScore: A Reference-free Evaluation Metric for Image Captioning 这一篇是针对Image Caption领域的评价指标,但是有些基于条件的Diffusion模型也使用了这个评价指标来衡量文本和生成图像的匹配程度。 本文提出的CLIPScore(下文简称CLIPS)是不需要推理的评估指标,之前常见的基于

    2023年04月08日
    浏览(46)
  • Diffusion-LM Improves Controllable Text Generation 扩散语言模型改善可控文本生成

    论文链接:https://arxiv.org/abs/2205.14217 代码链接:https://github.com/XiangLi1999/Diffusion-LM 无需重训模型控制语言模型的表现是自然语言生成(NLG)的一个重要开放问题,近期工作已经在简单句子属性控制生成上取得了一定的进展,但是在复杂的、细粒度的控制上的进展还远远不够。

    2023年04月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包