快速跑通openai微调模型

openai提供两种对话方式,一种是使用现成的模型,例如gpt-3.5-turbo、gpt-4,另一种就是在现有的基础上,通过投喂数据集来训练自己的模型,也就是Fine-tuning,微调OpenAI文本生成模型可以使它们在特定应用场景中更好地发挥作用,但需要投入时间和精力。

一些常见的微调可以改善结果的用例包括:

  * 设置风格、语气、格式或其他定性方面
  * 提高生成期望输出的可靠性
  * 以特定方式处理许多边缘情况
  * 执行难以用提示清楚表达的新技能或任务

本人是期望能够用AI代替人工客服,所以尝试了一下openai的微调模型,本职前端,文章中部分直接翻译的官网文档,其余话术仅供参考,不是专业人士,所以如果有什么概念或者术语说错了的欢迎指正。

准备数据集

“需要创建一组多样化的演示对话,这些对话类似于要求模型在生产中的推理时响应的对话。”

{
   "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."}]}

“要微调模型,您需要提供至少 10 个示例。我们通常会看到对 50 到 100 个训练示例进行微调会带来明显的改进,但正确的数量根据具体的用例而有很大差异。”
训练模型时需要上传两个.jsonl文件,一个训练集和一个校验集,其中训练集用于训练模型,验证集用于评估模型的性能和调整超参数。校验集数据条数一般是训练集的10%-30%。建议一开始就多准备一些数据,并把数据都清理一下,避免影响最后的结果。

校验

校验每条数据中的token数不超过限制,token数量的限制取决于您选择的型号。对于gpt-3.5-turbo-0125,最大上下文长度为 16,385,因此每个训练示例也限制为 16,385 个token。超过的部分会直接被截取。

附token校验、计数和计费的脚本:token_conter.py

import json
import tiktoken
import numpy as np
from collections import defaultdict

# 从 jsonl 文件中读取消息列表
def read_messages_from_jsonl(jsonl_file):
    messages = []
    with open(jsonl_file, 'r', encoding='utf-8') as f:
        for line in f:
            message = json.loads
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值