SAM 3D:3Dfy anything in Images

原本看这篇论文以为是一个比之前更接近真实世界的3d生成新任务,还想着水他一篇,但是看了之后发现数据集不公开,做的话也没那么多资源,但是meta的工作,所以主要从这里边学习大厂大规模研究的工程和技术细节:数据pipline怎么做,训练策略以及实验评测设计。 这是看完之后的Ganko,纯大厂风格的力大砖飞工作,鉴定完毕,又浪费一天,tmd。(没有看不起的意思,我觉得我的小作坊编故事风格的工作还不如这种,这种至少有用) 论文想解决的问题 这篇论文要解决的是三个层层递进的问题,一个是旧3d重建任务针对单个物体,但是真实世界中的物体通常有遮挡,远距离等各种影响。这篇论文要解决的是一整个真实场景的3d重建,在重建场景中每个物体的同时预测物体的具体位姿以重建整个场景。因此就会引出第二个问题,3d模型数据不像自然2d图像和语言数据,自然界存在很多,合成数据有sim2real的问题要解决。然后就是标注问题,分类任务普通人就能标注,极低成本获得大量数据,但是3d建模需要专业技术。 解决思路 三个问题是递进的,解决了标注和数据问题,设计迭代模型反而简单。所以先从标注成本入手,普通人不能进行3d建模,但是能区分3d建模质量的高低(Human in loop - HIL),设计了MITL pipline,让普通人从几个候选中挑选并且对齐位姿(怎么获得候选个问题,就是冷启动问题,核心方法会写)。用这个pipline收集大规模的数据,然后针对真实世界的复杂性设计了方法和仿LLM的训练策略,(合成预训练-半合成中期训练-真实数据后训练)。 核心方法 网络结构 每个部分的具体实现: Encoder:Encoder全都使用DINOv2,得到4组条件token,一组是裁剪物体:通过掩码M以及对应的裁剪二值Mask对裁剪的图像I进行编码,提供聚焦的高分辨率的物体视图。另一组是全图I以及全图二值掩码,提供全局上下文线索。点云Encoder可选可不选,可以选用硬件采集也可以用其他深度估计方法来得到。 Geometry Model:论文的问题定义中把这个任务定义成了一个条件分布估计 $q(S, T, R, t, s|I, M )$,在具体的实现中又把整个任务拆成了两个条件分布,几何模型负责 $p(O,R,t,s∣I,M)$,回答物体在什么地方,大概长什么样子。(O是粗形状,R是6d pose,t是物体在相机系中的3维位置,s是在三个轴上的缩放)。输入图像和掩码经过编码后,送入一个 12 亿参数的流匹配 Transformer(flow transformer),采用 Mixture-of-Transformers (MoT) 架构——一种多模态 Transformer 变体,通过精心设计的 attention mask(Fig. 2 右图所示)让不同模态(图像、掩码、形状、位姿)之间既共享信息又保持各自的处理流(two-stream approach)。MoT 的特点是稀疏高效:不同模态有各自的 Transformer 层,只在多模态自注意力层做信息交互。(本质双流加交叉注意力) Texture & Refinement Model:这部分负责 $p(S,T∣I,M,O)$,从粗形状 O 中只保留"被占据"的体素(active voxels),跳过空区域,一个 6 亿参数的稀疏潜流 Transformer(sparse latent flow transformer)在这些活跃体素上做两件事——把粗糙的几何细节补全(比如把 643643 的粗体素细化成更高分辨率的形状 S),同时合成物体的纹理 T。 3D Decoders:得到Texture & Refinement Model的隐空间的特征表示之后,使用两个独立的解码器解码,一个mesh解码器用于传统建模行业,另一个Gaussian解码器用于实时渲染和新视角合成,两个解码器共享一个隐编码空间。 训练 ...

July 28, 2026 · 2 min

TODO

一个索引+TODO CS336 笔记 NanoGPT:从零训练一个 LLM NanoVLM-LLaVA NanoVLM-AnyRes CodeByMySelf-Transformer CodeByMySelf-Diffusion Pytorch-Tricks TODO CodeByMySelf-VAE(TODO) CodeByMySelf-RL(TODO) 并行训练实践(未完成)

July 2, 2026 · 1 min

关于爱情的一些思考

