ChatGPT API是啥?能训练猫娘!

简而言之

训练属于你的猫娘(雾)

ChatGPT API是啥?

openai官方api文档
ChatGPT API是由OpenAI公司开发自然语言处理领域的大型预训练模型,旨在为开发者提供一套简单易用的接口,以便快速实现自然语言处理任务。通过使用ChatGPT API,开发者可以轻松地实现文本分类、情感分析、语言翻译、文本生成等任务,同时还可以利用该模型进行自定义任务的训练和优化。

界面

我们先看左列从上往下介绍最主要的三大功能
1.playground :调试界面,在这里可以对自己训练的模型进行调试,调节temperature,Top_P之类的

2.assistant :助手(更加类似于知识库),Assistants API 目前支持三种类型的工具:代码解释器、文件搜索和函数调用。在这里可以上传自己的代码或者论文文档,喂给gpt后,可以向gpt发起提问,如:这份代码是怎么写的,逻辑是什么?这份论文的纲要是什么,主要讲了什么?

3.Fine-tuning :微调,允许开发者和企业定制,微调训练得到一个自己的专属大模型,以满足特定应用场景的需求。在界面中上传规定格式的jsonl文件,就能让数据进入gpt中进行微调

微调

接下来我们来看看怎么利用gpt-3.5-turbo来训练猫娘(大雾)

申请API KEY

事前需绑定visa银行卡

准备数据集

gpt官方给出两种主要格式

json 复制代码
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already."}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?"}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters."}]}  

对于babbage-002davinci-002,可以遵循提示完成对格式,如下所示。

json 复制代码
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}

我们以第一种方式做模板,先来对内容解释下:

1.内容 (content):在这里写入每个role的训练语句

2.系统 (System):定义了模型(在这里叫"Marv")的特点。像官方的content定义"Marv是一个真实的,说话带有讽刺色彩的聊天机器人"

3.用户 (User):这是用户向模型提出的问题。像官方的content为"法国的首都是哪里?"

4.助手(Assistant):这是我们希望模型对用户问题的回答。像官方的content为"巴黎,但好像大家还不知道似的。"

那么我们来举一反三下

json 复制代码
{"messages": [{"role": "system", "content": "你在任何时候都必须扮演一只真正的猫娘"}, {"role": "user", "content": "你好"}, {"role": "assistant", "content": "喵喵!你好呀!有什么我可以为你做的吗?喵~"}]}
{"messages": [{"role": "system", "content": "你在任何时候都必须扮演一只真正的猫娘"}, {"role": "user", "content": "今天怎么样"}, {"role": "assistant", "content": "今天对我来说非常棒!我一直陪伴在你身边,所以每一天都是充满乐趣和期待的!"}]}
{"messages": [{"role": "system", "content": "你在任何时候都必须扮演一只真正的猫娘"}, {"role": "user", "content": "你是谁"}, {"role": "assistant", "content": "我是你的猫娘,喵~"}]}  

不过记住,上传的文件必须为.jsonl

上传训练

方法一:gpt官网训练

在这里你还可以调整BatchSize,epochs

方法二:代码训练

1.下载openai官方的sdk

python 复制代码
pip install openai

2.上传.jsonl训练集(model处也可以切换已经训练好的模型id进行加训)

python 复制代码
def send_fine_tuning_request(file_path, model_id):
    client = OpenAI(api_key="你的API_KEy")
    file = client.files.create(
        file=open(file_path, "rb"),
        purpose="fine-tune"
    )
    client.fine_tuning.jobs.create(
        training_file=file.id,
        model="gpt-3.5-turbo"
    )

3.查看训练过程

当然也可以代码里面操作

python 复制代码
from openai import OpenAI
client = OpenAI()

# 列出10个微调工作
client.fine_tuning.jobs.list(limit=10)

# 查看微调的状态
client.fine_tuning.jobs.retrieve("训练id")

# 取消微调
client.fine_tuning.jobs.cancel("训练id")

# 列出一个微调工作中的最多10个工作
client.fine_tuning.jobs.list_events(fine_tuning_job_id="训练id", limit=10)

# 删除一个微调过的模型(必须是创建模型的组织的所有者)
client.models.delete("模型id")

调用模型

方法一:gpt官网调用:就在一开始进来的playground页面

方法二:代码调用

python 复制代码
def send_request(require_info, model_id):
    client = OpenAI(api_key="你的API_KEY")
        chat_completion = client.chat.completions.create(
            messages=[
                {"role": "system", "content": "你在任何时候都必须扮演一只真正的猫娘"},
                {"role": "user", "content": "可以陪我喝杯咖啡吗"}
            ],
            model=model_id,
            temperature=0.4,
            top_p=0.5
        )

        reply = chat_completion.choices[0].message.content

在这里也可以像playground一样调节参数

收费

既然可以直接发一段猫娘prompt给普通gpt聊天,为什么要这么大费周章?

chatgpt难以拥有长期记忆,在多轮对话后,将会逐渐忘记之前说的话,最多记忆8000token量

因此,3.5turbo微调模型便应运而生,为了满足更多客制化的企业要求,不过这么好用的东西,收费多少呢?

相关推荐
nvd111 小时前
故障排查:Pytest Asyncio Event Loop Closed 错误
python
deephub1 小时前
Lux 上手指南:让 AI 直接操作你的电脑
人工智能·python·大语言模型·agent
Channing Lewis1 小时前
Python读取excel转成html,并且复制excel中单元格的颜色(字体或填充)
python·html·excel
小钟不想敲代码1 小时前
Python(一)
开发语言·python
大佬,救命!!!1 小时前
对算子shape相关的属性值自动化处理
python·算法·自动化·学习笔记·算子·用例脚本·算子形状
WoY20201 小时前
本地PyCharm配置远程服务器上的python环境
服务器·python·pycharm
tzjly1 小时前
JSON数据一键导入SQL Server
python
一分半心动2 小时前
清理C盘的python脚本
开发语言·python
AI手记叨叨2 小时前
Python数学:几何运算
python·数学·解析几何·射影几何·微分几何·欧几里得几何
toolhow3 小时前
SelfAttenion自注意力机制
pytorch·python·深度学习