暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GoldenDB关于请求处理方法、电子设备、存储介质及程序产品的方案介绍

张芝 2025-01-20
197

一种请求处理方法,包括: 接收推理请求,所述推理请求用于请求使用大模型进行模型推理; 将所述推理请求加入请求队列,所述请求队列用于存放多个推理请求; 根据所述多个推理请求的推理信息,确定所述多个推理请求的优先级,所述推理信息 包括所述多个推理请求的任务难度、等待时间和对应的用户等级; 根据所述多个推理请求的优先级,从所述多个推理请求中选择至少一个推理请求进行 一次推理阶段的模型推理。

所述根据所述多个推理请求的推理信息,确定所述多个推 理请求的优先级,包括: 对于每个所述推理请求,执行以下操作: 根据所述推理请求的任务难度,确定第一优先级; 根据所述推理请求的等待时间和第一参数,确定第二优先级; 根据所述推理请求对应的用户等级和第二参数,确定第三优先级; 根据所述第一优先级、所述第二优先级和所述第三优先级,确定所述推理请求的优先 级。 

所述推理请求的任务难度与以下至少一项有关: 所述推理请求的提示词长度; 用户指定的最大输出长度; 所述大模型可以推理的请求长度上限; 所述大模型对所述推理请求的剩余解码次数。

所述根据所述推理请求的任务难度,确定第一优先级,包 括: 确定所述推理请求的状态,所述状态包括所述推理请求未进行预填充和所述推理请求 已完成预填充且处于解码阶段; 在所述推理请求的状态为所述推理请求未进行预填充的情况下,根据所述提示词长 度、所述最大输出长度和所述请求长度上限,确定所述第一优先级; 在所述推理请求的状态为所述推理请求已完成预填充且处于解码阶段的情况下,根据 所述剩余解码次数和所述请求长度上限,确定所述第一优先级。 

所述根据所述提示词长度、所述最大输出长度和所述请求 长度上限,确定所述第一优先级,包括: 确定所述请求长度上限和所述提示词长度的差值与所述请求长度上限的第一比值; 确定所述请求长度上限和所述最大输出长度的差值与所述请求长度上限的第二比值; 根据指定的第一系数和第二系数对所述第一比值和所述第二比值进行加和处理,根据 加和结果确定所述第一优先级。

所述根据所述大模型对所述推理请求的剩余解码次数和 所述大模型可以推理的请求长度上限,确定所述第一优先级,包括: 确定所述请求长度上限和所述剩余解码次数的差值与所述请求长度上限的第三比值; 根据所述第三比值和指定的第三系数,确定所述第一优先级。

所述第一参数和所述第二参数与时间忍耐阈值相关,时间忍耐阈值可调,通过调整所述时间忍耐阈值调整所述第一参数和所述第二参数; 其中,在通过调整所述时间忍耐阈值调整所述第一参数和所述第二参数的情况下,所 述多个推理请求的优先级满足以下至少一项: 在所述等待时间相同的情况下,推理请求对应的用户等级越高,优先级越高; 在所述用户等级相同的情况下,若推理请求的等待时间超过所述时间忍耐阈值,则优 先级高于新到达的推理请求的优先级。

所述请求队列包括第一队列、第二队列和第三队列,所述 第一队列用于存放未进行预填充的推理请求,所述第二队列用于存放已完成预填充阶段且 处于解码阶段的推理请求,所述第三队列用于存放处于解码阶段被抢占资源的推理请求; 所述根据所述多个推理请求的优先级,从所述多个推理请求中选择至少一个推理请求进行 一次推理阶段的模型推理,包括: 判断所述第三队列是否为空; 在所述第三队列为空的情况下,根据所述第一队列中的推理请求的优先级,从所述第 一队列中选择至少一个推理请求进行一次预填充阶段的模型推理; 在所述第三队列不为空的情况下,根据所述第二队列中的推理请求的优先级,从所述 第二队列中选择至少一个推理请求进行一次解码阶段的模型推理。

从所述第 一队列中选择至少一个推理请求进行一次预填充阶段的模型推理,包括: 根据所述第一队列中的推理请求的优先级,对所述第一队列中的推理请求进行优先级 排序; 从优先级最高的推理请求开始,依次判断本轮次是否能够推理所述推理请求; 对本轮次能够推理的至少一个推理请求进行一次预填充阶段的模型推理。 

所述从优先级最高的推理请求开始,依次判断本轮次是 否能够推理所述推理请求,包括: 判断所述推理请求是否满足第一条件; 在所述推理请求满足所述第一条件的情况下,确定本轮次能够推理所述推理请求; 其中,所述第一条件包括以下至少一项: 本轮次已经容纳的请求数小于本轮次能容纳的最大请求数; 本轮次已经容纳的词元数小于本轮次能容纳的最大词元数; 有足够的推理资源推理所述推理请求。 

