热门分享

Openai Fine-tuning 介绍

Fine-tuning 是什么?

OpenAI 的 Fine-tuning 主要用来训练和优化模型以更好地适应特定的任务或数据集

在实际应用中,Fine-tuning 可以做很多事情,比如:

  • 问答系统:Fine-tuning 可以让模型更好地理解和回答用户的问题。
  • 情感分析:Fine-tuning 可以帮助模型更准确地识别和理解文本中的情感。
  • 文本分类:Fine-tuning 可以让模型更准确地对文本进行分类。
  • 自然语言生成:Fine-tuning 可以让模型生成更符合用户需求的文本。
  • 机器翻译:Fine-tuning 可以提高模型的翻译准确性和流畅性。
  • 还可以应用于语音识别、图像识别、生物信息学等多种领域

Fine-tuning 支持的模型有哪些?

DaVinci、Curie、Babbage和Ada都是OpenAI的GPT-3模型的不同版本,它们在模型大小和能力上有所不同。下面是它们的基本信息:

  • DaVinci:这是GPT-3系列中最大的模型,包含1750亿个参数。由于它的大规模和复杂性,DaVinci通常能够生成最详细,最全面,最准确的回答。DaVinci是适合处理复杂问题、写作、创意等需求的模型。
  • Curie:这个模型有500亿个参数,小于DaVinci,但仍然非常强大。Curie适合处理对话、写作、描述和一些有点复杂但不需要大量上下文理解的任务。
  • Babbage:这个模型有100亿个参数。Babbage在解答简单问题、解释、翻译、语音转文字等任务上表现出色。
  • Ada:Ada是GPT-3模型系列中最小的模型,有170亿个参数。尽管规模较小,但Ada在处理简单问题、短文本生成等任务上依然能够提供有效的结果。

这四个模型之间的主要区别在于它们的大小(即参数数量)和处理任务的复杂性。一般来说,更大的模型(如DaVinci和Curie)能够更好地处理复杂任务,而较小的模型(如Babbage和Ada)在处理简单任务时更高效。

如何训练Fine-tuning模型?

  • 环境准备
  • 准备和上传训练数据
  • 训练新的微调模型
  • 使用您的微调模型

环境准备

  • python 3(我用的是python3.9)
  • pip install –upgrade openai  (0.9.4及更高版本)
  • export OPENAI_API_KEY=”<OPENAI_API_KEY>” (获取OPENAI_API_KEY)

准备数据

您的数据必须是JSONL文档,其中每一行都是一个提示完成对,对应于一个训练示例

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

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

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

…

创建微调模型

openai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>  –suffix “custom model name”

  • TRAIN_FILE_ID_OR_PATH:准备的jsonl数据文件
  • BASE_MODEL开始的基本模型的名称(ada、babbage、curie 或 davinci),可基于已经创建好的模型,继续创建。
  • custom model name:自定义名字

列出模型:openai api fine_tunes.list

如果模型没有训练完成,可查看进度:openai api fine_tunes.follow -i  <YOUR_FINE_TUNE_JOB_ID>
删除模型:openai api models.delete -i <FINE_TUNED_MODEL>

使用微调模型

openai api completions.create -m <FINE_TUNED_MODEL> -p <YOUR_PROMPT>

案例分析(以ada模型为例)

分类问题