什么是回避型依恋 回避型依恋的核心特征: 恐惧亲密——不是不需要,是怕被伤害 推开即测试——冷落你不是不爱你,是在看你走不走 自我消化情绪——有事自己扛,不习惯求助 忽冷忽热——靠近了怕失去自我,远了又怕失去你 最核心的一件事:用她感受爱的方式去爱她 这不是一条技巧,是下面所有技巧背后的那句话: 爱一个人,要用她感受爱的方式去爱她,而不是用我自己能感受爱的方式去爱。 我们默认用自己的方式去爱:我收到礼物会感动,所以送你礼物;我说「我爱你」会被安慰,所以反复说;我需要陪伴,所以以为多陪你就是爱你。但这其实是在爱自己——在用「如果我被这样对待,我会感到被爱」来推测她。她接收爱的方式可能完全不同: 她可能不看你说了什么,只看你有没有在 她可能不要惊喜,要的是稳定、是说话算数 你花了一整天准备的浪漫,她的需求可能只是你按时回她消息 检验的标准不是「我表达了没有」,而是「她收到了没有」。 以她的感受为准,不以你的付出为准。 怎么知道她怎么感受爱: 看她怎么对人好——人通常给出自己最想收到的那种爱 看她抱怨什么——抱怨里藏着需求:「你总是不记得小事」→ 细节是她爱的语言 直接问:「怎样会让你觉得被爱?」——这个问题本身,就是一种爱的表达 这个原则对所有关系都成立,不只是回避型。 只是对回避型尤其致命:她接收爱的方式和你表达爱的方式,差异往往最大。你用热烈的爱去追一个需要安静的爱的人——她收不到,你觉得委屈;你觉得付出很多,她觉得窒息。两个人都受伤。 下面所有的应对原则,都是这句话的具体化。 应对原则 1. 不追,但在 追太紧她会跑,退太远她会觉得「果然如此」。 最好的距离:让她看见你一直在,但不逼她过来。 2. 用行动,不用承诺 回避型不相信「永远」「以后」这种词。 她信你做了的事:你等了她、你记得她说过的话、你在她冷的时候没走。 3. 吵架时语气 > 内容 你赢了逻辑,她输了安全感。一旦安全感没了,她会缩回去很久。 4. 别问她「你怎么了」 她想说的时候会说。问就是压力。换成「我在,你什么时候想说都行。」 5. 接受撤退不是拒绝 她冷淡 = 系统过载,自动关机。不是讨厌你。给她时间重启。 6. 表达情绪时收着点 回避型对强烈情绪过敏。平静的、稳定的表达,比激烈的告白更让她安心。 7. 她逃之前,你先退半步 当她开始退缩,不要等她冷到零度再反应。在她缩的初期,主动拉开一点距离——但不是冷漠,是控制节奏。 话术示例:「最近有点忙,周末再找你。」 「忙」→ 不是她的错,不是她在被惩罚 「周末」→ 给了时间锚点,她知道你不是消失 你主动走半步 → 她不用愧疚地逃 分析: 回避型的退缩本质上是对「被吞没」的恐惧——她感觉关系在升温,本能想拉开距离保护自我边界。如果你等她先冷,她会觉得自己伤害了你,然后更不敢回来。如果你在她感受到压力之前主动松一松,她不需要逃,因为绳子没勒紧。 建议: 在她态度开始变淡的第一天就主动减频,不要在第三天崩溃追问 减频时带一个「客观理由」(课题、开会、赶 due),让她不用猜 约定的回头时间一定要兑现——这是建立信任的关键测试 关键信号 信号 含义 主动联系你 对你信任度很高 跟你说脆弱的事 已经把你放进内圈 之后突然冷淡 不是后悔,是后怕——这是最关键的判断节点 在你面前任性 安全感足够高,开始摘面具 给自己的提醒 不能把全部安全感寄托在她身上。 ...

June 30, 2026 · 1 min

[论文阅读] Vision Transformers Need More Than Registers

