finetune一个GPT3模型
过程其实挺简单的,首先得注册一个账号获取token(我是叫在美国的朋友注册了一个)。注册好账号后,有18美金的试用额度,基本可以完成好几次模型训练了。除了模型训练需要收费之外,大概1000个token的费用是0.02美金。
设置好OPENAI_API_KEY这个环境变量。
export OPENAI_API_KEY="<OPENAI_API_KEY>"
接下来就进入正题了,
1. 准备数据,格式如下,每一行都是一个json,换行用\n表示,我finetune的task只需要1000条左右的数据,模型结果还不错,根据训练时的提示,至少需要100条,越多越好
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
...
openai提供了现成的命令可以转csv成json: openai tools fine_tunes.prepare_data -f ./train_data.csv
2. 训练,我finetune的是davinci模型,还有三四个选择,输错命令行会提示。我的task只finetune了一个周期,整个过程大概花费1美金,持续约5~10分钟
openai api fine_tunes.create -t ./train_data_prepared.jsonl -m davinci --n_epochs 1
不需要的模型还可以删除
openai api models.delete -i "davinci:ft-personal-2022-11-20-03-40-02"
用如下命令可以列出曾经训练的模型列表
openai api fine_tunes.list
3. api调用,有好几种方法,比如直接
openai api completions.create -m davinci:ft-personal-2022-11-20-04-05-47 -p "Beautiful sunset beach landscape with a boat"
我的task还需要设置更多的两个参数temperature和frequency_penalty,所以我写了个简单的脚本完成这个任务,并且openai限制1秒调用超过60次,我加了个简单的sleep。其中有个坑是,推理的时候seperator里的\n,无需过采用"\\"多转义。
import os
import sys
import openai
import json
import timeif not os.path.exists(sys.argv[2]):res = openai.Completion.create(max_tokens=32,model=sys.argv[1],prompt=sys.argv[2]+"\n##\n",temperature=0.7,frequency_penalty=0.1)text = res["choices"][0]["text"]items = text.split('\n')print(sys.argv[2]+"|"+items[0]+"|"+items[2])
else:f = open(sys.argv[2])lines = [line.strip()[:-2] for line in f.readlines()]f.close()f = open("./result.txt", "a+")for i,line in enumerate(lines):print(i, line)try:res = openai.Completion.create(max_tokens=32,model=sys.argv[1],prompt=line+"\n##\n",temperature=0.7,frequency_penalty=0.1)text = res["choices"][0]["text"]items = text.split('\n')print(line+"|"+items[0]+"|"+items[2], file=f)if i%30 == 0:f.flush()time.sleep(1.5)except Exception as e:print(e)time.sleep(15)f.close()
参考OpenAI API
finetune一个GPT3模型相关推荐
- 超 31% 生成文本涉暴力色情,GPT-3 模型在 AI Dungeon 游戏里疯狂「飙车」!
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自 | 新智元 来源 | GitHub 编辑 | LRS AI被人 ...
- 最新最全GPT-3模型网络结构详细解析
最近,GPT3很火,现在有很多讲GPT-3的文章,比如讲解它可以做什么, 思考它的带来的影响, 可视化其工作方式.看了这些文章并不足以详细了解GPT-3模型,仍然需要认真研究相关论文和博客. 因此,本 ...
- AI人工智能洗稿「OpenAI GPT-3模型」
GPT-3模型达到千亿级参数:语言模型仍然可以是算术和编程,君子喻于义,小人喻于利.人类和ai相比有什么优势,与专用AI相比会高枕无忧,GPT-3更"通用":在这个过程中也许情同手 ...
- OpenAI GPT-3模型详解
OpenAI GPT-3模型详解 针对文本生成和代码生成这两大类场景,OpenAPI分别提供了GPT-3和Codex模型, 模型 描述 GPT-3 一组能够理解和生成自然语言的模型 Codex 一组可 ...
- 赠书 | 成为一个多模型思考者,从掌握数据跃迁到拥有智慧
文中有数据派THU福利哦 密歇根大学复杂性研究中心"掌门人"斯科特·佩奇大力提倡多模型思维方法,即通过一系列不同的逻辑框架"生成"智慧的方法.为了论证多模型思维 ...
- 构建一个LVS-DR模型的高性能集群,并实现Nginx、PHP、MySQL分离
搭建一个LVS-DR模型的高性能集群,并实现以下功能: (1).wordpress程序通过nfs共享给个个realserver: (2).后端realserver中的nginx和php分离: 网站架构 ...
- 把一个dataset的表放在另一个dataset里面_使用中文维基百科语料库训练一个word2vec模型并使用说明...
本篇主要介绍如何通过中文维基百科语料库来训练一个word2vec模型. 相关资料下载: 中文维基百科下载地址:https://dumps.wikimedia.org/zhwiki/ WikiExtr ...
- matlab全景图素材,matlab以simulink的方式建立一个vr模型
在动态视景仿真中,建立虚拟现实模型通常非常方便.早些时候,据说通过命令行构建一个虚拟现实模型.以下是用simulink建立simulink模型的一种简单快捷的方法.增加了一个方框作为例子. 工具/原材 ...
- Log Cauchy分布的一个Hierarchical模型:LC=Gamma+Gamma+Unif
Log Cauchy分布的一个Hierarchical模型:LC=Gamma+Gamma+Unif 一个重要公式:Γ(z)Γ(1−z)=πsin(πz)\Gamma(z)\Gamma(1-z)=\f ...
最新文章
- Go 学习笔记(12)— 字典map定义、初始化、读取字典、删除字典、清空字典、map 按 key 进行有序遍历
- arcgis Server Object Extension (SOE)部署jar文件失败 原因探索
- 002_html发展史
- java 爬中 验证码识别_JAVA爬虫---验证码识别技术(一)
- 机房动力环境监控对消防子系统、UPS不间断电源监控方案
- 【SpringBoot的坑】Restful请求报错Request method 'POST' not supported,HiddenHttpMethodFilter无法将POST转换为PUT原因分析
- 在 Intellij IDEA 里使用 OpenJFX (JavaFX)
- php在线考试系统模板下载,PHPEMS在线模拟考试系统 v6.1
- python 整数输出 d f_如何将数字(10,11,12,13,14,15)分配给Python 3中的字母(A,B,C,D,E,F)?...
- 判断一个字符(小写变为大写,大写变小写,数字不变,空格输出space,其他字符输出other)C语言
- 听说本周五要进行一个小测试,公司对员工的考核
- checking build system type... ./config.guess: unable to guess system type/you must specify one
- Android 9 Audio系统笔记:AudioFlinger音频流处理流程
- 神舟Z8-SP7D1驱动安装
- mac系统+frida 简单测试真机or genymotion模拟器
- office2010 手动卸载和安装提示
- the storage of information of web app
- 两台电脑互传文件你还可以这么做
- Windows 下编译使用 TCMalloc
- html css动画自动旋转,基于animation.css实现动画旋转特效