Compare commits

...

6 Commits

Author SHA1 Message Date
carry
41c1a2fce4 docs: 优化LaTeX文档内容和格式
- 在main.tex中添加table选项以支持表格高亮
- 精简introduction.tex中的国内外研究现状描述
- 重构technology.tex中的LLM发展历程部分,优化表格格式
2025-04-29 12:49:37 +08:00
carry
1ff958e641 docs: 修正文档中API的大小写错误
修正了verification.tex和requirement.tex中API的大小写错误,确保文档的一致性。
2025-04-28 22:19:15 +08:00
carry
aac8c9d334 docs(implementation): 修正LaTeX文档中代码引用的格式
将`transformers`库的引用格式从反引号改为普通文本,以符合LaTeX文档的排版规范
2025-04-28 22:17:06 +08:00
carry
e4919ecf69 docs(implementation): 修正训练参数和技术描述的格式
统一训练参数和技术描述中的格式,使用 `\allowbreak` 确保 LaTeX 编译时正确换行,并修正部分技术名词的大小写和拼写,以提高文档的可读性和准确性。
2025-04-28 22:12:57 +08:00
carry
2cf8b1b6fd docs: 修复实现章节中代码的格式错误
将实现章节中的代码路径从普通文本格式修改为\texttt{}格式,以提高文档的可读性和一致性
2025-04-28 21:37:52 +08:00
carry
55784b3775 docs: 更新实验验证章节并添加相关图表
更新了实验验证章节的内容,包括硬件配置、LoRA微调参数、计算资源占用和训练指标变化的详细描述。新增了三张图表(monitor.png、training_metrics.png、after_train.png)以直观展示训练过程中的系统资源占用、训练指标变化和微调后的效果。这些修改增强了实验部分的完整性和可读性。
2025-04-28 21:00:57 +08:00
11 changed files with 1128 additions and 58 deletions

View File

