Efficient LLM Scheduling by Learning to Rank

本文是LLM系列文章,针对《Efficient LLM Scheduling by Learning to Rank》的翻译。

通过学习排名实现LLM的高效调度

摘要

在大型语言模型(LLM)推理中,LLM请求的输出长度通常被视为先验未知。因此,大多数LLM服务系统采用简单的先到先服务(FCFS)调度策略,导致前端(HOL)阻塞,降低吞吐量和服务质量。在本文中,我们重新审视了这一假设——我们表明,尽管预测每个请求的确切生成长度是不可行的,但通过学习排名,可以预测一批请求中输出长度的相对排名。排名信息为安排请求提供了宝贵的指导。基于这一认识,我们开发了一种用于LLM推理和服务的新型调度器,该调度器可以比现有方法更好地近似最短作业优先(SJF)调度。我们将此调度器与最先进的LLM服务系统集成在一起,并在几个重要应用中显示出显著的性能提升:聊天机器人服务的延迟降低了2.8倍,合成数据生成的吞吐量提高了6.5倍。我们的代码在https://github.com/hao-ai-lab/vllm-ltr.git上可用。

1 引言

2 相关工作

### LLM 输入处理机制 大型语言模型LLM)的输入处理机制是一个复杂的过程,涉及多个层面的技术实现。以下是关于这一主题的关键点: #### 数据预处理 在实际应用中,原始输入数据通常需要经过一系列预处理操作才能被送入模型。这包括但不限于分词、编码以及上下文窗口管理等步骤。具体来说,分词器会将自然语言文本转换成由特定标记组成的序列[^2]。随后,这些标记会被映射到对应的嵌入向量空间中。 #### 上下文长度限制与优化 由于计算资源和技术架构上的约束,大多数现有LLMs都有固定的上下文长度上限。当面对超出此范围的大规模文档时,则需采取特殊手段比如滑动窗法或是递归调用来逐步解析整个内容并保持连贯性[^5]。 #### 关联记忆特性 值得注意的是,在接收新信息的同时,LLMs还能激活与其内部已储存知识相匹配的部分。这是因为它们采用了基于自注意机制的设计思路,允许网络动态调整关注焦点至最相关的部分特征上去[^4]。 ```python def preprocess_input(text, tokenizer): tokens = tokenizer.tokenize(text) encoded_tokens = tokenizer.convert_tokens_to_ids(tokens) return encoded_tokens[:MAX_CONTEXT_LENGTH] # Example usage of the function with a hypothetical tokenizer object. input_text = "This is an example sentence." encoded_input = preprocess_input(input_text, tokenizer) print(encoded_input) ``` 上述代码片段展示了如何利用一个假设存在的`tokenizer`对象来进行基本的文字前处理工作流程——即将字符串形式的句子转变为适合喂给神经网路使用的整数列表表示形式;同时也体现了裁剪过长输入样本以满足最大上下限设定的做法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UnknownBody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值