凡科网免费建站,做一个综合商城网站多少钱,群晖 多个wordpress,做视频网站需要什么服务器文 | 青豆最近一个大趋势就是将各类任务统一在一个大一统框架下。大规模预训练语言模型已成功打通各类文本任务#xff0c;使得不同的NLP任务上#xff0c;都可以用这种统一的sequence生成框架作为基础模型#xff0c;只需要通过prompt的方式#xff0c;指导模型生成目标结… 文 | 青豆最近一个大趋势就是将各类任务统一在一个大一统框架下。大规模预训练语言模型已成功打通各类文本任务使得不同的NLP任务上都可以用这种统一的sequence生成框架作为基础模型只需要通过prompt的方式指导模型生成目标结果。这种大一统的sequence生成框架在NLP任务成功的关键是任务描述和任务输出都可以序列化成text tokens。但CV任务输入输出都更加多样那不是得为不同的任务定制不同的模型和损失函数这也是CV任务大一统框架的瓶颈。以自然语言为输出的任务比如image captioning、visual question answering这类任务天然可以转化为生成text token sequence。但模型的输出形式还存在很多其他的形式例如bounding box、dense masks等。Pix2Seq在这样的动机下诞生了既然输出形式不同是难点能否将各类输出形式都统一成token sequence去年Google Brain提出的Pix2Seq就以目标检测作为出发点建立Pixel-to-Sequence的映射探索了这种可能性戳《图灵奖大佬谷歌团队为通用人工智能背书CV 任务也能用 LM 建模》。目前的Pix2Seq v2进一步统一了四个完全不同的视觉任务目标检测object detection、实例分割instance segmentation、人体关键点检测keypoint detection、图像描述生成image captioning尽管他们的输出可以是bounding boxes也可以是dense masks都可以表示成token sequence。这种离散的、统一化的表示使得多种CV任务能够统一在一个模型架构或损失函数下。对单个任务不再需要对模型或损失函数做定制而是只需要将任务描述放在prompt中控制output sequence变成所需要的输出格式。这种大一统的Pix2Seq框架已经能够在这四个核心视觉任务上媲美那些专门为各任务定制的state-of-the-art。论文题目A Unified Sequence Interface for Vision Tasks论文链接:https://arxiv.org/abs/2206.07669背景介绍4个视觉核心任务目标检测object detection输入是一张图片输出是所有object的bounding box和class label。实例分割instance segmentation输入是一张图片和其中的objects输出是对每个object的dense pixel-wise mask。人体关键点检测keypoint detection输入是一张图片和其中的person objects输出是keypoint坐标点来表示head、eyes等person instances。图像描述生成image captioning输入是一张图片输出是一句话。Sequence建模四步走要将CV任务统一建模成sequence生成主要包括以下几步1. 统一输入输出Tokenization序列化输入是一张image输出是一个离散的token sequencetask prompt task output其中task prompt用于描述具体任务一般是任务指令additional input tokenstask output是需要model生成的部分是目标结果的序列化描述。例如对上述四个任务目标检测object detectiontask prompt是detect指令task output包括每个object的bounding box两个坐标点和object label。实例分割instance segmentationtask prompt包括segment指令和给定的object instancetask output是segmentation多边形的坐标。人体关键点检测keypoint detectiontask prompt包括keypoint指令和给定的object instancetask output是一些keypoint坐标点。图像描述生成image captioningtask prompt是Describe指令task output是image caption sentence。2. 统一损失函数现在数据变成了统一的image input和sequence output那么input image可以自然地用一个vision encoder表示CovNet、Transformer等都可output sequence可以用一个sequence decoder建模即给定encoder hidden state和之前生成的sequence预测下一个token402 Payment Required这里x代表imagey1:j-1是之前生成的sequenceyj是下一个token。但由于output sequence包括两个部分task prompt和task input其中task prompt是给定的不需要生成因此不需要加到generation loss中。所以这里引入wj权重当yj在task prompt中wj设置成0不参与loss计算。3. 多任务联合训练由于输入输出形式、损失都是统一的在优化时可以选择两种联合训练的方式1直接混合所有数据随机采样进行优化2对各task分别计算loss然后合并所有task的梯度优化模型第一种更为简单但涉及到image augmentations对不同output sequence可能是不同的。同时第二种可以控制每个task的权重作者通过贪心策略逐个添加task并调整权重确定最终的各个task权重。4. 最终输出反序列化Detokenization反序列化就是把token再次数字化例如对与objection detection将output token sequence变成5个token一组每组前4个token代表坐标第5个token代表object class label。其中序列的生成和Pix2Seq第一个版本一样都采用nucleus sampling。实验结果实验的架构和Pix2Seq是一样的采用了Vision Transformer (ViT-B) encoder和Transformer autoregressive decoder共有132M的参数。值得注意的是该论文没有使用大规模图片-文本预训练。模型的初始化来自于Pix2Seq是在Object Detection数据集上预训练得到的因此image captioning的结果受限加入图片-文本数据应该会有提升。图片的大小有640x640和1024x1024两种大小。同时作者比较了两个变种single task单独训练各任务multi-task会同时一起训练所有任务即多任务联合训练。主要的结论包括该模型在4个任务中都取得了与主流模型相当的效果。多任务训练的影响并不统一。图片大小的影响图片越大结果越好。结论这篇工作的模型架构和第一版的Pix2Seq基本一致重点在于怎样将这种框架adapt到多种不同输出形式的CV任务上。目前对各个CV任务的序列化非常直观简单但效果却是不错的。最后的话大一统模型近期层出不穷而这种离散的token序列的表示方式小编认为是非常有希望的一个方向因为这种方式同时可以尝试把NLP和CV并入一个框架同时离散token的方式也天然能够加入speech的处理。因此小编也很期待这种统一接口可以加入更多模态modality例如video、audio等。小编在读的时候主要的concern是这种localization真的可以准确吗这个quantilize和dequantilize的过程把number变成了token失去精度不准确怎么办作者在实验中针对这个问题也做了简单的处理对instance segmentation任务通过nucleus sampling生成多个结果并取平均。但对数值化的token表示应该是需要更多思考的这种token在未来是否可以具备计算能力也是很有意思的议题。后台回复关键词【入群】加入卖萌屋NLP、CV、搜广推与求职讨论群