@ -20,7 +20,7 @@
\subsection{数据库设计与实现}
\subsubsection{双数据库架构设计SQLite + TinyDB}
本系统创新性地采用SQLite与TinyDB相结合的双数据库架构以应对不同类型数据的管理需求。对于API提供者信息等结构化数据系统选用SQLite作为核心数据库并通过SQLModel这一ORM工具实现面向对象的数据操作其内置的线程锁机制有效保障了多线程环境下的数据并发安全。SQLite数据库的实体文件持久化存储于workdir/db/db.sqlite路径确保数据的可追溯性。
本系统创新性地采用SQLite与TinyDB相结合的双数据库架构以应对不同类型数据的管理需求。对于API提供者信息等结构化数据系统选用SQLite作为核心数据库并通过SQLModel这一ORM工具实现面向对象的数据操作其内置的线程锁机制有效保障了多线程环境下的数据并发安全。SQLite数据库的实体文件持久化存储于\texttt{workdir/db/db.sqlite}路径,确保数据的可追溯性。
针对数据集信息包含文档元数据及问答对集合和提示词模板等半结构化数据的管理系统则采用轻量级文档数据库TinyDB。数据集采用内存存储与JSON文件持久化相结合的混合模式而提示词模板则直接通过JSON文件进行存储。TinyDB的无模式Schema-free特性为数据模型的灵活扩展提供了便利其对原生JSON格式的处理能力显著提升了数据序列化与反序列化的效率。这种双数据库协同架构在保障事务完整性的同时充分兼顾了半结构化数据处理的敏捷性需求实现了数据存储方案的最优化配置。
\subsubsection{据模型定义与存储方案}
@ -35,13 +35,13 @@
\subsection{语料生成与处理技术}
\subsubsection{Markdown文档解析}
该解析器采用树形结构组织Markdown文档内容核心是通过栈结构维护标题层级关系。当遇到\#号开头的标题行时,解析器会根据\#号数量确定当前标题的层级,并通过栈结构维护父子关系。如果遇到比栈顶元素层级低的标题,会不断弹出栈顶元素直到找到合适的父节点。对于代码块内容,解析器会特殊处理以```或\textasciitilde{}\textasciitilde{}\textasciitilde{}开头的行将其间的所有内容视为原始文本直接附加到当前节点不进行任何解析。这种处理方式保证了代码块内的特殊字符不会被误解析为Markdown语法。文档内容的组织采用递归遍历方式。process\_markdown\_file函数会先构建完整的文档树然后通过traverse函数递归遍历所有节点。对于叶子节点(没有子节点的节点),会将从根节点到该节点的所有标题用``-\textgreater{}''连接并与节点内容组合输出形成完整的上下文信息。解析器还提供了print\_tree函数用于可视化文档结构可以清晰展示各层级标题的嵌套关系和内容分布。这种树形结构表示法特别适合处理具有复杂层级关系的长文档能够准确反映文档的原始组织结构。
该解析器采用树形结构组织Markdown文档内容核心是通过栈结构维护标题层级关系。当遇到\#号开头的标题行时,解析器会根据\#号数量确定当前标题的层级,并通过栈结构维护父子关系。如果遇到比栈顶元素层级低的标题,会不断弹出栈顶元素直到找到合适的父节点。对于代码块内容,解析器会特殊处理以```或\textasciitilde{}\textasciitilde{}\textasciitilde{}开头的行将其间的所有内容视为原始文本直接附加到当前节点不进行任何解析。这种处理方式保证了代码块内的特殊字符不会被误解析为Markdown语法。文档内容的组织采用递归遍历方式。\texttt{process\_markdown\_fil}函数会先构建完整的文档树,然后通过\texttt{traverse}函数递归遍历所有节点。对于叶子节点(没有子节点的节点),会将从根节点到该节点的所有标题用``-\textgreater{}''连接,并与节点内容组合输出,形成完整的上下文信息。解析器还提供了\texttt{print\_tree}函数用于可视化文档结构,可以清晰展示各层级标题的嵌套关系和内容分布。这种树形结构表示法特别适合处理具有复杂层级关系的长文档,能够准确反映文档的原始组织结构。
\subsubsection{prompt模板套用和提示词格式引导}
通过PromptTemplate类构建动态提示词模板前端界面支持选择预存模板并自动提取变量生成可编辑表格实现提示词参数化采用提示词追加JSON格式要求和API强制返回结构的双重保障机制确保输出结构化支持多轮生成并记录详细耗时和token使用情况同时具备异常处理能力通过严格的数据验证流程将响应解析映射到数据模型确保数据质量特别实现了文档切片与模板变量的智能组合有效支持从长文档生成结构化QA数据集形成了一套完整的提示词模板应用与数据集生成解决方案。
\subsubsection{OpenAI API的协程并发语料生成}
本系统的OpenAI API协程并发语料生成模块采用异步IO架构实现高并发处理其核心逻辑体现在 reasoning.py 中的 call\_openai\_api 方法。该方法通过实例化 openai.AsyncOpenAI 异步客户端支持多轮次rounds参数连续对话请求自动解析JSON格式响应并记录完整的调用元数据。在并发控制方面基于Python原生asyncio事件循环实现非阻塞式请求处理通过await关键字异步等待API响应这种设计理论上可扩展为使用asyncio.gather实现并行请求批处理。数据流设计采用 dataset\_generation.py 中定义的 LLMRequest 请求对象封装输入参数,生成 LLMResponse 响应列表。错误处理机制采用全异常捕获策略在发生API超时或格式错误时保留错误上下文和response\_id追踪链同时维护包含耗时统计精确到毫秒、prompt/completion tokens使用量及总资源消耗的性能监控体系。该模块通过 dataset\_generate\_page.py 集成到前端生成流程实现文档切片处理、可配置并发参数当前UI隐藏和实时进度反馈的完整工作流。
本系统的OpenAI API协程并发语料生成模块采用异步IO架构实现高并发处理其核心逻辑体现在 \texttt{reasoning.py} 中的 \texttt{call\_openai\_api} 方法。该方法通过实例化 \texttt{openai.AsyncOpenAI} 异步客户端支持多轮次rounds参数连续对话请求自动解析JSON格式响应并记录完整的调用元数据。在并发控制方面基于Python原生\texttt{asyncio}事件循环实现非阻塞式请求处理通过await关键字异步等待API响应这种设计理论上可扩展为使用\texttt{asyncio.gather}实现并行请求批处理。数据流设计采用 \texttt{dataset\_generation.py} 中定义的 \texttt{LLMRequest} 请求对象封装输入参数,生成 \texttt{LLMResponse} 响应列表。错误处理机制采用全异常捕获策略在发生API超时或格式错误时保留错误上下文和\texttt{response\_id}追踪链同时维护包含耗时统计精确到毫秒、prompt/completion tokens使用量及总资源消耗的性能监控体系。该模块通过 \texttt{dataset\_generate\_page.py} 集成到前端生成流程实现文档切片处理、可配置并发参数当前UI隐藏和实时进度反馈的完整工作流。
\subsubsection{json格式校验、反序列化和持久化}
本系统采用三层架构实现JSON数据处理全流程管理在数据输入层通过动态Schema绑定技术结合大语言模型的格式约束参数构建双向校验机制确保原始数据符合预定义结构规范在数据处理层设计基于异常传播模型的三级解析体系通过语法验证、语义补全和类型强转实现安全反序列化采用领域驱动设计模式将原始JSON映射为业务对象在数据存储层运用分层持久化策略通过内存序列化缓存、文档数据库中间存储和文件系统冷备份三级存储机制实现数据生命周期管理。系统通过管道过滤器模式串联各处理模块建立数据校验→结构转换→持久存储的完整处理链路各组件间通过标准接口解耦形成高内聚低耦合的可扩展架构有效提升复杂JSON数据处理的可靠性和可维护性。
@ -63,11 +63,11 @@
Datasets库构建高效数据管道。将原始Python列表转换为内存映射格式的HFDataset对象该设计显著提升了大规模数据的加载效率。通过map操作实现批量化数据处理配合多进程并行机制在保证数据转换一致性的同时实现了预处理速度与内存占用的优化平衡。这种工业化数据处理流程的确立为后续高频次的模型训练迭代提供了可靠的基础设施支持。
\subsubsection{训练流程实现与配置}
为了高效且便捷地进行大规模语言模型的监督式微调本项目选用了一系列成熟且广泛应用的开源框架核心依赖于Hugging Face的`transformers`库,该库提供了丰富的预训练模型、分词器以及用于模型训练的基础设施。在此基础上,结合使用了`trl`Transformer Reinforcement Learning特别是其提供的监督式微调训练器SFTTrainer。该训练器是专门为简化监督式微调任务而设计的它在`transformers`的训练接口之上进行了封装和优化使得研究者能够更专注于数据准备和模型配置而无需处理底层复杂的训练循环逻辑极大地提高了开发效率。这种框架组合提供了强大的功能性和灵活性能够支持复杂模型的加载、PEFT技术的应用以及多样化的训练策略。
为了高效且便捷地进行大规模语言模型的监督式微调本项目选用了一系列成熟且广泛应用的开源框架核心依赖于Hugging Face的transformers库该库提供了丰富的预训练模型、分词器以及用于模型训练的基础设施。在此基础上结合使用了trlTransformer Reinforcement Learning特别是其提供的监督式微调训练器SFTTrainer。该训练器是专门为简化监督式微调任务而设计的它在`transformers`的训练接口之上进行了封装和优化使得研究者能够更专注于数据准备和模型配置而无需处理底层复杂的训练循环逻辑极大地提高了开发效率。这种框架组合提供了强大的功能性和灵活性能够支持复杂模型的加载、PEFT技术的应用以及多样化的训练策略。
模型训练的效果很大程度上取决于训练参数的合理设置。在本项目中通过配置一系列关键参数来控制训练过程的行为这些参数包括但不限于学习率learning\_rate它决定了模型在每次参数更新时的步长每个设备的训练批次大小per\_device\_train\_batch\_size影响显存占用和梯度更新的稳定性梯度累积步数gradient accumulation steps通过累积多个小批次的梯度来模拟使用更大的批次进行训练训练的总步数或总轮数max\_steps / epoch定义了整个训练过程的长度学习率调度器类型lr\_scheduler\_type控制学习率随训练进程的变化策略权重衰减weight decay作为一种正则化手段有助于防止模型过拟合以及随机种子seed用于确保训练结果的可复现性。对这些参数的细致调整是获得高性能模型的关键环节。
模型训练的效果很大程度上取决于训练参数的合理设置。在本项目中通过配置一系列关键参数来控制训练过程的行为这些参数包括但不限于学习率learning\allowbreak\_rate它决定了模型在每次参数更新时的步长每个设备的训练批次大小per\allowbreak\_device\allowbreak\_train\allowbreak\_batch\allowbreak\_size影响显存占用和梯度更新的稳定性梯度累积步数gradient\allowbreak\_accumulation\allowbreak\_steps通过累积多个小批次的梯度来模拟使用更大的批次进行训练训练的总步数或总轮数max\_steps / epoch定义了整个训练过程的长度学习率调度器类型lr\allowbreak\_scheduler\allowbreak\_type控制学习率随训练进程的变化策略权重衰减weight\allowbreak\_decay作为一种正则化手段有助于防止模型过拟合以及随机种子seed用于确保训练结果的可复现性。对这些参数的细致调整是获得高性能模型的关键环节。
训练大型语言模型对计算资源要求极高因此采用了多种优化技术来提升训练效率并降低资源消耗。首先是混合精度训练mixed precision training利用半精度浮点数FP16或BF16进行计算和存储相比于传统的全精度FP32可以显著减少显存占用并加速计算同时通过配合少数全精度参数可以保证训练的稳定性和模型的精度本项目会根据硬件支持情况自动选择合适的半精度类型。其次在优化器选择上采用了诸如AdamW的8位量化版本这种优化器能够大幅度减少优化器状态所需的显存使得在相同硬件条件下可以训练更大的模型或使用更大的批次大小。此外还采用了梯度检查点gradient checkpointing技术这项技术通过在反向传播时重新计算前向传播中的一些中间激活值来显著降低显存峰值占用尤其在使用优化实现时能更高效地平衡计算量和显存消耗。
训练大型语言模型对计算资源要求极高因此采用了多种优化技术来提升训练效率并降低资源消耗。首先是混合精度训练mixed precision training利用半精度浮点数fp16或bf16进行计算和存储相比于传统的全精度FP32可以显著减少显存占用并加速计算同时通过配合少数全精度参数可以保证训练的稳定性和模型的精度本项目会根据硬件支持情况自动选择合适的半精度类型。其次在优化器选择上采用了诸如adamw\_8bit的8位量化版本这种优化器能够大幅度减少优化器状态所需的显存使得在相同硬件条件下可以训练更大的模型或使用更大的批次大小。此外还采用了梯度检查点use\_gradient\_checkpointing技术这项技术通过在反向传播时重新计算前向传播中的一些中间激活值来显著降低显存峰值占用尤其在使用优化实现时能更高效地平衡计算量和显存消耗。
在将准备好的训练数据输入模型之前需要一个数据整理器Data Collator来处理一个批次内的样本。特别是在处理变长序列时数据整理器的作用至关重要。本项目使用了针对序列设计的整理器负责将批次内长度不一的文本序列进行填充padding使其达到批次内的最大长度或预设的最大长度从而能够被模型以张量的形式统一处理。同时数据整理器还会生成相应的注意力掩码attention mask告知模型哪些部分是真实的序列内容确保模型不会在填充位置进行不必要的计算或注意力分配。对于监督式微调任务它还需要协助处理标签的准备配合生成适当的损失掩码loss mask确保损失计算仅发生在目标响应的token上忽略输入提示部分的损失。

