从零开始微调大模型,部署智能体在网页
1.收集论文数据
从学术数据库或开放资源平台下载相关领域的PDF论文,确保数据覆盖研究主题的核心内容。常用的数据来源包括arXiv、PubMed、IEEE Xplore等。筛选高质量论文,避免重复或低相关性文献。
2.minerU转换PDF论文为Md文件
MinerU官网直接下载相应版本。
使用工具如minerU将PDF论文转换为Markdown格式,便于后续处理。确保转换后的文本保留关键信息(如标题、摘要、正文、参考文献),并清理无关内容(页眉、页脚、图表描述等)。检查格式一致性,避免转换错误。
3.Easy DataSet调用ollama大模型生成问题
https://github.com/ConardLi/easy-dataset?tab=readme-ov-file可以下载APP版本,或者使用docker部署。
添加模型,可以使用购买的API或者本地部署大模型。
通过Easy DataSet工具调用ollama大模型,基于Markdown内容自动生成问答对。提示词需明确指定问题类型(如事实提取、推理分析等),生成后人工校验问题的准确性和多样性。
Easy DataSet导出json训练集
将生成的问答对整理为结构化JSON格式,字段包括question、answer和context。验证数据完整性后导出。
4.在Docker容器下启动LLama微调
可采用conda或者docker部署LLama。
conda
git clone https://github.com/hiyouga/LLaMA-Factory.git conda create -n llama_factory python=3.10 -y conda activate llama_factory cd LLaMA-Factory # 临时使用清华源安装依赖(替换为你需要的安装命令) pip install -r requirements.txt --index-url https://pypi.tuna.tsinghua.edu.cn/simpledocker部署代码:
git clone --branch v0.9.3 https://github.com/hiyouga/LLaMA-Factory.git LLaMA-Factory-0.9.3 cd LLaMA-Factory\docker\docker-cuda docker-compose up –d创建包含微调环境的Docker镜像,依赖项包括PyTorch、Transformers库等。启动容器。示例命令:
docker run --gpus all -it --rm -p 17860:17860 -v D:\LLaMA-Factory-0.9.3\data:/app/data -v D:\LLaMA-Factory-0.9.3\output:/app/output -v D:\model:/models docker-cuda-llamafactory:latestllamafactory-cli webui隧道转发
注意如果是集群部署,GPU计算节点访问直接访问不了,可以通过隧道转发
配置双层端口转发访问 GPU 节点 Web UI
确保 Web UI 在 c001 节点运行
在 c001 GPU节点终端确认 Web UI 服务已启动,输出类似Running on local URL: http://0.0.0.0:7860。若未运行,需先启动服务。
Xshell 隧道转发配置
打开连接至 mn01 的 Xshell 会话,进入属性设置:
- 导航至
文件→属性→隧道→添加 - 参数配置:
- 类型:
本地(Outgoing) - 源主机:
127.0.0.1 - 源端口:
7860(本地映射端口) - 目标主机:
192.168.100.1(c001 内网 IP) - 目标端口:
7860(c001 服务端口)
保存配置后重新连接会话以激活隧道。
- 类型:
本地浏览器访问
在浏览器地址栏输入http://127.0.0.1:7860,流量将通过 Xshell 隧道经 mn01 转发至 c001 的 7860 端口,实现直接访问。
技术原理
Xshell 的本地隧道功能建立了一条加密通道,将本地端口请求逐跳转发至目标内网节点,绕过管理节点的端口限制。此方法适用于集群内网服务的穿透访问,稳定性优于临时端口映射。
下载大模型
下载模型,使用pip或者git
pip install modelscope modelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-32B git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B.git加载大模型
写入存在共享盘的大模型地址加载模型。
微调大模型
在dataset_info加入file_name。
在LLama上载入数据集,调整参数开始训练。
5.导出微调模型部署
微调完成后保存模型权重和配置文件到指定目录。使用transformers库的save_pretrained方法导出模型,确保包含adapter_config.json和pytorch_model.bin文件。验证模型性能后压缩为.tar.gz便于传输。
6.使用dify部署智能体
在dify平台创建新应用,上传微调模型或通过API连接模型服务。配置智能体的名称、描述和对话流程,设置访问权限和监控指标。测试智能体响应质量后发布,获取API端点或嵌入代码。