你可能还会听到人们谈论“零样本”学习,即一个模型能够对它以前没有遇到过的新概念或物体进行分类。
例如,如果一个人工智能模型被预先训练成能够识别马这个动物,那么在被给予一幅斑马的图像时,它仍然能够将斑马识别为一种条纹马,尽管之前从未见过。
在所有情况下,“x样本”(无论是“零”、“一”,还是“少量”)的目标都是为了从有限的数据中学习,并对新的、未见过的例子做出准确的预判。
在ChatGPT中,有人指出,为了获得更准确的答案,你可以使用一种令人难以置信的简单技术,甚至是一种黑客,被称为零样本思维链。
要使用这种技巧,你只需要在在你的提示末尾加一句话:
“让我们一步一步地思考”(let’sthinkstepbystep),或“放声思考”(thinkingaloud)
这种额外的训练通常可以使模型在更广泛的特定任务上表现得更好,并取得比原始的,或少量的训练模型更好的准确性。
微调通常用于调整预先训练好的基础模型,如OpenAI强大的davinci模型,以适应特定的用例,例如数字营销、合同法或其他一些领域。微调后的模型可以在内部使用,也可以作为人工智能服务出售给客户或作为更大的SaaS产品的一部分。
为了从微调中获得最佳结果,必须以JSONL文本文件格式提供高质量示例的坚实基础。你提供的例子越多,你的模型就会表现得越好。
你的起点应该至少有几百个示例,为了获得更好的结果,这些示例应该由领域专家进行评审和批准。
好消息是,当您添加更多的示例时,OpenAI声称您将看到相应的性能线性增长。因此,如果希望最大限度地利用微调工作,那么提供的示例越多越好(请注意,最大微调文件大小在80-100MB之间)。
现在,回到我们失败的ChatGPT难题上:“IamnotwhatIam”这句话中的第四个词是什么?
通过使用上面提到的零样本思维链,并简单地在提示中加上“让我们一步一步地思考”,你猜结果是什么?
Bingo!
就像魔术一般,现在我们每次都能得到正确的结果。当然,你也可以自己试试。
(注意:如果你在尝试这个方法之前用不同的提示组合进行实验,请确保你每次都开始一个新的聊天,以免影响下一次尝试,因为你之前与ChatGPT的对话可能会改变结果)。
总结
提示工程是LLMs中一个快速变化和发展的领域。今天在模型中不好用的东西,比如数学和逻辑,明天很可能就能用了!
为了从LLM中获得最佳效果,就像OpenAI提供的那些,特别是如果你正在开发你自己的人工智能驱动的应用程序,无论是内部使用还是客户使用,你都需要通过少样本学习或微调技术进一步引导LLM模型。
然而,我在这里所涉及的只是PromptEngineering的冰山一角,如果你有兴趣,我鼓励你探索更多。
谁知道呢,有一天它可能会导致一个新的,但收入很高的职业。然而,目前我还不清楚这个新职业会持续多久?
随着LLMs的能力和复杂性的提高,有人说会打破摩尔定律,从每两年翻一番到每6个月翻一番。当然,在某个时候,它们也许就变得十分智能,能够预测我们的需求,但不需要所有的提示工程黑客?
下载界面新闻
盘点可以从ChatGPT等大型语言模型中获得更好结果的技术和“神奇短语”。
文|MrNewq
编译|巴比特
如果你曾经与ChatGPT或任何其他大型语言模型(LLM)进行过交互,那么你可能会遇到过这样的情况,即回答并不完全是你所期望的,或者说,确实不符合要求。
其中一个问题是,LLMs已经变得如此复杂,而通过它们得出答案的“黑匣子”神经网络是如此不透明,以至于用户仍然在摸索如何从它们那里获得最佳结果。
在像ChatGPT这样的LLM中输入你的问题或查询,也被称为“提示”(prompting),仅仅通过改变你的提示措辞,就可以给你带来非常不同的结果。
比如:
那么,你可以在你的提示词中添加什么“神奇文字”来使它做出正确的回答?下面就来看看如何通过一点“零样本思维链”(zero-shotchainofthought)的提示工程,每次都得到准确的结果(并不像听起来那么复杂,真的!)。
由于LLM结果的可变性,如ChatGPT,人工智能行业最近出现了一个新的专家角色,即“提示工程师”,他的工作就是从人工智能模型中提取最大价值。
这个角色通常从具有“黑客思维”的人中招聘,包括构建精心措辞的提示,向人工智能模型解释他们想要什么。
这个职位现在非常抢手,一些人工智能公司在现金充裕的情况下可为具有正确技能或能力的人支付数十万美元。
哪些技术可以运用于提示工程?
我们很容易想象,提示工程师的工作就是整天对着电脑向ChatGPT打谜语,看它是否能解决这些问题,然后调整模型以获得最佳结果。
虽然大多数人工智能公司都有团队负责测试预先训练好的模型,并实施安全措施以减少偏见结果,但这个过程通常发生在人工智能模型向公众提供之前。
另一方面,提示工程是一个更加动态的过程,包括有时在逐个提示的基础上对模型进行更有力的指导(即“少样本学习”,后文会有更多介绍),或者通过从文件中上传专门的学习“提示-完成对”来创建一个微调的模型(同样,后文会有更多介绍)。
虽然ChatGPT是基于自然语言生成模型,不需要具体的提示,但当你提供更多的背景和具体的例子时,它确实表现得更好。
事实上,你提供的信息越多,ChatGPT和其他LLM模型就越能理解你所问的问题,并能提供更准确的回答。
在OpenAI开发的语言模型中,有两种主要技术用于激活其庞大的知识库,并提高对提示的反应的准确性。
这些技术被称为“少样本学习”(few-shotlearning)和“微调”(fine-tuning)。
接下来让我们来看看它们。
命名为“少量样本”的学习是指为模型提供一些明确的例子,这些例子被用来有力地指导模型的生成,以输出所需任务的答案,如识别和分类一个新物体或概念。
通常情况下,使用的例子少于10个,但数量可能有所不同。对于只有一个例子的学习,你也可能听到它被称为“单次”学习(one-shotlearning)。
OpenAI模型中的单次学习可以在ChatGPT提示下实现,也可以通过调用OpenAIAPI(应用编程接口)的“completion”端点以编程方式实现。
例如,在ChatGPT中使用基于提示的少样本学习来对电影类型进行分类,你可以简单地在提示中加入一些例子:
提供这些例子作为背景,可以帮助ChatGPT正确地将新的电影描述,“一群宇航员执行任务,通过殖民一个新的星球来拯救人类的灭绝。”,归类为“科幻/冒险”类型。
当然,仅仅为了得到一个答案而把所有这些都打出来是没有多大意义的,但是使用ChatGPT的对话界面,您可以继续向它提问,直到它,呃……垮掉!
然而,提供少量样本学习实例的一个更常见的方法是将它们编码在对OpenAI的“completionAPI”的调用中,如上所述,它允许你为各种用例调整提示,从成为一个友好的聊天机器人到一个将葡萄酒与食物配对的葡萄酒专家(后一种用例真的会让侍酒师感到害怕)。
OpenAI的人工智能战略家JessicaShieh在学习提示工程时推荐了一种方法,称为“房间里的天才”心理模型。
该模型假设人工智能模型(天才)对你一无所知,除了你写在纸上并通过门缝递进去的东西(提示)。
一旦你想象到了这一点,你就会对像ChatGPT这样的LLM的能力以及它需要什么来回复一个准确的结果有一个更现实的看法。
很明显,通过这种思维模式,你为“天才”提供的背景越多,你从中得到的答案就越好。在为AI模型编写提示时也是如此。