View File

@ -11,36 +11,28 @@
\subsection{国内外研究现状}
\subsubsection{大语言模型微调研究现状}
国内外在大语言模型微调领域的研究正经历快速发展。在国内研究取得了显著进展例如智源研究院和TeleAI联合开发的“悟道·天鹰”系列模型其中包括世界上第一个低碳、密集参数的万亿参数语言模型。520亿参数版本的开源和核心技术细节的分享极大地惠及了国内人工智能社区。这些模型在某些中英文基准测试中表现出竞争力甚至超越了国际模型如Llama3-70B和GPT-4。为解决“幻觉”问题智源研究院还开发了BGE系列通用语义向量模型。BGE利用检索增强生成RAG技术通过允许大模型访问外部知识来提高其准确性。BGE系列自2023年以来已经过多次迭代在中英文检索任务中取得了领先成果并被集成到主要的人工智能开发框架和云服务平台中
大语言模型微调研究在国内外均呈现快速发展态势。在国内智源研究院与TeleAI联合开发的"悟道·天鹰"系列模型代表了重要进展其520亿参数版本的开源显著促进了国内AI社区发展。这些模型在部分中英文基准测试中表现出与Llama3-70B和GPT-4相当甚至更优的性能。为解决"幻觉"问题智源研究院开发的BGE系列向量模型通过检索增强生成RAG技术有效提升了模型准确性
国内外一个显著的趋势是越来越关注小型语言模型SLM。SLM在训练成本和计算资源需求方面具有优势。研究表明在特定领域经过微调的SLM甚至可以超越更大的通用模型。这对于资源有限的机构和企业尤为重要。清华大学强调了发展小型模型对于中国在全球人工智能领域保持竞争优势的战略重要性
国内外研究均呈现出对小型语言模型SLM的高度关注。SLM在计算资源需求和训练成本方面具有明显优势表明经过领域特定微调的SLM在特定任务上可超越更大的通用模型。清华大学、北京大学和中国科学院等机构在LLM研究中发挥重要作用其应用范围从古籍数字化到医学研究等多个领域
在学术界,清华大学、北京大学、中国科学院等国内顶尖机构积极参与大语言模型的研究和开发。他们的贡献涵盖从核心开发到探索在古籍数字化和医学研究等领域的应用
国际研究重点关注长输出大语言模型及其生成连贯长文本的能力。研究人员广泛探索了参数知识适应如DAPT、IT、PL和模型编辑和半参数知识适应如RAG和基于Agent的系统等技术以在保留通用知识的同时提高特定任务性能。研究发现即使少量监督微调数据也能有效激活预训练模型中的知识
在国际上大语言模型微调研究也在快速进展重点关注长输出大语言模型Long-Output LLM等领域。这项研究旨在提高模型生成连贯、高质量长文本的能力这对于小说写作和复杂推理等任务至关重要。像Suri和LongWriter-6k这样的数据集以及新的评估基准正在开发中以支持这一方向。小型语言模型SLM的开发和应用在国际上也受到高度关注这是由对计算成本更低、效率更高的模型的需求驱动的
尽管取得进展,微调研究仍面临诸多挑战。国内主要挑战包括模型创新不足、高质量训练数据稀缺以及"幻觉"问题限制了模型在高精度应用中的可靠性。国际上长输出LLM面临高质量长序列数据缺乏和连贯性维持困难等问题同时大模型的高计算成本也推动了对更高效模型的需求
国际研究人员广泛探索了各种LLM适应技术包括参数知识适应例如DAPT、IT、PL和模型编辑和半参数知识适应例如RAG和基于Agent的系统。目标是在保留通用知识的同时提高模型在特定任务上的性能。研究还侧重于优化微调策略研究结果表明即使少量监督微调数据也能有效激活预训练模型中的知识用于问答等任务。新的微调策略如自适应对比学习正在被开发以改善LLM中的知识表示和诚实性。遵循指令仍然是一个关键研究领域研究如何使LLM更好地理解和执行复杂指令。机械可解释性技术例如电路分析被用于理解微调如何改变模型行为。此外联合微调正受到关注以解决数据隐私问题。
尽管取得了进展,国内外研究都面临挑战。在国内,存在对人工智能模型质量而非数量的担忧,许多模型是对现有开源模型的重新开发,缺乏核心技术创新。高质量训练数据的稀缺和数据产业的不发达也构成了重大障碍。“幻觉”问题仍然是一个主要挑战,限制了大模型在需要高精度应用中的可靠性。
在国际上长输出LLM面临的挑战包括缺乏高质量的长序列输出数据以及在 extended contexts 中保持连贯性的难度。评估长文本生成质量也很复杂。对于遵循指令,理解否定和抵御对抗性攻击等问题仍然存在。训练和部署大模型的高计算成本驱动了对更小、更高效模型的需求,这带来了自身在保持性能方面的挑战。
中国的新兴趋势和未来方向包括基于大模型的具身智能智源研究院在这一领域处于领先地位。提示工程和认知工程也越来越重要旨在利用人工智能模型学习人类认知过程。检索增强生成RAG技术是另一个重要趋势智源研究院的BGE模型展示了通过使用外部知识提高模型性能的有效性。
在国际上通过量化和剪枝等技术提高LLM的效率仍然是一个关键趋势。增强LLM的可解释性也是一个重要焦点。更复杂、更全面的基准测试包括针对长输出生成的基准正在持续开发中。探索Transformer之外的新模型架构和训练范式是另一个重要的未来方向。
未来研究趋势包括基于大模型的具身智能提示工程和认知工程的深化应用检索增强生成技术的进一步发展通过量化和剪枝提高LLM效率增强模型可解释性以及探索Transformer之外的新型模型架构和训练范式。
\subsubsection{微调后大语言模型在2B领域的应用现状}
微调后大语言模型在2B领域的应用在中国和国际上都在快速发展。在国内虽然公开研究可能少于技术报告或商业案例但可以识别出几个应用领域。在客户服务领域企业正在探索微调LLM以创建更智能、更像人类的客户服务机器人旨在提高客户满意度和运营效率。这些机器人可以处理复杂查询提供准确答案甚至进行一定程度的情感互动。内容生成是微调LLM的另一个应用领域用于撰写营销文案、产品描述和新闻稿。通过对行业特定或公司数据进行微调模型可以生成更符合品牌声音和专业标准的内容。北京大学在古籍数字化和理解方面探索LLM代表了在特定2B领域的独特应用。智源研究院的Emu3多模态模型也具有2B应用的潜力例如为电子商务生成带有图片的商品描述或在教育和培训中基于图片理解用户查询。总的来说微调LLM在中国2B领域的应用尚处于早期阶段但显示出巨大潜力
微调后大语言模型在2B领域的应用正在国内外快速发展。在国内企业主要在客户服务领域探索微调LLM创建智能客服机器人以提高客户满意度和运营效率。内容生成是另一重要应用通过对行业特定数据进行微调模型可生成符合品牌风格的营销文案和产品描述。北京大学在古籍数字化领域的探索和智源研究院的Emu3多模态模型也展示了在特定2B领域的应用潜力。总体而言微调LLM在中国2B领域应用尚处早期阶段但潜力巨大。
在国际上微调后大语言模型在2B领域的应用更为成熟和广泛。在客户服务领域各种规模的公司都使用微调LLM构建智能客户支持系统提供24/7、多语言的帮助。这些系统可以处理各种客户咨询解决常见问题并将复杂问题上报给人工客服从而提高效率和服务质量。内容生成是另一个主要应用领域微调LLM被广泛应用于营销、广告和媒体行业以快速生成各种类型的文本内容如社交媒体帖子、博客文章和广告文案节省时间和资源。金融机构和咨询公司也利用微调LLM协助撰写行业和分析报告增强其专业性和深度。值得注意的是LLM在数据标注和合成方面的应用对于许多需要大量高质量标注数据的2B应用至关重要。通过微调LLM以理解特定的标注指南可以显著提高数据标注效率和一致性加速AI应用的开发总而言之,微调后大语言模型已广泛应用于国际2B领域并不断扩展到更多行业和业务流程。
国际上微调后大语言模型在2B领域应用更为成熟和广泛。客户服务领域的智能支持系统能提供全天候多语言帮助处理各类咨询并将复杂问题上报人工客服。内容生成方面微调LLM被广泛应用于营销、广告和媒体行业快速生成各类文本内容。金融机构和咨询公司利用微调LLM协助撰写专业分析报告。此外LLM在数据标注和合成方面的应用对需要大量高质量标注数据的2B应用至关重要显著提高了数据标注效率和一致性。微调后大语言模型已广泛应用于国际2B领域并不断扩展到更多行业和业务流程。
\subsubsection{AI辅助编码研究现状}
AI辅助编码的研究和应用在中国尚处于起步阶段。虽然一些大型科技公司和研究机构已开始关注这一领域并推出了内部或限量使用的工具但像GitHub Copilot这样具有广泛影响力的AI编码助手仍然相对稀少。可以推断国内研究主要集中在使用机器学习和自然语言处理技术帮助开发者提高编码效率、减少错误以及学习新的编程语言或框架。这可能包括代码自动补全、语法错误检查、代码片段推荐以及基于自然语言描述生成代码等功能。然而由于缺乏直接相关的公开研究信息国内AI辅助编码工具的具体功能、性能以及对软件开发流程的影响仍需进一步调查和分析。尽管如此随着中国软件产业的快速发展和对开发效率需求的日益增长AI辅助编码在国内具有广阔的应用前景。
AI辅助编码的研究和应用在中国尚处于起步阶段。虽然一些大型科技公司和研究机构已开始关注这一领域并推出了内部或限量使用的工具但像GitHub Copilot这样具有广泛影响力的AI编码助手仍然相对稀少。可以推断国内研究主要集中在使用机器学习和自然语言处理技术帮助开发者提高编码效率、减少错误以及学习新的编程语言或框架。这可能包括代码自动补全、语法错误检查、代码片段推荐以及基于自然语言描述生成代码等功能。然而由于缺乏直接相关的公开研究信息国内AI辅助编码工具的具体功能、性能以及对软件开发流程的影响仍需进一步调查和分析。尽管如此随着中国软件产业的发展和对开发效率需求的日益增长AI辅助编码在国内具有广阔的应用前景。
在国际上AI辅助编码的研究和应用已取得了显著进展。GitHub Copilot、Tabnine、IntelliCode等AI编码工具被开发者广泛使用。这些工具通常在大规模代码语料库上进行训练能够提供智能代码补全、错误检测、代码建议和代码生成。研究表明这些工具可以显著提高开发者的编码速度和效率减少代码错误并帮助开发者更好地理解和使用各种编程语言和框架。国际研究着重于进一步提升AI编码工具的智能化水平例如使其能够理解更复杂的代码逻辑更好地处理上下文信息生成更符合开发者意图的代码以及与各种开发环境和工作流程更深入地集成。此外还在研究AI编码工具对软件开发流程、代码质量以及开发者学习曲线的影响。总的来说AI辅助编码在国际上已成为一个成熟且持续发展的研究领域正在深刻改变软件开发模式。
\subsubsection{提示工程研究现状}
提示工程是一门新兴技术,随着大语言模型的普及在中国受到越来越多的关注。上海交通大学的研究人员已经认识到提示工程在未来人工智能应用中的重要性。可以推断,国内的研究和实践主要集中在探索如何设计更有效、更精准的自然语言提示来引导大语言模型生成期望的输出。这可能包括研究不同的提示技巧,例如使用清晰具体的指令、提供相关的上下文信息以及利用少量样本提示。一些国内开发者和企业也开始在实际场景中应用提示工程,例如优化提示以提高智能客服系统的响应质量,增强内容生成的连贯性和相关性。然而,与国际研究相比,中国提示工程方面的系统性研究和理论框架可能仍处于早期发展阶段。随着大语言模型技术的不断进步及其在中国应用范围的扩大,提示工程有望成为一个越来越重要的研究和实践领域。
提示工程是一门新兴技术,随着大语言模型的普及在中国受到越来越多的关注。上海交通大学的研究人员已经认识到提示工程在未来人工智能应用中的重要性。可以推断,国内的研究和实践主要集中在探索如何设计更有效、更精准的自然语言提示来引导大语言模型生成期望的输出。这可能包括研究不同的提示技巧,例如使用清晰具体的指令、提供相关的上下文信息以及利用少量样本提示。一些国内开发者和企业也开始在实际场景中应用提示工程,例如优化提示以提高智能客服系统的响应质量,增强内容生成的连贯性和相关性。然而,与国际研究相比,中国提示工程方面的系统性研究和理论框架可能仍处于早期发展阶段。随着大语言模型技术的不断进步及其在中国应用范围的扩大,提示工程有望成为一个越来越重要的研究和实践领域。
在国际上,提示工程已成为一个热门研究领域。研究人员广泛探索了各种提示技巧和策略,例如零样本提示、少量样本提示和思维链提示,并研究了它们对大语言模型输出质量的影响。同时,出现了多个提示工程框架和工具,旨在帮助用户更有效地设计和管理提示。国际研究还侧重于理解为什么某些提示能产生更好的结果以及如何自动生成或优化提示。此外,还在进行一些关于提示压缩的研究以提高效率。总的来说,国际上在提示工程方面的研究已经形成一定的体系,并正在持续发展和完善,为更好地利用大语言模型提供了重要的理论基础和实践指导。

