Huggingface 变压器启动

问题描述

我正在尝试复制 this demo 的结果,其作者用 just 以下文本对 GPT-3 进行了质数:

gpt.add_example(Example('apple','slice,eat,mash,cook,bake,juice'))
gpt.add_example(Example('book','read,open,close,write on'))
gpt.add_example(Example('spoon','lift,grasp,scoop,slice'))
gpt.add_example(Example('apple','pound,lift'))

我只能通过 Huggingface Transformer 访问 GPT-2。如何在 Huggingface 上启动 GPT-2 large 以复制上述示例?问题在于,使用 this 时,无法分别对输入和相应的输出进行素数处理(正如上面 GPT-3 演示的作者所做的那样)。

类似地,this tutorial 描述了使用 Huggingface,但没有示例清楚地展示如何使用输入与输出示例启动它。

有人知道怎么做吗?


所需的输出: 使用 GPT-2 返回类似的内容,对于输入“土豆”,输出“剥皮、切片、烹饪、捣碎、烘烤”(如 GPT-3 演示:https://www.buildgpt3.com/post/41/)。显然,输出动词的确切列表不会相同,因为 GPT-2 和 GPT-3 不是相同的模型。

解决方法

GPT 模型唯一能做的就是预测应该跟随什么词。从技术上讲,没有输入和输出,它是一个只有解码器的模型,所以它只有输出。启动模型意味着您将模型的输出强制为您想要的内容,然后让模型继续生成更多文本。

演示中发生的事情是:

  1. 您向 GPT-3 提供了它应该做什么的自然语言示例。像这样:
What can I do with an apple? slice eat,mash,cook,bake,juice
What can I do with a book? read,open,close,write on
What can I do with a spoon? lift,grasp,scoop,slice
  1. 当出现查询时(例如,knife),您创建一个与示例相似的句子:
What can I do with a knife?
  1. 让模型继续生成,直到它开始一个以 What 开头的新行,或者直到它以一种奇怪的方式中断,这在随机模型中总是会发生。 (并希望模型得到了您在启动示例中所指的模式。)

以下是 HuggingFace's demo 中 GPT-2 发生情况的示例。粗体文本由模型生成。

enter image description here