FlashAttention-2:利用有效并行化与分片机制实现高效注意力
FlashAttention利用非对称GPU显存层级的特性不仅提高了内存效率,也提高了训练速度。然而,随着上下文长度的增加,它没有优化的GEMM运算一样快,且只达到了理论最大FLOPs/s的25-40%。这种不高效主要是由GPU中不同线程块与线程束之间次优的work分片导致的低显存占有率或不必要的共享内存读写所引起的。为了处理这些问题,FlashAttention-2设计了更好的woker分片。
FlashAttention利用非对称GPU显存层级的特性不仅提高了内存效率,也提高了训练速度。然而,随着上下文长度的增加,它没有优化的GEMM运算一样快,且只达到了理论最大FLOPs/s的25-40%。这种不高效主要是由GPU中不同线程块与线程束之间次优的work分片导致的低显存占有率或不必要的共享内存读写所引起的。为了处理这些问题,FlashAttention-2设计了更好的woker分片。
标准自注意力计算的时间复杂度与空间复杂度与序列长度呈现2次方关系,因此Transformer在长序列上处理速度很慢且需要大量内存。同时,随着硬件的进步,计算能力已经超过了内存的读写能力,即内存的读写限制了注意力的计算。FlashAttention是一个考虑内存读写的精确注意力计算算法,通过分片的方式减少了GPU中HBM与SRAM之间的读写次数,从而提高注意力计算的速度与内存效率。
Alpaca是一个在7B参数量的LLaMA模型上利用52K指令跟随演示数据微调的模型。在单轮指令跟随数据上评估,Alpaca性能与OpenAI的text0davinci-003一致。
Vicuna是一个开源的13B参数量的chatbot。确切的说,该模型是通过在13B的LLaMA模型上利用来自ShareGPT.com的70K对话数据微调得到的,其工作流可见图1所示。
The meaning or value of a thing consists of what it affords... what we perceive when we look at objects are their affordances, not their qualities.
-J.J. Gibson
在一个新的厨房环境中,采取动作之前,人类已经对大部分物品可以怎么操作有了很好的理解。这种理解不仅仅停留在语义层面,还知道对象哪里可以握住和往哪个方向移动。虽然这些理解不总是有效,有时可能需要探索,但是人类非常依赖物品的这种视觉affordances,从而在不同的环境中高效的执行日常任务。随着深度学习技术的发展,视觉技术不断的发展,不仅仅可以从图片中标记大部分对象,甚至可以知道其位置。
大语言模拥有大量来自互联网文本语料的知识。然而,这些知识无法直接被具身智能体所使用。这是因为大语言模型不是建立在物理世界之上的,也无法观测它的生成对物理世界的影响。SayCan作者研究了为机器人从大语言模型中抽取知识,从而跟随指令的方法。其中,机器人拥有完成低级控制任务的技能库。具体来说,不仅利用LLMs解释指令,而且用于估计单个技能对完成高级别指令的可能性。若每个技能都有一个affordance函数,用于描述每个技能成功的概率,那么LLMs与affordance函数的相结合可估计每个技能完成指令成功的概率。其中,affordance函数使LLM意识到当前场景,也意识到机器人的能力边界。同时,这种方式可产生一个可解释的机器人完成指令执行的序列步骤。