花粉乐分享平台宣传视频
> 乐学堂 > > ChatGPT模型微调实战【心理健康机器人】
ChatGPT模型微调实战【心理健康机器人】
来源:新缸中之脑
2023-06-28 16:18:07
197
管理

在之前的文章中,我概述了通过创建虚拟心理健康助手来集成 GPT-3 和 Dialogflow 所需的步骤。 在这一篇中,我们将通过学习如何微调(Fine-Tuning)我们的 GPT-3 模型来完善我们创建的心理健康聊天机器人。

在高层次上,微调涉及以下步骤:

1、准备训练数据

GPT-3 期望你的微调数据集采用特定的 JSONL 文件格式,如下所示:

{"prompt": "

", "completion": ""}{"prompt": "

", "completion": ""}{"prompt": "

", "completion": ""}

这很简单——每行由一个“提示”和一个“完成”组成,这是为特定提示生成的理想文本。

在准备和上传数据进行微调之前,第一步是收集我们的数据集。对于我们的心理健康助手,我在Kaggle上找到了这个非常方便的数据集 - 聊天机器人专用抑郁数据。根据作者的说法,这些数据可用于训练机器人以帮助患有抑郁症的人,这正是我们的用例!

数据是一个yaml文件,其中包含大约50个关于抑郁症的对话。看起来带有双破折号 (- -) 的第一行是用户的问题,以下行是机器人对用户的回答。让我们在 Colab 笔记本中进一步探索它。

探索性笔记可以在这里找到。

从 Kaggle 下载数据集并将其复制到你的 Google 云端硬盘文件夹。导入 yaml 包以读取我们的 .yml 文件,并使用 yaml.safe_load()将其转换为 json 对象。

import yamlwith open('/content/gdrive/MyDrive/depression-data/depression.yml', 'r') as file: data = yaml.safe_load(file)

接下来,让我们以所需的格式准备我们的数据集。

convos = data['conversations']for convo in convos: completion = '' for i, dialog in enumerate(convo): if i == 0: prompt = dialog prompt = prompt.replace("xa0", " ") # print('prompt:',prompt) else: completion = " " dialog completion = completion.replace("xa0", " ") completion = completion.strip() line = {'prompt': prompt, 'completion': completion} # print(line) output.append(line) print(output)

上面的代码首先遍历我们的抑郁症数据,将第一行拆分为提示,并加入其余行作为完成。 它还从提示和完成中删除不需要的特殊字符。 这导致我们可以使用正确的数据格式来微调 GPT-3。

{'prompt': 'What Is Depression?', 'completion': 'Depression is a common and serious medical illness that negatively affects how you feel, the way you think and how you act. Fortunately,it is also treatable. Depression causes feelings of sadness and/or a loss of interest in activities you once enjoyed. It can lead to a variety of emotional and physical problems and can decrease your ability to function at work and at home.'},{'prompt': 'I feel i have let my parents down', 'completion': 'No matter what,your parents will always be proud of you and will love you. You will feel much better if you share your feelings with them.'}

看其中的几行,我们可以看到补全根据用户的查询提供了一些有用的响应,这正是我们需要我们的模型来获取的,以便为有需要的用户提供实际的答复。

最后,让我们将数据下载为 JSONL 文件并将其移动到我们的 Colab notebook 项目目录。

from google.colab import fileswith open('depression.jsonl', 'w') as outfile: for i in output: json.dump(i, outfile) outfile.write('n')files.download('depression.jsonl')

现在我们有了微调数据集,让我们准备文件,以便可以上传它来微调模型。注意 — OpenAI 提供了一个有用的 CLI(命令行界面)工具来准备我们的数据。它可以轻松地将CSV,TSV,XLSX和JSON转换为正确的JSONL格式。

要开始使用,在笔记本单元格或从项目终端中,只需使用以下命令安装 Open AI python 依赖项 -

!pip install openai

接下来,要准备微调数据,请运行命令 -

!openai tools fine_tunes.prepare_data -f '/content/gdrive/MyDrive/depression-data/depression.jsonl'

确保在“-f”之后替换你的特定文件路径。 在添加一些建议的更改后,此命令将准备最终微调数据集。 现在,可以接受所有推荐的操作“是”,因为这将有助于提高模型性能——

可以在此处测试经过微调的心理健康助手。

5、结束语

微调 GPT-3 和其他 LLM,被证明是特定领域任务的完美解决方案,通常可以将性能提高很多倍。 该模型在提取训练数据中指定的模式方面非常有效,即使在训练数据最少的情况下也能表现良好。

随着 LLM 变得更大、更易于访问和开源,正如我们目前所见,在不久的将来,我们预期微调将在自然语言处理中变得无处不在,因为它有可能解决任何 NLP 任务 。

原文链接:http://www.bimant.com/blog/chatgpt-fine-tuning/

花粉社群VIP加油站

1
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与花粉乐分享无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
凡本网注明 “来源:XXX(非花粉乐分享)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。
如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。
QQ:2443165046 邮箱:info@hflfx.com
关于作者
北辰吖(采蜜高手)
文章
506
主题
0
关注
0
粉丝
1
点击领取今天的签到奖励!
签到排行
随手拍
54个圈友 0个话题
华为手机随手拍,记录生活点滴之美好
华为P30pro
51个圈友 0个话题
这里是华为P30pro手机交流圈,欢迎华为P30pro用户进群交流
体验官
60个圈友 2个话题
华为花粉体验官,体验官专属的交流群
登录后查看您创建的圈子
登录后查看您创建的圈子
所有圈子
猜你喜欢
杭州互联网违法和不良信息举报平台 网络110报警服务 浙ICP备17046585号
1
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索