Project郑梓妍
AI要大声说出来小队制作的Agent助手
作业1
由于微调合并的agent模型太大,git lfs推了一晚上卡死在50%不动了,目前想取消push但是一直断点续传,暂时找不到中断的办法,想推送lora adapter也不行,网页又提交不了,所以我们只能使用之前做的用来实验的lora情感分析微调提交作业。
训练的情感分析模型adapter在models/sa_2_epoch下面,根据qwen_1_8b进行微调,以下为加载adapter后使用示例代码:
微调具体代码在sa_fintune.ipynb
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
qwen_dir='qwen/Qwen-1_8B-Chat'
model = AutoModelForCausalLM.from_pretrained(
qwen_dir,
device_map='cuda',
bf16=True,
trust_remote_code=True,
# quantization_config=GPTQConfig(
# bits=4, disable_exllama=True
# )
)
tokenizer = AutoTokenizer.from_pretrained(qwen_dir, trust_remote_code=True)
peft_model = PeftModel.from_pretrained(model, 'models/sa_2_epoch')
peft_model.chat(tokenizer, "商品的不足暂时还没发现,京东的订单处理速度实在.......周二就打包完成,周五才发货...", None, system="")
使用的数据集是SENTI_ROBUST,是一个二分类情感分析,模型回复内容分别为“这句话情感是正面的。”和“这句话情感是负面的。”,在训练集上训练了两个epoch后测试集上测试结果为:
f1_score = 0.928390901432182 precision = 0.9291736930860034 recall = 0.9276094276094277
模型描述
郑梓妍作为Agent助手,大语言模型驱动下她具备基本的对话功能,并且设计的时间性功能能够让她延时地找你对话。当前作为Agent她有一套工具链让她使用,目前能够使用以下工具:
- 发邮件。
- 绘图。
- 发送语音。
- 生成文章摘要。
- 识别图片的类型。 当然,她在进行任务时不影响与你的交流,且她可以延时、反复进行任务或是中断当前正在执行的任务。
=由于训练数据缺失,郑梓妍目前还不稳定,我们正在想办法=
模型训练
数据集可以通过webui运行后,网页链接/#/dataset链接访问手工构建。
lora微调可以查看目录下的lora_finetune.py文件,里面包含了执行lora微调的代码。
部署模型
环境配置
vllm环境配置:conda: requirements.yaml, pip: requirements.txt
toolkit环境配置:conda: toolkitrequirements.yaml, pip: toolkitrequirements.txt
webui环境配置:
进入webui文件夹,运行npm指令下载前端ui依赖
npm install
模型部署
配置openai.py进行非vllm的部署。
配置api_server.py文件,进行使用vllm推理的部署方式。
运行项目
在vllm环境下,运行api_server.py,进行模型openai接口部署,可以通过连接默认端口19999进行连接。
模型system部分需要使用提示内容,目前使用的是short_system.txt。
在toolkit环境下,运行server.py,进行工具链和后端server部署。
进入webui文件夹,执行指令npm run dev
,使用vite运行前端ui。
输入前端UI显示的链接,默认为http://localhost:5173/#/chatView/ + 你的名字,即可进入前端ui。
=注意=:对话通过websocket支持,如果要在移动端进行对话,需要修改socketserver地址,具体进入webui/src/chatView.vue文件,修改变量socketserver的ip部分,修改为局域网内非127.0.0.1的部署本机ip地址。
目前项目在Ubuntu20.04上完全正常运行,api_server默认监听端口19999,server默认监听端口23333。
工具链模型
为了支持发送邮件功能,需要配置以下环境变量:
export SENDER_EMAIL_AUTHENTICATED_CODE="..."
export SENDER_EMAIL_ADDRESS="..."
export DEFAULT_RECIEVER_EMAIL_ADDRESS="..."
export SMTP_SERVER="..."
模型效果
UI说明
对话运行效果图
- 非阻塞对话指令效果图
- 定时、延时邮件效果图
评论