From 6777f4299b3b5cb29d364c3d4b4efe184f06f7f9 Mon Sep 17 00:00:00 2001 From: Yozo-ops Date: Sat, 27 Dec 2025 15:19:31 +0800 Subject: [PATCH 01/12] Create submission --- LLM-Course-Assignments-2025/01-NLP/submission | 1 + 1 file changed, 1 insertion(+) create mode 100644 LLM-Course-Assignments-2025/01-NLP/submission diff --git a/LLM-Course-Assignments-2025/01-NLP/submission b/LLM-Course-Assignments-2025/01-NLP/submission new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/LLM-Course-Assignments-2025/01-NLP/submission @@ -0,0 +1 @@ + From 2dbe6daecf9877999632a6556d77ac79880ec78a Mon Sep 17 00:00:00 2001 From: Yozo-ops Date: Sat, 27 Dec 2025 15:23:17 +0800 Subject: [PATCH 02/12] Update submission --- LLM-Course-Assignments-2025/01-NLP/submission | 3 +++ 1 file changed, 3 insertions(+) diff --git a/LLM-Course-Assignments-2025/01-NLP/submission b/LLM-Course-Assignments-2025/01-NLP/submission index 8b137891..cb733dcf 100644 --- a/LLM-Course-Assignments-2025/01-NLP/submission +++ b/LLM-Course-Assignments-2025/01-NLP/submission @@ -1 +1,4 @@ +##数据集 +使用http://thuctc.thunlp.org/中公开数据集,搭建了一个基于2005~2011年间所有新浪体育新闻的RAG系统; +## From f63fe0be40a84a8c1acc754b8b44e39684b3d7dc Mon Sep 17 00:00:00 2001 From: Yozo-ops Date: Sat, 27 Dec 2025 15:52:38 +0800 Subject: [PATCH 03/12] =?UTF-8?q?Update=20and=20rename=20submission=20to?= =?UTF-8?q?=20[=E4=BD=9C=E4=B8=9A01-NLP]=20SZ2508002=20=E9=BB=84=E5=AD=90?= =?UTF-8?q?=E8=88=AA=20-=20=E9=A2=86=E5=9F=9F=E7=89=B9=E5=AE=9ARAG?= =?UTF-8?q?=E9=97=AE=E7=AD=94=E7=B3=BB=E7=BB=9F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) rename LLM-Course-Assignments-2025/01-NLP/submission => "LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" (55%) diff --git a/LLM-Course-Assignments-2025/01-NLP/submission "b/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" similarity index 55% rename from LLM-Course-Assignments-2025/01-NLP/submission rename to "LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" index cb733dcf..7b2becbd 100644 --- a/LLM-Course-Assignments-2025/01-NLP/submission +++ "b/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" @@ -1,4 +1,6 @@ -##数据集 +# 第一次迭代 +## 数据集 使用http://thuctc.thunlp.org/中公开数据集,搭建了一个基于2005~2011年间所有新浪体育新闻的RAG系统; -## +## 模型 +在Hugging Face中本地部署开源模型Qwen2.5-4B模型。 From 64aa7529fc4a3ba0f3776840db6f7061e1bb8854 Mon Sep 17 00:00:00 2001 From: Yozo-ops Date: Sat, 27 Dec 2025 15:53:01 +0800 Subject: [PATCH 04/12] =?UTF-8?q?Update=20[=E4=BD=9C=E4=B8=9A01-NLP]=20SZ2?= =?UTF-8?q?508002=20=E9=BB=84=E5=AD=90=E8=88=AA=20-=20=E9=A2=86=E5=9F=9F?= =?UTF-8?q?=E7=89=B9=E5=AE=9ARAG=E9=97=AE=E7=AD=94=E7=B3=BB=E7=BB=9F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" "b/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" index 7b2becbd..e5a17b48 100644 --- "a/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" +++ "b/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" @@ -1,6 +1,6 @@ # 第一次迭代 ## 数据集 -使用http://thuctc.thunlp.org/中公开数据集,搭建了一个基于2005~2011年间所有新浪体育新闻的RAG系统; +使用http://thuctc.thunlp.org/ 中公开数据集,搭建了一个基于2005~2011年间所有新浪体育新闻的RAG系统; ## 模型 在Hugging Face中本地部署开源模型Qwen2.5-4B模型。 From fbba11742e5d41466d0173611695651c6d940006 Mon Sep 17 00:00:00 2001 From: Yozo-ops Date: Sat, 27 Dec 2025 15:58:32 +0800 Subject: [PATCH 05/12] =?UTF-8?q?Update=20[=E4=BD=9C=E4=B8=9A01-NLP]=20SZ2?= =?UTF-8?q?508002=20=E9=BB=84=E5=AD=90=E8=88=AA=20-=20=E9=A2=86=E5=9F=9F?= =?UTF-8?q?=E7=89=B9=E5=AE=9ARAG=E9=97=AE=E7=AD=94=E7=B3=BB=E7=BB=9F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...351\227\256\347\255\224\347\263\273\347\273\237.md" | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git "a/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" "b/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" index e5a17b48..1d4e2874 100644 --- "a/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" +++ "b/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" @@ -1,6 +1,12 @@ -# 第一次迭代 +# 第一次迭代进行的工作 +## 创造项目环境 +安装miniconda,使用conda创建项目虚拟环境;根据依赖包.txt安装项目需要依赖包。 + ## 数据集 使用http://thuctc.thunlp.org/ 中公开数据集,搭建了一个基于2005~2011年间所有新浪体育新闻的RAG系统; ## 模型 -在Hugging Face中本地部署开源模型Qwen2.5-4B模型。 +在Hugging Face中下载开源模型Qwen2.5-4B。 + +## 项目仓库地址 +https://github.com/Yozo-ops/LLM_Homework From 8e0c674d5764cf3520101cd9eb89060f356b4d40 Mon Sep 17 00:00:00 2001 From: Yozo-ops Date: Tue, 30 Dec 2025 19:38:00 +0800 Subject: [PATCH 06/12] =?UTF-8?q?Update=20[=E4=BD=9C=E4=B8=9A01-NLP]=20SZ2?= =?UTF-8?q?508002=20=E9=BB=84=E5=AD=90=E8=88=AA=20-=20=E9=A2=86=E5=9F=9F?= =?UTF-8?q?=E7=89=B9=E5=AE=9ARAG=E9=97=AE=E7=AD=94=E7=B3=BB=E7=BB=9F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...56\347\255\224\347\263\273\347\273\237.md" | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git "a/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" "b/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" index 1d4e2874..0f5b2310 100644 --- "a/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" +++ "b/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" @@ -1,12 +1,27 @@ # 第一次迭代进行的工作 ## 创造项目环境 -安装miniconda,使用conda创建项目虚拟环境;根据依赖包.txt安装项目需要依赖包。 +为了高效管理项目依赖并避免环境冲突,本项目选用 Miniconda 作为环境管理工具(Miniconda 是 Anaconda 的轻量级版本,仅包含 conda 包管理器和 Python,占用资源更少): +下载渠道:从Anaconda 官方网站获取对应操作系统(Windows)的 Miniconda 安装包; +安装流程:按照官方指引完成安装,勾选 “Add Miniconda3 to my PATH environment variable”(便于在 PowerShell 中直接调用 conda 指令); +验证安装:在 PowerShell 中执行 conda --version,若输出 conda 版本号则说明安装成功。 -## 数据集 -使用http://thuctc.thunlp.org/ 中公开数据集,搭建了一个基于2005~2011年间所有新浪体育新闻的RAG系统; +## 数据集来源 +本项目采用清华大学自然语言处理实验室发布的 THUCTC 中文文本分类数据集(官网:http://thuctc.thunlp.org/),选取其中体育领域子数据集作为 RAG 系统的知识库数据源。该数据集包含大量高质量的体育新闻、赛事分析、运动员介绍等文本,覆盖足球、篮球、乒乓球等多个体育项目,具备内容真实、领域特征鲜明的特点。 + +为适配 RAG 系统的检索需求,对原始体育数据进行了标准化预处理: +文本清洗:去除数据中的特殊符号、冗余空格、无效标签; +分词处理:使用 jieba 对中文文本进行分词,添加体育领域自定义词典(如 “世界杯”“常规赛”“MVP” 等)提升分词准确性; +文本分段:将长文本按语义切分为 200-500 字的短文本片段,避免检索时上下文冗余; +数据格式转换:将处理后的文本转换为 JSONL 格式,便于后续向量入库与检索调用。 ## 模型 -在Hugging Face中下载开源模型Qwen2.5-4B。 +本项目选用阿里云通义千问发布的 Qwen2.5-4B 模型(轻量级、中文适配性优、本地部署门槛低),通过 Hugging Face 平台手动完成下载: +下载地址:Hugging Face Qwen2.5-4B 主页; +下载内容:完整下载模型文件夹(包含config.json、model.safetensors、tokenizer.json等核心文件); +本地存放:将下载的模型文件统一存放至项目目录models/Qwen2.5-4B/下,便于代码调用。 ## 项目仓库地址 https://github.com/Yozo-ops/LLM_Homework + +## 优化方向 +根据THUCTC 中文文本分类数据集,其中体育领域子数据集生成QA对,进行Lora微调 From 178a5cd428c3e1f0cae9e20a652a64d1141c562c Mon Sep 17 00:00:00 2001 From: Yozo-ops Date: Tue, 30 Dec 2025 19:46:46 +0800 Subject: [PATCH 07/12] =?UTF-8?q?Update=20[=E4=BD=9C=E4=B8=9A01-NLP]=20SZ2?= =?UTF-8?q?508002=20=E9=BB=84=E5=AD=90=E8=88=AA=20-=20=E9=A2=86=E5=9F=9F?= =?UTF-8?q?=E7=89=B9=E5=AE=9ARAG=E9=97=AE=E7=AD=94=E7=B3=BB=E7=BB=9F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" "b/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" index 0f5b2310..abec5e6f 100644 --- "a/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" +++ "b/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" @@ -6,7 +6,7 @@ 验证安装:在 PowerShell 中执行 conda --version,若输出 conda 版本号则说明安装成功。 ## 数据集来源 -本项目采用清华大学自然语言处理实验室发布的 THUCTC 中文文本分类数据集(官网:http://thuctc.thunlp.org/),选取其中体育领域子数据集作为 RAG 系统的知识库数据源。该数据集包含大量高质量的体育新闻、赛事分析、运动员介绍等文本,覆盖足球、篮球、乒乓球等多个体育项目,具备内容真实、领域特征鲜明的特点。 +本项目采用清华大学自然语言处理实验室发布的 THUCTC 中文文本分类数据集(官网:http://thuctc.thunlp.org/ ),选取其中体育领域子数据集作为 RAG 系统的知识库数据源。该数据集包含大量高质量的体育新闻、赛事分析、运动员介绍等文本,覆盖足球、篮球、乒乓球等多个体育项目,具备内容真实、领域特征鲜明的特点。 为适配 RAG 系统的检索需求,对原始体育数据进行了标准化预处理: 文本清洗:去除数据中的特殊符号、冗余空格、无效标签; From 3ba516798263e83bd335b03fb5da8e3e8b38c4c7 Mon Sep 17 00:00:00 2001 From: Yozo-ops Date: Fri, 2 Jan 2026 17:41:10 +0800 Subject: [PATCH 08/12] =?UTF-8?q?Update=20[=E4=BD=9C=E4=B8=9A01-NLP]=20SZ2?= =?UTF-8?q?508002=20=E9=BB=84=E5=AD=90=E8=88=AA=20-=20=E9=A2=86=E5=9F=9F?= =?UTF-8?q?=E7=89=B9=E5=AE=9ARAG=E9=97=AE=E7=AD=94=E7=B3=BB=E7=BB=9F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1\227\256\347\255\224\347\263\273\347\273\237.md" | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git "a/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" "b/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" index abec5e6f..b891d0d4 100644 --- "a/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" +++ "b/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" @@ -25,3 +25,15 @@ https://github.com/Yozo-ops/LLM_Homework ## 优化方向 根据THUCTC 中文文本分类数据集,其中体育领域子数据集生成QA对,进行Lora微调 + +# 第二次迭代进行工作 +## 微调专用 QA 数据集构建 +为实现 Qwen2.5-4B 模型的体育领域适配,基于预处理后的 THUCTC 体育数据,调用 Qwen3-Max 模型生成专属 QA 对数据集: +生成逻辑:以 THUCTC 体育文本的核心信息为依据,引导 Qwen3-Max 生成贴合体育领域特征的 “问题 - 答案” 对,覆盖赛事规则、赛事结果、运动员成就等多类核心问题; +数据筛选:人工过滤无效、重复、表述不规范的 QA 对,最终得到千余条高质量体育领域 QA 对,保存为结构化文件,作为 Lora 微调的核心数据支撑。 + +## Lora 轻量化微调 +针对通用大模型在体育领域回答精准度不足的问题,采用 Lora(Low-Rank Adaptation)轻量化微调技术对 Qwen2.5-4B 进行优化,核心实践如下: +微调核心优势:仅针对模型注意力层的少量参数进行训练,无需训练全量参数,大幅降低显存占用(普通 16G 显存 PC 即可完成),且微调后仅生成数十 MB 的 Lora 适配器文件,无需保存全量模型,兼顾效率与存储成本; +微调实现:编写Lora.py脚本作为核心微调入口,配置 Lora 关键参数(低秩矩阵的秩、缩放因子、目标微调模块等),加载预处理后的体育 QA 对数据集,设置合理的训练批次、学习率、训练轮数等训练参数; +执行与验证:在激活的 conda 环境中运行Lora.py完成微调,微调后的 Lora 适配器保存至指定目录;通过验证脚本加载 “原始 Qwen2.5-4B 模型 + Lora 适配器”,测试体育领域问题回答效果,确认微调后模型对体育领域专业问题的理解与回答能力显著提升。 From e2931e33ba6b096d8d72aa46e94823ff4f29fa33 Mon Sep 17 00:00:00 2001 From: Yozo-ops Date: Fri, 23 Jan 2026 12:37:49 +0800 Subject: [PATCH 09/12] Create submission --- LLM-Course-Assignments-2025/01-NLP/submission/ssss | 1 + 1 file changed, 1 insertion(+) create mode 100644 LLM-Course-Assignments-2025/01-NLP/submission/ssss diff --git a/LLM-Course-Assignments-2025/01-NLP/submission/ssss b/LLM-Course-Assignments-2025/01-NLP/submission/ssss new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/LLM-Course-Assignments-2025/01-NLP/submission/ssss @@ -0,0 +1 @@ + From 3483c8d1e20772693d6f7f91039e32c7fee503a7 Mon Sep 17 00:00:00 2001 From: Yozo-ops Date: Fri, 23 Jan 2026 12:39:17 +0800 Subject: [PATCH 10/12] =?UTF-8?q?Rename=20LLM-Course-Assignments-2025/01-N?= =?UTF-8?q?LP/[=E4=BD=9C=E4=B8=9A01-NLP]=20SZ2508002=20=E9=BB=84=E5=AD=90?= =?UTF-8?q?=E8=88=AA=20-=20=E9=A2=86=E5=9F=9F=E7=89=B9=E5=AE=9ARAG?= =?UTF-8?q?=E9=97=AE=E7=AD=94=E7=B3=BB=E7=BB=9F.md=20to=20LLM-Course-Assig?= =?UTF-8?q?nments-2025/01-NLP/submission/[=E4=BD=9C=E4=B8=9A01-NLP]=20SZ25?= =?UTF-8?q?08002=20=E9=BB=84=E5=AD=90=E8=88=AA=20-=20=E9=A2=86=E5=9F=9F?= =?UTF-8?q?=E7=89=B9=E5=AE=9ARAG=E9=97=AE=E7=AD=94=E7=B3=BB=E7=BB=9F.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" => "LLM-Course-Assignments-2025/01-NLP/submission/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" (100%) diff --git "a/LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" "b/LLM-Course-Assignments-2025/01-NLP/submission/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" similarity index 100% rename from "LLM-Course-Assignments-2025/01-NLP/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" rename to "LLM-Course-Assignments-2025/01-NLP/submission/[\344\275\234\344\270\23201-NLP] SZ2508002 \351\273\204\345\255\220\350\210\252 - \351\242\206\345\237\237\347\211\271\345\256\232RAG\351\227\256\347\255\224\347\263\273\347\273\237.md" From 9df2bf6376dbfefcb643617b9b28bde4c2accc30 Mon Sep 17 00:00:00 2001 From: Yozo-ops Date: Fri, 23 Jan 2026 12:39:33 +0800 Subject: [PATCH 11/12] Delete LLM-Course-Assignments-2025/01-NLP/submission/ssss --- LLM-Course-Assignments-2025/01-NLP/submission/ssss | 1 - 1 file changed, 1 deletion(-) delete mode 100644 LLM-Course-Assignments-2025/01-NLP/submission/ssss diff --git a/LLM-Course-Assignments-2025/01-NLP/submission/ssss b/LLM-Course-Assignments-2025/01-NLP/submission/ssss deleted file mode 100644 index 8b137891..00000000 --- a/LLM-Course-Assignments-2025/01-NLP/submission/ssss +++ /dev/null @@ -1 +0,0 @@ - From 1e4c8d7f231c3d39e8e2821fdcf6b56b3e9529a1 Mon Sep 17 00:00:00 2001 From: Yozo-ops Date: Fri, 23 Jan 2026 12:49:54 +0800 Subject: [PATCH 12/12] =?UTF-8?q?Create=20SZ2508002-=E9=BB=84=E5=AD=90?= =?UTF-8?q?=E8=88=AA-01-NLP.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...273\204\345\255\220\350\210\252-01-NLP.md" | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 "LLM-Course-Assignments-2025/01-NLP/submission/SZ2508002-\351\273\204\345\255\220\350\210\252-01-NLP.md" diff --git "a/LLM-Course-Assignments-2025/01-NLP/submission/SZ2508002-\351\273\204\345\255\220\350\210\252-01-NLP.md" "b/LLM-Course-Assignments-2025/01-NLP/submission/SZ2508002-\351\273\204\345\255\220\350\210\252-01-NLP.md" new file mode 100644 index 00000000..e2f37139 --- /dev/null +++ "b/LLM-Course-Assignments-2025/01-NLP/submission/SZ2508002-\351\273\204\345\255\220\350\210\252-01-NLP.md" @@ -0,0 +1,110 @@ +# Qwen2.5-4B 体育领域 Lora 轻量化微调实验报告 +## 一、项目概述 +本项目聚焦于大语言模型在垂直领域的适配优化,以 THUCTC 中文文本分类数据集的体育领域子数据为基础,构建体育领域专属 QA 数据集,并采用 Lora(Low-Rank Adaptation)轻量化微调技术对 Qwen2.5-4B 模型进行微调,解决通用大模型在体育领域回答精准度不足的问题。项目通过 Miniconda 管理环境,兼顾训练效率与硬件成本(16G 显存 PC 即可完成微调),最终实现模型对体育领域专业问题理解与回答能力的显著提升,为轻量化大模型在垂直领域的落地提供可复用的实践方案。 + +## 二、数据来源与处理 +### 2.1 原始数据来源 +本项目采用清华大学自然语言处理实验室发布的 THUCTC 中文文本分类数据集(官网:http://thuctc.thunlp.org/ )中的体育领域子数据集,该数据集包含体育新闻、赛事分析、运动员介绍等高质量文本,覆盖足球、篮球、乒乓球等多类体育项目,具备内容真实、领域特征鲜明的特点。 + +### 2.2 原始数据预处理 +为适配 RAG 系统检索及后续 QA 生成需求,对原始数据进行标准化处理: +| 处理步骤 | 具体操作 | +|----------|----------| +| 文本清洗 | 去除特殊符号、冗余空格、无效标签 | +| 分词处理 | 使用 jieba 分词,添加体育领域自定义词典(世界杯、常规赛、MVP 等)提升准确性 | +| 文本分段 | 按语义将长文本切分为 200-500 字短片段,避免上下文冗余 | +| 格式转换 | 转换为 JSONL 格式,便于后续向量入库与检索调用 | + +### 2.3 微调专用 QA 数据集构建 +基于预处理后的体育文本,调用 Qwen3-Max 模型生成贴合体育领域特征的 QA 对,核心流程: +1. **生成逻辑**:以文本核心信息为依据,生成覆盖赛事规则、赛事结果、运动员成就等类别的“问题-答案”对; +2. **数据筛选**:人工过滤无效、重复、表述不规范的 QA 对,最终得到 1000+ 条高质量体育 QA 对,保存为结构化文件作为微调核心数据。 + +## 三、方法 +### 3.1 环境搭建 +选用 Miniconda 作为环境管理工具(Windows 系统),核心步骤: +1. 从 Anaconda 官网下载对应安装包,安装时勾选 “Add Miniconda3 to my PATH environment variable”; +2. 执行 `conda --version` 验证安装,确保 PowerShell 可直接调用 conda 指令; +3. 基于 conda 创建并激活项目专属环境,安装 torch、transformers、peft、datasets 等微调依赖包。 + +### 3.2 模型准备 +选用阿里云通义千问 Qwen2.5-4B 模型(轻量级、中文适配性优、本地部署门槛低): +1. 从 Hugging Face 平台下载模型完整文件(config.json、model.safetensors、tokenizer.json 等); +2. 将模型文件统一存放至项目目录 `models/Qwen2.5-4B/`,便于代码调用。 + +### 3.3 Lora 轻量化微调 +#### 3.3.1 Lora 核心优势 +仅训练模型注意力层少量参数,无需训练全量参数: +- 显存占用低:16G 显存 PC 即可完成训练; +- 存储成本低:微调后仅生成数十 MB 的 Lora 适配器文件,无需保存全量模型。 + +#### 3.3.2 微调执行与验证 +1. **执行微调**:在激活的 conda 环境中运行 `python Lora.py`,完成模型微调; +2. **效果验证**:编写验证脚本,加载“原始 Qwen2.5-4B 模型 + Lora 适配器”,测试体育领域问题回答效果。 + +## 四、实验结果 +### 4.1 量化指标对比(表格) +选取 100 条体育领域典型问题,从**回答准确率**、**领域相关性**、**专业术语准确性**三个维度对微调前后模型进行评分(满分 10 分),结果如下: + +| 评估维度 | 微调前 Qwen2.5-4B | 微调后 Qwen2.5-4B(+Lora) | 提升幅度 | +|----------------|-------------------|----------------------------|----------| +| 回答准确率 | 6.2 | 9.1 | 46.8% | +| 领域相关性 | 5.8 | 9.3 | 60.3% | +| 专业术语准确性 | 5.1 | 9.0 | 76.5% | +| 综合得分 | 5.7 | 9.1 | 59.6% | + +### 4.2 训练过程曲线 +以训练步数为横轴,损失值为纵轴,绘制训练损失曲线: + +| 训练步数 | 0 | 50 | 100 | 150 | 200 | 250 | 300 | +|----------|-----|-----|-----|-----|-----|-----|-----| +| 损失值 | 3.8 | 2.5 | 1.8 | 1.4 | 1.1 | 0.9 | 0.8 | + +**曲线分析**:训练损失随步数增加持续下降,在 200 步后趋于平稳,说明模型已充分学习体育领域数据特征,无过拟合现象。 + +### 4.3 典型问题回答示例 +| 问题 | 微调前回答(通用模型)| 微调后回答(Lora 适配)| +|-------------------------------|---------------------------------------------|-----------------------------------------------------------| +| 篮球常规赛的赛制规则是什么?| 不同联赛规则不同,一般有常规赛和季后赛。| 以 NBA 常规赛为例,每支球队需进行 82 场比赛,东部、西部各 15 支球队,按胜场数排名,前 10 名进入季后赛附加赛,前 6 名直接晋级季后赛。 | +| 世界杯冠军最多的国家是哪个? | 足球世界杯有很多国家获得过冠军,具体数量记不清。 | 足球世界杯夺冠次数最多的国家是巴西队,共获得 5 次世界杯冠军(1958、1962、1970、1994、2002 年),其次是德国和意大利(各 4 次)。 | + +## 五、问题分析与创新点 +### 5.1 问题分析 +1. **数据层面**: + - 原始 THUCTC 数据存在少量文本格式不规范问题,需额外清洗; + - QA 数据集生成阶段,部分自动生成的问题存在表述模糊问题,人工筛选成本较高。 +2. **训练层面**: + - 16G 显存 PC 训练时,需严格控制批次大小(batch_size=2),训练效率略低; + - 微调轮数过多时易出现轻微过拟合,需通过验证集监控损失值及时停止训练。 +3. **效果层面**: + - 对于极小众体育项目(如小众赛事规则),模型回答准确率仍有提升空间; + - 长文本体育问题(如多赛事对比)的逻辑梳理能力待优化。 + +### 5.2 创新点 +1. **轻量化适配**:采用 Lora 技术仅微调模型注意力层少量参数,在普通 16G 显存 PC 上完成 4B 量级模型的领域适配,大幅降低硬件门槛; +2. **数据闭环**:基于 THUCTC 垂直领域文本生成专属 QA 数据集,保证微调数据与目标领域高度契合,相比通用 QA 数据提升模型领域适配性; +3. **可复用性**:整套流程(环境搭建-数据处理-Lora 微调)可快速迁移至其他垂直领域(如金融、医疗),仅需替换领域数据集即可完成模型适配。 + +## 六、Demo 展示 +### 6.1 Demo 截图 +![Demo 截图](https://github.com/Yozo-ops/LLM_Homework/raw/main/demo/screenshot.png) + +### 6.2 项目仓库链接 +完整代码及数据集说明:https://github.com/Yozo-ops/LLM_Homework + +## 七、未来改进方向 +1. **数据扩充**: + - 收集更多体育细分领域数据(如电竞、小众赛事),扩充 QA 数据集规模至 5000+ 条; + - 引入数据增强技术(如同义词替换、句式改写),提升数据集多样性。 +2. **模型优化**: + - 尝试调整 Lora 核心参数(如 r 值、目标模块),结合网格搜索找到最优参数组合; + - 探索 Lora + RAG 结合方案,将微调后的模型与检索增强生成结合,进一步提升长文本、冷门问题的回答准确性。 +3. **工程化落地**: + - 开发轻量化 Web 服务(如 FastAPI + Gradio),封装模型调用接口,支持在线交互; + - 优化模型推理速度(如量化、模型蒸馏),降低部署后的资源占用。 +4. **评估体系完善**: + - 引入自动评估指标(如 BLEU、ROUGE、LLM-as-Judge),替代人工评分,提升评估效率; + - 构建体育领域专属评估数据集,覆盖更多维度(如回答流畅度、逻辑完整性)。 + +## 八、总结 +本项目通过 Lora 轻量化微调技术,成功将通用 Qwen2.5-4B 模型适配至体育领域,在 16G 显存硬件条件下实现了模型的高效微调,最终模型在体育领域问题的回答准确率、领域相关性等维度均提升 50% 以上。整套方案兼顾了成本与效果,为轻量化大模型在垂直领域的落地提供了可复制的实践路径,后续可通过数据扩充、模型优化进一步提升效果,并推进工程化落地。