先介绍一下作者本人,作者现在在浙江一家国企内部进行人工智能与企业事务结合探索。现在在各个事务场景的落地中,简直都有对模型进行再练习和微调(Fine Tuning)的需求,在此开一个专栏作为后续开展模型再练习的导论。
AIGC行业现状
AIGC行业现在的现状仍然是ChatGPT领先一个档位,因为在C端对话场景中表现出色,用户简直能感遭到是跟半个领域专家在进行聊天,现在运用最多的场景也是答疑解惑。
B端场景与C端场景的差异
B端场景跟C端有着天然本质的差异。在C端,用户通常关注文娱、普遍性问题和日常生活问题,因此模型答复能够更加敞开,当模型出现不苟言笑的胡言乱语的时候,也更多的是被人拿来调侃。
然而,在B端场景中,企业和组织关注更为专业、针对性和行业相关的问题。要求答复具有高度的准确性、可靠性。最常见的场景是经过衔接企业常识库供给售前和售后服务。当模型无法找到常识的原型,经过生成的虚拟答复,往往会形成更为严重的客户投诉。
ChatGPT模型微调过程
一、预备工作
- 确保已获得开发者权限。
- 装置OpenAI的SDK,经过pip装置**
openai
**包。
pip install openai
二、从常识库生成练习数据和验证数据
因为大部分的常识库没有现成的输入和输出,我们需要从常识库中生成输入输出对。一般能够运用自然语言处理(NLP)技术对常识库进行处理,例如运用信息抽取技术从文本中提取问题和答案,将它们作为输入输出对。
三、预备练习数据和验证数据
- 依照JSONL格式预备您的练习数据。每行应该包括一个JSON目标,具有以下字段:
prompt
(输入)和**completion
**(预期输出)。 - 将练习数据保存到本地,例如**
train_data.jsonl
**。 - 预备一个与练习数据类似但互斥的验证数据集。
- 将验证数据保存到本地,例如**
validation_data.jsonl
**。
四、运用Python进行微调
- 引进所需的库:
import openai
- 设置API密钥:
openai.api_key = "YOUR_OPENAI_API_KEY"
- 上传练习和验证数据文件:
def upload_dataset(file_path):
with open(file_path, "rb") as f:
file_data = f.read()
result = openai.File.create(data=file_data, purpose="fine-tuning")
return result["id"]
train_file_id = upload_dataset("train_data.jsonl")
validation_file_id = upload_dataset("validation_data.jsonl")
- 创建微调使命:
fine_tuning_job = openai.FineTuningJob.create(
model="gpt-4",
dataset_id=train_file_id,
validation_dataset_id=validation_file_id,
n_epochs=4
)
- 查看微调使命状况:
job_id = fine_tuning_job["id"]
job_status = openai.FineTuningJob.get(job_id)