家庭服务具身智能机器人体系架构
硬件方面:差速移动机器人+六轴协作机械臂,软件方面选择ROS系统:底盘控制move_group,机械臂操纵MoveIt,大模型方面采用VLM+LLM:(1)视觉语言模型(VLM),用来实现环境理解与指令解析,候选模型为LLaVA和Qwen-VL。微调VLM需要2~4周,工作量主要是准备环境数据和标注期望输出。(2)大语言模型(LLM),用来实现任务分解与技能调用,候选工具有LangChain(任务编排框架)和Robotics Transformer (RT-2) (端到端生成控制),构建LLM规划器与ROS库需要2-3周。
因此步骤为:(1)微调Qwen-VL,使用家庭场景数据;(2)使用LangChain,封装ROS供ChatGPT级模型调用;(3)端到端流程测试(用户指令→VLM→LLM→ROS→执行)。
19.1 VLM
开源的多模态大模型可选LlaVA和阿里Qwen-VL。LlaVA作为学术论文的常客,在工业部署时候需要自己制造轮子;而Qwen-VL是开箱即用的工程化产品。因此选择Qwen-VL。
LLaVA
LLaVA是一系列结构极简的多模态大模型,直接使用简单的线性层将视觉特征映射为文本特征,版本依次有:LLaVA、LLaVA1.5、LLaVA-NeXT、LLaVA-OneVision。
虽然LLaVA目标是通用多模态助手,LLaVA-1.5的训练框架和流程与LLaVA基本一致,LLaVA-NeXT是LLaVA-1.5的改进版本,提升模型在分辨率、OCR、对话、推理方面的能力;LLaVA-OneVision是LLaVA-NeXT的改进版本,可支持单图像、多图像、视频的输入。
LLaVA和LLaMA区别如下。
LLaVA和LLaMA是两个不同的模型架构,它们的设计目的和应用领域有所不同。
LLaMA(Large Language Model Meta AI)是Meta AI推出的一系列大规模语言模型(Large Language Models, LLMs),是基于Transformer架构的语言模型,类似GPT系列,专注自然语言处理任务例如文本生成、翻译、问答、文本摘要等。
LLaVA(Large Language and Vision Assistant)是将大规模语言模型(LLMs)与视觉模型结合的多模态模型,旨在处理图像和文本的联合理解和生成任务,目标是让语言模型理解和处理视觉输入例如图片或视频帧。
LLaVA工作原理是通过结合预训练的语言模型例如GPT-4等与视觉编码器例如CLIP等来处理图像和文本的输入,并提供统一的输出,LLaVA模型可以用于视觉问答、图像描述生成、多模态对话等任务。
总结起来就是LLaMA是专注于自然语言处理的大规模语言模型,LLaVA是将语言模型与视觉模型结合的多模态模型,能够处理图像和文本的联合输入。
Qwen-VL
Qwen-VL 系列模型基于 Qwen-7B 语言模型,使用了三阶段的训练流程,提供了:感知和理解视觉输入、根据给定提示生成回答、并完成各种视觉任务例如caption、问题回答等。
网络整体架构由 3 个部分组成:(1)大型语言模型 Qwen-7b 作为基础组件,使用预训练好的权重来初始化模型;(2)视觉编码器:使用 ViT 架构作为视觉编码器,具体的是使用的 Openclip 的 ViT-bigg 预训练的权重进行初始化;(3)position-aware Vision-Language Adapter是为了环境长图像特征序列带来的效率问题引入的一个压缩图像特征的适配器。
9.2 LLM
具身智能架构设计往往纠结采用任务分解方案还是端到端方案:RT-2代表端到端控制流派,适合追求响应速度的场景;而LangChain作为模块化任务规划器,适合需要可靠性和解释性的系统。
时间方面:LangChain两天就能接入ROS,RT-2微调需要收集机器人动作数据比较耗时。建议:首先尝试LangChain快速验证,然后评估是否需要添加RT-2模块。例如“把冰箱里的牛奶拿出来”需要多步骤决策就是LangChain分层优势凸显。
有时两者都要用到。例如LangChain 处理高层抽象时理解用户意图:“把卧室的脏衣服放进洗衣机然后启动清洗”,它会分解为原子步骤:(1)导航到卧室 → (2)识别脏衣服 →(3)抓取衣服 → (4)导航到洗衣机 →(5)放置衣服 → (6)按启动按钮即协调ROS相关技能例如调用move_base导航、使用MoveIt!抓取等等预封装模块。而RT-2 则处理底层控制,当LangChain执行“(3)抓取衣服”时,传统方案通过MoveIt做运动规划可能因衣物形变失败,RT-2就可以直接解决传统规划器难以处理的场景(柔性物体抓取、动态避障)。
部署时候建议分阶段实施。第一阶段(快速验证):使用 LangChain + 预定义技能库实现八成结构化任务(例如导航/抓取刚性物体)。第二阶段(增强鲁棒性):在易失败场景引入 RT-2微调模型,例如对于抓取动作可以采集200组衣物/塑料袋抓取时的关节控制序列作为训练数据,然后替换原有抓取技能。
总之建议从LanfChain开始。
LangChain
如何让聊天机器人不仅仅回答通用问题还能从数据库或文件中提取信息并根据这些信息执行具体操作例如发邮件,Harrison Chase等人于2023年创建的Langchain这个开源框架允许开发人员将像 GPT-4 这样的大型语言模型与外部的计算和数据源结合起来,是专为构建语言模型驱动的应用程序而设计开发的。它可以帮助开发者更好地利用大型语言模型(LLMs)的潜力,将语言模型与其他工具(如数据存储、API等)结合起来,从而创建出更强大的以语言为核心的智能应用。
它通过三个核心组件实现增强:(1)首先是 Compents组件,为LLMs提供接口封装、模板提示和信息检索索引;(2)其次是 Chains链,它将不同的组件组合起来解决特定的任务,例如在大量文本中查找信息;(3)最后是 Agents代理,它们使得LLMs能够与外部环境进行交互,例如通过API请求执行操作。
RT-2
虽然 Transformer 在NLP以及CV领域展现出惊人性能,但是无法高效实时运行。因此Google于22年底提出机器人Transformer(Robotics Transformer 1,RT-1),可以把相机图片、指令与电机命令作为输入,即可以对高维输入与输出进行编码。
RT-2基于PaLM-E和PaLI-X视觉语言模型在视觉解释和推理任务上预训练,给VLM加上动作模态RT1从而变成VLA。从而RT-2将视觉文本多模态大模型VLM具备的数学、推理、识别等能力和机器人例如RT-1的操作能力结合到一起。