作者:Luis Quintanilla
翻译:Alan Wang
排版:Alan Wang
欢迎来到有关 OpenAI 和 .NET 的博客系列!
如果您是新来的,请查看我们的第一篇文章,我们在其中介绍了系列内容,并向您展示如何在 .NET 中开始使用 OpenAI。
本文的重点是 Completions。让我们开始吧!
什么是 Completions?
Completions 是由像 GPT 这样的模型生成的响应。
你可以生成的响应类型包括:
文本
输入
将“Hello”翻译成西班牙语。
输出
“Hola”
代码
输入
创建一个 C# 函数,将两个整数相加
输出
int Add(int x, int y)
{
return x + y
}
图像
输入
一只裹在毯子里的舒适的哈巴狗
输出
本文重点关注文本和代码的 completion。
Completion 是如何生成的?
生成 completion 需要几部分内容:
- 模型
- 用户输入(prompt)
你可以把模型想象成一个有状态的函数。模型是一个系统,用于通过算法来识别数据中的模式。模型的能力取决于用来构建模型的数据和算法。有关不同类型模型及其功能的更多详细信息,请参阅 Azure OpenAI 服务模型文档。
OpenAI 模型(如 GPT)所使用的算法是被称为转换器的神经网络。更具体地说,像 GPT 这样的模型通常被称为大语言模型(LLM),这是因为它们的大小(大)和它们被设计出来所要解决的问题类型(语言)。
本文的范围不包含大语言模型的技术细节然而,如果你想了解更多,请查看文章《ChatGPT 在做什么…以及它为什么有效》以及论文《语言模型是少量实例学习者》。
用户输入(也称为 prompt)是指导模型并提供您希望模型输出的说明。为了获得更精确的结果,提示包含以下内容:
- 上下文
- 任务/提问
为二年级学生总结:
木星是距离太阳第五近的行星,也是太阳系中最大的行星。它是一个气态巨大行星,其质量是太阳的千分之一,却是太阳系其他所有行星质量总和的2.5倍。在夜空中,肉眼可见的最亮物体之一就是木星,早在有记载的历史以前就已被古代文明所知晓。木星得名于罗马神话中的主神朱庇特[19]。从地球上观察,木星足够明亮,以至于它反射的光可以投射出可见的阴影[20],通常是夜空中继月亮和金星之后第三亮的自然天体。
它可以拆分为:
-
上下文:木星是距离太阳第五近的行星,也是太阳系中最大的行星。它是一个气态巨大行星,其质量是太阳的千分之一,却是太阳系其他所有行星质量总和的2.5倍。在夜空中,肉眼可见的最亮物体之一就是木星,早在有记载的历史以前就已被古代文明所知晓。木星得名于罗马神话中的主神朱庇特[19]。从地球上观察,木星足够明亮,以至于它反射的光可以投射出可见的阴影[20],通常是夜空中继月亮和金星之后第三亮的自然天体。
-
任务/提问:为二年级学生总结这一内容:
最终的 completion 结果应该类似于:
木星是距离太阳第五近的行星,也是我们太阳系中最大的行星。它在夜空中非常明亮,自古以来就为人所知。它是以罗马神话中的主神朱庇特命名的。通常它是夜空中月亮和金星之后的第三亮物体。
这里重要的部分是任务/提问,因为这正是引导模型产生特定类型输出的内容。例如,如果我将任务/提问更改为“木星的质量与太阳相比如何?”,我可以预期产生类似“木星的质量是太阳的千分之一,或0.001个太阳质量。”的 completion 内容。
正如您所看到的,当您将 GPT 等模型与一个格式良好的提示结合使用时,它们为构建使用 AI 的各种类型应用程序提供了有效的基础。
在我的 prompt 中我可以提供多少文字?
您的 prompt 大小是用“token”来衡量的。通常,GPT 模型会将单词拆分为“token”。常见的多音节词通常是一个 token,而不太常见的词则会按音节拆分。每个模型都有一个 token 限制。更多详细信息,请查看 Azure OpenAI 服务模型文档。
要计算您 prompt 中的 token 数量,请使用 Microsoft.ML.Tokenizers NuGet 包。
查看 token 化示例获取更多详细信息。
如何开始生成我的 completion?
现在您知道了 completion 是什么以及它们是如何生成的,现在是时候开始生成您自己的 completion 了。开始的步骤:
- 注册或请求访问 OpenAI 或 Azure OpenAI 服务。
- 使用您的凭据开始尝试 OpenAI .NET 示例。
下一步
在下一篇文章中,我们将更详细地讨论关于 prompt 工程的话题,这是优化 prompt 以产生更精确答案的过程。
我们想听到您的声音
帮助我们了解更多关于您如何在应用程序中使用 AI 的信息。请花几分钟时间完成这个调查。
还有哪些您想要进一步了解的话题?请在评论区告诉我们。