在分类问题中,提示中的每个输入都应分类到预定义的类别之一。对于此类问题,我们建议:

  • 在提示末尾使用分隔符,例如\n\n###\n\n. 当您最终向您的模型发出请求时,请记住还要附加此分隔符。
  • 选择映射到单个标记的类。在推理时,请指定max_tokens=1,因为您只需要第一个标记进行分类。(max_tokens是指模型回复的大小,判断tokens大小:https://platform.openai.com/tokenizer)
  • 确保提示+完成不超过 2048 个标记,包括分隔符
  • 目标是每班至少 ~100 个例子
  • logprobs=5要获得类日志概率,您可以在使用模型时指定(例如,假设你在一个句子生成任务中使用GPT-3,并且将logprobs设为5。如果模型生成了一个句子,那么API会返回每个token最可能的5个后续token及其对应的对数概率。如果一个token是”The”,API可能返回的最可能的下一个token是”dog”、”cat”、”person”、”car”和”house”。每个这样的预测都会有一个对应的对数概率,显示模型认为它们是下一个token的可能性有多大。)
  • 确保用于微调的数据集在结构和任务类型上与模型将用于的数据集非常相似

案例1:真假判断

假设您希望确保您网站上的广告文字提及正确的产品和公司。换句话说,您要确保模型没有胡编乱造。您可能想要微调过滤掉不正确广告的分类器。

数据集可能类似于以下内容:

{"prompt":"Company: BHFF insurance\nProduct: allround insurance\nAd:One stop shop for all your insurance needs!\nSupported:", "completion":" yes"}
{"prompt":"Company: Loft conversion specialists\nProduct: -\nAd:Straight teeth in weeks!\nSupported:", "completion":" no"}

在上面的示例中,我们使用了包含公司名称、产品和相关广告的结构化输入。作为分隔符,我们使用\nSupported:它清楚地将提示与完成分开。对于足够数量的示例,分隔符不会产生太大影响(通常小于 0.4%),只要它没有出现在提示或完成中即可。

数据准备:ada1.jsonl

{"prompt":"Company: 公司名\nProduct: 产品\nWebsite: 网站\nJudgment:", "completion":" yes"}
{"prompt":"Company: 公司名\nProduct: 产品\nWebsite: 网站\nJudgment:", "completion":" no"}

训练模型:

openai api fine_tunes.create -t  ada1.jsonl -m ada  --suffix "true-or-false"
[2023-05-31 15:25:34] Created fine-tune: ft-Il5xyzS0gcvWTdC2emytMWB7

[2023-05-31 15:26:39] Fine-tune costs $0.00

[2023-05-31 15:26:40] Fine-tune enqueued. Queue number: 6

[2023-05-31 15:27:12] Fine-tune is in the queue. Queue number: 5

[2023-05-31 15:27:15] Fine-tune is in the queue. Queue number: 4

[2023-05-31 15:27:55] Fine-tune is in the queue. Queue number: 3

[2023-05-31 15:28:39] Fine-tune is in the queue. Queue number: 2

[2023-05-31 15:32:42] Fine-tune is in the queue. Queue number: 1

[2023-05-31 15:33:56] Fine-tune is in the queue. Queue number: 0

[2023-05-31 15:35:31] Fine-tune started

[2023-05-31 15:35:44] Completed epoch 1/4

[2023-05-31 15:35:45] Completed epoch 2/4

[2023-05-31 15:35:45] Completed epoch 3/4

[2023-05-31 15:35:46] Completed epoch 4/4

[2023-05-31 15:36:01] Uploaded model: ada:ft-personal:true-or-false-2023-05-31-07-36-01

[2023-05-31 15:36:02] Uploaded result file: file-TpO7EBQl7mBUtyA9SQuMZ9Rs

[2023-05-31 15:36:02] Fine-tune succeeded

Job complete! Status: succeeded 🎉

Try out your fine-tuned model:

openai api completions.create -m ada:ft-personal:true-or-false-2023-05-31-07-36-01 -p <YOUR_PROMPT>

测试模型:https://platform.openai.com/playground

案例2:情绪分析

假设您想要了解特定推文的正面或负面程度。数据集可能类似于以下内容:

{"prompt":"Overjoyed with the new iPhone! ->", "completion":" positive"}
{"prompt":"@lakers disappoint for a third straight night https://t.co/38EFe43 ->", "completion":" negative"}

对模型进行微调后,您可以通过在logprobs=2完成请求上设置来取回第一个完成令牌的对数概率。正类别的概率越高,相对情绪就越高。
例如,假设你在一个句子生成任务中使用GPT-3,并且将logprobs设为5。如果模型生成了一个句子,那么API会返回每个token最可能的5个后续token及其对应的对数概率。如果一个token是”The”,API可能返回的最可能的下一个token是”dog”、”cat”、”person”、”car”和”house”。每个这样的预测都会有一个对应的对数概率,显示模型认为它们是下一个token的可能性有多大。

数据准备:ada2.jsonl

{"prompt":"有惊喜 ->", "completion":" positive"}
{"prompt":"收费不符合预期 ->", "completion":" negative"}
{"prompt":"价格适中、卫生较好,交通非常便利,近华强北步行街,夜景很美的 ->", "completion":" positive"}
{"prompt":"地方比较小 ->", "completion":" negative"}
{"prompt":"很棒的酒店 ->", "completion":" positive"}
{"prompt":"收费不符合预期 ->", "completion":" negative"}
{"prompt":"有惊喜 ->", "completion":" positive"}
{"prompt":"房价太小啦 ->", "completion":" negative"}
{"prompt":"离湾仔和会展地铁站都有段距离,但还算可以接受,环境都很不错,住得很舒适,这次周末入住一晚才港币500不到,实在是超高CP值,但如果是正常港币1000以上的价格,就需要再考虑了 ->", "completion":" positive"}
{"prompt":"枕头有味道 ->", "completion":" negative"}
{"prompt":"风景好,房间不错 ->", "completion":" positive"}
{"prompt":"休息时突然有工作人员开房门闯入,说了一声sorry又出去了 ->", "completion":" negative"}
{"prompt":"浴室没有提供沐浴露,给了2支洗发露,1支护发素,自助晚餐安排在宴会厅,长脚蟹很喊没蟹味,生蚝一般,刺身在水准以下,橙汁不是新鲜的还沟水,甜品卖相不好,味道尚可,整体来说不会有下一次。 ->", "completion":" negative"}
{"prompt":"地点很好,晚饭后可步往金紫荆广场,看维多利亚港,欣赏幻彩咏香江 ->", "completion":" positive"}
{"prompt":"酒店前台服务员, 态度很一般, 冷漠, 莫名其妙的态度令度假的心情没了, 房间算是新装修?但刚进门已有点霉味,可能未开冷气温差大造成 ->", "completion":" negative"}
{"prompt":"环境尚算清洁整齐,员工都有礼貌 ->", "completion":" positive"}

训练模型:

openai api fine_tunes.create -t  ada2.jsonl -m ada  --suffix "positive-or-negative"
[2023-05-31 18:09:48] Created fine-tune: ft-FDjvMG4c2LZ899kcQxrMCwTV

[2023-05-31 18:11:43] Fine-tune costs $0.00

[2023-05-31 18:11:44] Fine-tune enqueued. Queue number: 8

[2023-05-31 18:12:45] Fine-tune is in the queue. Queue number: 7

[2023-05-31 18:13:50] Fine-tune is in the queue. Queue number: 6

[2023-05-31 18:15:40] Fine-tune is in the queue. Queue number: 5

[2023-05-31 18:20:40] Fine-tune is in the queue. Queue number: 4

[2023-05-31 18:23:00] Fine-tune is in the queue. Queue number: 3

[2023-05-31 18:26:29] Fine-tune is in the queue. Queue number: 2

[2023-05-31 18:31:54] Fine-tune is in the queue. Queue number: 1

[2023-05-31 18:32:27] Fine-tune is in the queue. Queue number: 0

[2023-05-31 18:53:33] Fine-tune started

[2023-05-31 18:53:49] Completed epoch 1/4

[2023-05-31 18:53:51] Completed epoch 2/4

[2023-05-31 18:53:54] Completed epoch 3/4

[2023-05-31 18:53:56] Completed epoch 4/4

[2023-05-31 18:54:14] Uploaded model: ada:ft-personal:positive-or-negative-2023-05-31-10-54-14

[2023-05-31 18:54:15] Uploaded result file: file-ZChoma9alvVGHuEpKQbZPwrN

[2023-05-31 18:54:15] Fine-tune succeeded

Job complete! Status: succeeded 🎉

Try out your fine-tuned model:

openai api completions.create -m ada:ft-personal:positive-or-negative-2023-05-31-10-54-14 -p <YOUR_PROMPT>

测试模型:https://platform.openai.com/playground

#可以通过在logprobs=2完成请求上设置来取回第一个完成令牌的对数概率。正类别的概率越高,相对情绪就越高。
curl https://api.openai.com/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "prompt": "住的很舒服 ->",
    "max_tokens": 1,
    "logprobs": 2,
    "model": "ada:ft-personal:positive-or-negative-2023-05-31-10-54-14"
  }'

{
    "id": "cmpl-7ME4EK6x2Q8n6htq3rtYUS993cHAp",
    "object": "text_completion",
    "created": 1685531646,
    "model": "ada:ft-personal:positive-or-negative-2023-05-31-10-54-14",
    "choices": [
        {
            "text": " positive",
            "index": 0,
            "logprobs": {
                "tokens": [
                    " positive"
                ],
                "token_logprobs": [
                    -0.0031390772
                ],
                "top_logprobs": [
                    {
                        " positive": -0.0031390772,
                        " negative": -5.8827925
                    }
                ],
                "text_offset": [
                    8
                ]
            },
            "finish_reason": "length"
        }
    ],
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 1,
        "total_tokens": 10
    }
}

案例3:电子邮件分类

假设您希望将收到的电子邮件归入大量预定义类别之一。对于大量类别的分类,我们建议您将这些类别转换为数字,最多可处理约 500 个类别。我们观察到,由于标记化,在数字前添加一个空格有时会对性能略有帮助。您可能希望按如下方式构建训练数据:

{"prompt":"Subject: <email_subject>\nFrom:<customer_name>\nDate:<date>\nContent:<email_body>\n\n###\n\n", "completion":" <numerical_category>"}

例如:

{"prompt":"Subject: Update my address\nFrom:Joe Doe\nTo:support@ourcompany.com\nDate:2021-06-03\nContent:Hi,\nI would like to update my billing address to match my delivery address.\n\nPlease let me know once done.\n\nThanks,\nJoe\n\n###\n\n", "completion":" 4"}

对于电子邮件分类,类别的确定大多取决于你的具体需求和应用。以下是一些常见的电子邮件分类类别:

  • 垃圾邮件 vs 非垃圾邮件:这是最常见的分类任务之一,目标是识别并过滤掉垃圾邮件。
  • 优先级:邮件可以根据优先级或紧急程度进行分类,比如”高优先级”、”普通优先级”和”低优先级”。
  • 邮件类型:可以根据邮件的内容或用途将邮件分类,例如”工作”、”个人”、”购物”、”旅行”、”金融”等。
  • 情感分析:有些应用可能需要对邮件进行情感分析,将邮件分类为”正面”、”中性”或”负面”。
  • 客户查询:对于企业,邮件可以按照客户的问题或需求进行分类,比如”产品咨询”、”技术支持”、”投诉”、”赞扬”等。

