【发布时间】: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