这篇文章最初宣布在 NVIDIA 技能博客上。

大言语模型(LLM)因其前所未有的规划了解和处理人类言语的才能,在全球引发颤动,改变了我们与技能互动的办法。

经过许多文本语料库的练习, LLM 能够在没有太多辅导或练习的状况下为各种运用程序操作和生成文本。但是,生成的输出的质量在很大程度上取决于您给模型的指令,即提示。这对你来说意味着什么?如今,与模型交互是规划提示的艺术,而不是规划模型架构或练习数据。

考虑到构建和训练模型所需的专业常识和资源,处理 LLM 或许会付出价值。NVIDIA NeMo 供给了预练习的言语模型,能够灵活地习惯几乎一切的言语处理使命,一起我们能够完全专注于从可用的 LLM 中取得最佳输出。

在本文中,我评论了一些能够充分运用 LLM 的办法。要了解更多关于怎么开端运用 LLM 的信息,请参阅《大型言语模型介绍:提示工程和 P-Tuning》。

提示背面的机制

在我进入生成最佳输出的战略之前,请退后一步,了解当您提示一个模型时会发生什么。提示被分解为称为令牌的较小块,并作为输入发送到 LLM ,然后 LLM 依据提示生成下一个或许的令牌。

符号化

LLM 将文本数据解释为令牌。符号是单词或字符块。例如,单词“ sandwich ”将被分解为符号“ sand ”和“ wich ”,而像“ time ”和“ like ”这样的常见单词将是单个符号。

NeMo 运用字节对编码来创立这些令牌。提示被分解为一个令牌列表,这些令牌被 LLM 作为输入。

一代

在窗帘后边,模型首先生成逻辑学家对于每个或许的输出令牌。 Logits 是一个函数,标明从 0 到 1 的概率值,以及从负无穷大到无穷大的概率值。然后,这些 logits 被传递到 softmax 函数,为每个或许的输出生成概率,然后在词汇表中给出概率散布。以下是用于核算令牌的实际概率的 softmax 方程:

