llama-factory 系列教程 (五),SFT 微调后的模型,结合langchain进行推理
创始人
2024-11-12 04:39:42
0

背景

微调了一个 glm4-9B的大模型。微调后得到Lora权重,部署成vllm 的API,然后通过langchain接入完成相关任务的推理。

关于SFT 微调模型的部分就不做介绍了,大家可以参考前面的文章,将自己的数据集 在 Llamafactory 的 dataset_info.json 里进行注册。

llamafactory-cli webui
通过可视化界面进行微调,或者拿到预览的命令,在命令行中运行。

llamafactory API 部署模型

使用 llamafactory 训练模型,再使用llamafactory 部署API 简单又省事,就是慢了一点,但很方便。

如果你想追求极致的推理速度,建议你阅读这篇文章:llama-factory SFT 系列教程 (四),lora sft 微调后,使用vllm加速推理

运行下述代码,完成API部署:

CUDA_VISIBLE_DEVICES=0 API_PORT=8000 llamafactory-cli api \     --model_name_or_path /home/root/.cache/modelscope/hub/ZhipuAI/glm-4-9b-chat \     --adapter_name_or_path ./saves/GLM-4-9B-Chat/lora/train_2024-07-30-15-53-random-500 \     --template glm4 \     --finetuning_type lora \     --infer_backend vllm \     --vllm_enforce_eager 

adapter_name_or_path:lora 插件地址;
建议使用vllm进行部署,huggingface 容易报错。

langchain

from datasets import load_dataset from langchain_openai import ChatOpenAI from langchain_core.messages import HumanMessage, SystemMessage from langchain_core.output_parsers import StrOutputParser  parser = StrOutputParser() 
port = 8000 model = ChatOpenAI(     api_key="0",     base_url="http://localhost:{}/v1".format(os.environ.get("API_PORT", 8000)),     temperature=0 ) 

加载本地的json 文件,作为推理用的数据集:

valid_dataset = load_dataset(     "json",     data_files="../valid.json" )["train"] 
preds = [] for item in tqdm(valid_dataset):     # 修改 messages, 填入自己的数据即可     messages = [         SystemMessage(content=item['instruction']),         HumanMessage(content=item['input']),     ]     chain = model | parser     pred = chain.invoke(messages).strip()     preds.append(pred) 

如上述所示,即可轻松实现利用 langchain 结合训练后的模型,完成推理任务。

参考资料

  • 非常建议阅读: LLaMA-Factory QuickStart. https://zhuanlan.zhihu.com/p/695287607
    因为 llamfactory github 的官方文档写的太简短了,上述知乎的文档写的很细。

相关内容

热门资讯

透视数据!epoker透视,科... 透视数据!epoker透视,科乐填坑辅助,模板教程(今日头条)-哔哩哔哩科乐填坑辅助透视方法中分为三...
科普透视!wepoker透视a... 科普透视!wepoker透视app下载,微乐自建房辅助工具下载入口在哪,课程教程(有挂秘笈)-哔哩哔...
反观!青鸟辅助安卓,蘑菇云辅助... 反观!青鸟辅助安卓,蘑菇云辅助脚本,资料教程(有挂存在)-哔哩哔哩1)蘑菇云辅助脚本免费钻石:进一步...
网友热议!poker worl... 网友热议!poker world辅助,蜀山四川怎么提高胜率,攻略教程(详细教程)-哔哩哔哩蜀山四川怎...
有挂透视!wpk辅助是什么,微... 有挂透视!wpk辅助是什么,微乐小游戏万能修改器,教程书教程(有挂神器)-哔哩哔哩1、点击下载安装,...
最终!约战竞技场辅助软件,齐齐... 最终!约战竞技场辅助软件,齐齐乐哟西辅助制作,大纲教程(有挂讲解)-哔哩哔哩1、约战竞技场辅助软件模...
据监测!poker maste... 据监测!poker master辅助,新玄龙开挂图片,指南书教程(讲解有挂)-哔哩哔哩1、进入游戏-...
有挂透视!wepoker有辅助... 有挂透视!wepoker有辅助功能吗,微乐广西小程序开挂,总结教程(确实有挂)-哔哩哔哩所有人都在同...
在玩家背景下!仙神互娱辅助,微... 在玩家背景下!仙神互娱辅助,微信小程序修改器,诀窍教程(有挂分享)-哔哩哔哩1、操作简单,无需微信小...
据玩家消息!胡乐辅助脚本可靠吗... 据玩家消息!胡乐辅助脚本可靠吗,丫丫衡阳字牌2辅助,指南教程(有挂猫腻)-哔哩哔哩1、金币登录送、破...