数据准备:ada3.jsonl

#垃圾邮件 vs 非垃圾邮件

{ "prompt": "Content:只要点击链接,你就可以赢得一百万美元!\n\n###\n\n", "completion": "垃圾邮件" }
{ "prompt": "Content:你是我们的幸运抽奖者,赶紧领奖吧!\n\n###\n\n", "completion": "垃圾邮件" }
{ "prompt": "Content:延长你的保险保障期限,点击这里了解更多!\n\n###\n\n", "completion": "垃圾邮件" }
{ "prompt": "Content:秘密减肥方法,点击了解!\n\n###\n\n", "completion": "垃圾邮件" }
{ "prompt": "Content:立即注册,享受独家优惠!\n\n###\n\n", "completion": "垃圾邮件" }
{ "prompt": "Content:来自尼日利亚的重要商业提案,需要你的帮助!\n\n###\n\n", "completion": "垃圾邮件" }
{ "prompt": "Content:增大增强药,让你的生活更美好!\n\n###\n\n", "completion": "垃圾邮件" }
{ "prompt": "Content:你的电脑存在病毒,立即清理!\n\n###\n\n", "completion": "垃圾邮件" }
{ "prompt": "Content:点击链接,免费获得珠宝!\n\n###\n\n", "completion": "垃圾邮件" }
{ "prompt": "Content:震惊!看看这个秘密链接!\n\n###\n\n", "completion": "垃圾邮件" }
{ "prompt": "Content:明天的会议将被推迟到下午3点\n\n###\n\n", "completion": "非垃圾邮件" }
{ "prompt": "Content:请查看附件,我已经更新了项目报告\n\n###\n\n", "completion": "非垃圾邮件" }
{ "prompt": "Content:你的订购的商品已经发货\n\n###\n\n", "completion": "非垃圾邮件" }
{ "prompt": "Content:我看了你的简历,对你的背景很感兴趣。我们可以安排一个面试吗?\n\n###\n\n", "completion": "非垃圾邮件" }
{ "prompt": "Content:请确认你的预定\n\n###\n\n", "completion": "非垃圾邮件" }
{ "prompt": "Content:感谢你对我们产品的反馈\n\n###\n\n", "completion": "非垃圾邮件" }
{ "prompt": "Content:亲爱的顾客,这是你的月度账单\n\n###\n\n", "completion": "非垃圾邮件" }
{ "prompt": "Content:你好,这是你预定的电影票\n\n###\n\n", "completion": "非垃圾邮件" }
{ "prompt": "Content:恭喜你通过了我们的面试,我们很高兴邀请你加入我们的团队\n\n###\n\n", "completion": "非垃圾邮件" }
{ "prompt": "Content:这是我想在下周会议上讨论的议程\n\n###\n\n", "completion": "非垃圾邮件" }

下面的举例,就不书写邮件格式了,和结束提示符\n\n###\n\n

#优先级==》”高优先级”、”普通优先级”和”低优先级”

{ "prompt": "亲爱的员工,由于即将到来的风暴,我们决定明天公司停工。请注意安全,不要外出...", "completion": "高优先级" }
{ "prompt": "紧急通知:我们的服务器出现了问题,需要立即处理...", "completion": "高优先级" }
{ "prompt": "所有人,CEO将在15分钟后召开紧急会议,每个人都必须出席...", "completion": "高优先级" }
{ "prompt": "请注意,由于系统故障,我们需要立即停止所有交易...", "completion": "高优先级" }
{ "prompt": "亲爱的用户,我们检测到您的账户可能被未经授权的人访问,如果这不是您的操作,请尽快联系我们...", "completion": "高优先级" }
{ "prompt": "亲爱的,我们周末去哪儿旅行呢?", "completion": "普通优先级" }
{ "prompt": "你的订单#12345已经发货,预计明天到达...", "completion": "普通优先级" }
{ "prompt": "你好,我想预约下周三的牙医服务...", "completion": "普通优先级" }
{ "prompt": "明天的会议将被推迟到下午3点...", "completion": "普通优先级" }
{ "prompt": "关于你的酒店预订:明天入住,3晚...", "completion": "普通优先级" }
{ "prompt": "您的购物车有商品还未结账...", "completion": "低优先级" }
{ "prompt": "感谢您订购的商品,以下是您的购物确认信息...", "completion": "低优先级" }
{ "prompt": "独家优惠:只要今天购买,就能享受8折优惠!", "completion": "低优先级" }
{ "prompt": "你在我们的在线商店中的礼品卡余额已更新...", "completion": "低优先级" }
{ "prompt": "朋友们,我在这里分享一些我最近的旅行照片...", "completion": "低优先级" }

#邮件类型 ==》”工作”、”个人”、”购物”、”旅行”、”金融”

{ "prompt": "亲爱的团队,我已经完成了项目报告,详情请查看附件...", "completion": "工作" }
{ "prompt": "明天的会议将被推迟到下午3点...", "completion": "工作" }
{ "prompt": "你的工资单已更新,请查收...", "completion": "工作" }
{ "prompt": "下周我将在巴黎参加会议,需要帮助安排我的行程...", "completion": "工作" }
{ "prompt": "恭喜你通过了我们的面试,我们很高兴邀请你加入我们的团队...", "completion": "工作" }
{ "prompt": "亲爱的,我在想我们周末去哪儿旅行怎么样?", "completion": "个人" }
{ "prompt": "妈妈,我今天的成绩出来了,我考得非常好...", "completion": "个人" }
{ "prompt": "朋友们,我在这里分享一些我最近的旅行照片...", "completion": "个人" }
{ "prompt": "你好,我想预约下周三的牙医服务...", "completion": "个人" }
{ "prompt": "我已经更新了我的地址,请在此处发送所有的邮件...", "completion": "个人" }
{ "prompt": "你的订单#12345已经发货,预计明天到达...", "completion": "购物" }
{ "prompt": "感谢你订购的商品,以下是你的购物确认信息...", "completion": "购物" }
{ "prompt": "您的购物车有商品还未结账...", "completion": "购物" }
{ "prompt": "独家优惠:只要今天购买,就能享受8折优惠!", "completion": "购物" }
{ "prompt": "你在我们的在线商店中的礼品卡余额已更新...", "completion": "购物" }
{ "prompt": "你的飞机航班#12345将在24小时后起飞...", "completion": "旅行" }
{ "prompt": "关于你的酒店预订:明天入住,3晚...", "completion": "旅行" }
{ "prompt": "你预订的租车服务确认邮件...", "completion": "旅行" }
{ "prompt": "感谢你选择我们的旅行社,以下是你的旅行行程详情...", "completion": "旅行" }
{ "prompt": "关于你的回程火车票的重要更新...", "completion": "旅行" }
{ "prompt": "你的银行账户余额通知...", "completion": "金融" }
{ "prompt": "你的信用卡账单已出,截止日期为本月25日...", "completion": "金融" }
{ "prompt": "我们检测到在你的账户中有一笔异常的交易,如果这不是你的操作,请及时联系我们...", "completion": "金融" }
{ "prompt": "你的投资组合本月的表现报告...", "completion": "金融" }
{ "prompt": "你的退税申请已经被接受,我们将在5个工作日内处理...", "completion": "金融" }

