【问题标题】:Structuring dataset for OpenAI's GPT-3 fine tuning为 OpenAI 的 GPT-3 微调构建数据集
【发布时间】:2021-12-30 12:00:37
【问题描述】:

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

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

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

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

<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:

我的问题是,我是否必须为我的训练数据提供相同的“格式”?可取吗? docs 表示训练集应该是这种格式:

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

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

【问题讨论】:

    标签: python machine-learning training-data openai gpt-3


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2023-02-25
      • 2021-08-16
      • 2023-01-28
      • 2022-12-14
      • 2022-12-14
      • 2022-12-08
      • 2023-01-19
      • 2022-07-24
      • 2021-09-28
      相关资源
      最近更新 更多