foundation model

news2024/9/27 19:23:10

 

目录

 

多模态预训练模型

BLIP

LLM

GPT3

InstructGPT

FLAN

 chain of thought

ToolFormer

QWEN

Llama3

VLM

QWen-VL

VideoChat

Video-ChatGPT

应用

DriveVLM

PlanAgent


多模态预训练模型

CLIP

BLIP

《Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation》

Model

BLIP模型结构如上,Image encoder部分就是一个N层的ViT模块;而文本模型分为三个,其中第一个Text Encoder是N层的transformer结构,主要目的就是用来感知,其输出和Image Encoder输出做一个对比学习的Image Text Constrast Loss;Image-grounded Text encoder模块和Image Encoder共用权重,但是增加了Cross Attention融合image信息,Loss是image-text matching loss;最后decoder模块则依然是服用Text Encoder相关的一些权重,但是Self-Attention是新的,融合image信息作生成式的相关任务,Loss则使用对应任务的Loss。可以看到上图中颜色相同的模块是共享权重的,BLIP在三种类型的任务中有很多共用的模块。

Data

在BLIP的使用的数据中,网上扒下来的数据CC12M是有noise的,他带了脏数据(图片文本对不匹配),而coco的数据却是比较干净的,所以作者这里使用了CapFilt来筛选、生成数据,逐步获取干净的大规模数据。

如下图所示,一开始数据集中包含所有数据做一个预训练得到MED(Mixture of Encoder-Decoder)模型,再用干净的COCO数据去finetune预训练模型得到Filter模型和Captioner模型,1)利用filter晒去CC12M中不匹配的文本对;2)利用captioner给Iw生成新的Ts;留下filter校验过的CC12M、captioner生成的CC12M的文本加上准确的COCO数据重新预训练MED模型,如此往复就可以提升模型效果。

在BLIP2中提出了一个新的结构Q-Former,来利用已经冻结的预训练视觉大模型,从其中提取到文本能使用的视觉特征。其结构如下,Q-Former有一些learnable Queries和image encoder的输出embeddings做cross attention。他的训练分成两步:1)vision language representation学习,利用ITC(图文对比)、ITM(图像检索)、ITG(caption生成)任务来训练;2)把Q-Former接入大语言模型,作为soft prompt,训练生成任务。

LLM

GPT3

整体训练方法和GPT相似,增加了prompt tuning,在输入中提供交互式的prompt,使用instruction+demonstration的方式,引导模型输出对应结果,甚至完成未见过的新任务。

Data

如下是Few-Shot、One-Shot、Zero-shot、Fine-Tuning的数据形式。

Few-Shot方式,会为模型提供10~100个样例(取决于模型context window=2048),这种方式在某些任务下取得的结果接近于该任务下finetune后的SOTA。One-Shot即提供1个样例。Zero-shot则给模型输入一个自然语言的指令来描述任务而不给样例,这种方式在某些任务下会让人都难以理解其目的,但是在某些任务中却很简明。

1)基于和一系列高质量的语料库相似度,清洗CommonCrawl

使用WebText、Wikiedia和自己的web books语料库座位正样本,未过滤过的Common Crawl作为负样本。使用Spark's standard tokenizer和HashingTF提取的特征。训练一个logistic regression模型,给这些Common Crawl documents打分,保留符合如下条件的数据

2)文件级的fuzzy去重

同上使用Spark's MinHashLSH implementation with 10 hashes,消除相似度较高的文本。

3)加入已知的高质量语料库到CommonCrawl。

同时为了避免训练集中有下游任务测试集、验证集中的数据,直接移除重合部分。

使用的数据集

Model Architecture

和GPT2一样的结构

hyper parameters

 Training Process

 Evaluation

对于few-shot情况,每一个评测的样本,会从该任务的训练样本中抽取K个样本作为样例,这些样例间用换行符来分隔。同具体context内容如下:

InstructGPT

《Training language models to follow instructions with human feedback》

拿现有与训练模型如GPT3作为初始模型

step1:通过标注人员给一些问题写答案来获取一部分监督数据,这些数据来源于标注人员自己写的prompt和答案、限定指令下的答案、用户反馈的问题。利用这些数据做SFT(supervised Finetuning)。

