长序列特性的主要要求是在输入文本超长的场景下,模型回答的效果及性能也可以同时得到保障,其中输入的序列长度大多长于32K,甚至可到达1M的级别。其主要的技术难点是对attention部分以及KV Cache的使用方面的优化。在长序列场景下,由Attention和KV Cache部分造成的显存消耗会快速的成倍增长。因此对这部分显存的优化便是长序列特性的关键技术点。其中涉及到诸如KV Cache量化,kv多头压缩,训短推长等关键算法技术。
目前MindIE LLM对最大序列长度的支持主要受限于以下两类因素:
请兼顾硬件规格、模型参数及模型支持的最大有效推理长度来确定合适的序列长度。具体规格请参考对应模型的官方介绍文档。长序列推理的使能方式与普通模型推理方式一致,仅需要将长序列文本按照正常推理流程传入模型即可。详细的执行模型推理的流程请参考模型推理使用流程获取更多信息和支持。运行支持长序列的模型的方式,与运行其他模型无异。
以LLaMa3模型为例,您可以使用以下指令执行对话测试,推理内容为"What's deep learning"。
cd ${ATB_SPEED_HOME_PATH} bash examples/models/llama3/run_pa.sh {模型权重路径} {输出长度}