一句话总结 ViT使用语义无关的背景块作为表示全局语义的捷径,在全局注意力和粗粒度语义监督的驱动下。这篇论文选择性地将补丁特征集成到CLS token中,减少了背景主导的快捷方式的影响,并在标签、文本和自监督的情况下,在12个基准测试中提高性能。 论文信息 标题:Vision Transformers Need More Than Registers 作者:Cheng Shi, Yizhou Yu, Sibei Yang (University of Hong Kong & Sun Yat-sen University) 会议/期刊:arXiv preprint (2602.22394) 链接:https://arxiv.org/abs/2602.22394 代码:https://github.com/ChengShiest/LAST-ViT 前置工作:Vision Transformers Need Registers (Darcet et al., ICLR 2024) 研究背景与动机 原始 ViT 中的 CLS token 用于聚合全局图像表示 Darcet et al. (ICLR 2024) 发现 ViT 的特征图中会出现异常的 high-norm artifact patches,提出添加额外的 register tokens 来吸收这些 artifacts 但这篇论文认为问题不仅仅是 artifact patches —— ViT 存在更根本的 lazy aggregation 行为,Lazy Aggregation:在图像级粗粒度监督下,ViT倾向于将前景语义"扩散"到大量背景patch中,利用背景token作为编码全局语义的捷径。 lazy aggregation是这篇论文贡献中提出的一个关键假设,但是我不认为应该这么局限于vit,我认为这是对于目前整个学习范式的问题,数据不可能做到面面俱到,模型在寻找最优解的时候可能会偏向于利用背景分析,比如dataset中所有bird类图片的background都是类似的,模型就会把背景作为一个主要判断依据,但是从另一个角度来看,又不能完全不考虑背景信息,例如一个像狗又像狼的生物,在野外会判断成狼,但是在农村院子里就是狗,虽然通过主体自身信息能做到百分之八十到九十的准确性,但是背景并非完全无用,就像我在我的论文中描述的一样。 ...

June 21, 2026 · 2 min

CS336 Lecture 5-6: GPUs & Kernels, Triton

为什么这两讲至关重要 在已经学过的课程中,L1-L4 讲的是"模型长什么样",L7-L8 讲的是"多卡怎么协作"。L5-L6 卡在两者之间——单卡内部到底在发生什么。 如果你不理解 GPU 的硬件结构,你就无法理解: 为什么 Flash Attention 是过去五年 LLM 领域最重要的系统优化 为什么大矩阵乘法是"compute-bound"而 Attention 是"memory-bound" 为什么你写的 PyTorch 代码有时 GPU 利用率只有 30% ZeRO-3 的通信开销到底卡在哪里(看懂 L7-8 那块没懂的) Percy 在 L6 的原话很直白:“You cannot optimize what you don’t measure, and you cannot measure what you don’t understand.” Lecture 5:GPU 架构解剖(Tatsu) 5.1 从一张 H100 说起 H100 的基本参数: HBM(显存):80GB,带宽 ~3.35 TB/s SRAM(片上共享内存):每 SM 约 256KB,总带宽 ~几十 TB/s(比 HBM 快一个数量级) 计算能力:BF16 下 ~990 TFLOPS 关键不在于这些数字有多大,而在于数字之间的比例。 ...

June 8, 2026 · 12 min

CV领域的多任务统一模型

改论文intro的时候突然想到,看到过有人问为什么CV领域没一个Scaling law,很明显的原因是CV领域不同的任务太多了,先不说图片的信息密度问题,单是把所有任务统一到一个模型里,都很费时间。但是又想到,大部分cv任务本质上可以通过完美的理解图片来解决,比如:模型知道每一块每一个像素具体是哪个类别的(或者有一些任务是某种属性)。这样就有一个想法: 假设有一个模型,在给定一个框(可以是像素,也可以是规则/不规则的块)和完整图片,模型需要知道这个框是什么类别的,这样的话分类任务可以通过最高占比来决定(一张蜜蜂的图片,大部分是空白蓝天会分类错误,但是这并不能证明这个方法的缺陷,只能说明预先定义了空白蓝天是无意义的类别(从平常摄影的角度来说,也可能是对焦问题));分割和定位任务可以通过对每一个像素点(或者说大patch,像素太小了)循环问是什么类别来得到,不过这个时候就会有一个问题,效率问题,很自然就想到一个办法,采样。 想到这里突然就联系起来了 ,SAM用的就是用的采样,但是依然很慢其实()。想法就到这里了,虽然没什么结果,但是让我知道了这个领域,这篇就用来记一下试图去统一CV任务的论文阅读了(可能论文本身没写,但是确是有这种趋势或者可能的也会在这里放) 2026/6/5 写完上边那些突然想到,超分、去雾、生成这些任务怎么统一啊,诶,看来还是论文看少了。最后感慨一下,如果放在以前,脑子里有这么一个奇怪的idea,我需要花费数周的时间查询阅读相关论文,但是现在只需要一个小时就能大概了解这个方向大家在做什么。 2026/6/5 GPT4RoI[ECCV WORKSHOPS 2024] GPT最推荐我读的论文。它用户 instruction 里的 RoI / box 替换成 RoI features,再送进 LLM,做 region-level image understanding。它还强调 region-text pairs 对细粒度理解的重要性。

