小红书 算法一面 二
视觉数据如何设计 memory### 二、视觉数据Memory设计核心解析视觉数据的核心特征是**空间结构化图像是2D网格、时序动态性视频是3D时空、高维度像素/patch特征维度高**这和NLP的一维序列数据有本质区别。因此视觉memory的设计核心是**在保留时空结构的前提下高效存储、检索和复用多粒度视觉特征平衡存储容量、检索效率和任务效果**。#### 1. 视觉Memory设计的核心原则先明确设计的底层逻辑所有具体方案都围绕这些原则展开| 原则 | 核心目标 | 具体落地方式 ||------|----------|--------------|| 适配时空结构 | 不丢失图像的2D空间/视频的3D时空信息 | 用2D位置编码、时空patch划分而非纯一维序列化 || 多粒度存储 | 适配不同任务对特征精度的需求 | 分层存储像素级、patch级、语义级特征 || 高效检索 | 避免高维度/大数量特征的O(N²)计算 | 用MQA/MLA、聚类、近似最近邻ANN降低复杂度 || 动态更新 | 适配视频/交互任务的时序变化 | 采用FIFO/LRU/显著性筛选策略更新memory内容 |#### 2. 不同视觉任务的Memory设计方案##### 1静态图像任务分类、检测、分割- **核心目标**缓存全局上下文特征增强局部特征的语义关联如分割任务中远处像素的关联。- **典型设计Patch级分层Memory**① 基础结构- 将图像拆分为N个2D patch如ViT的16×16 patch每个patch的特征作为memory entry- Memory分为两级- L1工作内存存储当前图像的所有patch特征细粒度- L2语义内存预存类别/物体原型特征粗粒度如ImageNet类别语义向量。② 检索方式用**多头线性注意力MLA** 检索替代MHA将O(N²)复杂度降至O(N)适配大尺寸图像如1024×1024。③ 代码示例Patch级Memory实现##### 2动态视频任务动作识别、视频生成、长视频理解- **核心目标**缓存历史帧特征建模长时序依赖解决视频帧冗余、长序列计算量大的问题。- **典型设计时空自适应Memory**① 基础结构- Memory entry包含「时间戳空间位置特征」三元组保留时空信息- 容量固定如最多存64帧用**显著性筛选FIFO** 更新只存关键帧淘汰冗余/低显著性帧。② 检索优化用**多查询注意力MQA** 检索所有查询头共享KV内存降低内存占用和检索耗时。③ 代码示例视频时序Memory实现##### 3长程视觉任务超高分辨率图像、小时级视频- **核心目标**处理超大规模视觉数据解决Memory容量爆炸问题。- **典型设计压缩分层Memory**① 压缩策略对Memory中的特征做**聚类降维**如K-Means将1000个patch特征合并为100个聚类中心或PCA降维768维→256维② 分层结构- L1缓存最近帧的细粒度特征如前8帧- L2工作内存关键帧的粗粒度特征如每32帧存1帧- L3长期内存语义原型特征如场景、物体类别③ 检索逻辑优先检索L1未命中则检索L2/L3逐级扩大检索范围。#### 3. 视觉Memory的关键优化点- **位置编码适配**图像用2D位置编码视频用时空联合编码2D空间1D时间或直接用**RoPE旋转位置编码** 融入相对位置信息无需额外维度适配降维后的Memory- **降维策略**输入侧将高维视觉特征如2048维投影到低维如768维后存入Memory存储侧用聚类/PCA进一步压缩- **检索效率**替换MHA为MLA/MQA或用FAISS近似最近邻做离线检索将复杂度从O(N²)降至O(N)或O(N log N)。### 三、总结1. 视觉Memory设计的核心是**适配时空结构**图像保留2D空间信息视频叠加时序维度避免一维序列化丢失关键特征2. 核心策略是**分层多粒度高效检索**分层存储细粒度patch、粗粒度语义特征用MLA/MQA降低检索复杂度3. 关键优化通过降维/聚类压缩Memory容量用2D/RoPE编码融入时空信息动态更新策略FIFO/显著性适配动态视觉数据。SFT 和 GRPO 数据有什么区别SFT 有思维链、GRPO 只有答案## 一、基础概念澄清首先明确两个核心术语避免混淆- **SFTSupervised Fine-Tuning监督微调**预训练模型后用**人工标注的输入-输出对**进行有监督训练让模型学习特定任务的标准答案- **GRPOGroup Relative Policy Optimization群体相对策略优化**强化学习的一种变体通过**同一输入生成多个输出群体**基于相对奖励信号优化模型策略无需价值网络## 二、核心差异对比总览| 对比维度 | SFT数据 | GRPO数据 ||----------|---------|----------|| **数据类型** | 标注的「输入-输出」对监督信号 | 输入群体输出奖励信号强化信号 || **格式结构** | (prompt, response) 二元组 | (prompt, [response₁, response₂, ..., responseₙ], [reward₁, reward₂, ..., rewardₙ]) 三元组 || **标注方式** | 人工标注/高质量权威数据绝对标准答案 | 自动评估如PRM过程奖励模型/可编程奖励函数相对优劣判断 || **核心用途** | 教模型基础任务范式、输出格式、事实知识 | 提升模型推理能力、优化输出质量相对于群体基线 || **生成方式** | 固定标注输出无需模型采样 | 必须通过模型采样生成多个候选输出群体 || **标注成本** | 高人工标注 | 低自动奖励/可编程规则 || **依赖关系** | 独立无需模型参与生成数据 | 依赖模型采样能力数据生成与模型状态强相关 || **信息密度** | 低单一样本只有一个标准答案 | 高单一样本包含多个输出的相对优劣信息 |## 三、详细差异拆解### 1. 数据本质与目标的区别- **SFT数据**本质是**模仿信号**目标是让模型学习“正确答案是什么”属于**绝对监督**。模型通过最小化交叉熵损失拟合标注数据的输出分布记忆标准答案- **GRPO数据**本质是**比较信号**目标是让模型学习“哪个答案更好”属于**相对监督**。模型通过比较群体中各输出的奖励值强化优于群体平均的输出弱化劣于平均的输出无需记忆固定答案### 2. 数据格式与结构的区别#### SFT数据格式典型格式为**二元组结构**清晰明确json{prompt: 23等于多少,response: 235这是基本的加法运算。}- 每个样本只有**一个标准答案**模型训练目标是生成与标注完全一致的输出- 适合结构化任务如数学计算、代码生成、格式输出#### GRPO数据格式典型格式为**三元组结构**包含群体信息json{prompt: 23等于多少,responses: [235,236,23的结果是5计算过程为2加3等于5],rewards: [0.8, // 正确但简洁0.0, // 错误1.0 // 正确且包含推理过程最佳]}- 每个prompt对应**n个输出群体n通常为4-8**和对应的奖励值- 奖励值反映输出的相对质量而非绝对对错如包含推理过程的输出奖励更高- 群体内奖励会被归一化以群体平均作为基线计算优势值### 3. 数据来源与生成流程的区别#### SFT数据来源1. **人工标注**专家编写prompt和对应标准答案如Alpaca数据集2. **权威数据转换**从教科书、专业文档等高质量数据源提取输入-输出对3. **筛选后的公开数据**如高质量对话历史、问答对生成流程**人工标注→数据清洗→格式转换→训练**模型不参与数据生成#### GRPO数据来源1. **模型采样生成**对同一prompt通过当前模型生成n个候选输出2. **自动奖励计算**- 用过程奖励模型PRM评估推理步骤质量- 可编程规则如数学计算正确性、代码可执行性- 多维度指标如流畅度、相关性、完整性综合评分生成流程**prompt→模型采样生成群体→自动计算奖励→数据构建→训练**模型深度参与数据生成数据与模型状态强相关### 4. 标注成本与效率的区别- **SFT数据**标注成本极高每一条样本都需要人工编写/审核标准答案难以大规模扩展- **GRPO数据**标注成本极低一旦奖励函数/评估模型固定可自动生成无限量数据适合大规模训练### 5. 与模型训练的交互关系- **SFT数据**与模型训练过程**解耦**数据是静态的训练过程中数据不会变化- **GRPO数据**与模型训练过程**强耦合**数据是动态的- 随着模型性能提升采样生成的群体质量会变化- 奖励基线群体平均会随模型状态动态调整- 可通过“冷启动训练→推理轨迹训练→GRPO优化”的循环迭代提升模型能力### 6. 适用场景的区别- **SFT数据**- 模型冷启动建立基础任务能力如对话格式、指令遵循- 注入事实知识、特定领域术语、输出风格规范- 简单任务短文本生成、格式转换- **GRPO数据**- 复杂推理任务数学、逻辑、代码生成需要优化推理过程- 多解法任务需要模型学习输出更优的解决方案- 长文本生成需要提升连贯性和逻辑性- 资源受限场景无需训练价值网络内存占用减少50%## 四、关键技术细节差异### 1. 降维与位置编码的差异关联前序问题- **SFT数据**通常不需要特殊降维处理输入输出维度固定位置编码主要用于文本序列的位置信息融入如Transformer的绝对位置编码/RoPE- **GRPO数据**- 群体输出维度高n个输出需要通过奖励归一化、优势计算等方式降维聚焦相对差异- 对输出序列的位置编码要求更高尤其是推理任务需要捕捉步骤间的依赖关系RoPE的相对位置编码特性更适合GRPO场景因为1. 不增加额外维度适配群体输出的高维特性2. 捕捉相对位置关系对推理步骤的顺序敏感任务至关重要3. 与GRPO的线性计算逻辑兼容不破坏计算效率优势### 2. 数据使用方式的差异- **SFT数据**训练时直接用交叉熵损失让模型输出逼近标注答案是**单向模仿学习**- **GRPO数据**训练时计算每个输出的优势值reward - 群体平均reward通过策略梯度优化让模型更倾向于生成优势值为正的输出是**双向比较学习**## 五、总结SFT数据与GRPO数据的核心区别在于**SFT是绝对监督的模仿学习数据GRPO是相对监督的比较学习数据**。SFT数据负责教模型“做什么”GRPO数据负责教模型“做得更好”。两者在大模型训练中通常是互补关系——先用SFT数据建立基础能力再用GRPO数据提升推理与优化能力。