#情感分析==》”正面”、”中性”或”负面”

{ "prompt": "您做得非常出色,我对您的工作非常满意。继续保持!", "completion": "正面" }
{ "prompt": "我很高兴通知您,您的申请已被我们接受。恭喜!", "completion": "正面" }
{ "prompt": "我今天收到了您寄来的礼物,我非常喜欢。谢谢您!", "completion": "正面" }
{ "prompt": "我刚刚阅读了您的报告,内容深入明了,让我受益良多。", "completion": "正面" }
{ "prompt": "您的支持和鼓励对我来说意义重大。非常感谢!", "completion": "正面" }
{ "prompt": "请注意,明天的会议已经推迟到下午三点。", "completion": "中性" }
{ "prompt": "您的订单已经发货,预计明天将送达您的地址。", "completion": "中性" }
{ "prompt": "请查收附件,里面是我关于项目的最新更新。", "completion": "中性" }
{ "prompt": "您的帐户余额为1234元。", "completion": "中性" }
{ "prompt": "明天的天气预报是多云,温度在20到25度之间。", "completion": "中性" }
{ "prompt": "我对您的服务感到非常失望,我预期的体验远远没有实现。", "completion": "负面" }
{ "prompt": "我很遗憾地通知您,由于您未达到我们的要求,您的申请被拒绝了。", "completion": "负面" }
{ "prompt": "很遗憾,我们的产品暂时缺货,可能需要延迟几周才能发货。", "completion": "负面" }
{ "prompt": "我们检测到您的账户可能存在欺诈风险,请立即联系我们。", "completion": "负面" }
{ "prompt": "我对会议的结果感到不满,它没有达到我期望的效果。", "completion": "负面" }

#客户查询==》”产品咨询”、”技术支持”、”投诉”、”赞扬”

{ "prompt": "我对您们的新款笔记本电脑非常感兴趣,能否告诉我更多的信息?", "completion": "产品咨询" }
{ "prompt": "我看到你们有一款新的瑜伽垫,能否告诉我它的材质和尺寸?", "completion": "产品咨询" }
{ "prompt": "我想知道你们的健身器材是否适合家庭使用?", "completion": "产品咨询" }
{ "prompt": "我在你们的网站上看到一个广告,可以告诉我那款产品的价格吗?", "completion": "产品咨询" }
{ "prompt": "我想为我儿子购买一款游戏机,您能帮我选择吗?", "completion": "产品咨询" }
{ "prompt": "我在安装你们的软件时遇到了问题,能帮我解决吗?", "completion": "技术支持" }
{ "prompt": "我无法登录我的账户,能帮我查看一下问题所在吗?", "completion": "技术支持" }
{ "prompt": "我的电视无法正常工作,有没有可能是我设置的问题?", "completion": "技术支持" }
{ "prompt": "我购买的打印机无法连接到我的电脑,你们能帮忙解决吗?", "completion": "技术支持" }
{ "prompt": "我刚更新了你们的app,但现在无法打开它,你们能看一下吗?", "completion": "技术支持" }
{ "prompt": "我对你们的服务非常不满,我等待了整整一个小时才得到服务!", "completion": "投诉" }
{ "prompt": "我购买的产品有问题,我希望得到退款。", "completion": "投诉" }
{ "prompt": "我对你们的快递员的行为感到非常失望,他把我的包裹丢在了门口!", "completion": "投诉" }
{ "prompt": "我昨天在你们的店里吃饭,食物质量非常差。", "completion": "投诉" }
{ "prompt": "我已经联系你们的客服很多次了,但我的问题还没有得到解决!", "completion": "投诉" }
{ "prompt": "我要说,你们的客服团队真的很棒!他们帮我解决了所有问题。", "completion": "赞扬" }
{ "prompt": "我非常喜欢你们的产品,我一直都在推荐给我的朋友们。", "completion": "赞扬" }
{ "prompt": "我很高兴我选择了你们的服务,你们的团队让我感到非常满意。", "completion": "赞扬" }
{ "prompt": "你们的工作人员对我非常好,我很感激。", "completion": "赞扬" }
{ "prompt": "你们的应用程序非常易用,我每天都在用。", "completion": "赞扬" }

训练模型:以垃圾邮件 vs 非垃圾邮件举例

openai api fine_tunes.create -t  ada3.jsonl -m ada  --suffix "garbage-or-non-garbage"
[2023-06-02 11:59:44] Created fine-tune: ft-XR7LywdKnXZ0hR6xsmYWUoKK

[2023-06-02 12:01:05] Fine-tune costs $0.00

[2023-06-02 12:01:05] Fine-tune enqueued. Queue number: 0

[2023-06-02 12:01:06] Fine-tune started

[2023-06-02 12:01:23] Completed epoch 1/4

[2023-06-02 12:01:26] Completed epoch 2/4

[2023-06-02 12:01:29] Completed epoch 3/4

[2023-06-02 12:01:32] Completed epoch 4/4

[2023-06-02 12:01:49] Uploaded model: ada:ft-personal:garbage-or-non-garbage-2023-06-02-04-01-49

[2023-06-02 12:01:50] Uploaded result file: file-Nz4f4JvHEIRTyP2m2MHEaeaa

[2023-06-02 12:01:50] Fine-tune succeeded

Job complete! Status: succeeded 🎉

Try out your fine-tuned model:

openai api completions.create -m ada:ft-personal:garbage-or-non-garbage-2023-06-02-04-01-49 -p <YOUR_PROMPT>

测试模型:https://platform.openai.com/playground

条件生成问题

条件生成是需要在给定某种输入的情况下生成内容的问题。这包括释义、总结、实体提取、编写给定规范的产品描述、聊天机器人等。对于此类问题,我们建议:

  • 在提示末尾使用分隔符,例如\n\n###\n\n. 当您最终向您的模型发出请求时,请记住还要附加此分隔符。
  • 在完成结束时使用结束标记,例如 END
  • 请记住在推理过程中将结束标记添加为停止序列,例如stop=[” END”]
  • 目标是至少 ~500 个示例
  • 确保提示+完成不超过 2048 个标记,包括分隔符
  • 确保示例具有高质量并遵循相同的所需格式
  • 确保用于微调的数据集在结构和任务类型上与模型将用于的数据集非常相似
  • 使用较低的学习率和仅 1-2 个时期往往更适合这些用例

备注:

  • 在提示末尾使用分隔符,例如”\n\n###\n\n”:这种方法的主要目的是帮助模型区分输入(即提示)和输出(即完成)。例如,如果你的训练样本是这样的:
{ "prompt": "天气怎么样?\n\n###\n\n", "completion": "今天的天气很好。" }

在这种情况下,当你在实际使用模型进行推理(或称为”部署”)时,你需要在你的提示末尾添加这个分隔符,让模型知道你现在提供的是提示部分,希望它提供相应的完成部分。

  • 在完成结束时使用结束标记,例如”END”:这种方法的主要目的是告诉模型预期的输出何时结束。这对于一些模型来说可能是有用的,因为它们可能会生成过长的输出,如果没有明确的结束标志,模型可能会继续生成,直到达到其最大的生成长度限制。例如,你的训练样本可能看起来像这样:
{ "prompt": "天气怎么样?", "completion": "今天的天气很好。END" }