View File

@ -18,7 +18,7 @@
\subsubsection{数据持久化功能}
为了确保系统的稳定性、可配置性以及训练过程的可追溯和模型的可复用,本框架需要实现全面的数据持久化功能。这主要包括配置信息的持久化、训练与评估数据集的持久化以及训练后模型的持久化。针对不同的数据特性,将采用混合存储策略,利用关系型数据库存储结构化的配置参数和元数据,例如api配置信息。同时非结构化或半结构化的数据例如生成的训练语料、经过处理的技术文档内容将采用文档型数据库或文件存储的方式进行持久化以便于灵活存储和快速读取。同时模型需要支持多种持久化方式例如单独导出Lora适配器、导出gguf格式模型、导出量化后的模型等。通过有效的数据持久化机制可以方便地加载历史配置以复现实验、管理和版本控制不同的数据集、以及存储和调用微调后的模型从而提升整个框架的可用性和效率。
为了确保系统的稳定性、可配置性以及训练过程的可追溯和模型的可复用,本框架需要实现全面的数据持久化功能。这主要包括配置信息的持久化、训练与评估数据集的持久化以及训练后模型的持久化。针对不同的数据特性,将采用混合存储策略,利用关系型数据库存储结构化的配置参数和元数据,例如API配置信息。同时非结构化或半结构化的数据例如生成的训练语料、经过处理的技术文档内容将采用文档型数据库或文件存储的方式进行持久化以便于灵活存储和快速读取。同时模型需要支持多种持久化方式例如单独导出Lora适配器、导出gguf格式模型、导出量化后的模型等。通过有效的数据持久化机制可以方便地加载历史配置以复现实验、管理和版本控制不同的数据集、以及存储和调用微调后的模型从而提升整个框架的可用性和效率。
\subsubsection{前端展示功能}

