diff --git a/paper/latex/chapters/technology.tex b/paper/latex/chapters/technology.tex index 1459bbc..f8e3b29 100644 --- a/paper/latex/chapters/technology.tex +++ b/paper/latex/chapters/technology.tex @@ -2,6 +2,7 @@ \section{相关技术介绍} +\counterwithin{table}{section} \subsection{大语言模型 (LLM)} \subsubsection{LLM 的起源、发展历程和关键里程碑事件} @@ -19,40 +20,7 @@ LLM 发展的显著趋势是参数规模的扩大和能力的演变。参数规模从最初的几百万发展到目前的数千亿甚至万亿,训练数据也从数十亿词语增长到数万亿 tokens,这一趋势被称为"新的摩尔定律"。随着模型发展,LLM 从最初的文本生成和补全,逐渐展现出复杂推理、解决数学问题、翻译语言和编写代码等高级能力。近年来,多模态 LLM 的出现扩展了应用范围,使其能够处理和生成文本、图像、音频等多种类型数据。 \textbf{表 \ref{tab:llm_milestones}} 总结了 LLM 发展中的关键里程碑事件。 -\begin{table}[!ht] - \centering - \caption{LLM 发展中的关键里程碑事件} - \label{tab:llm_milestones} - \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} +\input{./figures/llm_milestones.tex} \subsubsection{LLM 辅助编码} 大语言模型在辅助软件开发和编码方面展现出巨大的潜力。它们通过理解和生成代码,可以显著提高开发效率并改善代码质量。LLM 在代码生成、代码补全、错误检测与修复等多个方面都有具体的应用。 @@ -75,78 +43,26 @@ LLM 发展的显著趋势是参数规模的扩大和能力的演变。参数规 \subsection{模型量化技术} 模型量化(Model Quantization)是大语言模型(LLMs)中使用的一种技术,旨在将高精度数据(通常是 32 位浮点数 (FP32) 或 16 位浮点数 (FP16))的权重和激活值转换为低精度数据类型,如 8 位整数 (INT8) 或 4 位整数 (INT4)。模型量化的主要目的是减少模型的内存占用、提高推理速度并降低能耗,使其更易于部署在资源受限的设备上,如移动设备或边缘服务器。 -模型量化通过减少表示模型参数所需的比特数来实现这些目标。从数学角度看,量化过程可以表示为将浮点值映射到整数值的过程。对于线性量化,这一过程可以用以下公式表示: +该技术的数学本质是通过线性映射将浮点值域$[r_{\text{min}}, r_{\text{max}}]$映射到整数空间,其量化与反量化过程可表示为: \begin{equation} - q = \text{round}\left(\frac{r - r_{\text{min}}}{s}\right) +\begin{aligned} +q &= \text{round}\left(\frac{r - r_{\text{min}}}{s}\right) \\ +\hat{r} &= s \cdot q + r_{\text{min}} +\end{aligned} \end{equation} -其中,$q$ 是量化后的整数值,$r$ 是原始浮点值,$r_{\text{min}}$ 是浮点值的最小值,$s$ 是量化比例因子(scale factor)。反量化过程则可以表示为: - -\begin{equation} - \hat{r} = s \cdot q + r_{\text{min}} -\end{equation} - -其中,$\hat{r}$ 是反量化后的浮点值,通常与原始值 $r$ 存在一定的量化误差 $\epsilon = r - \hat{r}$。 +其中$s=(r_{\text{max}}-r_{\text{min}})/(2^n-1)$为量化步长,$n$为量化位数,$\epsilon=r-\hat{r}$为量化误差。 这种转换显著降低了存储模型所需的内存空间,并且由于低精度运算通常比高精度运算更快,因此可以提高模型的推理速度。此外,更快的计算和减少的内存访问通常会降低功耗,这对于电池供电的设备尤其重要。 -模型量化有多种不同的技术,主要可分为以下几类: - -\textbf{训练后量化 (Post-Training Quantization, PTQ)}:这种方法在模型完成训练后应用量化,将模型权重从浮点表示转换为低精度定点整数,无需重新训练。对于权重 $W$ 的线性量化可表示为: - -\begin{equation} - W_q = \text{round}\left(\frac{W - W_{\text{min}}}{s_W}\right), \quad s_W = \frac{W_{\text{max}} - W_{\text{min}}}{2^n - 1} -\end{equation} - -其中,$W_q$ 是量化后的权重,$n$ 是量化位数(如 INT8 中的 8),$s_W$ 是量化比例因子。PTQ 实现简单快捷,但可能导致一定性能下降。PTQ 可进一步分为静态量化和动态量化。静态量化在量化时使用校准数据确定激活值范围并适当缩放。动态量化仅量化权重,而激活在推理期间保持较高精度,并根据运行时观察到的范围动态量化。 - -\textbf{量化感知训练 (Quantization-Aware Training, QAT)}:这种方法在模型预训练或微调期间引入权重转换,允许模型在训练过程中适应低精度表示。在前向传播过程中,QAT 使用量化操作的可微分近似: - -\begin{equation} - \tilde{W} = W + \text{stop\_gradient}(\text{fake\_quant}(W) - W) -\end{equation} - -其中,$\text{fake\_quant}$ 是量化-反量化操作,$\text{stop\_gradient}$ 确保梯度不通过量化操作传播。QAT 通常比 PTQ 产生更高性能,但需要大量计算资源和代表性训练数据。 - -\textbf{权重共享 (Weight Sharing)}:涉及对相似权重进行聚类并共享相同的量化值,减少唯一权重数量,进一步压缩模型。对于 $k$ 个聚类中心 $C = \{c_1, c_2, \ldots, c_k\}$,权重 $W$ 被映射到最近的聚类中心: - -\begin{equation} - W_q = \arg\min_{c \in C} ||W - c||^2 -\end{equation} - -\textbf{混合精度量化 (Mixed Precision Quantization)}:在训练或推理过程中使用不同数值精度的组合(例如 FP16 和 FP32),以在性能和精度之间取得平衡。 - -\textbf{二值化和三值化 (Binary and Ternary Quantization)}:将权重分别量化为两个值(+1 和 -1)或三个值(+1、0 和 -1),是极端的量化形式。二值化可表示为: - -\begin{equation} - W_b = \text{sign}(W) = \begin{cases} - +1, & \text{if } W \geq 0 \\ - -1, & \text{if } W < 0 - \end{cases} -\end{equation} - 这些极端量化形式显著减小模型尺寸和计算复杂度的同时,精度下降也更明显。 -不同的量化级别(如 INT8 和 INT4)对模型性能和资源消耗影响不同。一般来说,更低的量化级别(例如从 INT8 到 INT4)可以进一步减少模型大小并提高推理速度,但通常会导致更大精度损失。量化误差可以通过以下方式进行分析: - -\begin{equation} - \epsilon = W - \hat{W} = W - (s_W \cdot W_q + W_{\text{min}}) -\end{equation} - -其中,$\epsilon$ 是量化误差,$W$ 是原始权重,$\hat{W}$ 是反量化后的权重。对于均匀分布的权重,量化误差的方差可以近似为: - -\begin{equation} - \text{Var}(\epsilon) \approx \frac{s_W^2}{12} -\end{equation} - -这表明量化比例因子 $s_W$ 越大,量化误差也越大。对于 $n$ 位量化,内存占用和原始 32 位浮点表示相比可以减少: - -\begin{equation} - \text{内存减少比例} = \frac{32 - n}{32} \times 100\% -\end{equation} - -例如,8 位量化可以减少 75\% 的内存占用,而 4 位量化可以减少 87.5\% 的内存占用。 +不同的量化级别(如 INT8 和 INT4)对模型性能和资源消耗影响不同。一般来说,更低的量化级别(例如从 INT8 到 INT4)可以进一步减少模型大小并提高推理速度,但通常会导致更大精度损失。量化误差分析表明,当权重服从均匀分布时,误差方差$\text{Var}(\epsilon)\approx s_W^2/12$,与量化步长平方成正比。内存优化效果可通过压缩比$(32-n)/32$量化,例如: +\begin{itemize} +\item INT8:75\% 内存压缩 +\item INT4:87.5\% 内存压缩 +\end{itemize} INT8 量化通常被认为是性能和精度之间的良好折衷方案,可在保持较高模型准确性的同时,显著降低内存占用和提高推理速度。INT4 量化更为激进,可实现更高压缩率和更快速度,但通常伴随更明显精度下降,更适用于对资源限制非常严格但对精度要求相对较低的场景。选择合适的量化技术和级别需要在模型大小、推理速度和精度之间进行权衡,通常取决于具体应用场景和硬件条件。 diff --git a/paper/latex/figures/llm_milestones.tex b/paper/latex/figures/llm_milestones.tex new file mode 100644 index 0000000..666abd7 --- /dev/null +++ b/paper/latex/figures/llm_milestones.tex @@ -0,0 +1,34 @@ +\begin{table}[!ht] + \centering + \caption{LLM 发展中的关键里程碑事件} + \label{tab:llm_milestones} + \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}