基于OpenAI(ChatGPT)进行模型微调的详细步骤

目录

  • 0. 设置API Key
  • 1. 安装OpenAI-CLI工具
  • 2. 处理自己的数据集
  • 3. 模型微调
  • 4. 模型调用

官方教程:https://platform.openai.com/docs/guides/fine-tuning

0. 设置API Key

在操作前需要在系统环境变量里加入OpenAI的 API Key(变量名:OPENAI_API_KEY)。
API Key获取:https://platform.openai.com/account/api-keys

在这里插入图片描述

Linux可以直接用以下指令在终端里添加:

export OPENAI_API_KEY="自己的API_KEY"

1. 安装OpenAI-CLI工具

这里直接在 Python 环境里 pip 安装 openai 库就可以了。

但是! 官方的指令是 pip install --upgrade openai ,直接装的话可能会出现后续在 终端里输入 openai指令的时候提示 'openai' 不是内部或外部命令,也不是可运行的程序或批处理文件。

可靠的做法是指定版本安装:pip install openai==0.27.6

在这里插入图片描述

2. 处理自己的数据集

OpenAI要求的数据格式是 jsonl (一行一行的json数据) json 里两个key分别是 prompt
completion,分别表示模型输入和输出的文字。

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

数据规范(可以改善模型性能)

  • 每个 prompt 应以固定的分隔符结尾,以通知模型 prompt 的结束和 completion 的开始。一个通常效果不错的简单分隔符是 \n\n###\n\n。分隔符不应在任何 prompt 中的其他位置出现。
  • 每个 completion 应以空格开头,因为我们的分词将大多数单词与前导空格一起分词。
  • 每个 completion 应以固定的停止序列结尾,以通知模型完成的结束。停止序列可以是 \n### 或不在任何 completion 中出现的标记。
  • 对于推理,您应该以与创建训练数据集时相同的方式对 prompt 进行格式化,包括相同的分隔符。还要指定相同的停止序列,以正确截断 completion 部分。

准备好自己的数据,可以利用 openai 的工具快捷将数据处理成上述的 JSONL 的格式。
自己的数据文件格式支持:CSV, TSV, XLSX, JSON 和 JSONL

以csv为例,我们需要把数据处理成两列,分别是 prompt 和 completion。(注意:表头不能少)

prompt,completion
问题1,回答1
问题2,回答2
问题n,回答n

在这里插入图片描述

之后,在终端内调用 openai 的数据处理指令:

openai tools fine_tunes.prepare_data -f <处理好的数据文件路径>

如:openai tools fine_tunes.prepare_data -f lawzhidao_QA.csv

在这里插入图片描述

过程中会有几个选项让选择,根据自己的需求输入 y/n 就可以了。

处理完成后,会在数据目录下生成一个jsonl的文件,就是OpenAI微调需要的格式文件了。

3. 模型微调

OpenAI目前支持微调的模型有 ada, babbage, curie, davinci 四种,模型参数量依次增大。微调和调用价格表如下:
在这里插入图片描述
目前支持微调的模型列表里是没有 ChatGPT 的,所以 “基于ChatGPT微调” 的说法严格来说是错误的,目前实现不了,只能基于更基础的模型进行微调。(这些模型都是基于GPT-3的)

创建微调模型指令:

openai api fine_tunes.create -t <上面处理好的jsonl文件路径> -m <微调的模型名> --suffix "自定义微调后的模型名(可选项)"

如:openai api fine_tunes.create -t lawzhidao_QA_prepared.jsonl -m ada --suffix "law-QA" (–suffix指令非必需)

PS:此步骤需要调用OpenAI的服务器,需要开启加速代理。如果开启代理后终端内仍然无法访问OpenAI,可以在终端里再配置下代理
set http_proxy=https://<proxy_server>:<proxy_port>
set https_proxy=https://<proxy_server>:<proxy_port>
如:
set http_proxy=http://127.0.0.1:2802
set https_proxy=http://127.0.0.1:2802

在这里插入图片描述

微调过程中如果连接中断可以使用openai api fine_tunes.follow -i 任务ID 来继续查看任务进度,OpenAI会有提示,如上图。

在这里插入图片描述

等待一定的时间后,微调完成会返回微调好的模型名

在这里插入图片描述


4. 模型调用

微调完后,可以通过返回的模型名进行调用了,调用方式和 ChatGPT 差不太多。

Python为例:

import openaiopenai.api_key = "sk-xxxxxxxxxxxxxxxxxxx"def fine_tuned(prompt):completion = openai.Completion.create(model='ada:ft-personal:law-qa-2023-06-16-05-26-39',  # 微调后的模型名prompt=prompt,        max_tokens=9999  # 模型回复最大token数)print(completion.choices[0].text)if __name__ == '__main__':while True:fine_tuned(input(">> "))

在这里插入图片描述



附:

  1. openai.Completion.create参数说明:https://platform.openai.com/docs/api-reference/completions/create
  2. OpenAI API调用价格:https://openai.com/pricing
  3. OpenAI Fine Tuning:https://platform.openai.com/docs/guides/fine-tuning
    翻译版:http://e.betheme.net/article/show-1459696.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/3758.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大火的ChatGPT与表格插件结合会有哪些意想不到的效果?

大火的ChatGPT与表格插件结合会有哪些意想不到的效果&#xff1f; 摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 ChatGPT已经火了好…

推荐 4个有趣实用的 ChatGPT 开源应用

以下是 4个有趣实用的基于 ChatGPT 的开源应用&#xff0c;让我们一起来探索吧&#xff01; 1. ChatGPT 快捷键 ChatGPT Shortcut 是一个让你使用 ChatGPT 时生产力翻倍的快捷指令网站。你只需在该开源项目中复制提示词&#xff0c;稍加修改后发送给 ChatGPT&#xff0c;就能…

ChatGPT指令集角色扮演.

Prompt 是什么 ChatGPT prompt是一个由GPT模型生成的输入文本&#xff0c;用于启动一个对话或问答。 ChatGPT prompt通常以一个问题或话题为中心&#xff0c;以引导GPT模型生成与之相关的响应。例如&#xff0c;“请问你今天过得如何&#xff1f;”可以作为一个ChatGPT prompt&…

科技大脑|快速玩转#ChatGPT之“用Chat GPT 做出行攻略”

又到了五一旅游季&#xff0c;很多人常为规划行程而烦恼&#xff0c;并且需要花很多时间做功课&#xff0c;这里教大家用Chat GPT安排好旅游行程。只需要简单告诉GPT你的日期和目的地&#xff0c;30秒就可以生成很不错的行程攻略&#xff0c;而且自己还可以加入特定条件&#x…

《花雕学AI》ChatGPT Shortcut Chrome 扩展:让生产力和创造力加倍的 ChatGPT 快捷指令库

你是否想要与一个智能的对话伙伴聊天&#xff0c;或者让它帮你完成各种任务&#xff0c;如写作、编程、摘要、翻译等&#xff1f;如果是的话&#xff0c;你可能会对 ChatGPT 感兴趣。ChatGPT 是一个基于 GPT-3.5 的对话式人工智能&#xff0c;可以与用户进行自然、流畅、有趣的…

chatgpt-mirai-qq-bot

ChatGPT for Bot 一款支持各种主流语言模型的聊天的机器人&#xff01; 查看使用教程 交流群&#xff08;Discord&#xff09;会发布最新的项目动态、问题答疑和交流 QQ 群 。 加群之前先看这里的内容能不能解决你的问题。 如果不能解决&#xff0c;把遇到的问题、日志和配置…

ChatGPT成精了

ChatGPT 是OpenAI 发布的一个全新的聊天机器人模型。它到底有多厉害呢&#xff1f;我注册后体验了一下&#xff0c;你会感觉背后有个真人跟你在聊天。例如&#xff1a; 代码不仅可以运行&#xff0c;还特么有每行带有中文注释&#xff0c;这完全是降维打击StackOverflow。 再来…

开源LLM「RWKV」想要打造AI领域的Linux和Android|ChatAI

RWKV想逐步成为最强开源模型&#xff0c;中期计划取代Transformer。能如愿吗&#xff1f; “我们没有护城河&#xff0c;OpenAI也是。”近期&#xff0c;谷歌内部人士在Discord社区匿名共享了一份内部文件&#xff0c;点破了谷歌和OpenAI正面临的来自开源社区的挑战。尽管经外…

九龙证券|主力斥近8亿元暴拉设备龙头,多股已获连续加仓

苹果布局折叠屏手机&#xff0c;产业有望迎放量。 今日半导体芯片板块全线迸发&#xff0c;源杰科技、雅克科技、瑞芯微等涨停&#xff0c;芯源微、国科微等10余股涨超10%。AI概念股全线走低&#xff0c;AIGC&#xff08;人工智能内容出产&#xff09;、ChatGPT、游戏等方向领跌…

ChatGPT热潮席卷全球ChatGPT将带动哪些芯片的需求?ChatGPT的启示

最近&#xff0c;ChatGPT热潮席卷全球。 ChatGPT(Chat Generative Pre-trained Transformer)是由OpenAI于2022年12月推出的对话AI模型&#xff0c;仅发布2个月便实现月活突破1亿&#xff0c;成为历史上用户增长最快的消费级应用之一。 图来来源&#xff1a;纽约时报 ChatGPT火…

我们和ChatGPT聊了下如何创业,结果……

目录 你适合创业吗? 创业入门指南 如何找人、找钱、找方向? 如何找人࿱

基于ChatGPT的端到端语音聊天机器人项目实战(三)

企业级ChatGPT开发入门实战 第1课 基于ChatGPT的端到端语音聊天机器人项目实战 Gavin老师:NLP_Matrix_Space 1.4 使用FastAPI构建语音聊天机器人后端实战 在后端代码(backend)中调用了OpenAI API及其他的服务,如图1-10所示。 图1- 10 后端代码调用OpenAI API openai_requ…

chatgpt赋能python:用python分析聊天记录

用python分析聊天记录 随着社交网络的普及&#xff0c;人们的沟通方式也发生了变化。我们越来越多地依赖于在线通信和社交媒体来交流。我们谈论我们的想法&#xff0c;分享图片和视频&#xff0c;并使我们的关系更加亲密。然而&#xff0c;这些聊天记录通常散布在不同的平台和…

chatgpt赋能python:Python处理微信聊天记录

Python处理微信聊天记录 微信是现代社交生活中不可或缺的一部分&#xff0c;而聊天记录是记录日常交流的重要依据之一。许多人会想要进一步了解、分析或备份他们的微信聊天记录。在这篇文章中&#xff0c;我们将介绍如何使用Python处理微信聊天记录&#xff0c;助您更好地管理…

ChatGPT 引入关闭聊天记录功能

导读OpenAI 宣布在 ChatGPT 中引入了一项新功能&#xff0c;允许用户关闭聊天记录。相关控件目前已面向所有用户推出&#xff0c;可以在 ChatGPT 的设置中找到&#xff0c;并且可以随时更改。 公告指出&#xff0c;用户在禁用聊天历史记录后开始的对话不会被用于训练和改进 Op…

chatgpt赋能python:Python微信聊天记录:如何导出并分析聊天记录

Python 微信聊天记录&#xff1a;如何导出并分析聊天记录 微信是目前最受欢迎的聊天工具之一&#xff0c;但是它的聊天记录并不方便导出和分析。本文将介绍如何使用 Python 导出微信聊天记录&#xff0c;并进行分析。 导出微信聊天记录 打开微信客户端&#xff0c;并找到需要…

比微信还方便,一键导出你与 ChatGPT 的聊天记录,而且是 Markdown 格式!

需求&#xff1a; 我们知道 ChatGPT 是文本形式输出内容。在有时候与 ChatGPT 进行交谈的过程中&#xff0c;遇到 ChatGPT 提供的有价值的信息&#xff0c;我们通常想要把整个对话内容保存起来或者复制到别的地方展示。一般的方法就是将整个对话框截图&#xff0c;或者一段一段…

Chat聊天记录聊天记录导出

ChatGPT大家应该都玩过吧&#xff0c;今天我给大家提供一个将聊天记录导出的教学。 第一步&#xff1a;将聊天的页面保存到本地 打开聊天记录界面&#xff0c;调出控制台&#xff08;F12或FnF12&#xff09;点击查看器选项卡右键html标记&#xff0c;选择编辑为html(如下图)全…

chatgpt赋能python:恢复聊天记录:使用Python轻松找回丢失的复制、截图、删除聊天记录

恢复聊天记录&#xff1a;使用Python轻松找回丢失的复制、截图、删除聊天记录 聊天记录是我们生活中非常重要的一部分&#xff0c;包括与家人、朋友和同事之间的对话。不幸的是&#xff0c;我们有时会不小心删除聊天记录或在错误的时间复制和粘贴消息。幸运的是&#xff0c;Py…

ChatGPT重磅更新:可关闭聊天历史记录,企业订阅版即将发布!

整理 | 陈静琳 责编 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 由ChatGPT引发的热潮席卷全球&#xff0c;随之而来&#xff0c;ChatGPT 新技术带来的数据保护问题及个人隐私挑战也进入人们的视野。近日&#xff0c; ChatGPT 更新的功能恰好了针…