View File

@ -6,39 +6,51 @@
\subsubsection{LLM 的起源、发展历程和关键里程碑事件}
大型语言模型LLM作为一种重要的人工智能形式其核心目标在于理解、生成并与人类语言进行交互。这些模型通过在海量数据集上进行训练使其能够应对广泛领域的问题包括科学、技术、艺术和文化等从而成为信息检索、内容创作和自然语言理解的关键工具。LLM 的构建基于机器学习技术,特别是 Transformer 模型。Transformer 模型模仿人脑的神经元网络旨在识别数据中的模式并从中学习。LLM 对大规模文本数据的依赖使其能够捕捉语言的复杂模式、语法规则和语义关系。
大型语言模型LLM是一种能够理解、生成并与人类语言交互的人工智能技术。这些模型通过在海量数据集上训练能够应对科学、技术、艺术和文化等广泛领域的问题成为信息检索、内容创作和自然语言理解的关键工具。LLM 主要基于 Transformer 架构,通过处理大规模文本数据来捕捉语言的复杂模式、语法规则和语义关系。
LLM 的历史可以追溯到 19 世纪后期。1883 年,法国语言学家米歇尔·布雷亚尔对语言结构及词语间关系进行了探讨,其工作为 Java 和 Python 等编程语言奠定了基础并改进了计算机理解人类语言的方式进而简化了人机通信。二战后随着人们对基于自然语言处理NLP系统的兴趣日益浓厚LLM 模型的发展得以延续。NLP 是一种使计算机能够理解、解释和创建人类语言的人工智能技术。这种兴趣的驱动力源于对高效语言翻译的需求以促进国际交流和贸易。20 世纪 60 年代,麻省理工学院的科学家约瑟夫·魏泽鲍姆创建了 ELIZA这被认为是第一个使用 NLP 的程序。该程序能够根据用户输入的关键词给出预先确定的响应。随着时间的推移,经过训练的 LLM 能够处理更复杂的数据,尤其是在 20 世纪 90 年代计算机性能显著提升之后
自然语言处理NLP的发展为 LLM 奠定了基础。1966 年,约瑟夫·魏泽鲍姆创建的 ELIZA 被认为是第一个使用 NLP 的程序,它能根据用户输入的关键词给出预设响应。随着计算机性能的提升,特别是在 20 世纪 90 年代NLP 技术得到了显著发展
词语表示方式是 LLM 工作方式中的一个重要环节。传统的机器学习方法使用数字表格表示词语但这种方法的局限性在于无法识别词语之间的关系。词嵌入技术通过使用神经网络模型在海量文本数据上训练解决了这一问题。训练过程调整嵌入使模型能够根据上下文预测词语确保出现在相似上下文中的词语具有相似的嵌入。ChatGPT 及类似的 GPT 模型采用自注意力机制来提升理解和响应生成能力,该机制帮助模型聚焦于输入中的相关部分,并评估每个词语在上下文中的重要性。这些模型最初在大量文本数据上以无监督方式进行预训练,以学习语言模式、上下文和细微差别。在此预训练阶段,模型通过考虑前文词语来预测句子中的下一个词语
词语表示方式的演进是 LLM 发展的关键环节。传统机器学习方法使用数字表格表示词语,难以捕捉词语间关系。词嵌入技术通过神经网络模型训练解决了这一问题,使模型能够根据上下文理解词语含义。现代 LLM 采用自注意力机制,能够聚焦输入中的相关部分,评估每个词语在上下文中的重要性,从而提升理解和生成能力
2017 年Transformer 模型的引入标志着 LLM 发展的一个重要转折点。基于自注意力机制的 Transformer 架构能有效处理长序列数据并实现并行计算,为训练更大规模的语言模型铺平了道路。2018 年,谷歌发布了 BERTBidirectional Encoder Representations from Transformers这是一个早期且颇具影响力的 LLM在自然语言理解任务中取得了显著进展。同年OpenAI 发布了 GPT-1Generative Pre-trained Transformer展示了使用 Transformer 架构生成连贯文本的能力。
2017 年 Transformer 模型的引入是 LLM 发展的重要转折点。基于自注意力机制的 Transformer 架构能有效处理长序列数据并实现并行计算,为大规模语言模型的训练铺平了道路。2018 年,谷歌发布了 BERT在自然语言理解任务中取得显著进展同年OpenAI 发布了 GPT-1展示了生成连贯文本的能力。
随后的几年里LLM 的规模和能力持续增长。2019 年OpenAI 发布了 GPT-2其生成文本的说服力更强引发了关于其潜在恶意使用的讨论。2020 年OpenAI 推出了拥有 1750 亿参数的 GPT-3在语言理解和生成方面达到了前所未有的水平并成为 ChatGPT 的基础模型。2022 年 11 月OpenAI 发布了面向消费者的基于浏览器的聊天机器人 ChatGPT迅速引起了公众的广泛关注。2023 年OpenAI 发布了 GPT-4该模型在准确性方面有所提升,并具备了多模态能力。除 OpenAI 的模型外,其他机构也开发了诸多主流 LLM例如谷歌的 BERT、XLNet、PaLM 和 Gemini 系列Meta 的 Llama 系列,以及 Anthropic 的 Claude 系列。此外BLOOM 和 LLaMA 等开源 LLM 的出现进一步推动了该领域的发展。
随后几年LLM 的规模和能力持续增长。2019 年的 GPT-2 生成更具说服力的文本2020 年拥有 1750 亿参数的 GPT-3 达到了前所未有的语言理解和生成水平2022 年 ChatGPT 的发布引起公众广泛关注2023 年 GPT-4 在准确性方面有所提升,并具备了多模态能力。除 OpenAI 外,谷歌的 BERT、PaLM 和 Gemini 系列Meta 的 Llama 系列,以及 Anthropic 的 Claude 系列等成为主流 LLM。开源模型如 BLOOM 和 LLaMA 的出现进一步推动了该领域发展。
LLM 发展历程中,参数规模的扩大是一个显著趋势。从最初的几百万参数发展到如今的数千亿甚至万亿参数,模型规模的增长带来了性能的显著提升,使得 LLM 在各种任务中展现出强大的能力。同时,训练数据的规模也呈指数级增长,从早期的数十亿词语到现在的数万亿 tokens涵盖了广泛的文本和代码数据。这一趋势被称为“新的摩尔定律”。除了规模的增长LLM 的能力也经历了显著演变。早期的 LLM 主要擅长文本生成和补全等任务。随着模型发展,它们逐渐展现出更高级的能力,例如进行复杂推理、解决数学问题、翻译语言,甚至编写代码。近年来,多模态 LLM 的出现扩展了 LLM 的应用范围,使其能够处理和生成文本、图像、音频等多种类型数据。 \textbf{\ref{tab:llm_milestones}} 总结了 LLM 发展中的关键里程碑事件。
LLM 发展的显著趋势是参数规模的扩大和能力的演变。参数规模从最初的几百万发展到目前的数千亿甚至万亿,训练数据也从数十亿词语增长到数万亿 tokens这一趋势被称为"新的摩尔定律"。随着模型发展LLM 从最初的文本生成和补全,逐渐展现出复杂推理、解决数学问题、翻译语言和编写代码等高级能力。近年来,多模态 LLM 的出现扩展了应用范围,使其能够处理和生成文本、图像、音频等多种类型数据。 \textbf{\ref{tab:llm_milestones}} 总结了 LLM 发展中的关键里程碑事件。
\begin{table}[!ht]
\centering
\caption{LLM 发展中的关键里程碑事件}
\label{tab:llm_milestones}
\begin{tabular}{|>{\centering\arraybackslash}m{1.5cm}|>{\centering\arraybackslash}m{2.5cm}|m{10cm}|}
\hline
% 表头保持原样,已使用 \multicolumn 实现横向居中
\multicolumn{1}{|c|}{\textbf{年份}} & \multicolumn{1}{c|}{\textbf{里程碑}} & \multicolumn{1}{c|}{\textbf{重要性}} \\ \hline
1966 & ELIZA & 第一个使用 NLP 的聊天机器人,基于关键词模拟对话。 \\ \hline
2017 & Transformer 架构 & 引入自注意力机制和平行处理,使得模型更加高效和上下文感知。 \\ \hline
2018 & BERT & 第一个突破性的 LLM在自然语言理解方面取得了显著进展。 \\ \hline
2018 & GPT-1 & 第一个使用 Transformer 架构进行生成文本的概念验证。 \\ \hline
2019 & GPT-2 & 展示了生成令人信服的文本的能力,引发了关于潜在滥用的担忧。 \\ \hline
2020 & GPT-3 & 参数规模显著增大1750 亿),展示了前所未有的语言理解和生成能力,成为 ChatGPT 的基础。 \\ \hline
2022 & ChatGPT & 面向消费者的应用程序,凭借其对话能力使 LLM 引起了主流关注。 \\ \hline
2023 & GPT-4 & 多模态模型,具有更高的准确性和推理能力。 \\ \hline
2023 & LLaMA & 流行的开源 LLM推动了 AI 的普及。 \\ \hline
2025 & DeepSeek-R1 & 在美国境外开发的高性能开源推理模型,凸显了 LLM 开发领域日益激烈的全球竞争。 \\ \hline
2025 & Claude 3 & GPT 模型的竞争者,强调乐于助人、诚实和无害,具有强大的推理和多模态能力。 \\ \hline
2025 & Gemini & 一系列多模态 AI 模型,旨在跨不同设备运行并涵盖广泛的用途,包括推理。 \\ \hline
\begin{tabular}{>{\centering\arraybackslash}p{1.5cm}>{\centering\arraybackslash}p{2.8cm}p{10cm}}
\toprule
\rowcolor[gray]{0.9} \textbf{年份} & \textbf{里程碑} & \textbf{重要性} \\
\midrule
1966 & ELIZA & 第一个使用 NLP 的聊天机器人,基于关键词模拟对话。 \\
\addlinespace[0.5ex]
\rowcolor[gray]{0.95} 2017 & Transformer 架构 & 引入自注意力机制和平行处理,使得模型更加高效和上下文感知。 \\
\addlinespace[0.5ex]
2018 & BERT & 第一个突破性的 LLM在自然语言理解方面取得了显著进展。 \\
\addlinespace[0.5ex]
\rowcolor[gray]{0.95} 2018 & GPT-1 & 第一个使用 Transformer 架构进行生成文本的概念验证。 \\
\addlinespace[0.5ex]
2019 & GPT-2 & 展示了生成令人信服的文本的能力,引发了关于潜在滥用的担忧。 \\
\addlinespace[0.5ex]
\rowcolor[gray]{0.95} 2020 & GPT-3 & 参数规模显著增大1750 亿),展示了前所未有的语言理解和生成能力,成为 ChatGPT 的基础。 \\
\addlinespace[0.5ex]
2022 & ChatGPT & 面向消费者的应用程序,凭借其对话能力使 LLM 引起了主流关注。 \\
\addlinespace[0.5ex]
\rowcolor[gray]{0.95} 2023 & GPT-4 & 多模态模型,具有更高的准确性和推理能力。 \\
\addlinespace[0.5ex]
2023 & LLaMA & 流行的开源 LLM推动了 AI 的普及。 \\
\addlinespace[0.5ex]
\rowcolor[gray]{0.95} 2025 & DeepSeek-R1 & 在美国境外开发的高性能开源推理模型,凸显了 LLM 开发领域日益激烈的全球竞争。 \\
\addlinespace[0.5ex]
2025 & Claude 3 & GPT 模型的竞争者,强调乐于助人、诚实和无害,具有强大的推理和多模态能力。 \\
\addlinespace[0.5ex]
\rowcolor[gray]{0.95} 2025 & Gemini & 一系列多模态 AI 模型,旨在跨不同设备运行并涵盖广泛的用途,包括推理。 \\
\bottomrule
\end{tabular}
\end{table}
@ -54,11 +66,11 @@ LLM 发展历程中,参数规模的扩大是一个显著趋势。从最初的
综上所述,大型语言模型正日益成为软件开发过程中不可或缺的辅助工具。它们通过代码生成、代码补全和错误检测与修复等功能,极大地提升了开发效率和代码质量。随着 LLM 技术的不断发展,其在软件开发领域的应用前景将更加广阔。
\subsection{提示工程技术}
提示工程Prompt Engineering指设计和优化输入提示prompts的过程以有效地引导人工智能模型特别是大型语言模型LLMs产生期望的输出。由于生成式 AI 旨在模仿人类,需要详细指令才能创建高质量和相关的输出。提示工程通过选择最合适的格式、短语、词语和符号来指导 AI 更有效地与用户交互。熟练的提示工程师设计能够与生成式 AI 工具中其他输入进行最佳交互的输入,从而帮助从 AI 模型中获得更好的答案
提示工程Prompt Engineering设计和优化输入提示prompts的系统方法旨在精确引导大型语言模型LLMs生成符合预期的输出。随着生成式人工智能技术的发展提示工程已成为充分发挥模型能力的关键环节。通过精心构建提示的格式、结构、语言和上下文提示工程能够显著提升模型理解用户意图的准确性并引导其生成更加精确、相关且高质量的回应。专业的提示工程师通过设计最优化的输入指令使其与生成式 AI 系统的内部机制高效协同,从而获取更为精准和有用的输出结果
提示工程的重要性体现在,精心设计的提示可以显著提高 LLM 的性能,使其能够更准确地理解用户意图并生成更相关、高质量的回复。通过提供清晰指令、相关上下文信息和具体格式要求,提示工程师能够引导 LLM 朝期望方向生成内容,最大限度发挥模型潜力。良好的提示工程还可以减轻 LLM 训练数据中可能存在的偏见,并提高用户与 AI 交互效率
提示工程的重要性主要体现在三个方面:首先,它能够显著提升模型性能,使 LLM 更准确地把握用户意图并生成高质量回复;其次,通过提供结构化指令和丰富上下文,提示工程能够引导模型避开其训练数据中潜在的偏见和局限性;最后,精心设计的提示能够优化用户与 AI 系统的交互体验,提高沟通效率和满意度。在实际应用中,提示工程已成为连接用户需求与 AI 能力的关键桥梁,对于充分发挥大型语言模型的潜力至关重要
提示工程涉及多个关键原则。首先,清晰性和具体性至关重要。提示应明确定义任务或问题,避免含糊措辞,提供足够背景信息或示例以指导模型理解,并指定期望的输出格式、长度、风格和语气。其次,提供上下文对于引导模型生成更相关、精确的输出至关重要。这包括提供相关事实、数据或参考文档,并定义关键术语和概念。第三,使用示例(即少样本提示)是一种强大技术,可以通过展示期望的输入-输出对来指导模型响应。第四,迭代和实验是提示工程的关键部分。通过尝试不同措辞、格式和结构,并根据模型反馈进行调整,可以逐步优化提示以获得更好结果。第五,将复杂任务分解为更小的、可管理的部分,并通过一系列相互关联的提示引导模型完成整个过程,可以提高处理复杂问题的能力。此外,还可以通过赋予模型特定角色或身份来引导其生成更符合特定视角的响应。
提示工程实践涉及多项核心原则和技术策略。首要原则是清晰性和精确性即提示应当明确界定任务边界、避免模糊表述并提供充分的背景信息和具体的输出要求包括格式、长度、风格和语气等。其次上下文管理是提示工程的关键技术通过提供相关事实、参考资料和关键概念定义可以显著提高模型输出的相关性和准确性。第三少样本学习few-shot learning技术通过在提示中嵌入示例性的输入-输出对,为模型提供直观的任务示范,有效引导其生成符合预期的回应。第四,迭代优化是提示工程的核心方法论,通过系统性地测试不同表述方式和结构,并基于模型反馈持续调整,可以逐步提升提示效果。第五,任务分解策略将复杂问题拆分为一系列相互关联的子任务,通过连贯的提示序列引导模型逐步解决问题,有效提升处理复杂任务的能力。此外,角色定义技术通过为模型赋予特定身份或专业背景,能够引导其从特定视角生成更加专业和一致的回应。
\subsection{模型量化技术}
模型量化Model Quantization是大型语言模型LLMs中使用的一种技术旨在将高精度数据通常是 32 位浮点数 (FP32) 或 16 位浮点数 (FP16))的权重和激活值转换为低精度数据类型,如 8 位整数 (INT8) 或 4 位整数 (INT4)。模型量化的主要目的是减少模型的内存占用、提高推理速度并降低能耗,使其更易于部署在资源受限的设备上,如移动设备或边缘服务器。