在这种情况下,模型将学习到当看到”END”时,就应该停止生成。

案例4:根据维基百科文章撰写引人入胜的广告

例如,假设你正在销售一种叫做”XYZ智能手机”的产品,你可以找到关于该产品或类似产品的维基百科描述,然后用这个描述来创建训练样本。

{
  "prompt": "XYZ智能手机\nXYZ智能手机是一款创新的智能手机,配备了高清大屏幕、强大的处理器和优秀的摄像头。\n\n###\n\n",
  "completion": "带来全新的XYZ智能手机,让您的世界更加精彩。体验它超凡的处理能力,感受它精细的大屏幕,记录你的美好瞬间。立即购买,打开全新的体验之旅。END"
}

当你创建了足够的这样的训练样本后(每种类型的产品几百到几千个样本),你就可以开始训练你的模型了。然后,当你在实际中使用模型时,你需要在你的提示末尾添加相同的分隔符,模型就会生成相应的广告文案。

数据准备:ada4.jsonl

{"prompt": "ABC智能手机\nABC智能手机具有优质的显示效果,高效的电池寿命和出色的摄像头。\n\n###\n\n","completion": "ABC智能手机,让你的每一天都充满色彩。持久的电池寿命,无需担心电量不足。全新的摄像头,捕捉你生活的每一个细节。立即购买,享受全新的智能体验。END"}
{"prompt": "DEF智能手机\nDEF智能手机拥有超强的存储空间,出色的音质和流线型的设计。\n\n###\n\n","completion": "DEF智能手机,实现无限可能。超大的存储空间,无论是应用程序还是照片,都能轻松存储。高质量的音频,让你每一次听歌都像在现场一样。优雅的设计,让你在人群中脱颖而出。立即购买,享受超乎想象的智能手机体验。END"}
{"prompt": "GHI智能手机\nGHI智能手机配备了全面屏设计,超强的处理器和先进的生物识别技术。\n\n###\n\n","completion": "GHI智能手机,是你的理想伙伴。全面屏设计,让你的视野更加开阔。超强的处理器,让你的应用运行得更加流畅。先进的生物识别技术,让你的数据更加安全。立即购买,开启全新的智能生活。END"}
{"prompt": "JKL智能手机\nJKL智能手机是一款具有卓越性能和卓越照相功能的设备,且有出色的续航能力。\n\n###\n\n","completion": "JKL智能手机,为你的生活添加更多可能。它卓越的性能让你享受无缝使用体验,而卓越的摄像头功能则保证你不错过生活中的任何美好瞬间。长久的电池寿命让你无需为电量消耗忧虑。立即购买,开启你的新体验。END"}
{"prompt": "MNO智能手机\nMNO智能手机配备了最新的芯片技术,卓越的显示屏和顶级的拍照技术。\n\n###\n\n","completion": "想要创新,尝试MNO智能手机。它的最新芯片技术为你的体验带来无比流畅,而卓越的显示屏则带来震撼的视觉享受。高级的拍照技术使你能记录生活中的每一刻。立即购买,享受MNO智能手机带来的前所未有的体验。END"}
{"prompt": "PQR智能手机\nPQR智能手机设计时尚且轻巧,它拥有出色的音频性能和高级的摄像头。\n\n###\n\n","completion": "PQR智能手机,你的生活艺术家。时尚轻巧的设计让你在众人中脱颖而出,而出色的音频性能和高级摄像头则让你在记录生活中的美好瞬间时如鱼得水。立即购买,开始你的艺术生活。END"}
{"prompt": "STU智能手机\nSTU智能手机拥有前沿的人脸识别技术,绚丽的全视网孔屏和顶级的耐力电池。\n\n###\n\n","completion": "全新STU智能手机,打造科技未来。其前沿的人脸识别技术带给你极致的安全体验,全视网孔屏让你的视觉享受无比绚丽,而顶级的耐力电池让你无需担心电量。立即购买STU智能手机,体验科技带来的无限可能。END"}
{"prompt": "VWX智能手机\nVWX智能手机配备最新的操作系统,速度快且流畅,拥有强大的多任务处理能力。\n\n###\n\n","completion": "引领科技潮流,那就选择VWX智能手机。最新的操作系统为你提供快速且流畅的使用体验,而强大的多任务处理能力让你在处理复杂任务时更加得心应手。立即购买VWX智能手机,感受科技的力量。END"}
{"prompt": "YZA智能手机\nYZA智能手机拥有优秀的屏幕显示,强大的内存和便捷的人工智能助手。\n\n###\n\n","completion": "让生活更美好,YZA智能手机助你实现。优秀的屏幕显示让你享受视觉盛宴,强大的内存让应用运行更流畅,而便捷的人工智能助手则让你的生活更加便捷。立即购买YZA智能手机,让科技改变生活。END"}
{"prompt": "BCD智能手机\nBCD智能手机设计简约大气,具备超高清摄像头和出色的音质效果。\n\n###\n\n","completion": "让美好触手可及,BCD智能手机为你实现。简约大气的设计让你爱不释手,超高清的摄像头帮你捕捉生活的每一分美好,出色的音质效果让你沉浸在音乐世界。立即购买BCD智能手机,感受美好的生活。END"}

训练模型:

openai api fine_tunes.create -t  ada4.jsonl -m ada  --suffix "advertisement"
[2023-06-02 15:23:34] Created fine-tune: ft-E93mZRPo3Xuys22BxWtijOL2

[2023-06-02 15:26:15] Fine-tune costs $0.00

[2023-06-02 15:26:16] Fine-tune enqueued. Queue number: 3

[2023-06-02 15:40:17] Fine-tune is in the queue. Queue number: 2

[2023-06-02 15:41:11] Fine-tune is in the queue. Queue number: 1

[2023-06-02 15:52:25] Fine-tune is in the queue. Queue number: 0

[2023-06-02 15:54:30] Fine-tune started

[2023-06-02 15:54:45] Completed epoch 1/4

[2023-06-02 15:54:47] Completed epoch 2/4

[2023-06-02 15:54:48] Completed epoch 3/4

[2023-06-02 15:54:50] Completed epoch 4/4

[2023-06-02 15:55:11] Uploaded model: ada:ft-personal:advertisement-2023-06-02-07-55-11

[2023-06-02 15:55:11] Uploaded result file: file-Hc7ZGefh8VM4muoCFeNXGvwP

[2023-06-02 15:55:12] Fine-tune succeeded

Job complete! Status: succeeded 🎉

Try out your fine-tuned model:

openai api completions.create -m ada:ft-personal:advertisement-2023-06-02-07-55-11 -p <YOUR_PROMPT>

测试模型:https://platform.openai.com/playground

因训练的数据较少,效果不明显

案例5:实体提取

实体提取是一种常见的自然语言处理任务,它的目标是从文本中识别并提取出特定类型的信息,如人名、地名、公司名、日期等。例如:模型接收到一段新闻文章作为输入(”prompt”),然后需要生成一个包含文章中所有实体的列表(”completion”)。

数据准备:ada5.jsonl

