如何使用大模型高效生产|蒸馏数据[含完整代码]

大模型出现之前我们的训练数据大都依赖人工标注、开源数据以及从线上数据中构造合适的监督数据,如果开源数据不太符合我们的业务需求(大部分情况下无法直接满足要求),且已有的线上数据也没办法抽取出符合要求的监督数据,这个时候恐怕只能依赖于人工标注了,但是人工标注又非常的耗费人力和时间。大模型出现后给我们提供了新的选择,我们可以通过构造高质量的prompt使用大模型给我们生产数据。原理其实很简单,所以本次分享的重点其实不在于原理,主要是想将本人工作中经常使用的一套代码分享出来,供大家直接使用

完整代码见:Data Generate Template | LlamaFactory​​​​​​​

大致流程

当接到一个业务需求时跟产品对齐细节后就可以开始写prompt了(这里假设硬件资源支撑不了满足效果的例如72b模型,1.5b以及7b等模型直接用效果又无法达标)。我会先用vllm将效果好的大模型部署起来方便使用openai的sdk调用,反复调试迭代prompt差不多达到要求后我们就可以开始生产用于训练小模型的数据了。一般使用多进程加速数据生产。下面从代码层面讲讲具体的细节。

vllm部署大模型

vllm提供了非常方便的命令行部署命令:

CUDA_VISIBLE_DEVICES="0,1" python -m vllm.entrypoints.openai.api_server --served-model-name model_name  --model model_path --tensor-parallel-size 2 --port 8002

假设你的启动过程十分顺利,这时候你在终端就能看见打印出来的访问地址,一般是http://0.0.0.0:8002,这个时候你在浏览器中输入http://0.0.0.0:8002/docs就可以访问到一个可交互的文档界面,可以在这里尝试访问服务,看看是否可以正常调用。

调试prompt

vllm非常贴心的提供了一个基于gradio的示例代码供大家使用,调试prompt则会更加方便,代码在这里大家可以自取。但是我自己做了一点修改,可以在界面上直接修改prompt,这样就不用每次修改prompt后重启服务了,相对来说方便一点。修改后的版本如下:

import argparse
from collections.abc import Generator

import gradio as gr
from openai import OpenAI

# Argument parser se
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值