所述方法还包括: 在本轮次能够推理的推理请求的数量为0的情况下,根据所述第二队列中的推理请求 的优先级,从所述第二队列中选择至少一个推理请求进行一次解码阶段的模型推理。 

在根据所述第一队列中的推理请求的优先 级,从所述第一队列中选择至少一个推理请求进行一次预填充阶段的模型推理之前,所述 方法还包括: 判断所述第一队列是否满足第二条件,所述第二条件包括所述第一队列不为空和/或 当前已到达所述第一队列的调度间隔阈值; 其中,所述根据所述第一队列中的推理请求的优先级,从所述第一队列中选择至少 3 个推理请求进行一次预填充阶段的模型推理,包括: 在所述第一队列满足所述第二条件的情况下,根据所述第一队列中的推理请求的优先 级,从所述第一队列中选择至少一个推理请求进行一次预填充阶段的模型推理。 

所述方法还包括: 在所述第一队列不满足所述第二条件的情况下,根据所述第二队列中的推理请求的优 先级,从所述第二队列中选择至少一个推理请求进行一次解码阶段的模型推理。

所述根据所述第二队列中的推理请求 的优先级,从所述第二队列中选择至少一个推理请求进行一次解码阶段的模型推理,包括: 根据所述第二队列中的推理请求的优先级,对所述第二队列中的推理请求进行优先级 排序; 从优先级最高的推理请求开始,依次判断推理资源是否能够推理所述推理请求; 在所述推理资源不能推理所述推理请求的情况下,从所述第二队列中优先级最低的推 理请求开始执行资源抢占,直至所述推理资源能够推理所述推理请求为止; 对所述推理资源能够推理的至少一个推理请求进行一次解码阶段的模型推理。 

对于任一被执行资源抢占的推理请求,所述方法还包括 以下任一项: 将所述推理请求存放到所述第三队列中;将所述推理请求占用的KV缓存由GPU卸载到 CPU; 将所述推理请求存放到所述第一队列中;释放所述推理请求占用的KV缓存;将所述推 理请求已生成的词元保存到CPU。

所述方法还包括以下至少一项: 在从所述第二队列中选择的至少一个推理请求没有发生资源抢占的情况下,根据所述 第三队列中的推理请求的优先级,从所述第三队列中选择至少一个推理请求进行一次解码 阶段的模型推理; 在所述推理资源能够推理的推理请求的数量为0的情况下,根据所述第三队列中的推 理请求的优先级,从所述第三队列中选择至少一个推理请求进行一次解码阶段的模型推 理。

在根据所述第二队列中的推理请求的优先级,从所述第 二队列中选择至少一个推理请求进行一次解码阶段的模型推理之前,所述方法还包括: 判断所述第二队列是否满足第三条件,所述第三条件包括所述第二队列不为空; 其中,所述根据所述第二队列中的推理请求的优先级,从所述第二队列中选择至少一 个推理请求进行一次解码阶段的模型推理,包括: 在所述第二队列满足所述第三条件的情况下,根据所述第二队列中的推理请求的优先 级,从所述第二队列中选择至少一个推理请求进行一次解码阶段的模型推理。 

所述方法还包括: 在所述第二队列不满足所述第三条件的情况下,根据所述第三队列中的推理请求的优 先级,从所述第三队列中选择至少一个推理请求进行一次解码阶段的模型推理。 

所述根据所述第三队列中的推理请求的优先级,从 所述第三队列中选择至少一个推理请求进行一次解码阶段的模型推理,包括:根据所述第三队列中的推理请求的优先级,对所述第三队列中的推理请求进行优先级 排序; 从优先级最高的推理请求开始,依次判断推理资源是否能够推理所述推理请求; 在所述推理资源能够推理所述推理请求的情况下,将所述推理请求对应的KV缓存由 CPU加载到GPU; 对所述推理资源能够推理的至少一个推理请求进行一次解码阶段的模型推理。 

在从所述多个推理请求中选择至少一个推理请求进行一 次推理阶段的模型推理后,所述方法还包括: 判断所述至少一个推理请求是否已完成模型推理; 对于任一个推理请求,执行以下操作: 在所述推理请求已完成模型推理的情况下,释放所述推理请求对应的KV缓存; 在所述推理请求未完成模型推理的情况下,将所述推理请求放入所述请求队列进行下 一次推理阶段的模型推理。

一种电子设备,包括: 处理器; 用于存储所述处理器可执行指令的存储器。 

一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计 算机可读存储介质,所述计算机程序可操作来使计算机执行如权利要求1至20任一项所述 的方法中的部分或全部步骤。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论