June 5, 2026 · 1 min

NanoVLM-AnyRes

AnyRes(动态高分辨率)是 LLaVA-NeXT 1.6 的核心创新,解决了固定分辨率下细节丢失的问题:将图像按纵横比自适应切分为多个 tile,每个 tile 独立编码后和全局缩略图一起送入 LLM。NanoVLM 在保留原始单图模式的基础上新增了 AnyRes 能力,两个模式通过一个布尔值切换。 问题:固定分辨率的瓶颈 NanoVLM 的基础版本将每张图 resize 到 384×384,经 SigLIP 编码为 729 个 visual token。这对大多数自然图像够用——但遇到高分辨率图像(文档、OCR、大场景)时,细节会被压缩到不可辨认。 一个具体的例子: 原始图像: 1920×1080 的截图(包含文字) ↓ resize 到 384×384 丢失了 (1920×1080) / (384×384) = 14× 的像素信息 ↓ 文字模糊到 LLM 无法识别 AnyRes 的思路很直接——不要压缩整张图,而是把大图切成多个小图,每个小图保持清晰。 核心算法 处理流程 原图 (如 1200×800, AR=1.5) │ ├─ Step 1: 选 grid → 2×2(4 tiles) │ ├─ Step 2: 生成缩略图 │ resize → 384×384 → 729 tokens(全局上下文) │ └─ Step 3: 切分 + 编码 tiles 原图 → resize_to_fit(768×768) → 切成 4 个 384×384 tile tile[0,0] → SigLIP → 729 tokens tile[0,1] → SigLIP → 729 tokens tile[1,0] → SigLIP → 729 tokens tile[1,1] → SigLIP → 729 tokens ───────── 总计: 5 × 729 = 3645 tokens 关键细节:缩略图保留全局上下文,tiles 保留局部细节。两者互补——缩略图告诉 LLM"这是一张包含文字和图表的信息图",tiles 告诉 LLM 文字具体写了什么。 ...

May 31, 2026 · 7 min

NanoVLM-LLaVA

总结了NanoVLM(LLaVA格式)的背景、原理、核心代码、实现细节。最开始只是LLaVA思想的初步实现,即使用一个线性层(或MLP)将视觉特征转换为文本特征,或者说是将视觉特征和文本特征对齐,后边会慢慢加入LLaVA-1.5、LLaVA-NeXT、LLaVA-OneVision的思想。 LLaVA LLaVA 最初的结构如下: 其中, Xv为输入图像,而Xq为输入文本指令。 Xv经过冻结的预训练视觉编码器(例如CLIP的视觉编码器)转换为视觉特征, 又进一步经过一个简单的线性层W转换为文本特征,便可和文本指令特征Hq一起送入LLM进行处理。 LLaVA的训练目标为LM: $$ p(\mathbf{X}_{\mathrm{a}} \mid \mathbf{X}_{\mathrm{v}}, \mathbf{X}_{\mathrm{instruct}}) = \prod_{i=1}^{L} p_{\boldsymbol{\theta}}(x_i \mid \mathbf{X}_{\mathrm{v}}, \mathbf{X}_{\mathrm{instruct}}, \mathbf{X}_{\mathrm{a}, < i}) $$即基于当前图像、历史指令、历史答复预测新一轮的答复。整个训练过程包含两步: 步骤1: 固定Vision Encoder和LLM,预训练Projection 以实现图像和文本模态对齐; 步骤2: 放开LLM,进行端到端的训练。 原始 LLaVA 1.0 的具体配置 组件 配置 参数量 Vision Encoder CLIP ViT-L/14@224² ~300M Projector 单层 Linear (1024→4096) ~4.2M LLM Vicuna-7B/13B 7B/13B Vision Encoder:使用 OpenAI 预训练的 CLIP ViT-L/14,输入分辨率为 224×224。patch_size=14,因此每张图产生 $(224/14)^2 = 256$ 个 patch token + 1 个 CLS token,每个 token 维度为 1024。视觉编码器在整个训练过程中完全冻结。 ...

May 6, 2026 · 14 min

多卡并行训练和微调技术