View File

@ -12,7 +12,8 @@
实验采用的主要硬件配置如下:
\begin{itemize}
\item CPUIntel Core i7-12700K12核24线程
\item 笔记本型号Lenovo Legion R7000P 2021H
\item CPUAMD Ryzen 7 5800H
\item GPUNVIDIA GeForce RTX 3060 Laptop GPU6GB显存
\item 内存16GB DDR4
\item 存储2TB NVMe SSD
@ -59,7 +60,7 @@
\item 开源许可采用MIT许可协议允许学术研究。
\end{itemize}
数据集生成模型通过deepseek ai官方api调用,具体的生成参数如下:
数据集生成模型通过deepseek ai官方API调用,具体的生成参数如下:
\begin{itemize}
\item temperature0.9
\item max\_length4096
@ -79,6 +80,7 @@
本实验采用LoRALow-Rank Adaptation技术进行参数高效微调主要配置参数如下
\begin{itemize}
\item 量化精度4bit
\item LoRA秩r64控制低秩矩阵的维度
\item LoRA缩放因子alpha16控制LoRA更新的幅度
\item 学习率2e-4采用余弦学习率调度策略
@ -95,18 +97,47 @@
\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:training_metrics}所示。从图中可以观察到以下几个关键特征:
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{pic/training_metrics.png}
\caption{模型微调过程中的训练指标变化趋势}
\label{fig:training_metrics}
\end{figure}
\begin{itemize}
\item \textbf{梯度范数Gradient Norm}训练初期梯度范数在0.5到1.5之间波动表明参数更新幅度较大。随着训练步数的增加梯度范数逐渐减小并在约4000步后稳定在0.1到0.5之间,这与损失函数的下降趋势一致,表明模型正在趋于收敛,参数更新的步伐减缓。
\item \textbf{损失函数Loss}训练初期损失值从约2.4迅速下降。在约1000步时降至0.5以下随后继续缓慢下降。在大约5000步后损失值稳定在接近于零的水平表明模型在训练集上已经取得了很好的性能基本收敛。
\item \textbf{学习率Learning Rate}学习率采用线性衰减策略从初始值约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}
综上所述,实验结果验证了本框架的有效性。通过文档驱动的自适应微调,成功将通用大语言模型定向优化为具备企业特定代码生成能力的专用模型,在保持模型通用能力的同时,显著提升了其在特定领域的表现,为企业级软件开发的智能化与高效化提供了有力支持。

