编辑
2025-05-12
深度学习
00

1. 弹性权重整合(Elastic Weight Consolidation, EWC)

概述: EWC 通过在损失函数中添加一个正则化项,防止重要参数偏离先前任务的最优值。这个正则化项基于费舍尔信息矩阵,衡量每个参数对先前任务的重要性。

公式

L(θ)=Lnew(θ)+iλ2Fi(θiθi)2L(\theta) = L_{\text{new}}(\theta) + \sum_i \frac{\lambda}{2} F_i (\theta_i - \theta^*_{i})^2

其中 FiF_i 是费舍尔信息矩阵,θi\theta^*_{i} 是旧任务的最优参数。

代码示例

python
import torch def ewc_loss(new_loss, model, fisher_matrix, old_params, lambda_ewc): ewc_penalty = 0 for param, fisher, old_param in zip(model.parameters(), fisher_matrix, old_params): ewc_penalty += torch.sum(fisher * (param - old_param).pow(2)) return new_loss + (lambda_ewc / 2) * ewc_penalty
编辑
2025-05-12
深度学习
00

Query改写的核心价值

解决原始Query的三大痛点

问题类型典型案例改写效果
信息残缺"这个功能怎么用?" → "CRM系统中客户画像功能的操作指南"补全关键实体
语义模糊"帮我查下数据" → "查询2024年6月华东区销售额(万元)"明确维度指标
表达歧义"苹果最新消息" → "Apple公司2024年Q3财报发布时间"消除指代歧义
编辑
2025-05-12
深度学习
00

一、选择 RAG 而非微调的主要原因

在我们项目中,选择 RAG 而不是直接微调 LLM,主要基于以下几个核心考量:

1. 外部知识动态更新的需求

  • 微调后的模型是“静态”的,一旦训练完成,新增知识需要重新训练或增量训练,成本高且周期长。
  • RAG 则通过检索模块引入外部知识库,可以实时或定期更新知识源,无需重新训练生成模型。

2. 避免灾难性遗忘(Catastrophic Forgetting)

  • 微调过程中,模型容易忘记预训练阶段学到的通用知识,特别是在数据分布不均衡或任务目标变化时。
  • RAG 不改变原始模型参数,仅通过检索增强上下文信息,因此保留了预训练模型的广泛知识基础。

3. 降低训练成本和资源消耗

  • 微调大型语言模型(如 Llama 3、ChatGLM、Baichuan 等)需要大量 GPU/TPU 和时间成本。
  • RAG 只需维护一个高效的检索系统和文档向量化流程,推理阶段即可实现知识增强。

4. 提高可解释性和可控性

  • 微调模型的输出难以追溯来源,缺乏透明度。
  • RAG 中检索到的文档片段可以直接展示给用户,提升结果的可信度和可审计性。

编辑
2025-05-09
深度学习
00

1.为什么叫InfoNCE损失

Information :表示该损失函数与信息论有关,用于最大化两个相关样本之间的互信息(mutual information)。

Noise-Contrastive Estimation (NCE) :最初由 Gutmann 和 Hyvärinen 提出的一种方法,用于通过区分真实数据和噪声样本来估计概率分布。InfoNCE 是 NCE 的一个变体,专门用于对比学习。

编辑
2025-05-09
深度学习
00

m-RoPE(多模态旋转位置编码)

1. 基本原理

m-RoPE是传统RoPE(旋转位置编码)在多模态场景下的扩展。传统RoPE处理的是一维序列,而m-RoPE专门设计用来处理包含图像和视频等视觉内容的多模态输入。

如代码中注释所述:

多模态3D旋转位置编码是1D旋转位置编码的扩展。输入嵌入序列包含视觉(图像/视频)嵌入和文本嵌入,或者仅包含文本嵌入。对于视觉嵌入部分,我们分别在时间、高度和宽度维度上应用旋转位置编码。这里我们将通道维度分为3个块,用于时间、高度和宽度旋转位置编码。对于文本嵌入部分,我们只应用1D旋转位置编码。