LISA: Reasoning Segmentation via Large Language Model

发表时间:CVPR 2024

论文链接:https://openaccess.thecvf.com/content/CVPR2024/papers/Lai_LISA_Reasoning_Segmentation_via_Large_Language_Model_CVPR_2024_paper.pdf

作者单位:CUHK

Motivation尽管感知系统近年来取得了显著的进展,但在执行视觉识别任务之前,它们仍然依赖于明确的人类指令或预定义的类别来识别目标对象。此类系统无法积极推理和理解隐含的用户意图我们能否使多模态llm能够输出分割掩码?

解决方法:在这项工作中,我们提出了一个新的分割任务——推理分割。该任务旨在在给定复杂和隐式查询文本的情况下输出分割掩码。 举个例子:

为了完成这项任务,模型必须具备两个关键能力:1)与图像联合推理复杂和隐式文本查询; 2)生成分割掩码

实现方式

  • 我们提出了 LISA:大型语言指令分割助手,它继承了多模态大型语言模型 (LLM) 的语言生成能力,同时还具有生成分割掩码的能力。

  • 我们用<SEG>令牌扩展原始词汇表,并提出嵌入掩码范式来解锁分割能力。

  • 我们建立了一个包含超过一千个图像指令掩码数据样本的基准,将复杂的推理和世界知识纳入评估目的。

模型结构:除非另有说明,否则我们使用LLAVA-7B-v1-1或LLAVA-13B-v1-1作为基础多模态LLM F,并采用ViT-H SAM骨干作为视觉骨干Fenc。γ的projection layer是一个通道为[256,4096,4096]的MLP

训练参数:为了保持预先训练的多模态LLM (即我们实验中的LLAVA)的学习知识,我们利用LoRA对LLM进行有效的微调并完全冻结视觉骨干Fenc解码器 Fdec 被完全微调。此外,LLM token embeddings (embed tokens)、LLM头((lm head)和投影层γ也是可训练的

实验

数据集:training data comprises mainly three parts:Semantic Segmentation Dataset,Vanilla Referring Segmentation Dataset,Visual Question Answering Dataset.

结论

  1. a new segmentation task—reasoning segmentation。

  2. introduced an evaluation benchmark ReasonSeg, which comprises over one thousand data samples。

  3. 提出模型——LISA。它将分割能力注入到当前的多模态llm中,并在推理分割任务中表现出奇地有效。

### ReAct框架在语言模型中的协同推理与行动 ReAct 是一种旨在增强语言模型能力的框架,它通过允许模型执行动态推理来创建、维护并调整行动计划,从而实现更高效的决策过程[^2]。具体来说,在 ReAct 的设计中,模型被赋予了两种核心功能:**推理(Reasoning)** 和 **行动(Action-taking)**。 #### 推理模块的功能 推理模块负责分析当前环境状态以及历史交互数据,生成高层次的战略规划或中间目标。这种推理可以基于输入上下文进行复杂逻辑推导,并预测可能的结果。例如,当面对复杂的多步任务时,推理部分会分解整个流程为若干子任务,并制定初步方案。 #### 行动模块的作用 一旦制定了策略或者明确了下一步方向之后,就需要采取实际行动去改变外部世界的状态或者是获取更多信息以便进一步优化后续步骤的选择。因此,行动模块依据来自推理层给出的具体指示完成实际操作——这可能是查询数据库、调用API接口亦或是物理机器人移动等不同类型的动作表现形式。 #### 动态反馈机制 值得注意的是,ReAct 并不是一次性地决定所有的行为序列;相反,它是持续监控每一步的效果并通过观察新产生的结果来进行自我修正的过程。这意味着即使最初的假设存在偏差甚至完全错误的情况下,该系统也能够及时发现这些问题所在之处并对原定计划作出相应修改直至达成最终目的为止。 ```python def react_framework(environment_state, history): while not goal_achieved(): reasoning_output = perform_reasoning(environment_state, history) action_to_take = determine_action(reasoning_output) new_environment_state, feedback = execute_and_observe(action_to_take) update_history(history, reasoning_output, action_to_take, feedback) def perform_reasoning(state, hist): # Complex logic to derive insights from state & history. pass def determine_action(insights): # Map derived insights into actionable steps. pass def execute_and_observe(action): # Execute an action and observe its effects on environment. pass def update_history(hist, r_out, a_taken, fbk): # Update internal records with latest information. pass ``` 上述伪代码展示了 ReAct 框架的一个简化版本工作流。其中包含了循环结构用于不断迭代直到满足终止条件即达到预定的目标位置;每次循环内部先做思考再付诸实践最后收集经验教训准备下一轮尝试。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ming_Chens

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值