View File

@ -64,7 +64,7 @@
\usepackage[colorlinks,linkcolor=black,anchorcolor=blue,citecolor=black]{hyperref}
\usepackage{listings}%可以插入代码
\usepackage{xcolor}%语法高亮支持
\usepackage[table]{xcolor}%语法高亮支持
%代码格式
\definecolor{dkgreen}{rgb}{0,0.6,0}

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
paper/latex/pic/monitor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

View File

@ -0,0 +1,34 @@
import pandas as pd
import matplotlib.pyplot as plt
# 读取CSV文件
data = pd.read_csv('training_data.csv')
# 创建图表
plt.figure(figsize=(12, 9))
# 绘制梯度范数变化曲线
plt.subplot(3, 1, 1) # 修改为 3行1列的第1个
plt.plot(data['Step'], data['grad_norm'], label='Gradient Norm')
plt.xlabel('Step')
plt.ylabel('Gradient Norm')
plt.legend()
# 绘制损失值变化曲线
plt.subplot(3, 1, 2) # 修改为 3行1列的第2个
plt.plot(data['Step'], data['loss'], label='Loss', color='orange')
plt.xlabel('Step')
plt.ylabel('Loss')
plt.legend()
# 绘制学习率变化曲线
plt.subplot(3, 1, 3) # 修改为 3行1列的第3个
plt.plot(data['Step'], data['learning_rate'], label='Learning Rate', color='green')
plt.xlabel('Step')
plt.ylabel('Learning Rate')
plt.legend()
# 调整布局并保存图片
plt.tight_layout()
plt.savefig('training_metrics.png')
plt.show()

File diff suppressed because it is too large Load Diff