科技

了解如何使用 OpenAI API 和 Python 定制高级神经网络模型

GPT-3,第三代Generative Pre-trained Transformer, 是OpenAI打造的前沿神经网络深度学习模型。 通过使用大量互联网数据,GPT-3 可以用最少的输入生成多样化和强大的机器生成文本。 GPT-3 的应用范围广泛,不仅限于文本摘要、翻译、聊天机器人开发和内容生成。

尽管 GPT-3 具有鲁棒性,但可以通过针对特定用例对其进行微调来进一步提高 GPT-3 的性能。

但是我们所说的微调是什么意思?

这是在自定义用例数据集上训练预训练 GPT-3 的过程,使模型能够更好地适应特定用例或领域的细微差别,从而获得更准确的结果。

成功执行微调的先决条件是

(1) 对 Python 编程有基本的了解

(2) 熟悉机器学习和自然语言处理。

下面介绍使用 Python 在自己的数据上微调 GPT-3 模型的过程,涵盖从获取 API key创建到准备数据、训练模型和验证模型的所有步骤。

哪些 GPT 模型可以微调?

可以微调的 GPT 模型包括 Ada、Babbage、Curie 和 Davinci。 这些模型属于 GPT-3 系列。 此外,需要注意的是,微调目前不适用于更新的 GPT-3.5-turbo 模型或其他 GPT-4。

微调 GPT 的应用场景有哪些?

分类和条件生成是可以从微调 GPT-3 等语言模型中受益的两类问题。

分类

对于分类问题,提示中的每个输入都被分配了一个预定义的类,下面说明了一些情况:

确保真实陈述:如果一家公司想要验证其网站上的广告是否提及了正确的产品和公司,则可以对分类器进行微调以过滤掉不正确的广告,确保模型没有胡编乱造。情绪分析:这涉及根据情绪对文本进行分类,例如正面、负面或中性。电子邮件分类:要将收到的电子邮件分类为许多预定义类别之一。

条件生成

此类别中的问题涉及基于给定输入生成内容。 应用程序包括解释、总结、实体提取、产品描述编写、虚拟助手(聊天机器人)等。 例子包括:

根据维基百科文章制作引人入胜的广告。 在此用例中,确保提供的样本是高质量的,因为微调模型将尝试模仿示例的风格。实体提取。 此任务类似于语言转换问题。 通过按字母顺序或按照它们在原始文本中出现的相同顺序对提取的实体进行排序来提高性能。客户支持聊天机器人。 聊天机器人通常包括有关对话的相关上下文(订单详细信息)、到目前为止的对话摘要以及最新消息。微调 GPT-3 的步骤

必须创建 OpenAI 开发者帐户才能访问 API 密钥,步骤如下:

首先,从 OpenAI 官方网站 创建一个帐户。

然后,选择右上角的用户配置文件图标并单击“查看 API 密钥”以访问创建新 API 密钥或使用现有 API 密钥的页面。

使用此模型,我们通过提供提示、模型名称并使用该函数创建查询来验证其结果 openai.Completion.create() 。

检索结果如下:

new_prompt = Which part is the smallest bone in the entire human body?answer = openai.Completion.create( model=fine_tuned_model, prompt=new_prompt)print(answer[choices][0][text])new_prompt = Which type of gas is utilized by plants during the process of photosynthesis?answer = openai.Completion.create( model=fine_tuned_model, prompt=new_prompt)print(answer[choices][0][text])

尽管提示的书写方式与验证数据集中的不完全相同,但模型仍设法将它们映射到正确答案。 对先前请求的答复如下所示。

通过很少的训练样本,我们拥有了一个不错的微调模型,当然 更大的训练规模可以获得更好的结果。