{"prompt": "阿里巴巴集团是一家总部位于中国杭州的多国籍大型集团,其创始人为马云。公司的主要业务包括电子商务、云计算、数字娱乐等领域。\n\n###\n\n","completion": "阿里巴巴集团\n中国\n杭州\n马云\n电子商务\n云计算\n数字娱乐 END"}
{"prompt": "京东集团是中国最大的自营型电商企业,总部位于北京,创始人为刘强东。京东以其快速、准确的物流服务而著称。\n\n###\n\n","completion": "京东集团\n中国\n北京\n刘强东\n电商企业\n物流服务 END"}
{"prompt": "长城是中华人民共和国的历史文化遗产,是中国古代的军事防御工程,跨越中国的多个省份。\n\n###\n\n","completion": "长城\n中华人民共和国\n历史文化遗产\n中国古代\n军事防御工程 END"}
{"prompt": "腾讯是一家总部在深圳的大型互联网科技公司,创始人为马化腾。其开发的QQ和微信在中国拥有广大的用户基础。\n\n###\n\n","completion": "腾讯\n深圳\n马化腾\nQQ\n微信\n中国 END"}
{"prompt": "习近平是中华人民共和国的现任国家主席,也是中国共产党的总书记,同时还担任中央军事委员会主席。\n\n###\n\n","completion": "习近平\n中华人民共和国\n国家主席\n中国共产党\n总书记\n中央军事委员会 END"}
{"prompt": "长江是中国的母亲河,也是亚洲最长的河流,流经中国的多个省份,对中国的经济发展有重要影响。\n\n###\n\n","completion": "长江\n中国\n亚洲\n经济发展 END"}
{"prompt": "央视春晚是由中国中央电视台举办的一年一度的综艺晚会,每年的除夕之夜都会播出,观众众多。\n\n###\n\n","completion": "央视春晚\n中国中央电视台\n除夕之夜 END"}
{"prompt": "百度是中国最大的搜索引擎公司,总部位于北京,创始人为李彦宏。百度的愿景是让人们最大限度地提高生活的效率。\n\n###\n\n","completion": "百度\n中国\n搜索引擎公司\n北京\n李彦宏 END"}
{"prompt": "中国石化是一家全球最大的石油和化学公司之一,总部位于北京。中国石化的主要业务包括石油开采、炼化、销售和石化产品的生产。\n\n###\n\n","completion": "中国石化\n石油\n化学公司\n北京\n石油开采\n炼化\n销售\n石化产品 END"}
{"prompt": "北京是中国的首都,也是国家的政治、文化、教育和科技创新中心。城内有天安门广场、故宫等著名景点。\n\n###\n\n","completion": "北京\n中国\n首都\n政治\n文化\n教育\n科技创新\n天安门广场\n故宫 END"}
{"prompt": "李白是中国唐朝的一位著名诗人,人称诗仙,他的诗才横溢,作品广泛流传,如《静夜思》、《早发白帝城》等。\n\n###\n\n","completion": "李白\n中国\n唐朝\n诗人\n诗仙\n静夜思\n早发白帝城 END"}
{"prompt": "四川是中国的一个省份,位于中国的西南部,省会是成都。四川以其麻辣美食和大熊猫而闻名。\n\n###\n\n","completion": "四川\n中国\n省份\n西南部\n成都\n麻辣美食\n大熊猫 END"}
{"prompt": "雷军是中国的企业家,是小米科技的创始人和CEO,小米科技是一家主要生产智能手机的公司,以高性价比的产品而受到消费者的喜爱。\n\n###\n\n","completion": "雷军\n中国\n企业家\n小米科技\nCEO\n智能手机 END"}
{"prompt": "王者荣耀是由腾讯公司开发的一款多人在线战斗游戏,游戏中包含了许多历史人物和神话人物。\n\n###\n\n","completion": "王者荣耀\n腾讯公司\n多人在线战斗游戏\n历史人物\n神话人物 END"}

训练模型:

openai api fine_tunes.create -t  ada5.jsonl -m ada  --suffix "entity-extraction"
[2023-06-02 15:51:20] Created fine-tune: ft-3EtbNVT1TP0ik6bTtekOfWKX

[2023-06-02 15:56:25] Fine-tune costs $0.00

[2023-06-02 15:56:26] Fine-tune enqueued. Queue number: 16

[2023-06-02 15:57:39] Fine-tune is in the queue. Queue number: 15

[2023-06-02 15:58:19] Fine-tune is in the queue. Queue number: 14

[2023-06-02 15:59:13] Fine-tune is in the queue. Queue number: 13

[2023-06-02 15:59:54] Fine-tune is in the queue. Queue number: 12

[2023-06-02 16:00:18] Fine-tune is in the queue. Queue number: 11

[2023-06-02 16:00:58] Fine-tune is in the queue. Queue number: 10

[2023-06-02 16:02:03] Fine-tune is in the queue. Queue number: 9

[2023-06-02 16:02:43] Fine-tune is in the queue. Queue number: 8

[2023-06-02 16:03:37] Fine-tune is in the queue. Queue number: 7

[2023-06-02 16:04:21] Fine-tune is in the queue. Queue number: 6

[2023-06-02 16:05:55] Fine-tune is in the queue. Queue number: 5

[2023-06-02 16:09:03] Fine-tune is in the queue. Queue number: 4

[2023-06-02 16:09:57] Fine-tune is in the queue. Queue number: 3

[2023-06-02 16:12:12] Fine-tune is in the queue. Queue number: 2

[2023-06-02 16:12:13] Fine-tune is in the queue. Queue number: 1

[2023-06-02 16:13:58] Fine-tune is in the queue. Queue number: 0

[2023-06-02 16:16:53] Fine-tune started

[2023-06-02 16:17:09] Completed epoch 1/4

[2023-06-02 16:17:11] Completed epoch 2/4

[2023-06-02 16:17:13] Completed epoch 3/4

[2023-06-02 16:17:16] Completed epoch 4/4

[2023-06-02 16:17:35] Uploaded model: ada:ft-personal:entity-extraction-2023-06-02-08-17-35

[2023-06-02 16:17:36] Uploaded result file: file-NYoVCUTzxT5AmLSSsp9ta0ek

[2023-06-02 16:17:36] Fine-tune succeeded

Job complete! Status: succeeded 🎉

Try out your fine-tuned model:

openai api completions.create -m ada:ft-personal:entity-extraction-2023-06-02-08-17-35 -p <YOUR_PROMPT>

测试模型:https://platform.openai.com/playground

因训练的数据较少,效果不明显

案例6:客户支持聊天机器人

聊天机器人通常会包含有关对话的相关上下文(订单详细信息)、到目前为止的对话摘要以及最近的消息。对于这个用例,相同的过去对话可以在数据集中生成多行,每次都有稍微不同的上下文,对于每个代理生成作为完成。这个用例将需要几千个示例,因为它可能会处理不同类型的请求和客户问题。为确保高质量的性能,我们建议审查对话样本以确保代理消息的质量。可以使用单独的文本转换微调模型生成摘要。数据集可能如下所示:

{"prompt":"Summary: <summary of the interaction so far>\n\nSpecific information:<for example order details in natural language>\n\n###\n\nCustomer: <message1>\nAgent: <response1>\nCustomer: <message2>\nAgent:", "completion":" <response2>\n"}
{"prompt":"Summary: <summary of the interaction so far>\n\nSpecific information:<for example order details in natural language>\n\n###\n\nCustomer: <message1>\nAgent: <response1>\nCustomer: <message2>\nAgent: <response2>\nCustomer: <message3>\nAgent:", "completion":" <response3>\n"}