这是使用 Google DeepResearch 生成的偏理论分析报告,内容基于2026/4/27之前的公开资料和技术文献,主要是方便自己学习,准确性和时效性可能无法完全保证。 第一章 深度学习分布式训练的底层基石:显存与通信的博弈 随着大语言模型(LLM)参数规模从十亿级别飙升至万亿级别,深度学习的训练与微调已经彻底演变为一项复杂的系统工程。在这一演进过程中,单张图形处理器(GPU)的显存容量与计算能力已无法满足动辄数千吉字节(GB)的内存需求,多卡并行架构成为必然选择。 在多卡分布式训练中,架构设计的核心挑战始终围绕着**“显存墙(Memory Wall)”与“通信墙(Communication Wall)”**的博弈展开。 [1].1 显存消耗模型解构 要深刻理解分布式训练的演进,必须首先解构模型在训练过程中的显存消耗。在采用混合精度训练(Mixed Precision Training)及 Adam 优化器的情况下,每个模型参数通常需要消耗约 20 字节的显存: 模型状态(Model States): 权重与梯度: 半精度(16-bit)各占用 [2] 字节(共 [4] 字节)。 权重与梯度副本: 全精度(32-bit)各占用 [4] 字节(共 [8] 字节)。 优化器状态: Adam 优化器的一阶与二阶矩估计状态各占用 [4] 字节(共 [8] 字节)。 剩余消耗: 前向传播过程中产生的**残差状态(Residual States,即激活值 Activations)**和各类临时缓冲区,会随着批次大小(Batch Size)和序列长度呈线性甚至二次方增长。 示例: 一个 [75] 亿参数的模型,仅静态模型状态就需要消耗约 150GB 显存,远超单张 H100(80GB)的物理极限。 [1].2 通信原语与同步机制 在多 GPU 协同计算时,节点间必须通过特定的**集体通信原语(Collective Communications)**进行数据交互: 基础原语: 包括广播(Broadcast)、收集(Gather)、分散(Scatter)以及规约(Reduce)。 核心同步机制: 全规约(All-Reduce)。它确保了所有 GPU 在反向传播后能够获得一致的梯度总和。 从底层实现来看,最优的 All-Reduce 操作通常被分解为两个连续步骤:Reduce-Scatter(规约-分散) 与 All-Gather(全收集)。理解这种分解机制是掌握高级状态切分策略(如 ZeRO 和 FSDP)的技术基石。 ...

April 27, 2026 · 9 min

[Paper] Causal

所有之前 这篇文章是我在阅读因果理论在视觉方面应用相关论文时的笔记总结,通过这篇文章,我希望能够系统地梳理相关论文的核心方法和我的理解和思考。 后边到了写作的时候,增加了一些写作的参考。写作思路部分会按照普遍论文的结构进行-摘要、引言、相关工作、方法、实验、结论来总结写作思路,当然也会根据不同论文的特点进行调整。 [TPAMI] A Causal Adjustment Module for Debiasing Scene Graph Generation 这篇论文想解决什么问题? 这篇论文想解决场景图生成中对于长尾关系对的偏见问题,通过基于全局的统计量设计的一个后处理模块来调整模型的预测结果,从而提升模型在长尾关系对上的性能。 传统的去偏方法(重采样、重加权、调整方法)只关注关系分布 R 的长尾问题,但它们忽略了一个更深层的因果链条: 物体分布 O → 物体对分布 P → 关系分布 R : 物体分布 O :不同物体类别的频率(如"人"很常见,“大象"很罕见) 物体对分布 P :两个物体共同出现的频率(如<人, 椅子>很常见,<人, 大象>很罕见) 关系分布 R :具体关系的频率 仅仅建模 O→P 是不够的,直观上,如果"人"和"树"都是高频物体,按 O→P 的逻辑,<人, 树>应该是最常见的物体对。但现实中,<人, 衬衫>比<人, 树>更常见,因为人和衬衫的共现(Co-occurrence)概率更高。 论文提出了 Mediator-based Causal Chain Model (MCCM),将因果链修正为: $$ O→中介:共现分布 C​​→P→R $$核心方法 原理:从因果推断中引入 Average Treatment Effect (ATE) 概念,用于指导调整因子的学习。 反事实问题:如果能把物体对分布 P 从"高频状态”(p )改为"低频状态"(p0​ ),模型的预测会如何变化? 公式 20 展示了 CAModule 如何估计这种反事实效应: ...

April 23, 2026 · 2 min