无锡网站策划,惠州小程序开发,小型网站制作深圳,c语言入门自学零基础背景
微调了一个 glm4-9B的大模型。微调后得到Lora权重#xff0c;部署成vllm 的API#xff0c;然后通过langchain接入完成相关任务的推理。
关于SFT 微调模型的部分就不做介绍了#xff0c;大家可以参考前面的文章#xff0c;将自己的数据集 在 Llamafactory 的 dataset…背景
微调了一个 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_DEVICES0 API_PORT8000 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_eageradapter_name_or_pathlora 插件地址 建议使用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 StrOutputParserparser StrOutputParser()port 8000
model ChatOpenAI(api_key0,base_urlhttp://localhost:{}/v1.format(os.environ.get(API_PORT, 8000)),temperature0
)加载本地的json 文件作为推理用的数据集
valid_dataset load_dataset(json,data_files../valid.json
)[train]preds []
for item in tqdm(valid_dataset):# 修改 messages 填入自己的数据即可messages [SystemMessage(contentitem[instruction]),HumanMessage(contentitem[input]),]chain model | parserpred chain.invoke(messages).strip()preds.append(pred)如上述所示即可轻松实现利用 langchain 结合训练后的模型完成推理任务。
参考资料
非常建议阅读 LLaMA-Factory QuickStart. https://zhuanlan.zhihu.com/p/695287607 因为 llamfactory github 的官方文档写的太简短了上述知乎的文档写的很细。