0%

OpenAI Fine-tuning使用

OpenAi提供了Fine-tuning功能,解决个人模型训练需求。这里尝试使用下。

前置条件

  1. OpenAI账号注册,api key获取

  2. 安装工具包

    1
    pip install --upgrade openai

生成数据集

按照如下格式整理数据

https://github.com/alanhg/express-demo/blob/c36ea133139b5d611845628a0c6ba5d6e995c209/test/trainai.jsonl

字段说明

  1. prompt即问题,以\n\nIntent:\n\n结尾
  2. completion即回答,空格开头

数据格式为什么如此要求,见官方解释https://platform.openai.com/docs/guides/fine-tuning/data-formatting

校验数据

1
openai tools fine_tunes.prepare_data -f ./test/trainai.jsonl

在执行数据校验时可能会遇到一些错误,比如

missing pandas

OpenAI error:

missing pandas

报错原因是像 numpypandas 这样的数据库,由于其体积较大,不会默认安装。它们是该库的某些功能所需,但通常不需要用于与API通信。如果遇到 MissingDependencyError,请使用以下方式安装它们:

1
pip install pandas   

创建model

1
openai api fine_tunes.create -t test/trainai.jsonl -m davinci 

创建成功后命令行会提示模型名称/训练花费

使用model

模型训练成功后即可以使用,除了API直接调用外,简单测试的话可以走官网playground,模型下拉会显示出已训练OK的模型,直接测试即可。

https://static.1991421.cn/2023/2023-03-26-232507.jpeg

https://platform.openai.com/playground

更新model?

不存在对现有model的更新,必须以最新的全量数据重新训练出新的版本模型。

定价

模型训练需要花钱,具体价格见https://openai.com/pricing#language-models

写在最后

有了Fine-tuning,构建比如官方文档助手/客服等将会很简单了。