通信论文学习
下载zotero
https://www.makeuseof.com/what-is-the-biglittle-architecture/
Llumnix: Dynamic Scheduling for Large Language Model Serving
GPU memory管理中的主要挑战
(1)博弈:Load balancing vs De-fragmentation
多个内存条的负载均衡vs防止内存空间碎片化而导致的任务无法插入
Load balancing的原因:我不太清楚,猜测是平均使用硬件设备,使得设备寿命平均(?)
De-fragmentation的原因:内存空间碎片化会导致Worse queuing delays(first-token latencies)如图所示,任务无法插入,产生排队延迟,A large space on one instance is needed。
packing与spreading是一定程度上相矛盾的操作,所以需要在二者的博弈中寻找更优解。
(2)Differentiated SLOs
Existing systems treat all requests equally,Urgent requests could be easily interfered by normal ones,所以需要Request priorities。
(3)continuous load balancing
因为LLM的输出是未知长度的,故KV cache的内存需求是未知的,这使得在一个新任务到达时,我们不知道最终输出和内存需求如何。Load balancing via one-shot dispatching在输出变长情况下效果不佳,due to unpredictable execution,所以需要continuous load balancing。
输出不定长和GPU memory占用之间的关系
最先进的LLM采用自回归模型,如上图所示,模型接受“输入序列+已有的输出tokens”作为输入,输出下一个token,直到生成EOS。生成第一个token的阶段称为prefill,生成每个新token的阶段称为decode。用chatgpt来举例,prefill阶段就是用户接收到第一个字符的阶段,之后像打字机一样生成给用户的阶段,就是decode。推理引擎通常将已生成的中间状态值存储在GPU memory中以供重用,称为KV cache。总的来说,应该是输出越长,GPU memory占用越多。