gzhu-biyesheji/paper/chapters/verification.tex
carry aba990d8b9 docs(paper): 优化论文章节格式与内容结构
对论文各章节进行格式统一和内容结构调整,主要包括:
1. 修复段落换行问题,确保内容连贯性
2. 调整技术章节的公式和代码块排版
3. 统一文献引用格式
4. 优化实现章节的模块描述
5. 增强结论部分的可读性

修改不涉及实质内容变更,主要提升文档规范性和阅读体验
2025-05-30 13:02:43 +08:00

211 lines
11 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

% 第五章:结果验证
\section{结果验证}
本章将对基于文档驱动的自适应编码大模型微调框架的实验结果进行验证和分析,包括实验环境介绍、实验对象介绍、微调过程中资源占用和指标的变化以及微调效果验证等方面,以全面评估本框架的实际效果和性能表现。
\subsection{实验环境介绍}
本实验在以下硬件和软件环境下进行:
\subsubsection{硬件环境}
实验采用的主要硬件配置如下:
\begin{itemize}
\item 笔记本型号Lenovo Legion R7000P 2021H
\item CPUAMD Ryzen 7 5800H
\item GPUNVIDIA GeForce RTX 3060 Laptop GPU6GB显存
\item 内存16GB DDR4
\item 存储2TB NVMe SSD
\end{itemize}
\subsubsection{软件环境}
实验的软件环境配置如下:
\begin{itemize}
\item 操作系统Ubuntu 22.04 LTS通过Windows Subsystem for Linux 2运行
\item Python版本3.10.12
\item 深度学习框架PyTorch 2.1.0+cu121
\item 主要依赖库:
\begin{itemize}
\item unsloth 2025.3.19用于优化LoRA微调
\item transformers 4.36.2(用于模型加载和处理)
\item gradio 5.25.0+用于构建Web界面
\item langchain 0.3+(用于文档处理)
\item tinydb 4.0.0+(用于数据存储)
\item tensorboard 2.19.0(用于训练可视化)
\end{itemize}
\end{itemize}
实验环境的选择充分考虑了资源受限条件下的优化需求。
尽管采用RTX 3060 Laptop GPU仅6GB显存这一消费级显卡本框架仍能高效完成3B参数模型的微调体现了框架出色的资源优化能力。
软件环境选择了最新稳定版本的深度学习工具链如PyTorch 2.1.0+cu121等主要基于以下考虑(1)确保与最新硬件驱动的兼容性;(2)充分利用框架的最新优化特性;(3)提高实验的可复现性和前沿性。
这一配置方案证明了本框架在有限计算资源下实现高效微调的可行性。
\subsection{实验对象介绍}
\subsubsection{基础模型选择}
本实验选择qwen2.5-3B作为基础模型进行微调。
该模型是阿里云开源的新一代大语言模型,具有以下特点:\cite{Yang2024Qwen}
\begin{itemize}
\item 性能表现:在 MMLU、GSM8K、BBH 等权威测试中优于多数同参数级开源模型。
\item 参数规模3.09B参数量非嵌入参数2.77B),在保持较高性能的同时,对计算资源要求相对较低。
\item 上下文窗口支持128K tokens的上下文窗口和8K tokens的生成长度适合处理超长技术文档。
\item 开源许可采用Qwen Research 许可协议,允许学术研究。
\end{itemize}
\subsubsection{数据集生成}
本实验采用DeepSeek V3作为数据集生成模型该模型是深度求索公司开发的新一代大语言模型具有以下特点\cite{Liu2024Deepseek}
\begin{itemize}
\item 性能表现:在 Codeforces 基准测试中DeepSeek V3 取得了 51.6 分的成绩,刷新了该领域的 SOTA 水平。在 LiveCodeBenchPass@1 - COT测试中得分为 40.5,在 LiveCodeBenchPass@1测试中成绩为 37.6,均表现出色。
\item 上下文窗口:在理论上支持 128K tokens 的上下文长度。不过在实际应用中,部分服务商可能会出于硬件或性能优化等考虑,将其限制在 64K tokens。
\item 开源许可采用MIT许可协议允许学术研究。
\end{itemize}
数据集生成模型通过Deepseek ai官方API调用具体的生成参数如下
\begin{itemize}
\item temperature1.0
\item max\_length4096
\end{itemize}
\subsubsection{仓库文档选择}
本实验使用unsloth官方仓库文档\href{https://docs.unsloth.ai/}{https://docs.unsloth.ai/})进行微调。在训练前,大模型并不了解该项目,如图\ref{fig:before_train}所示。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{pic/before_train.png}
\caption{训练前的文档内容示例}
\label{fig:before_train}
\end{figure}
\subsubsection{微调参数配置}
本实验采用LoRALow-Rank Adaptation技术进行参数高效微调主要配置参数如下
\begin{itemize}
\item 量化精度4bit
\item LoRA秩r64控制低秩矩阵的维度
\item LoRA缩放因子alpha16控制LoRA更新的幅度
\item 学习率2e-4采用余弦学习率调度策略
\item 批处理大小每设备1个样本
\item 训练轮次3个epoch
\item 优化器AdamW权重衰减为0.01
\item 梯度累积步数4用于增大有效批处理大小
\item 混合精度训练采用bfloat16精度
\end{itemize}
这些参数配置基于预实验结果和相关研究经验确定,旨在平衡训练效率和模型性能。
\subsection{微调过程中资源占用和指标的变化}
\subsubsection{计算资源占用}
\ref{fig:monitor}展示了模型训练过程中的系统资源占用情况。
在6GB显存的RTX 3060 GPU上QLoRA微调仅占用4.1GB显存这种高效的资源利用率得益于QLoRA的低秩适应技术仅需更新少量参数即可实现模型性能的显著提升充分体现了本框架在资源受限环境下的优化能力。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{pic/monitor.png}
\caption{模型训练过程中的系统资源监控}
\label{fig:monitor}
\end{figure}
\subsubsection{训练指标变化}
图~\ref{fig:tensorboard} 展示了使用TensorBoard对训练过程中的损失、梯度、学习率等指标进行实时监控有助于及时发现训练异常并优化模型参数配置。
% TensorBoard 监控截图
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{pic/tensorboard.png}
\caption{使用TensorBoard实时监控训练指标变化}
\label{fig:tensorboard}
\end{figure}
微调过程中,主要训练指标的变化趋势如图\ref{fig:training_metrics}所示,包括损失值(图\ref{fig:loss_metrics})、梯度范数(图\ref{fig:grad_norm_metrics})和学习率(图\ref{fig:learning_rate_metrics})三个关键指标。
从这些图表中可以观察到以下几个关键特征:
\pgfplotsset{compat=1.18}
\begin{figure}[htbp]
\centering
\begin{subfigure}[b]{0.8\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
width=\textwidth,
height=5cm,
xlabel={训练步数 (Step)},
ylabel={损失值 (Loss)},
xmin=0, xmax=7029,
ymin=0, ymax=2.5,
ymajorgrids=true,
grid style=dashed,
]
\addplot[smooth, thick, blue] table[x=Step, y=loss, col sep=comma] {./figures/training_data.csv};
\end{axis}
\end{tikzpicture}
\caption{损失值变化趋势}
\label{fig:loss_metrics}
\end{subfigure}
\begin{subfigure}[b]{0.8\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
width=\textwidth,
height=5cm,
xlabel={训练步数 (Step)},
ylabel={梯度范数 (Grad Norm)},
xmin=0, xmax=7029,
ymin=0, ymax=1.8,
ymajorgrids=true,
grid style=dashed,
]
\addplot[smooth, thick, red] table[x=Step, y=grad_norm, col sep=comma] {./figures/training_data.csv};
\end{axis}
\end{tikzpicture}
\caption{梯度范数变化趋势}
\label{fig:grad_norm_metrics}
\end{subfigure}
\begin{subfigure}[b]{0.8\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
width=\textwidth,
height=5cm,
xlabel={训练步数 (Step)},
ylabel={学习率 (Learning Rate)},
xmin=0, xmax=7029,
ymin=0, ymax=0.0002,
ymajorgrids=true,
grid style=dashed,
]
\addplot[smooth, thick, green!60!black] table[x=Step, y=learning_rate, col sep=comma] {./figures/training_data.csv};
\end{axis}
\end{tikzpicture}
\caption{学习率变化趋势}
\label{fig:learning_rate_metrics}
\end{subfigure}
\caption{模型微调过程中的训练指标变化趋势}
\label{fig:training_metrics}
\end{figure}
\begin{itemize}
\item \textbf{损失函数Loss}:如图\ref{fig:loss_metrics}所示训练初期损失值从约2.4迅速下降。在约1000步时降至0.5以下随后继续缓慢下降。在大约5000步后损失值稳定在接近于零的水平表明模型在训练集上已经取得了很好的性能基本收敛。
\item \textbf{梯度范数Gradient Norm}:如图\ref{fig:grad_norm_metrics}所示训练初期梯度范数在0.5到1.5之间波动表明参数更新幅度较大。随着训练步数的增加梯度范数逐渐减小并在约4000步后稳定在0.1到0.5之间,这与损失函数的下降趋势一致,表明模型正在趋于收敛,参数更新的步伐减缓。
\item \textbf{学习率Learning Rate}:如图\ref{fig:learning_rate_metrics}所示学习率采用线性衰减策略从初始值约0.0002或2e-4随着训练步数的增加而稳定地线性降低直至训练结束时接近于零。这种策略有助于在训练初期快速探索解空间并在后期精细调整参数以促进模型稳定收敛。
\item \textbf{训练效率}整个微调过程耗时约5.5小时平均每步训练时间约3秒展现了本框架在资源受限环境下的高效性。特别是在训练后期尽管学习率降低模型仍能持续优化损失值稳步下降表明LoRA微调方法的有效性。
\end{itemize}
通过分析训练指标变化可以看出本框架采用的LoRA微调策略在有限计算资源下实现了高效训练损失函数的平稳下降和最终收敛表明模型成功适应了目标文档内容为后续的效果验证奠定了基础。
\subsection{微调效果验证}
经过微调后的模型能够对相关内容做出准确回答,图\ref{fig:after_train}展示了训练后的效果,本框架将通用大语言模型定向优化为具备企业特定代码生成能力的专用模型,在保持模型通用能力的同时,显著提升了其在特定领域的表现,为企业级软件开发的智能化与高效化提供了有力支持。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{pic/after_train.png}
\caption{模型微调后的效果}
\label{fig:after_train}
\end{figure}