首页 > 其他分享 >如何使用OpenAI Fine-tuning API微调GPT-3模型

如何使用OpenAI Fine-tuning API微调GPT-3模型

时间:2023-04-04 13:34:23浏览次数:59  
标签:tuning 模型 微调 API openai OpenAI data

https://platform.openai.com/docs/guides/fine-tuning(官方文档)

​ 当我们使用语言模型时候,往往需要给多个例子供ai参考,才能给出更为准确的回答,这种方法费时费力。而通过微调(Fine-tuning)能够把原始模型打造成更加适合你的任务需求的模型。模型进行微调后,无需再在prompt中提供示例。这样可以节省成本并实现更低的延迟请求。

模型微调可以简单分为以下三步:

  1. 准备训练数据集

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

  3. 使用新的微调模型。

0.配置环境

首先,确保你已经安装 Python(从 Python 官方网站下载适合本机的 Python 安装程序)以及OpenAI 工具箱所依赖的‘panda’模块(控制台输入pip install pandas安装)

准备就绪后,在开始训练数据之前,首先要配置好openai的环境

在控制台中输入

pip install --upgrade openai

完成后,输入

set OPENAI_API_KEY="<OPENAI_API_KEY>"

如果指令无效,先查看openai工具箱有没有正确下载;然后查看是不是自己的密钥有没有正确复制。检查无误后,如果依然不能运行,则可以尝试在操作系统中设置全局环境变量

打开 Windows 控制面板,点击"系统和安全" -> "系统" -> "高级系统设置" -> "环境变量",在系统变量中添加一个新的变量,变量名为 OPENAI_API_KEY,变量值为你的 OpenAI API 密钥。

.asset

.asset

.asset

还可以尝试在 Windows 中创建一个名为 .openai 的文件夹,并在该文件夹中创建一个名为 config.json 的文件。在 config.json 文件中输入以下内容:

jsonCopy code{
  "api_key": "<OPENAI_API_KEY>",
  "models": {
    "davinci": "text-davinci-002",
    "curie": "text-curi-001",
    "babbage": "text-babbage-001",
    "ada": "text-ada-001",
    "content-filter-alpha-c4": "content-filter-alpha-c4"
  }
}

确保将 <OPENAI_API_KEY> 替换为你的 OpenAI API 密钥。

.openai 文件夹放在你的用户主目录下(例如 C:\Users\YourUserName)。

现在,你已经成功安装 OpenAI 工具箱并设置了环境变量和配置文件。

1.准备训练数据集

首先,训练数据的最终形式必须是JSONL文档的格式:

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

简单地说,prompt可以理解为问题(输入),而completion则是标准答案(预期模型输出),二者是一一对应的关系。

当然,我们的原始数据往往是csv/txt/xlsx等格式,openai开发了一个CLI 数据准备工具来验证、提供建议和重新格式化您的数据:

openai tools fine_tunes.prepare_data -f <LOCAL_FILE>

此工具接受不同的格式传递CSV、TSV、XLSX、JSONJSONL文件,运行完毕后,它会将输出保存到新创建的 JSONL 文件中,以便进行微调。

注意,要确认你在命令行中是否使用了正确的本地文件路径。例如,如果你要准备的数据文件名为 "data.csv",并且该文件位于当前终端窗口的工作目录中,则应该使用以下命令:

openai tools fine_tunes.prepare_data -f data.csv

如果该文件不在当前工作目录中,则应该使用完整路径来指定文件位置,例如:

openai tools fine_tunes.prepare_data -f /path/to/data.csv

.asset

.asset

.asset

至此,我们就获得了最终的训练数据集。

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

接下来使用 OpenAI CLI 启动微调作业:

openai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>

运行上述命令会执行以下几项操作:

  1. 使用文件API 上传文件(或使用已上传的文件)

  2. 创建微调作业

  3. 流式传输事件,直到作业完成(这通常需要几分钟,但如果队列中有许多作业或数据集很大,则可能需要数小时)

至此,属于自己的新的微调模型已经训练完成。

3.使用新的微调模型。

最后,打开官网中playground,在model中先选择我们刚刚创建好的模型,尝试输入,观察其输出结果是否与预期一致:

(注意结尾要带"->"作为分隔符,同时不要有空格)

.asset

标签:tuning,模型,微调,API,openai,OpenAI,data
From: https://www.cnblogs.com/alphainf/p/17286097.html

相关文章

  • 商品获价API调用说明:获取商品历史价格信息 代码分享
    接口名称:item_history_price公共参数名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)(获取测试key和secret接入)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheStrin......
  • 微服务为什么要用到 API 网关?
    本文介绍了API网关日志的价值,并以知名网关ApacheAPISIX为例,展示如何集成API网关日志。作者程小兰,API7.ai技术工程师,ApacheAPISIXContributor。原文链接什么是微服务微服务架构(通常简称为微服务)是指开发应用所用的一种架构形式。通过微服务,可将大型应用分解成多个......
  • 实验一-密码引擎-加密API研究
    实验一-密码引擎-加密API研究API:应用程序接口(API:ApplicationProgramInterface)是一组定义、程序及协议的集合,通过API接口实现计算机软件之间的相互通信。API的一个主要功能是提供通用功能集。程序员通过使用API函数开发应用程序,从而可以避免编写无用程序,以减轻编程任务。......
  • 如何申请 Azure OpenAI
    一.前言众所周知OpenAIChatGPT是不对中国开放的,包括香港。就最近一个月的情况来看,陆续有API调用被限制、大规模账号封禁、关闭注册、无法直接使用银联支付(国内信用卡)等等,使用是越来越艰难。AzureOpenAI不妨是一个新的选择。二.介绍AzureOpenAI和OpenAI公司所提供的......
  • 实验一-密码引擎-加密API研究
    实验一-密码引擎-加密API研究API:应用程序接口(API:ApplicationProgramInterface)是一组定义、程序及协议的集合,通过API接口实现计算机软件之间的相互通信。API的一个主要功能是提供通用功能集。程序员通过使用API函数开发应用程序,从而可以避免编写无用程序,以减轻编程任务。......
  • chap17使用API
    使用webAPIimportrequestsurl='https://api.github.com/search/repositories?q=language:python&sort=stars'headers={'Accept':'application/vnd.github.v3+json'}r=requests.get(url,headers=headers)print(f'Statuscod......
  • 实验一-密码引擎-3-加密API研究
    实验一-密码引擎-3-加密API研究任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key......
  • 密码引擎-3-加密API研究
    密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交博客链接和......
  • 实验一-密码引擎-加密API研究
    目录一、查找各种标准的原始文档,研究学习Ⅰ.CryptoAPIⅡ.PKCS#11Ⅲ.GMT0016-2012Ⅳ.GMT0018-2012二、总结这些API在编程中的使用方式Ⅰ.CryptoAPIⅡ.PKCS#11Ⅲ.GMT0016-2012Ⅳ.GMT0018-2012三、列出这些API包含的函数,进行分类,并总结它们的异同3.1CryptoAPI3.1.1基本加密函......
  • 实验一-密码引擎-3-加密API研究
    一、任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交......