当前位置: 首页 > 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.dtcms.com/a/301771.html

相关文章:

  • Triton IR
  • 【测试报告】思绪网(Java+Selenium+Jmeter自动化测试)
  • 力扣面试150题--二进制求和
  • 五度标调法调域统计分析工具
  • 【笔记】Einstein关系式 D = ukBT 的推导与应用研究
  • 零拷贝 详述
  • Day4.AndroidAudio初始化
  • Linux学习篇11——Linux软件包管理利器:RPM与YUM详解与实战指南,包含如何配置失效的YUM镜像地址
  • 【RH134 问答题】第 2 章 调度未来任务
  • 第1章 AB实验的基本原理和应用
  • 任务提醒工具怎么选?对比16款热门软件
  • Valgrind Helgrind 工具全解:线程同步的守门人
  • Linux 基础命令大全
  • LC振荡Multisim仿真
  • CPA全国青少年编程能力等级测评试卷及答案 Python编程(二级)
  • 金融市场资金波动模拟程序设计与实现
  • 文件IO——目录操作
  • 大模型蒸馏理论概述
  • 【分布式存储】聊聊一致性哈希算法原理和实现
  • Linux图片元数据提取完全指南:从基础到高级的完整教程
  • day25
  • EPOLLONESHOT 深度解析:Linux epoll 的单次触发机制
  • 单表查询-or优化
  • SpringIoCDI
  • Java 集合进阶:从 Collection 接口到迭代器的实战指南
  • AI入门学习-模型评估示例讲解
  • 解决浏览器无法删除cookie的问题
  • JavaSE知识点(2)
  • mybatis的insert(pojo),会返回pojo吗
  • 2507C++,APC可以干的活