当前位置: 首页 > news >正文

三、构建一个Agent

上一章节提到的版本冲突问题实际是在构建的过程中发现并解决,为了帮助大家避坑,所以在上一篇就写出来。本章节使用的是DataWhale提供的一个完整可用的代码仓来进行的一个实验。末尾有代码仓的地址。

1、数据下载

执行数据下载的py脚本,脚本的位置在  项目根目录/dataScripts

python dataScripts/download_data.py

执行成功后会在控制台看到如下信息:

2025-07-27 10:28:22.485 | INFO     | __main__:download_data:65 - 开始下载甄嬛传数据集...
2025-07-27 10:28:22.485 | INFO     | __main__:download_file:40 - 开始下载: 甄嬛传训练数据
甄嬛传训练数据: 937kB [00:01, 603kB/s]
2025-07-27 10:28:24.836 | INFO     | __main__:download_file:54 - 下载完成: ..\data\raw\huanhuan.json
2025-07-27 10:28:24.837 | INFO     | __main__:run:77 - 🎉 数据下载完成!
2025-07-27 10:28:24.837 | INFO     | __main__:run:78 - 📁 数据保存在: ..\data
2025-07-27 10:28:24.838 | INFO     | __main__:run:79 - 📝 接下来可以运行: python training/huanhuan_data_prepare.py

2、数据预处理

执行数据预处理的py脚本

python training/huanhuan_data_prepare.py

执行成功后会在控制台看到如下信息:

2025-07-27 13:08:20.772 | INFO     | __main__:main:201 - 将处理全部数据
2025-07-27 13:08:20.772 | INFO     | __main__:process_data:72 - 开始处理甄嬛传数据...
2025-07-27 13:08:20.783 | INFO     | __main__:load_json_data:58 - 加载训练数据: 3729 条
2025-07-27 13:08:20.786 | INFO     | __main__:process_data:98 - 处理完成,有效数据: 3729 条
2025-07-27 13:08:20.787 | INFO     | __main__:split_data:115 - 数据分割完成 - 训练集: 2983, 验证集: 372, 测试集: 374
2025-07-27 13:08:20.799 | INFO     | __main__:save_data:139 - 保存 train.jsonl: 2983 条数据
2025-07-27 13:08:20.800 | INFO     | __main__:save_data:139 - 保存 validation.jsonl: 372 条数据
2025-07-27 13:08:20.802 | INFO     | __main__:save_data:139 - 保存 test.jsonl: 374 条数据
2025-07-27 13:08:20.802 | INFO     | __main__:run:159 - 🎉 数据预处理完成!
2025-07-27 13:08:20.802 | INFO     | __main__:run:160 - 📁 数据保存在: d:\PythonWorkspace\ollama_baseline\data
2025-07-27 13:08:20.803 | INFO     | __main__:run:161 - 📝 接下来可以运行: python training/huanhuan_train.py

3、模型训练

执行模型训练的脚本,脚本的位置在 项目根目录/training 

python huanhuan_train.py

 执行成功的话,一开始会出现如下信息:

2025-07-27 16:16:16.147 | INFO     | __main__:__init__:146 - HuanHuanTrainer 初始化完成,配置文件: ./huanhuan_config_fast.yaml
2025-07-27 16:16:16.160 | INFO     | __main__:load_config:165 - 配置文件加载成功: ./huanhuan_config_fast.yaml
2025-07-27 16:16:16.161 | INFO     | __main__:setup_device:179 - 使用CUDA设备: NVIDIA GeForce RTX 4060 Ti
2025-07-27 16:16:16.161 | INFO     | __main__:load_model_and_tokenizer:196 - 加载分词器: Qwen/Qwen2.5-0.5B
D:\anaconda3\envs\ollama_baseline_env\lib\site-packages\huggingface_hub\file_download.py:797: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.warnings.warn(
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
2025-07-27 16:16:17.991 | INFO     | __main__:load_model_and_tokenizer:207 - 加载模型: Qwen/Qwen2.5-0.5B
2025-07-27 16:16:20.281 | INFO     | __main__:load_model_and_tokenizer:217 - 模型已移动到设备: cuda
2025-07-27 16:16:20.283 | INFO     | __main__:load_model_and_tokenizer:219 - 模型参数量: 494,032,768
2025-07-27 16:16:20.283 | INFO     | __main__:setup_lora:230 - 配置LoRA参数
2025-07-27 16:16:20.375 | INFO     | __main__:setup_lora:246 - 可训练参数: 86,016 (0.02%)
2025-07-27 16:16:20.376 | INFO     | __main__:setup_lora:247 - 总参数量: 494,118,784
2025-07-27 16:16:20.376 | INFO     | __main__:setup_training_arguments:306 - 检测到CUDA设备,使用4个数据加载器工作进程
2025-07-27 16:16:20.428 | INFO     | __main__:prepare_datasets:260 - 加载训练数据: ../data/processed/train.jsonl
2025-07-27 16:16:20.437 | INFO     | __main__:load_conversations:76 - 加载了 2983 条对话数据
2025-07-27 16:16:20.437 | INFO     | __main__:prepare_datasets:280 - 训练集: 2387 样本
2025-07-27 16:16:20.438 | INFO     | __main__:prepare_datasets:281 - 验证集: 298 样本
2025-07-27 16:16:20.438 | INFO     | __main__:prepare_datasets:282 - 测试集: 298 样本
D:\anaconda3\envs\ollama_baseline_env\lib\site-packages\accelerate\accelerator.py:436: FutureWarning: Passing the following arguments to `Accelerator` is deprecated and will be removed in version 1.0 of Accelerate: dict_keys(['dispatch_batches', 'split_batches', 'even_batches', 'use_seedable_sampler']). Please pass an `accelerate.DataLoaderConfiguration` instead:
dataloader_config = DataLoaderConfiguration(dispatch_batches=None, split_batches=False, even_batches=True, use_seedable_sampler=True)warnings.warn(
2025-07-27 16:16:20.471 | INFO     | __main__:setup_training_arguments:374 - 训练器创建完成
2025-07-27 16:16:20.471 | INFO     | __main__:train:382 - === 开始甄嬛角色模型训练 ===
2025-07-27 16:16:20.471 | INFO     | __main__:train:386 - 🚀 开始模型训练...

最后几行的信息如下,看到这些信息就说明训练完成了

2025-07-27 17:25:14.295 | INFO     | __main__:train:390 - 💾 保存最终模型...
D:\anaconda3\envs\ollama_baseline_env\lib\site-packages\huggingface_hub\file_download.py:797: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.warnings.warn(
2025-07-27 17:25:15.331 | INFO     | __main__:train:394 - === 训练完成 ===
2025-07-27 17:25:15.331 | INFO     | __main__:train:395 - 📁 模型保存在: ../training/models/huanhuan_fast
2025-07-27 17:25:15.331 | INFO     | __main__:main:414 - 🎉 甄嬛角色模型训练完成!
2025-07-27 17:25:15.331 | INFO     | __main__:main:415 - 📁 接下来可以运行部署脚本: python deployment/huanhuan_deploy.py

4、用Ollama实现模型部署

5、用Streamlit实现Web应用

http://www.xdnf.cn/news/1200385.html

相关文章:

  • OpenCv中的 KNN 算法实现手写数字的识别
  • 消息队列MQ常见问题和解决方案
  • Java面试全攻略:Spring生态与微服务架构实战
  • 新手开发 App,容易陷入哪些误区?
  • Android:Reverse 实战 part 2 番外 IDA python
  • SignalR 全解析:核心原理、适用场景与 Vue + .NET Core 实战
  • [电网备考]计算机组成与原理
  • Vue 四个map的使用方法
  • Mysql 二进制安装常见问题
  • 设备独立性软件-高速缓存与缓冲区
  • GIF图像格式
  • 水稻调控组全景的综合绘制与建模揭示了复杂性状背后的调控架构
  • springboot基于Java的人力资源管理系统设计与实现
  • Java面试新趋势:云原生与新兴框架实战解析
  • Vscode的常用快捷键(摆脱鼠标计划)
  • 24点数学游戏(穷举法求解表达式)
  • mybatis-plus逻辑删除配置
  • PROFINET转CAN通讯协议转换速通汽车制造
  • 【机器学习-3】 | 决策树与鸢尾花分类实践篇
  • 【Typora】分享一款很好用的PJ版本的Markdown编辑器
  • k8s pod生命周期、初始化容器、钩子函数、容器探测、重启策略
  • S7-1500 与 S7-1200 存储区域保持性设置特点详解
  • ESP32学习-FreeRTOS队列使用指南与实战
  • 回归预测 | MATLAB实现BiTCN双向时间卷积神经网络多输入单输出回归预测
  • 如何在 Ubuntu 24.04 或 22.04 中更改 SSH 端口
  • 个人笔记HTML5
  • 【ee类保研面试】通信类---信息论
  • [2025CVPR-图象超分辨方向]DORNet:面向退化的正则化网络,用于盲深度超分辨率
  • 标签驱动的可信金融大模型训练全流程-Agentar-Fin-R1工程思路浅尝
  • Unity Catalog与Apache Iceberg如何重塑Data+AI时代的企业数据架构