step2:用step1的模型给prompt做可能的答案,让标注人员给这些候选答案按由好到坏排序,这些排序数据可以训练一个RM(rewarding model)用于给答案评分 。我们RM是基于step1的SFT模型来训练,去除最后一层,增加一个线性层回归一个分数,RM模型的输入是prompt+response。

step3:适用强化学习,利用RM给答案的评分优化模型得到更好的答案。这里使用强化学习的原因就是因为,更新LLM模型后相当于环境变化了,如果不使用强化学习RM给新的response提供reward,就需要靠人来标,这是不可取的。目标函数如下:

参考文献

RLHF:《Learning to summarize from human feedback》

FLAN

《finetuned language models are zero-shot learners》

instruction tuning,使用数据集微调语言模型,可以大大提升其在没有见过的任务上的泛化性能,这个专用数据集是使用instruction指令描述的。在文中的具体例子,是使用60个NLP数据集微调一个137B的预训练语言模型,这60个数据集是通过自然语言指令模板表达的,最终这个模型相比没有instruction tuning有很大的提升,甚至在zero-shot能力上25个任务中有20个任务超过175B的模型。

instructions datasets

Data

 作者把tensorflow Datasets上可用的62个公开文本数据集划分成12大类。然后用模板把这些数据改写成instructions的形式,同一个类型的数据里面会混合多个类似的模板以提升数据多样性,如图所示:

 在评测的时候,就按照大类catergory,某一个category中数据集只用来测试,其他的数据用来instructions tuning,看在这个未使用的数据上zero-shot的能力如何。

ablation results

scaling laws,在小模型上instruction tuning有负作用,大一些的模型上才能起作用。

 chain of thought

Chain-of-thought prompting elicits reasoning in large language models》

100B的模型在快速的sentiment classification这些问题上就能取得很好的结果,但是在数学计算、逻辑推理问题上却不能取得好的效果。chain of thought就是一种激发语言模型推理能力的一种prompting方法,让模型像人一样step by step地去思考问题。

训练好的大模型求解推理结果有几种方式:i)一种是直接让模型回答提问,后面带上The answer is;ii)在问题后加上Let's think step by step,这时模型会生成一些中间推理结果;iii)手动构造一些examples,给到输入,其实这里就是利用模型的few-shot能力仿照样例来一步一步推理(这就是引文的方法);iv)还有一种是用自动的方法即Auto-CoT,自动构造few-shot样例,即在数据中抽样相似问题并接上Let's think step by step得到答案作为你真正要的问题的前面作为输入。

 

ToolFormer

Toolformer: Language Models Can Teach Themselves to Use Tools》

LLM能够依据指令很好的完成一些任务,但是在一些基础功能如算数、事实查找还比不过一些小模型。这篇文章就是让模型能够教自己使用外部工具,调用一些API。文中是自监督的方式,仅仅对api进行一些描述,就能使用包括计算器、问答系统、搜索引擎、翻译系统和日历等。这方法提升了很多下游任务,而没有牺牲他的核心语言模型能力。

方法

文中需要API的输入输出是文本序列,这样才能无缝地使用特殊tokens标记调用的起始,把API调用插入所给的文本。如下"<API>","</API>"和"->"是特殊符号(实际使用中,用"[","]"表示"<API>","</API>"),ac就是API名,ic是入参,r是结果。

 下面是toolformer的一些例子,分别调用了QA、计算器、翻译、wikipedia工具。

数据制作

需要把数据集转化成API增强过的数据集。主要通过如下三步来实现:

FT数据集生成

 sample API calls:对于每一个API,我们写一个提示P(x)来引导LLM去用API调用来标记输入sequence,例如QA的提示可以写成如下:

QA API数据处理

 这样就能获得在那些地方要插入api call,但是文中还用概率阈值来约束input中保留几段api call。设pM(zn+1 | z1,...,zn)是M预测第n+1个token为zn+1的概率,那么对于每个模型M预测"<API>"的地方有:

 只保留top-k个概率大于阈值Ts的API call。对于每个为"<API>"的位置,还需要模型M来预测m个API的输入参数(前缀为)结尾为"</API>"。

execute api calls:然后利用生成的API call来调用API得到文本序列结果ri。

filter API calls:使用API call和结果ri作为前缀求模型后面生成的token,用这些后置的token来计算交叉熵损失,如果api call作为前缀生成的后面的token没有降低loss,则抛弃这些api call。

