开发自己私有chatGPT(五)训练微调openai模型
微调
了解如何为应用程序自定义模型。
介绍
通过微调,您可以通过提供以下内容从通过 API 提供的模型中获得更多收益:
- 比提示设计更高质量的结果
- 能够训练比提示所能容纳的更多示例
- 由于提示时间较短,可以节省token
- 更低的延迟请求
GPT-3 已经对来自开放互联网的大量文本进行了预训练。当给出一个只有几个例子的提示时,它通常可以直观地判断你正在尝试执行什么任务并生成一个合理的完成。这通常被称为“少镜头学习”。
微调通过训练比提示所能容纳的更多的示例来改进少数镜头学习,让您在大量任务上获得更好的结果。对模型进行微调后,无需再在提示中提供示例。这样可以节省成本并实现更低的延迟请求。
概括地说,微调涉及以下步骤:
- 准备和上传训练数据
- 训练新的微调模型
- 使用微调模型
请访问我们的定价页面,详细了解如何对微调的模型训练和使用计费。
哪些模型可以微调?
微调目前仅适用于以下基本型号:davinci curie babbage ada text-davinci-003。
安装
我们建议使用我们的 OpenAI 命令行界面 (CLI)。要安装它,请运行
pip install --upgrade openai
(以下说明适用于版本 0.9.4 及更高版本。此外,OpenAI CLI 需要 python 3。
通过在 shell 初始化脚本(例如 .bashrc、zshrc 等)中添加以下行或在微调命令之前的命令行中运行它来设置环境变量:OPENAI_API_KEY
准备训练数据
训练数据是你教 GPT-3去说。
您的数据必须是 JSONL 文档,其中每行都是对应于训练示例的一对提示完成。您可以使用我们的 CLI 数据准备工具轻松地将数据转换为此文件格式。
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
...
CLI 数据准备工具
我们开发了一个工具来验证、提供建议和重新格式化您的数据:
openai tools fine_tunes.prepare_data -f <LOCAL_FILE>
此工具接受不同的格式文件,唯一要求它们包含提示和完成列/键。您可以传递 CSV、TSV、XLSX、JSON 或 JSONL 文件,它会在指导您完成建议的更改过程后,将输出保存到 JSONL 文件中,以便进行微调。
创建微调模型
以下假设你已按照上述说明准备了训练数据。
使用 OpenAI CLI 启动微调作业:
openai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>
BASE_MODEL是基础模型的名称(ada, babbage, curie, davinci)。您可以使用后缀参数自定义你的微调模型的名称。
运行上述命令会执行以下几项操作:
- 使用文件 API 上传文件(或使用已上传的文件)
- 创建微调作业
- 流式传输事件,直到作业完成(这通常需要几分钟,但如果队列中有许多作业或数据集很大,则可能需要数小时)
每个微调作业都从基础模型开始,默认是curie。模型的选择会影响模型的性能和运行微调模型的成本。
开始微调作业后,可能需要一些时间才能完成。你的作业可能排在我们系统上的其他作业后面,训练我们的模型可能需要几分钟或几小时,具体取决于模型和数据集大小。如果事件流因任何原因中断,您可以通过运行以下命令来恢复它:
openai api fine_tunes.follow -i <YOUR_FINE_TUNE_JOB_ID>
作业完成后,它会显示微调模型的名称。
除了创建微调作业之外,您还可以列出现有作业、检索作业状态或取消作业。
# List all created fine-tunes
openai api fine_tunes.list# Retrieve the state of a fine-tune. The resulting object includes
# job status (which can be one of pending, running, succeeded, or failed)
# and other information
openai api fine_tunes.get -i <YOUR_FINE_TUNE_JOB_ID># Cancel a job
openai api fine_tunes.cancel -i <YOUR_FINE_TUNE_JOB_ID>
使用微调模型
OpenAI CLI:
openai api completions.create -m <FINE_TUNED_MODEL> -p <YOUR_PROMPT>
curl
curl https://api.openai.com/v1/completions \-H "Authorization: Bearer $OPENAI_API_KEY" \-H "Content-Type: application/json" \-d '{"prompt": YOUR_PROMPT, "model": FINE_TUNED_MODEL}'
Python:
import openai
openai.Completion.create(model=FINE_TUNED_MODEL,prompt=YOUR_PROMPT)
Node.js
const response = await openai.createCompletion({model: FINE_TUNED_MODELprompt: YOUR_PROMPT,
});
相关文章:
开发自己私有chatGPT(五)训练微调openai模型
微调 了解如何为应用程序自定义模型。 介绍 通过微调,您可以通过提供以下内容从通过 API 提供的模型中获得更多收益: 比提示设计更高质量的结果能够训练比提示所能容纳的更多示例由于提示时间较短,可以节省token更低的延迟请求GPT-3 已经对来…...
【数据结构】二叉树-堆实现及其堆的应用(堆排序topK问题)
文章目录一、堆的概念及结构二、堆的实现1.结构的定义2.堆的初始化3.堆的插入4.堆的向上调整5.堆的删除6.堆的向下调整7.取出堆顶元素8.返回堆的元素个数9.判断堆是否为空10.打印堆中的数据11.堆的销毁三、完整代码1.Heap.h2.Heap.c3.test.c四、堆排序1.堆排序2.建堆3.选数4.完…...
ubuntu Repo 安装
//进入repo临时下载存放目录 cd Downloads //下载repo(从清华镜像网站) curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo //创建repo执行目录 mkdir ~/.bin //copy repo到上述目录 cp /home/xxx/Downloads/repo ~/.bin/ //添加执行权限…...
JAVA:选择排序算法及其编写
选择排序算法是一种比较经典的排序算法,与其类似的冒泡排序算法的思想有点不同,它采用的是选择第一个和后n-1个进行比较,将最小的排在第一个位置,后面的依此方式进行。 一、算法步骤 步骤1:初始化数组arry(假设其长度…...
【Linux】——基础开发工具和vim编辑器的基本使用方法
目录 Linux 软件包管理器 yum Linux编辑器-vim使用 1.vim的基本概念 2. vim的基本操作 3. vim正常模式命令集 4. vim末行模式命令集 如何配置vim Linux 软件包管理器 yum yum是Linux下的一个下载软件的软件 对于yum,现阶段只需要会使用yum的三板斧就…...
R语言部分题解
请论述大数据的四个特点 数据量大(Volume)、数据种类多(Variety)、数据价值密度低(Value)、数据增长速度快(Velocity) 为什么目前大数据被广泛使用 科技的进步、基础建设的改进、资料获取变轻松 计算1~10的平均数 mean(c(1,2,3,4,5,6,7,8,9,10))3~15…...
水文监测场景的数据通信规约解析和落地实践
[小 迪 导 读]:江苏云上需要通过云平台接入水文设备来实现水文数据的采集、存储、显示、控制、报警及传输等综合功能。企业介绍江苏云上智联物联科技有限公司是专业从事物联网相关产品与解决方案服务的高科技公司,总部位于美丽的江苏无锡。公司遵循“智联…...
【数据结构】时间复杂度和空间复杂度
🌇个人主页:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 🛸C语言专栏:https://blog.csdn.net/vhhhbb/category_12174730.html 小苏希望大家能从这篇文章中收获到许…...
从发现SQL注入到ssh连接
前言: 某天,同事扔了一个教育站点过来,里面的url看起来像有SQL注入。正好最近手痒痒,就直接开始。 一、发现时间盲注和源码 后面发现他发的url是不存在SQL注入的,但是我在其他地方发现了SQL盲注。然后改站点本身也可…...
SAP ABAP
方法一: REPORT ZDCH_09_TEST2. ************************************************************************ * DATEN DEFINITION * *********************************************************************…...
C/C++每日一练(20230219)
目录 1. 用队列实现栈 2. 判断是否能组成三角形 3. 只出现一次的数字 II 附录 栈(Stack)和队列(Queue)的异同 1. 栈和队列的相同点 2. 栈和队列的不同点 1. 用队列实现栈 请你仅使用两个队列实现一个后入先出(…...
【NestJS】模块
脚手架中,可以执行 nest g mo XXX 创建模块。通过脚手架命令创建的模块,会自动被导入至根模块注册。 注意:项目中的模块都需要导入到根模块中注册一下才能被使用。 共享模块 nest g res boy、nest g res girl 如果希望在 girl 模块中使用 …...
隐私计算头条周刊(2.13-2.19)
开放隐私计算收录于合集#企业动态44个#周刊合辑44个#政策聚焦37个#隐私计算91个#行业研究36个开放隐私计算开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播…...
【STM32笔记】低功耗模式配置及避坑汇总
【STM32笔记】低功耗模式配置及配置汇总 文章总结:(后续更新以相关文章为准) 【STM32笔记】__WFI();进入不了休眠的可能原因 【STM32笔记】HAL库低功耗模式配置(ADC唤醒无法使用、低功耗模式无法烧录解决方案&#x…...
DFN: Dynamic Filter Networks-动态卷积网络
一、论文信息 论文名称:Dynamic Filter Networks 作者团队:NIPS2016 二、动机与创新 卷积层是通过将上一层的特征映射与一组过滤器进行卷积计算输出特征映射,滤波器是卷积层的唯一参数,通常用反向传播算法在训练中学习ÿ…...
面试官:你是怎样理解Fiber的
hello,这里是潇晨,今天我们来聊一聊Fiber。不知道大家面试的时候有没有遇到过和react Fiber相关的问题呢,这一类问题比较开放,但也是考察对react源码理解深度的问题,如果面试高级前端岗,恰巧你平时用的是re…...
【C++的OpenCV】第一课-opencv的介绍和安装(Linux环境下)
第一课-目录一、基本介绍1.1 官网1.2 git源码1.3 介绍二、OpenCV的相关部署工作2.1 Linux平台下部署OpenCV一、基本介绍 1.1 官网 opencv官网 注意:官网为英文版本,可以使用浏览器自带的翻译插件进行翻译,真心不推荐大家去看别人翻译的&am…...
k8s安装tekton,编写task
文章目录一、官方安装二、国内资源安装安装tekton安装dashboard安装CLI三、demo编写task.yaml编写taskRun.yaml使用tkn命令查看参考文章一、官方安装 地址:https://tekton.dev/docs/installation/pipelines/#installing-tekton-pipelines-on-kubernetes 注意&#…...
K_A12_014 基于STM32等单片机驱动S12SD紫外线传感器模块 串口与OLED0.96双显示
K_A12_014 基于STM32等单片机驱动S12SD紫外线传感器模块 串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明IIC地址/采集通道选择/时序对应程序:数据对比:四、部分代码说明1、接线引脚定义1.1、STC89C52RCS12SD紫外线传感器模块1.2、STM32F103…...
还真不错,今天 Chatgpt 教会我如何开发一款小工具开发(Python 代码实现)
上次使用 Chatgpt 写爬虫,虽然写出来的代码很多需要修改后才能运行,但Chatgpt提供的思路和框架都是没问题。 这次让 Chatgpt 写一写GUI程序,也就是你常看到的桌面图形程序。 由于第一次测试,就来个简单点的,用Python…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...
rknn toolkit2搭建和推理
安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...
