> 自媒体 > (AI)人工智能 > ChatGPT模型微调实战【心理健康机器人】
ChatGPT模型微调实战【心理健康机器人】
来源:新缸中之脑
2023-05-15 21:45:55
516
管理

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

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

注意——对第一个推荐操作接受“是”需要你在推理期间在提示后添加分隔符“->”,否则模型将简单地继续提示而不是预测完成。

下载的最终文件将以“prepared”为后缀,然后可以上传并用于微调模型。

请注意,我们的微调任务只有 51 个样本。 为了获得更好的准确性,Open AI 建议至少有 150-200 个微调示例,因为模型准确性会随着训练样本的数量线性增加。

2、训练一个新的微调模型

现在我们已经准备好数据,是时候微调 GPT-3 了! ⚙️ 我们可以通过 3 种主要方式对模型进行微调 —

手动使用 OpenAI CLI以编程方式使用 OpenAI 包,以及通过 finetune API 端点。

对于本教程,我将使用 OpenAI CLI,因为它最容易上手。 要微调模型,请运行以下命令,其中“-m”后的值将用于训练特定的 GPT-3 模型。 因为我想训练最有能力的模型,所以我选择了也是使用成本最高的“davinci”。

!openai api fine_tunes.create -t "/content/gdrive/MyDrive/depression-data/depression_prepared.jsonl" -m davinci

如果尝试运行它,可能会收到类似“未提供 API 密钥”的错误。 那是因为我们还没有链接我们的 API 密钥。 为此,只需在 CLI 中将环境变量设置为你的 API 密钥,方法是运行 -

!set OPENAI_API_KEY=

或者通过在笔记本中运行以下单元 -

os.environ['OPENAI_API_KEY'] = ""

现在再次运行之前的 finetune 命令,瞧! — 你的 GPT-3 微调作业现已成功创建。

CLI 还将向你显示相关的微调成本、队列位置和训练时期。 完成后,你自己的微调 GPT-3 模型现在可以进行推理了!

3、使用你的微调模型

要使用新创建的微调模型,我们可以先在 Open AI Playground 中对其进行测试。 前往游乐场并选择你的微调模型。

从这里,我们可以测试一些提示,看看我们微调模型的表现如何。

3、提示

在我之前的帖子中,我们向模型给出了以下提示,它本身表现得很好——

The following is a conversation with an AI assistant that can have meaningful conversations with users. The assistant is helpful, empathic, and friendly. Its objective is to make the user feel better by feeling heard. With each response, the AI assisstant prompts the user to continue the conversation in a natural way

它运行良好,但我决定在一些额外的提示工程之后添加更多信息。 首先,我给了我的 AI 治疗助手一个角色——JOY。 (很贴切,嗯?)

然后我给 JOY 添加了一些个性特征,最后指定了 JOY 的核心目标功能——通过被倾听来帮助用户感觉更好。 我最终使用的最终提示是——

The following is a conversation with a therapist and a user. The therapist is JOY, who uses compassionate listening to have helpful and meaningful conversations with users. JOY is empathic and friendly. JOY's objective is to help the user feel better by feeling heard. With each response, JOY offers follow-up questions to encourage openness and continues the conversation in a natural way.

结果如下:

如你所见,结果是成功的。 JOY能够运用人性化的特质,如富有同情心的倾听和同理心,也能够正确地为用户的问题提供有用的解决方案!

注意 —— JOY 仍然无法在长时间的对话中进行对话,需要在与用户的长时间对话中进行微调,以获得更好的上下文和结果。

一旦你对输出感到满意,我们就可以将其部署到我们的应用程序中。 需要更改的只是模型的名称,它将被我们新训练的模型替换。 我们现在可以在我们的应用程序中以编程方式使用微调模型。 只需在 OpenAI Playground 中点击“显示代码”即可复制代码。

4、整合在一起

现在我们的微调模型可以使用了,让我们将它与我们的 Dialogflow 代理集成。 为此,我们需要更新之前的 webhook 实现代码并进行部署。

上次,我们使用 Node.js 和 Repl.it 作为我们的 Web 服务器,但为了混合使用,这次让我们使用 Python Flask 服务器 。 更新后,我们的 webhook 端点应如下所示。 现在,开始部署我们的 webhook 实现服务器。

在我们继续之前,让我们为 Heroku 的免费层的死亡默哀片刻。 Heroku 是一个简单易用的平台,可用于部署你的任何 Web 应用程序。 现在它不再提供免费计划,我们需要一个替代方案来免费快速部署我们的应用程序——进入 Railway.App!

Railway 是一个云平台,你可以在其中轻松托管和部署任何应用程序。 他们提供了一个慷慨的免费层,并拥有超快的部署速度。 确保先将你的本地存储库推送到 github,以便可以部署它。 登录到你的Railway帐户,进入仪表板后,去添加一个新项目。 然后选择从 Github 上传并选择你的 git 仓库,就是这样! 你的应用现已上线。 (确保更新 Dialogflow 代理中的 Webhook URL)。

输出结果如下:

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

5、结束语

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

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

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

0
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 凡本网注明 “来源:XXX(非本站)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。 如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。 QQ:617470285 邮箱:617470285@qq.com
相关文章
ChatDOC: 一个让你和文档聊天的神奇网站
你是否有过这样的经历:为了写一篇报告,你需要阅读大量的文档,但是你却..
ChatGPT对金融业将产生哪些影响?
近期人机互动模型ChatGPT进入应用领域,意味着人工智能的发展达到了新高..
矛与盾并存 安恒信息解读ChatGPT引发的网络安全新挑战..
办了十余届,安恒信息(688023)首次将安全大会的主题从网络安全变为数字..
如何一句话区分 ChatGPT 3.5 与 4
目前我用到的大部分免费的 ChatGPT 套壳网站都是基于 ChatGPT 3.5 的,偶..
中国版ChatGPT来了,预计今年3月开放!A股一大波概念股,谁有真实力?..
每经记者:可杨 王晶 陈鹏丽 杨煜 每经编辑:易启江,文多,董兴生,张海妮,..
突然爆火的ChatGPT到底是什么?
随着人工智能技术的不断发展,聊天机器人ChatGPT成为了近期热门话题。那..
OpenAI评估GPT-4能否接管世界,发现它会自称盲人操纵人类..
·OpenAI在3月15日发布的GPT-4安全文件中写道, 一些特别令人担忧的新功..
女董事长出轨游泳教练,二人不雅聊天记录曝光,内容露骨不堪入目..
在阅读此文之前,希望用您发财的小手点一下“关注”,文章内容来源于网络..
我国团队只花10万就开发出媲美GPT-3的千亿参数大型语言模型?..
大型语言AI模型开发被认为是一个烧钱任务,但我国一个研究团队近日成功开..
关于作者
般若鱼(普通会员)
文章
446
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

成员 网址收录40335 企业收录2981 印章生成193710 电子证书831 电子名片53 自媒体26178

@2022 All Rights Reserved 浙ICP备19035174号-7
0
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索