夜火笔记

基于OpenAI大模型 训练自己的大模型 fine_tunes

2023-07-28
笔记 AI
4分钟
687字

说是基于大模型,训练自己的大模型,其实就是 fine_tunes 微调。

这篇文章会写的更意识流一些,更多的是作为笔记。下面记录的代码也都是基于命令行,进行技术验证,非python代码。

相关概念 利用GPT-3 Fine-tunes训练专属语言模型

英文过关的话可以直接查看官方文档: https://platform.openai.com/docs/guides/fine-tuning

准备

安装openai

Terminal window
1
pip install --upgrade openai

设置openai api key

linux

Terminal window
1
export OPENAI_API_KEY="<OPENAI_API_KEY>"

windows

Terminal window
1
setx OPENAI_API_KEY "<OPENAI_API_KEY>"

上传训练文件(非必要)

这步可以跳过,发现后面的fine_tunes.create可以直接上传当前目录下的文件  

GPT 列出所有上传的文件

Terminal window
1
curl https://api.openai.com/v1/files  -H "Authorization: Bearer sk-***"

Terminal window
1
set OPENAI_API_KEY="sk-***"
2
curl https://api.openai.com/v1/files  -H "Authorization: Bearer %OPENAI_API_KEY%"

GPT 上传文件

Terminal window
1
curl https://api.openai.com/v1/files  -H "Authorization: Bearer sk-***"  -F purpose="fine-tune"  -F file="@file.jsonl"

返回

Terminal window
1
{
2
  "object": "file",
3
  "id": "file-***",
4
  "purpose": "fine-tune",
5
  "filename": "file.jsonl",
6
  "bytes": 281,
7
  "created_at": 168*******,
8
  "status": "uploaded",
9
  "status_details": null
10
}

微调模型

创建微调模型

Terminal window
1
openai api fine_tunes.create -t file.jsonl -m ada --suffix "test_model"
Terminal window
1
openai api fine_tunes.create -t file-*** -m davinci --suffix "test_d_model"

可以忽略前面的单独上传文件,这里可以点击回车,自动上传当前目录下的文件   这里使用已上传的文件,可以直接输入文件id,如file-***

列出微调模型

Terminal window
1
openai api fine_tunes.list

跟踪事件流

Terminal window
1
openai api fine_tunes.follow -i ft-***

输出

Terminal window
1
[2023-07-***] Created fine-tune: ft-***
2
[2023-07-***] Fine-tune costs $0.00
3
[2023-07-***] Fine-tune enqueued. Queue number: 2
4
[2023-07-***] Fine-tune is in the queue. Queue number: 1
5
[2023-07-***] Fine-tune is in the queue. Queue number: 0
6
[2023-07-***] Fine-tune started
7
[2023-07-***] Completed epoch 1/4
8
[2023-07-***] Completed epoch 2/4
9
[2023-07-***] Completed epoch 3/4
10
[2023-07-***] Completed epoch 4/4
11
[2023-07-***] Uploaded model: ada:ft-8000:text-model-2023-07-***
12
[2023-07-***] Uploaded result file: file-***
13
[2023-07-***] Fine-tune succeeded
14
15
Job complete! Status: succeeded 🎉
3 collapsed lines
16
Try out your fine-tuned model:
17
18
openai api completions.create -m ada:ft-8000:text-model-2023-07-*** -p <YOUR_PROMPT>
Terminal window
1
openai api completions.create -m davinci:ft-8000:test-d-model-2023-07-*** -p <YOUR_PROMPT>

列出微调模型

Terminal window
1
openai api fine_tunes.list

输出

Terminal window
1
{
2
  "object": "list",
3
  "data": [
4
    {
5
      "object": "fine-tune",
6
      "id": "ft-***"
7
      "hyperparams": {
8
        "n_epochs": 4,
9
        "batch_size": 1,
10
        "prompt_loss_weight": 0.01,
11
        "learning_rate_multiplier": 0.1
12
      },
13
      "organization_id": "org-***",
14
      "model": "ada",
15
      "training_files": [
31 collapsed lines
16
        {
17
          "object": "file",
18
          "id": "file-***",
19
          "purpose": "fine-tune",
20
          "filename": "file.jsonl",
21
          "bytes": 281,
22
          "created_at": 168*******,
23
          "status": "processed",
24
          "status_details": null
25
        }
26
      ],
27
      "validation_files": [],
28
      "result_files": [
29
        {
30
          "object": "file",
31
          "id": "file-***",
32
          "purpose": "fine-tune-results",
33
          "filename": "compiled_results.csv",
34
          "bytes": 894,
35
          "created_at": 168*******,
36
          "status": "processed",
37
          "status_details": null
38
        }
39
      ],
40
      "created_at": 168*******,
41
      "updated_at": 168*******,
42
      "status": "succeeded",
43
      "fine_tuned_model": "ada:ft-8000:text-model-2023-07-***"
44
    }
45
  ]
46
}

参考

利用GPT-3 Fine-tunes训练专属语言模型
手把手带你微调自己的GPT-davinci-003
https://platform.openai.com/docs/guides/fine-tuning

本文标题:基于OpenAI大模型 训练自己的大模型 fine_tunes
文章作者:夜火/xloong
发布时间:2023-07-28
Copyright 2026
站点地图