在这里,我们有意分离不同类型的输入信息,但在提示和完成之间以相同的格式维护客户代理对话框。所有的完成都应该只由代理完成,我们可以\n在进行推理时用作停止序列。

对话中的每一个部分(摘要、特定信息、客户和客服的消息)都被组织成一个序列,作为模型的输入(”prompt”)。模型的任务是生成代理的回应(”completion”)。这种设置的目标是让模型学习如何根据对话的上下文信息和客户的最新消息,生成合适的回应。

数据准备:ada6.jsonl

{"prompt": "摘要:客户询问订单状态。\n\n特定信息:客户两周前订购了一部智能手机,但至今未收到。\n\n###\n\n客户:我的订单什么时候会到达?\n客服:","completion": " 根据您的订单详情,您的智能手机正在运输途中,预计在接下来的2-3个工作日内到达。感谢您的耐心等待。\n"}
{"prompt": "摘要:客户想要更改他们的配送地址。\n\n特定信息:客户最初的送货地址是上海,现在想改到深圳。\n\n###\n\n客户:我能改变我的配送地址吗?\n客服:","completion": " 当然可以,我已经帮您将送货地址从上海改为深圳。请您再次确认深圳的具体地址以确保无误。\n"}
{"prompt": "摘要:客户想要了解退货政策。\n\n特定信息:客户购买的是一款笔记本电脑。\n\n###\n\n客户:如果我对这款笔记本电脑不满意,我能退货吗?\n客服:","completion": " 当然可以,我们的退货政策允许您在购买后的30天内,如果对产品不满意,可以申请退货。请保留好产品的原包装,并确保产品没有人为损坏。\n"}
{"prompt": "摘要:客户询问关于产品保修的问题。\n\n特定信息:客户购买的是一款两年前的电视机型。\n\n###\n\n客户:我的电视机还在保修期内吗?\n客服:","completion": " 根据您提供的信息,您购买的电视机型是两年前的,我们的电视机一般提供两年的保修期。所以,我恐怕您的电视可能已经超出了保修期。\n"}
{"prompt": "摘要:客户关心产品的维修服务。\n\n特定信息:客户的手机屏幕意外碎裂。\n\n###\n\n客户:我的手机屏幕碎了,你们提供维修服务吗?\n客服:","completion": " 我们确实提供手机屏幕维修服务。您可以将手机送至我们的任一维修服务中心,或者您也可以选择邮寄的方式。详细的操作流程和费用我会在后续的邮件中发送给您。\n"}
{"prompt": "摘要:客户反馈他们收到的产品存在质量问题。\n\n特定信息:客户收到的耳机无法正常工作。\n\n###\n\n客户:我收到的耳机声音很小,这是怎么回事?\n客服:","completion": " 很抱歉听到您的耳机存在问题。这可能是产品存在的质量问题,也可能是设置问题。您可以先尝试按照我们产品手册中的步骤检查设置。如果问题依然存在,我们将为您进行更换或者维修。\n"}
{"prompt": "摘要:客户想了解关于产品退货的流程。\n\n特定信息:客户购买的耳机有些许不适。\n\n###\n\n客户:我最近买的这款耳机戴着不是很舒服,我能退货吗?\n客服:","completion": " 对不起听到您对我们的产品不满意。您完全可以退货。为了开始退货流程,您需要在我们的官方网站上填写一份退货申请表。一旦我们收到并批准了您的申请,我们就会向您发送进一步的指示。\n"}
{"prompt": "摘要:客户对他的新手机的电池寿命有疑问。\n\n特定信息:客户最近购买的新手机电池电量消耗过快。\n\n###\n\n客户:我感觉我新买的手机电池一天要充好几次,这是怎么回事?\n客服:","completion": " 非常抱歉听到您有这样的困扰。手机电池的寿命可能会受到许多因素的影响,比如亮度设置、开启的应用数量等。您可以试着调整这些设置,看看是否有所改善。如果问题仍然存在,我们建议您联系我们的售后服务进行专业的检查和维修。\n"}
{"prompt": "摘要:客户对如何设置他的新电视有疑问。\n\n特定信息:客户刚购买了一个新电视,但不清楚如何设置。\n\n###\n\n客户:我刚买了一台新电视,但我不知道怎么设置,你们能帮我吗?\n客服:","completion": " 当然可以,我们很乐意帮助您设置新电视。您可以参考我们的在线用户手册,那里有详细的步骤介绍。如果您在设置过程中遇到任何困难,也可以随时联系我们的客户服务热线。\n"}
{"prompt": "摘要:客户对新购买的笔记本电脑有操作上的疑问。\n\n特定信息:客户刚刚购买了我们的新款笔记本,对操作系统不熟悉。\n\n###\n\n客户:我刚买的这款笔记本电脑,操作系统有些复杂,能提供些帮助吗?\n客服:","completion": " 当然,我们有专门的在线教程和指导手册可供您参考,其中详细介绍了操作系统的各种功能。同时,如果您有任何具体的问题或困难,都可以随时向我们提问,我们会尽快为您解答。\n"}

训练模型:

openai api fine_tunes.create -t  ada6.jsonl -m ada  --suffix "chatbot" 
[2023-06-02 17:27:27] Created fine-tune: ft-8h2FItC8gaNgrXTQmMiWVGW1

[2023-06-02 17:30:27] Fine-tune costs $0.00

[2023-06-02 17:30:28] Fine-tune enqueued. Queue number: 12

[2023-06-02 17:30:58] Fine-tune is in the queue. Queue number: 11

[2023-06-02 17:33:44] Fine-tune is in the queue. Queue number: 10

[2023-06-02 17:34:17] Fine-tune is in the queue. Queue number: 9

[2023-06-02 17:37:08] Fine-tune is in the queue. Queue number: 8

[2023-06-02 17:39:43] Fine-tune is in the queue. Queue number: 7

[2023-06-02 17:48:40] Fine-tune is in the queue. Queue number: 6

[2023-06-02 17:49:14] Fine-tune is in the queue. Queue number: 5

[2023-06-02 17:50:55] Fine-tune is in the queue. Queue number: 4

[2023-06-02 17:51:12] Fine-tune is in the queue. Queue number: 3

[2023-06-02 17:51:13] Fine-tune is in the queue. Queue number: 2

[2023-06-02 17:51:38] Fine-tune is in the queue. Queue number: 1

[2023-06-02 17:52:38] Fine-tune is in the queue. Queue number: 0

[2023-06-02 17:53:53] Fine-tune started

[2023-06-02 17:54:07] Completed epoch 1/4

[2023-06-02 17:54:09] Completed epoch 2/4

[2023-06-02 17:54:10] Completed epoch 3/4

[2023-06-02 17:54:12] Completed epoch 4/4

[2023-06-02 17:54:34] Uploaded model: ada:ft-personal:chatbot-2023-06-02-09-54-33

[2023-06-02 17:54:34] Uploaded result file: file-kDG36b70HeJLYHNDliiTB4WW

[2023-06-02 17:54:34] Fine-tune succeeded

Job complete! Status: succeeded 🎉

Try out your fine-tuned model:

openai api completions.create -m ada:ft-personal:chatbot-2023-06-02-09-54-33 -p <YOUR_PROMPT>