代表空的序列。

model finetuning:生成了api call后,文中把对应的API call和结果ri合并到了原来的文本序列中,形成了新的数据,这个数据集出了增强过的数据,还是要保留原来的数据。在这样的数据上微调后,LLM可以更好的决定预测未来应该是什么TOKEN。

推理:当生成"->"token时,这意味着要使用API获得结果填入对应位置。

QWEN

Data

webdata:从HTML提取文本,使用language identification tools分辨语言,同时还要去重。还有一些基于规则的、机器学习的方法给内容打分,去除低质量数据。同时使用多任务指令能够提升模型的zero-shot,few-shot能力。

Tokenization

BPE(byte pair encoding),用了tiktoken(Shantanu Jain. tiktoken: A fast BPE tokeniser for use with OpenAI’s models, 2022. URL https://github.com/openai/tiktoken/.)加入了中文字符。

Architecture

参数量

 用的LLaMA模型,修改部分为:

Embedding和output projection

Positional embedding使用RoPE(Rotary Positional Embedding)

Bias去除大部分层的偏置,保留QKV层偏置。

RMSNorm改变transformer的normalization

activation function选用SwiGLU。

Training

还是采用和GPT一样的自回归方式做预训练,输入前序tokens预测下一个token,context length 2048。为了节省存储空间,使用flash attention(Tri Dao, Daniel Y. Fu, Stefano Ermon, Atri Rudra, and Christopher RÅLe. FlashAttention:Fast and memory-efficient exact attention with io-awareness. In NeurIPS,2022. URL http://papers.nips.cc/paper_files/paper/2022/hash/67d57c32e20fd0a7a302cb81d36e40d5-Abstract-Conference.html.)使用AdamW,参数0.9,0.95,10-8. 余弦退火lr训练策略。BFloat16精度混合。

Context length extension

NTK-aware interpolation(

NTK-aware scaled RoPE allows LLaMA models to have extended (8k+) context size without any fine-tuning and minimal perplexity degradation., 2023. URL https://www.reddit.com/r/LocalLLaMA/comments/14lz7j5/ntkaware_scaled_rope_allows_llama_models_to_have/.)

LogN-Scaling(

David Chiang and Peter Cholak. Overcoming a theoretical limitation of self-attention. In Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 7654–7664, 2022. ) and window attention(Iz Beltagy, Matthew E Peters, and Arman Cohan. Longformer: The long-document transformer.arXiv preprint arXiv:2004.05150, 2020.)

Alignment

利用SFT supervised finetuning,采用一些chat-style的数据,包括询问和回答。训练optimizer用的AdamW,参数0.9,0.95,10-8,序列长度2048,batchsize128,步数4000,学习旅最大2x10-6,weight decay 0.1,dropout 0.1,梯度clipping未1.0。

RLHF(Long Ouyang, Jeffrey Wu, Xu Jiang, Diogo Almeida, Carroll L. Wainwright, Pamela Mishkin,Chong Zhang, Sandhini Agarwal, Katarina Slama, Alex Ray, John Schulman, Jacob Hilton, Fraser Kelton, Luke Miller, Maddie Simens, Amanda Askell, Peter Welinder, Paul F. Christiano, Jan Leike, and Ryan Lowe. Training language models to follow instructions with human feedback. In NeurIPS, 2022. URL http://papers.nips.cc/paper_files/paper/2022/hash/b1efde53be364a73914f58805a001731-Abstract-Conference.html.)在构造Reward Model时,同样采用先preference model pretraining,后用更好的分级标注数据finetune。proximal policy optimization:强化学习算法需要看一下。

参考文献:

chain of thought

Jason Wei, Xuezhi Wang, Dale Schuurmans, Maarten Bosma, Fei Xia, Ed Chi, Quoc V Le, Denny Zhou, et al. Chain-of-thought prompting elicits reasoning in large language models.Advances in Neural Information Processing Systems, 35:24824–24837, 2022c.

RLHF

Long Ouyang, Jeffrey Wu, Xu Jiang, Diogo Almeida, Carroll L. Wainwright, Pamela Mishkin,Chong Zhang, Sandhini Agarwal, Katarina Slama, Alex Ray, John Schulman, JacobHilton, Fraser Kelton, Luke Miller, Maddie Simens, Amanda Askell, Peter Welinder, Paul F. Christiano, Jan Leike, and Ryan Lowe. Training language models to follow instructions with human feedback. In NeurIPS, 2022. URL http://papers.nips.cc/paper_files/paper/2022/hash/b1efde53be364a73914f58805a001731-Abstract-Conference.html.

AI agent

use tool:Timo Schick, Jane Dwivedi-Yu, Roberto Dess`ı, Roberta Raileanu, Maria Lomeli, Luke Zettlemoyer,Nicola Cancedda, and Thomas Scialom. Toolformer: Language models can teach themselves to use tools. arXiv preprint arXiv:2302.04761, 2023.

use other data: Chenxu Hu, Jie Fu, Chenzhuang Du, Simian Luo, Junbo Zhao, and Hang Zhao. Chatdb: Augmenting llms with databases as their symbolic memory. arXiv preprint arXiv:2306.03901, 2023.

embodied intelligence: Palm-e: Danny Driess, Fei Xia, Mehdi SM Sajjadi, Corey Lynch, Aakanksha Chowdhery, Brian Ichter, Ayzaan Wahid, Jonathan Tompson, Quan Vuong, Tianhe Yu, et al. Palm-e: An embodied multimodal language model. arXiv preprint arXiv:2303.03378, 2023.

embodied intelligence: Guanzhi Wang, Yuqi Xie, Yunfan Jiang, Ajay Mandlekar, Chaowei Xiao, Yuke Zhu, Linxi Fan, and Anima Anandkumar. Voyager: An open-ended embodied agent with large language models. arXiv preprint arXiv:2305.16291, 2023a.

Llama3

Pretraining

预训练要解决的问题主要是这几个:1)清洗出大规模数据集;2)确定模型架构和对应的参数规模、数据规模(和scaling law相关);3)大模型预训练相关的工程技术;4)预训练开发的方法。

数据

未公开,只说用了多种多样的数据源,并使用了多种去重和清洗方法处理。

数据筛查:网络数据,去除了个人身份信息相关的内容、成人内容。自己弄了一个HTML内容抽取器,用人为评估的方法进行了HTML parser的质量评估。去重方面,使用了URL级(保留对应URL 最新的版本)、文本级(global MinHash方法去重)、行级去重;启发式的去除低质量的文本,如计算n-gram覆盖比率以去除如logging、error的信息;脏话太多的文本去除;计算文本间KL散度,如果和训练语料库相差太远的说明是不好的文本。基于模型的质量筛查,通过模型给文本分类、打分。

针对代码和推理要专门的parser提取高质量的数据。

还准备了多语言的数据。

数据混合:针对自己模型应用不同的策略来混合上述采集到的数据,给不同类型的数据分配不同的采样率。这里作者做了几个事1)训练分类器,给数据分类如打上艺术娱乐的标签类型。2)在几个小的模型上实验数据混合策略,来预测大模型表现。3)最终的比例50%通用知识,25%数学推理数据,17%代码,8%多语言。

数据退火:在你想要提高的领域,可以用退火的方法在对应的小数据上finetune,这方法可以在对应测试集上提高其表现。

模型架构

整体而言是数据扩大、多样性增加,加大了模型规模的结果,整体上模型结构和Llama和Llama2差不多。

scaling laws:用小模型预训练的loss去预测大模型的预计表现,从而确定大模型和数据量的最佳配置。1)建立对应任务测试集上negative log-likelihood和训练消耗算力FLOPs的关系;2)论文中使用之前Lllama2中训练过的模型数据和一些新的小模型;其算力消耗和验证集表现如下:

scaling laws

左图横坐标为训练使用训练出来的模型数据和验证loss的关系,可见相同使用算力下训练数据和loss会有一个最优点,而算力使用越多整个loss是下降,可以拟合出这个算力消耗和loss关系曲线从而预测最优的数据量和模型大小。右图算力对数和训练数据间关系,可以取你能消耗的算力推测出最大模型。

VLM

QWen-VL

基于Qwen-7B语言模型,通过引入新的视觉感受器(包括视觉语言对齐的encoder,position-aware adapter),赋予了视觉理解能力。从而能够完成多种任务,包括图像描述、问答和visual grounding。

Architecture

LLM模型基于Qwen-7B预训练权重初始化。Visual Encoder基于ViT,使用了openclip的ViT-bigG权重初始化,训练中resize到固定尺寸,然后把图像切分成块,stride 14,生成多个image features。Position-aware VL adapter,主要用来压缩图像特征,该模块是由可训练的embeddings组成,作为query,视觉encoder的输出作为key做cross attention,最终会把视觉特征序列压缩成256维的固定长度。2D的绝对位置编码在query-key对中也要用到,以避免位置信息的丢失。

Qwen-VL 结构与训练方式

image input:为了区分视觉特征和文本特征,在visual features首位添加了特殊tokens(<img></img>)。

bounding box input & output:为了区分检测字符串和普通文本字符串,在bbox字符前后增加特殊tokens(<box></box>),bbox字符格式为"(Xtop_left,Ytopleft),(Xbottom_right,Ybottom_right)"。如果需要关联一些描述性文本,这些文本首位添加特殊tokens(<ref></ref>)。 

Training

pretraining stage1:

第一阶段,使用大规模、弱标签、网上爬取的图文对,包括一些公开的数据和内部数据。从5billion图文对清洗到1.4B。冻结LLM模型,只训练视觉编码器、VL adapter。输入图像resize 224x224,训练目标是最小化文本token的交叉熵,最大学习率2e-4,batchsize30720,整个第一阶段50000steps,训练样本近1.5B图像文本对。

stage1数据集

 multitask pre-training

这一步使用高质量、精细的视觉语言标注数据,有更高的分辨率和图像文本数据。我们同步训练了7个任务,text generation、captioning、VQA、Grounding、ref grounding、grounded cap、OCR、pure-text autoregression。视觉encoder分辨率从224提升到448,降低下采样造成的信息丢失,LLM参数也放开来训练,目标函数和第一阶段一样。

多任务数据集

 supervised fine-tuning

利用intruction fine-tuing加强指令理解和对话能力,训练出了Qwen-VL-Chat模型。这里使用的数据集还包括了额外的,通过人工标注、模型生成、策略联合来构建的,目的是让模型有localization、多图像理解能力。instruction tuning数据有350k,这个阶段的数据要冻结视觉encoder,优化语言模型和adapter模块。

Data

多任务预训练数据格式如下

 自监督数据格式

参考文献

Instruction finetuning: Finetuned Language Models Are Zero-Shot Learners.通过给定指令或指导+-来训练模型,使其按照给定的指导执行特定任务,通常结合强化学习,通过奖励模型正确执行指导的任务,从而优化生成的结果。

prompt tuning:通过在提示词中添加特定提示从而引导模型生成特定类型的响应。整个输入变成了prompt embeddings + input embeddings,输入对应引导任务的结果。

应用

浙江的人形机器人初创企业有鹿机器人近期就基于通义千问开源模型,开发了具身智能大模型LPLM这个“通用机器人大脑”,并达成了一笔超千万的商业订单,证明了这套开源大模型的强大。

百度选择的是与人形机器人头部企业优必选强强联手,共同探索中国AI大模型+人形机器人的应用。优必选人形机器人Walker S通过百度智能云千帆AppBuilder平台接入百度文心大模型进行任务调度应用开发,主要提升快速构建任务规划与执行能力。

腾讯终于交出了「GPTs」和大模型助手 App 的答卷,RoboticsX 机器人实验室也把 AI 模型应用到了自研的机器狗上,但由于腾讯的大模型能力偏向于软件功能侧,机器人企业应用后研发进展缓慢,对于语义理解和控制决策层帮助不大。

最近的消息是,乐聚选择与华为达成战略合作,以华为盘古大模型为核心,结合夸父人形机器人技术,共同探寻并构建通用具身智能解决方案。

VideoChat

《VideoChat:Chat-Centric Video Understanding》

https://github.com/OpenGVLab/Ask-Anything

由于第一种VideoChat-Embed方法是先将video转成text,有一定的信息丢失。所以这里我们选取VideoChat-Embed这部分详细记录。

Model Architecture

 在这个结构中,有预训练的ViT-G with Global Multi-head relation Aggregation(GMHRA),有预训练好的QFormer+linear线性映射层(QFormer增加了额外的query tokens来表达视频的上下文)。训练时冻结大部分权重除了新引入的GMHRA、QFormer新增的tokens、线性映射层。

训练分为两个步骤:1)通过大规模视频-文本对来对齐video encoder和LLM。2)利用详尽的视频描述指令数据、视频问答数据微调。

数据

视频多模态指令数据是基于WebVid-10M建立的,对应的详细描述和问答是通过ChatGPT(增加了VIdeoChat-Text生成的文本加入到prompt)生成的。

Video-ChatGPT

Video-ChatGPT: Towards Detailed Video Understanding via Large Vision and Language Models》

应用

DriveVLM

《DRIVEVLM: The Convergence of Autonomous Driving and Large Vision-Language Models》

该文是理想和叉院合作的端到端的智驾方案。为了解决长尾和复杂场景问题,引入VLM大模型,利用大模型能力分别做了场景描述、场景分析、分级规划。除此之外因为大模型的推理性能问题,结合传统自动驾驶系统形成了快慢双系统VLM-dual。

引言:

现有的智能驾驶系统包括了3d感知、运动预测和规划模块,但是对于场景的理解一直表现不好,尤其是3D的感知只能局限于检测跟踪熟悉的目标,运动预测和规划则只关注到轨迹级的动作,忽略了和目标间决策级的交互。

优势:DriveVLM则采用CoT处理三个关键目标:场景描述、场景分析、分级规划,场景描述描绘了驾驶环境、识别关键目标,场景分析则关注关键目标的特性和他们对于自车的影响,分级的规划模块则一步一步地从meta-actions和waypoints描述来形成规划结果。

劣势:VLM优势在于视觉理解,但是空间定位和推理方面能力有限,同时算力消耗比较大。这也是为何要搞双系统的原因。

 1)场景描述:包括环境描述(时间、天气、道路条件等,Eweather、Etime、Eroad、Elane)和关键目标识别(最有可能影响当前场景的关键目标的category、bounding box)

2)场景分析:包括关键目标的静态属性Cs,运动状态Cm,特殊行为Cb。

3)分级规划:场景级的总结和路线、自车姿态还有速度一起形成规划的prompt,最终DriveVLM逐步生成驾驶规划meta-actions->decision description->trajectory waypoints。

Meta-actions是一个短期的决策,共17个类别[acceleration,deceleration,turning left,changing lanes,minor positional adjustments,waiting],为了在一段时间内控制车,本文会生成一个meta-action序列。

Decision Description提供了更细粒度的驾驶策略,包括3个元素action、交互目标约束subject、动作执行时间顺序duration。

Trajectory waypoints生成了自车对应的轨迹{(x1,y1),(x2,y2),...},描绘了未来时刻t内的自车运动轨迹。也是以自回归的方式输出语言tokens得到这些waypoints。

PlanAgent

 《PlanAgent:A Multi-modal Large Language Agent for Closed-loop Vehicle Motion Planning》

架构

整体架构

 整体由三部分组成,Environment transformation负责从环境中提取关键信息构建BEV map和基于车道图的文本描述作为第二个模块Reason Engine的场景prompts,Reason Engine生成规划结果,最终Reflection模块评估这个规划结果。

Environment Transformation:这个模块将场景信息分为全局和局部信息。全局信息(BEV Map)代表场景类型,提供自车运动规划的先验信息,如在环形交叉路口要注意汇入车辆、单行车道禁止变道等等。局部信息(lane-graph转化成文本描述)表示自车和周边其他车的运动,这些信息直接影响到自车横向纵向动作规划。

BEV Map:首先从环境中提取地图信息、他车信息和障碍物信息,地图信息包含1)中心线2)人行横道3)车道;目标信息包括4)自车5)他车6)两轮车7)行人,障碍物信息表示8)静态障碍物。在建立BEV map时,这8个道路元素用不同的颜色可视化来加强多模态大模型对道路结构的理解。为了描绘场景动静态信息,每一个目标用红色箭头表征他的速度信息。

Textual Description:之前的方法把所有的agent信息和道路信息直接以数学坐标的方式送给LLM模型,这是冗余且无效的,而且大量的坐标不一定能和LLM的语义空间相适应。将每一段路等分成多个节点,节点的位置和连接关系提供了一个好的语义和几何表达。如下图所示将,一个三车道场景,每一个节点周边有8个相邻的节点,我们把节点间的位置和连接关系转化为文本描述,以有效地表达现实世界中道路信息。为了保证信息有效性,我们只保留八个相邻节点的目标、障碍物、交通灯信息(速度、距离)。

文本描述lane-graph

Reasoning Engine 

 引入MLLM的目的,就是希望借助大模型的常识、逻辑推理、泛化能力解决自动驾驶领域的问题。如上所述,multimodal Large language models的输入是ETM模块的环境信息prompt加上预设的系统prompts。紧接着MLLM通过多轮的分级思维链指引下的推理,应用IDM规划器(nuPlan提供的规划器)生成规划结果。提示词分为两部分:1)场景提示词,用以描述场景2)系统提示词,定义任务、导入驾驶常识、指引分级推理。(这里MLLM没有做微调,直接用的GPT-4V),所以你的提示词需要提供任务定义、格式,还有合理的planner生成样例(讲清楚调用IDM的输入参数代表着什么)。同时这里还引入了思维链指导MLLM一步一步理解场景、给出action规划、生成规划器调用代码。

决策引擎

 Reflection

MLLM生成的规划结果有不确定性,生成的决策会进入PDM-Closed中的仿真(评估潜在的碰撞等级)进行评分,如果低于阈值Reasoning Engine会被要求重新生成新的规划。为了减少长时间仿真的累积误差,我们只进行短期的仿真,同时约束重新决策的次数,超过次数采用最后一次的决策。

 Result

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2089308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

突发!Runway 从 HuggingFace 及 GitHub 上删库跑路,背后有何隐情?

突发&#xff01;2024年8月29日Runway 从 HuggingFace 及 GitHub 上删库跑路&#xff0c;背后有何隐情&#xff1f; &#x1f9d0; 今天我们来聊一聊科技圈一则爆炸性消息&#xff1a;Runway ML 从 HuggingFace 和 GitHub 上删库跑路&#xff0c;毫无预警&#xff01;这个举动…

基于asp.net的在线考试系统源码分享

这是一个基于asp.net的开发的在线考试系统&#xff0c;需要的小伙伴自己参考源码&#xff0c;下载链接我放在后面了。 1.主要功能 主要功能包含用户注册登陆、学生登录、老师登陆、试卷管理、分数管理、 填空题选择、选择题管理、题库管理、分数管理、试卷随机生成等等模块。…

【精选】基于Django的智能水果销售系统设计与实现

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

面试必问的 Linux 命令帮你整理好啦...

01.背景 作为一名测试工程师&#xff0c;Linux 是必须要掌握的一项技能。 因为大部分的互联网公司的项目都是搭建和部署在 Linux 服务器上的&#xff0c;所以测试就算不去负责搭建和维护测试环境&#xff0c;也需要在测试过程中去服务器那边定位测试中的问题。 所以&#xf…

PTA L1-027 出租

L1-027 出租&#xff08;20分&#xff09; 下面是新浪微博上曾经很火的一张图&#xff1a; 一时间网上一片求救声&#xff0c;急问这个怎么破。其实这段代码很简单&#xff0c;index数组就是arr数组的下标&#xff0c;index[0]2 对应 arr[2]1&#xff0c;index[1]0 对应 arr[0…

这四种人不能合作做生意

合伙创业千万不要和这四种人合伙&#xff0c;不然公司做大了都不是你的&#xff01; 一、不愿出钱的人&#xff0c;不愿出钱就不会有决心。公司一旦有风吹草动&#xff0c;最先跑路的都是没有出钱的。 二、不愿付出时间的人&#xff0c;想用业余时间参与&#xff0c;不愿全身心…

Unity编辑器扩展之Hierarchy面板扩展

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! Unity编辑器扩展之Hierarchy面板扩展 TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不断探索 TechX —— 心探索、心进取&#xff…

css-functions-图形函数

概述 本文会讨论和图形函数有关的 5 个函数,分别是:inset、circle、ellipse、polygon和path。这个 5 个图形函数也对应着相应的<basic-shape>。 <basic-shape>是一种表现基础图形的 CSS 数据类型,作用于clip-path或shape-outside属性中;而其值是由图形函数获…

sfud移植

sfud移植 首先看readme文档 文件结构 inc文件夹&#xff1a;各种头文件&#xff0c;注意flash_def和cfg头文件 port文件夹&#xff1a;接口文件 src文件夹&#xff1a;代码源文件 移植 基础&#xff1a;你的SPI没问题&#xff0c;用普通工程可以正常操作Flash 首先打开f…

cloudways相关

服务器优惠链接&#xff1a; https://www.cloudways.com/en/?id1081165 cloudways 后台清缓存位置&#xff1a; 网站迁移到cloudways&#xff08;用cloudways的自动迁移插件&#xff09;&#xff1a; 不管原网站是不是用的cloudways主机&#xff0c;都可以用这个方法。 1…

【React】react项目安装tailwindcss

创建React项目 首先,如果您还没有React项目,可以使用以下命令创建一个新项目: npx create-react-app my-tailwind-app cd my-tailwind-app安装Tailwind CSS 接下来,按照以下步骤安装Tailwind CSS: 安装必要的依赖: npm install -D tailwindcss postcss autoprefixer初始化…

Kubernetes 1.31 新功能: 细粒度补充组控制

这篇文章讨论了 Kubernetes 1.31 中的一个新特性&#xff0c;用于改善 Pod 中容器的补充组&#xff08;Fine-grained SupplementalGroups control&#xff09;处理。 动机&#xff1a;在容器镜像中的 /etc/group 定义的隐式组成员身份 尽管这种行为可能并不受许多 Kubernetes…

Redis安装+常用命令合集大全+Redis Desktop Manager

文章目录 一&#xff1a;Redis 简介二&#xff1a;安装和配置Redis第一步&#xff1a;下载Redis第二步&#xff1a;解压Redis第三步&#xff1a;配置Redis第四步&#xff1a;启动Redis服务器第五步&#xff1a;验证Redis安装第六步&#xff1a;设置Redis为全局命令 三&#xff…

不同品类商标一样属于侵权吗!

商标分类有45类&#xff0c;有网友问普推知产商标老杨&#xff0c;不同品类商标一样属于侵权吗&#xff0c;这个要从多个角度来分析&#xff0c;不同品类商标是相同一样的&#xff0c;这样的基本不侵权的。 在注册申请商标是会经常遇到别人在某类别注册&#xff0c;但是有一些类…

[Meachines] [Insane] Bankrobber XSS-MDOG+SQLI+XSRF+Local-RCE+Bankv2转账模拟应用缓冲区溢出

信息收集 IP AddressOpening Ports10.10.10.154TCP:80&#xff0c;443&#xff0c;445&#xff0c;3306 $ nmap -p- 10.10.10.154 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 80/tcp open http …

各个击破:NetXpert XG2帮您解决“布线安装与维护”难题

在传输大量数据时&#xff0c;光纤变得越来越重要&#xff0c;而铜缆在未来也将继续发挥重要作用&#xff0c;因此我们不仅要比较两种类型布线的优缺点&#xff0c;还要探究光纤传输中的错误来源。 测试光缆传输损耗的准确性对于故障排除至关重要&#xff0c;特别是在光纤情况下…

hadoop技术

历史版本 HA&#xff1a;高可用 技术框架

[线程]线程不安全问题 --- 死锁

文章目录 一. 引出死锁二. 可重用锁三. 死锁的三种典型场景四. 死锁产生的四个必要条件(面试题)1. 锁具有互斥特性2. 锁不可抢占(不可被剥夺)3. 请求和保持4. 循环等待 五. 避免死锁问题 一. 引出死锁 class Counter{private int count;public void add(){synchronized(this){…

深度学习语义分割篇——DeeplabV3原理详解+源码实战

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;专栏推荐&#xff1a;深度学习网络原理与实战 &#x1f34a;近期目标&#xff1a;写好专栏的每一篇文章 &#x1f34a;支持小苏&#xff1a;点赞&#x1f44d;&#x1f3fc;、…

域内安全:委派攻击

目录 域委派 非約束性委派攻击&#xff1a; 主动访问&#xff1a; 被动访问&#xff08;利用打印机漏洞&#xff09; 约束性委派攻击&#xff1a; 域委派 域委派是指将域内用户的权限委派给服务账户&#xff0c;使得服务账号能够以用户的权限在域内展开活动。 委派是域中…