在该公式中,是的概率给定从前令牌中的上下文 (到和是神经网络的输出

然后,模型将挑选最有或许的单词并将其添加到提示序列中。

如何从大型语言模型中获得更好的输出
图 1 。 LLM 猜测下一个单词的一般工作流程

当模型决议什么是最或许的输出时,你能够经过上下滚动一些模型参数旋钮来影响这些概率。鄙人一节中,我将评论这些参数是什么,以及怎么调整它们以取得最佳输出。

调整参数

为了释放 LLM 的悉数潜力,探索提炼输出的艺术。以下是需求考虑调整的要害参数类别:

  • 让模型知道何时中止
  • 可猜测性与创造性
  • 削减重复

运用这些参数,找出合适您特定用例的最佳组合。在许多状况下,对温度参数进行试验能够取得您或许需求的成果。然而,假如您有一些特定的东西,而且期望对输出进行更精细的操控,请开端测验其他的。

让模型知道何时中止

有一些参数能够辅导模型决议何时中止生成任何进一步的文本:

  • 代币数量
  • 中止文字

代币数量

前面,我提到 LLM 的重点是在给定令牌序列的状况下生成下一个令牌。该模型在将猜测的令牌附加到输入序列的循环中完结这一操作。你不会期望 LLM 继续下去。

虽然 NeMo 模型现在能够接受的令牌数量在 2048 到 4096 之间是有束缚的,但我不主张到达这些束缚,由于模型或许会发生违背呼应。

中止文字

中止文字是一组字符序列,告知模型中止生成任何附加文本,即便输出长度没有到达指定的符号束缚。

这是操控输出长度的另一种办法。例如,假如提示模型完结下面的语句“ Sky is blue , lemons is yellow and limes are ”,而且您将中止词指定为 just “.”,则模型在完结这句话后中止,即便令牌束缚高于生成的序列(图 2 )。

如何从大型语言模型中获得更好的输出
图 2 : NeMo 服务操场中运用“.”作为中止词的语句完结

在几个镜头设置中规划一个中止模板尤其有用,这样模型就能够在完结预期使命时学会适当地中止。图 3 显现了用字符串“===”分隔示例,并将其作为中止字传递。

如何从大型语言模型中获得更好的输出
图 3 。运用带有少量镜头提示的中止词

可猜测性与创造性

假如有提示,能够依据您设置的参数生成不同的输出。基于 LLM 的运用,您能够挑选增加或削减模型的创新才能。以下是一些能够协助您做到这一点的参数:

  • 温度
  • Top-k 和 Top-p
  • 波束查找宽度

温度

此参数操控模型的创作才能。如前所述,在生成输入序列中的下一个令牌时,该模型会得出概率散布。温度参数能够调整这种散布的形状,然后使生成的文本愈加多样化。

在较低的温度下,该模型更保存,而且仅限于挑选具有较高概率的令牌。随着温度的升高,这个束缚变得宽松,答应模型挑选或许性较小的单词,然后发生更不行猜测和更有构思的文本。

图 4 显现了让模型完结从“海洋”开端的语句,在这里你将温度设置为 0 . 1 。

如何从大型语言模型中获得更好的输出
图 4 。运用 NeMo 服务操场在温度= 0 . 1 时生成语句

当你想到完结这样一个短语时,你或许会想到像“…是巨大的”或“…是蓝色的”这样的短语。产量很简略,海洋很大,有许多鱼。

现在,在温度设置为 1 的状况下再次测验此操作(图 5 )。

如何从大型语言模型中获得更好的输出
图 5 。运用 NeMo 服务操场在温度= 1 时生成语句

这个模型开端给你一些你一般不会想到的类比。较高的温度适用于诗歌和故事等需求创造性写作的使命。但要留意,生成的文本有时也会变得毫无意义。较低的温度适用于更清晰的使命,如问答或总结。

我主张运用不同的温度值进行试验,以找到合适您的用例的最佳温度。范围[0.5, 0.8]应该是 NeMo 服务游乐场的一个杰出起点。

Top-k 和 Top-p

这两个参数还操控挑选下一个令牌的随机性。 Top-k 告知模型它必须保持顶部k最高概率令牌,从中随机挑选下一个令牌。较低的值会削减随机性,由于您正在剪切生成可猜测文本的或许性较小的令牌。假如k假如设置为 0 ,则不运用 Top-k 。当设置为 1 时,它总是会挑选下一个最或许的令牌。

在或许存在许多令牌的状况下,或许的令牌的概率散布或许很广。也或许存在散布狭窄的状况,其间只有少量代币更有或许。

如何从大型语言模型中获得更好的输出
图 6 。生成的 LLM 输出的概率散布类

你或许不想严格束缚模型只挑选顶部k更广泛的分发场景中的令牌。为了解决这一问题,能够运用参数 top-p ,其间模型从概率总和等于或超越 top-p 值的最高概率令牌中随机挑选。假如 top-p 设置为 0 . 9 ,则或许呈现以下状况之一:

  • 在更广泛的散布示例中,它能够考虑概率之和等于或超越 0 . 9 的前 50 个令牌。
  • 在窄散布场景中,仅运用前两个令牌或许会超越 0 . 9 。经过这种办法,您能够防止从随机代币中挑选,一起仍然保存多样性。

波束查找宽度

这是另一个有用的参数,能够操控输出的多样性。波束查找是许多 NLP 和语音识别模型中常用的一种算法,作为在给定或许选项的状况下挑选最佳输出的终究决议计划过程。波束查找宽度是一个参数,用于确定算法在查找的每个过程中应该考虑的候选数量。

更高的值增加了找到杰出输出的时机,但这也以更多的核算为价值。

削减重复

有时,输出中或许不期望呈现重复的文本。假如是这种状况,请运用重复赏罚参数来协助削减重复。

重复处分

此参数能够协助依据令牌在文本(包含输入提示)中呈现的频率来赏罚令牌。现已呈现五次的代币比只呈现一次的代币遭到的处分更重。值为 1 意味着没有赏罚,大于 1 的值会阻挠重复的令牌。

有用提示规划的少量射击战略

及时的规划对于 LLM 发生相关和连接的输出至关重要。拟定有用的提示规划战略能够协助创立相关的提示,一起防止偏见、歧义或缺乏特异性等常见圈套。在本节中,我将共享一些有用提示规划的要害战略。

带束缚提示

经过仔细的提示规划来束缚模型的行为或许十分有用。你知道,言语模型的核心是企图猜测序列中的下一个单词。言语模型或许无法了解对人类来说完全有意义的使命描绘。这就是为什么少镜头学习一般效果杰出的原因:当你向模型演示一个模式时,它很好地恪守了它。

考虑以下提示:“将英语翻译成法语:今天是夸姣的一天。”

有了这个提示,模型或许会测验继续语句或添加更多语句,而不是进行翻译。将提示更改为“将此英语语句翻译成法语:今天是夸姣的一天”。这增加了模型将此使命了解为翻译使命的或许性,并生成更可靠的输出。

人物很重要!

正如您在前面的翻译示例中看到的,微小的更改或许会导致不同的输出。另一件需求留意的事情是,令牌一般是用前导空格生成的,所以空格和下一行等字符也会影响您的输出。假如提示不起作用,请测验更改其结构办法。

考虑某些短语

一般,当你想让你的模型合乎逻辑地答复你的提示并得出精确的结论,或许只是为了让模型取得一定的成果时,你能够考虑运用以下短语:

  • **让我们一步一步地考虑:**这鼓舞模型以逻辑的办法处理问题并得出精确的答案。这种提示办法也称为思想促进链( CoT )。
  • **以<名人>的风格:**这与这位名人的写作风格相匹配。例如,要生成像莎士比亚或埃德加艾伦坡这样的文本,将其添加到提示中,生成的文本将与他们的写作风格严密匹配。
  • 作为<职业/人物>:这有助于模型更好地了解问题的上下文。有了更好的了解,模型一般会给出更好的答案。

用生成的常识提示

为了取得更精确的答案,您能够在生成终究答案之前提示 LLM 生成关于给定问题的潜在有用常识(图 7 )。

如何从大型语言模型中获得更好的输出
图 7 。答案不正确的问答提示

这种类型的过错标明 LLM 有时需求更多的常识来答复问题。下面的比如展示了在几杆的状况下生成关于高尔夫得分的一些事实。

如何从大型语言模型中获得更好的输出
图 8 。围绕提示生成常识

将这些常识整合到提示中,然后再次提问。

如何从大型语言模型中获得更好的输出
图 9 。问答使命与正确答案后常识整合

对于同样的问题,模特自信地答复“不”。这是一个简略的演示,但在得出终究答案之前,还有更多的细节需求考虑。更多详细信息,请参阅 Generated Knowledge Prompting for Commonsense Reasoning。

在实践中,您生成多个答案,并挑选最频频呈现的答案作为终究答案。

试试看!

编写合适您的用例的提示的最好办法是进行试验和测验。规划一个能够为您供给正确输出的提示是一种学习体验,无论是怎么编写,仍是怎么设置模型参数。

假如您想进入 NeMo 服务游乐场,能够协助您测试提示并规划用例,请参阅 NVIDIA NeMo Service。

结论

在这篇文章中,我共享了从 LLM 生成更好输出的办法。我评论了怎么调整模型参数以取得所需的输出,以及一些规划提示的战略。

注册了解 LLM 技能、学习和突破的最新状况,请订阅 LLM newsletter。

阅览原文

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。