OpenAI Fine-tuning使用

OpenAi提供了Fine-tuning功能,这个可以自定义AI模型

前置条件

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

  2. 安装工具包,这里以nodejs为例

    1
    npm i openai

生成数据集

按照如下格式整理数据

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

openai官方针对微调数据集例子数量推荐为50-100,要求至少10个。

1
2
{"messages": [{"role": "system", "content": "Given a sports headline, provide the following fields in a JSON dict, where applicable: \"player\" (full name), \"team\", \"sport\", and \"gender\"."}, {"role": "user", "content": "Sources: Colts grant RB Taylor OK to seek trade"}, {"role": "assistant", "content": "{\"player\": \"Jonathan Taylor\", \"team\": \"Colts\", \"sport\": \"football\", \"gender\": \"male\" }"}]}

数据格式为什么如此要求,见官方解释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

更新model?

openai目前支持对已finetuning的的model,二次微调。

定价

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

写在最后

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

相关文档