2

OpenAI 的 API的微调端点似乎相当新,我在网上找不到很多微调数据集的示例。

我负责一个语音机器人,我正在测试 GPT-3 在一般开放式对话问题上的性能。我想在我们目前使用的“固定”意图-响应对上训练模型:这可能最终在公司声音和风格方面表现更好。

我已经准备好从我们当前的会话引擎中提取的一个长的 JSON 数据文件,它将用户输入与意图相匹配并返回指定的响应。我想根据这些数据训练 GPT-3 模型。

到目前为止,为了进行一些快速测试,我已经按照他们的建议设置了对 API 的调用。我在表单中有一个“固定”的介绍文本

<name> is <company>'s voicebot. he is kind and professional...

This is a conversation between <name> and a customer:

它预先添加到每个查询中,然后是一个小的 python 类,它跟踪以开头的上下文

User: <request the user provides>
Bot:

然后每转一圈都会附加api的响应,这样我就可以跟踪所说的内容。几个问题后,我发送的查询或提示字符串如下所示:

<name> is <company>'s voicebot. he is kind and professional...

This is a conversation between <name> and a user:

User: <request>
Bot: <response>
User: <request>
Bot: <response>
... and so on
Bot:

我的问题是,我是否必须为我的训练数据提供相同的“格式”?可取吗?文档表明训练集应采用以下格式:

{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
...

但是提示是否需要每次都包含我的介绍文本(描述),还是我只是提供一系列用户/机器人交换,Bot:最后并完成我期望的答案?在这种情况下,最佳做法是什么?我担心的是,如果我想从现在开始一个月后稍微更改介绍提示,我将不得不再次重新训练整个内容,因为每个响应都是在前面加上特定的文本块进行训练的。

4

1 回答 1

1

我联系了 OpenAI 的支持,他们非常有帮助:我会在此处留下他们的答案。

提示不需要每次都固定介绍。相反,您只需要提供至少几百个提示完成的用户/机器人交换对。我们在这里有一个聊天机器人微调数据集的样本。

于 2022-01-14T12:37:01.703 回答