测试模型:https://platform.openai.com/playground

因训练的数据较少,效果不明显

案例7:基于技术属性列表的产品描述

它是指将一组产品的技术属性(如物品名称、颜色、价格、大小等)转化为一段吸引人的产品描述。微调数据集包含了一系列的示例,每个示例都包括一个包含产品技术属性的提示以及一个相应的产品描述。

例如,以下格式:

{"prompt":"Item=handbag, Color=army_green, price=$99, size=S->", "completion":" This stylish small green handbag will add a unique touch to your look, without costing you a fortune."}

数据准备:ada7.jsonl

{"prompt": "物品=笔记本电脑, 品牌=XYZ, 颜色=银色, 价格=¥5999, 屏幕大小=15.6英寸, 处理器=i7, 内存=16GB, 存储=512GB SSD->","completion": " 来自XYZ的这款银色笔记本电脑将带给您卓越的使用体验,只需¥5999。配备了15.6英寸的大屏幕,i7处理器,16GB内存和512GB SSD存储空间,它既适合娱乐又适合高效的工作。与XYZ一起,体验科技的力量。"}
{"prompt": "物品=蓝牙耳机, 品牌=ABC, 颜色=黑色, 价格=¥999, 连接方式=蓝牙, 续航时间=24小时, 降噪功能=有->","completion": " ABC的蓝牙耳机,黑色时尚外观,¥999即可带回家。它提供蓝牙连接,强大的24小时续航能力,并具有降噪功能,让您沉浸在音乐的世界中,无视外界的干扰。ABC,让您感受声音的魅力。"}
{"prompt": "物品=运动鞋, 品牌=DEF, 颜色=红色, 价格=¥699, 尺码=42, 材质=网布, 适用性别=男性, 鞋底材质=橡胶->","completion": " DEF品牌的男性运动鞋,鲜艳的红色,售价为¥699。采用透气的网布材质,42码大小,配备防滑耐磨的橡胶鞋底。穿上DEF,让每一步都充满活力。"}
{"prompt": "物品=皮夹, 品牌=GHI, 颜色=棕色, 价格=¥1299, 材质=真皮, 容量=6卡位, 适用性别=男性->","completion": " GHI男士真皮皮夹,经典的棕色,售价¥1299。高质量的真皮材质,内有6个卡位,可以轻松满足您的日常需求。与GHI一同,展现您的品味。"}
{"prompt": "物品=面膜, 品牌=JKL, 功效=保湿, 价格=¥299/盒, 含量=10片/盒->","completion": " JKL面膜,专注于为肌肤补充水分,只需¥299就能得到一盒10片。每一片面膜都充满了保湿成分,用它来呵护你的肌肤,让肌肤回归水嫩状态。"}
{"prompt": "物品=数码相机, 品牌=MNO, 像素=2000万, 价格=¥3999, 镜头=可变焦, 显示屏=3.0英寸LCD->","completion": " MNO品牌的数码相机,拥有2000万像素高清拍摄能力,只需¥3999。配备可变焦镜头和3.0英寸的LCD显示屏,无论是人像还是风景,都能轻松捕捉。"}
{"prompt": "物品=电子书阅读器, 品牌=PQR, 内存=8GB, 价格=¥999, 显示屏=6英寸, 阅读时间=一次充电可持续阅读四周->","completion": " PQR品牌的电子书阅读器,拥有8GB的大容量存储,售价为¥999。其6英寸的屏幕能给您带来舒适的阅读体验,一次充电可持续阅读四周,是您的最佳阅读伴侣。"}
{"prompt": "物品=电动牙刷, 品牌=STU, 功能=超声波清洁, 价格=¥299, 电池续航=一次充电可使用一个月, 颜色=白色->","completion": " STU品牌电动牙刷,提供高效的超声波清洁功能,只需¥299。白色外观设计简洁时尚,一次充电可支持长达一个月的使用,让您的口腔护理更加方便。"}
{"prompt": "物品=咖啡机, 品牌=XYZ, 功能=一键制作, 价格=¥599, 颜色=黑色, 材质=不锈钢->","completion": " XYZ品牌的黑色咖啡机,拥有一键制作功能,只需¥599。采用不锈钢材质,耐用且易于清洁,可以为您轻松制作美味的咖啡。"}
{"prompt": "物品=平板电脑, 品牌=ABC, 处理器=八核, 价格=¥2999, 显示屏=10.1英寸, 内存=6GB, 存储=128GB->","completion": " ABC品牌的10.1英寸平板电脑,搭载八核处理器和6GB内存,提供流畅的使用体验,只需¥2999。配备128GB的存储空间,足以满足您的日常娱乐和工作需求。"}
{"prompt": "物品=蓝牙音箱, 品牌=DEF, 电池续航=8小时, 价格=¥199, 颜色=红色, 功能=防水防尘->","completion": " DEF品牌的红色蓝牙音箱,具有防水防尘的功能,售价为¥199。电池续航时间长达8小时,无论是户外还是室内,都能为您带来优质的听音体验。"}

训练模型:

openai api fine_tunes.create -t  ada7.jsonl -m ada  --suffix "product-description"
[2023-06-02 17:40:47] Created fine-tune: ft-j4lGCW7jRZvB8H1JcaSYjFXw

[2023-06-02 17:54:35] Fine-tune costs $0.00

[2023-06-02 17:54:35] Fine-tune enqueued. Queue number: 12

[2023-06-02 17:54:36] Fine-tune is in the queue. Queue number: 11

[2023-06-02 17:55:09] Fine-tune is in the queue. Queue number: 10

[2023-06-02 17:56:09] Fine-tune is in the queue. Queue number: 9

[2023-06-02 17:56:10] Fine-tune is in the queue. Queue number: 8

[2023-06-02 17:56:44] Fine-tune is in the queue. Queue number: 7

[2023-06-02 17:58:25] Fine-tune is in the queue. Queue number: 6

[2023-06-02 17:59:09] Fine-tune is in the queue. Queue number: 5

[2023-06-02 18:10:27] Fine-tune is in the queue. Queue number: 4

[2023-06-02 18:10:44] Fine-tune is in the queue. Queue number: 3

[2023-06-02 18:11:48] Fine-tune is in the queue. Queue number: 2

[2023-06-02 18:12:22] Fine-tune is in the queue. Queue number: 1

[2023-06-02 18:12:23] Fine-tune is in the queue. Queue number: 0

[2023-06-02 18:13:03] Fine-tune started

[2023-06-02 18:13:19] Completed epoch 1/4

[2023-06-02 18:13:20] Completed epoch 2/4

[2023-06-02 18:13:22] Completed epoch 3/4

[2023-06-02 18:13:24] Completed epoch 4/4

[2023-06-02 18:13:44] Uploaded model: ada:ft-personal:product-description-2023-06-02-10-13-44

[2023-06-02 18:13:45] Uploaded result file: file-3mmEhQJF1ZSFBxXmfjglQkWV

[2023-06-02 18:13:45] Fine-tune succeeded

Job complete! Status: succeeded 🎉

Try out your fine-tuned model:

openai api completions.create -m ada:ft-personal:product-description-2023-06-02-10-13-44 -p <YOUR_PROMPT>


测试模型:https://platform.openai.com/playground

因训练的数据较少,效果不明显

留言

您的电子邮箱地址不会被公开。 必填项已用 * 标注