一种多大模型渠道的分层路由与流式容错方法及装置与流程
本发明属于大语言模型服务路由与容错,具体涉及一种多大模型渠道的分层路由与流式容错方法及装置。
背景技术:
1、大语言模型应用通常需要接入多个模型供应商、代理渠道或自有部署渠道。不同渠道的价格、可用性、限流策略、延迟和支持的上游模型名不同。若业务侧直接写死单一供应商或单一基础地址,任何限流、故障或成本变化都会直接影响业务主链路。
2、大语言模型调用与普通http api的重要差异在于:同一平台模型名可能映射到不同供应商的上游模型名;请求错误、渠道错误和限流错误需要不同处理;流式响应一旦发出首个数据块,再切换渠道会造成重复输出、上下文分裂或审计不可追踪。
3、现有技术中常见的路由方案包括:方案a,单渠道静态配置,业务系统只配置一个基础地址和api密钥,故障时直接失败;方案b,普通轮询或随机负载均衡,多个渠道按轮询或随机分配请求,但不区分成本优先级、模型映射和健康状态;方案c,只按优先级故障转移,总是先调用高优先级渠道,失败后再调下一个,但同优先级渠道无法按权重分散,容易形成热点;方案d,通用http重试或sdk内部重试,错误由客户端库自动重试,无法区分请求级错误与渠道级错误;方案e,流式响应中途失败后重新请求其他渠道,可能产生重复令牌和输出拼接。
4、其中,与本技术最接近的现有方案是“基于简单优先级故障转移的llm多渠道调用方案”。该方案为同一业务模型配置多个上游渠道并按优先级排序,调用时总是从最高优先级渠道开始尝试,失败后按优先级降序依次切换至下一个渠道。但该方案存在以下技术缺陷:同优先级渠道无法按权重分散流量,日常运行时所有请求集中命中首选渠道,形成热点;无法区分请求本身错误与渠道故障错误,对请求错误也执行切换造成无效重试;流式响应首包发出后仍可能切换渠道,导致不同模型输出混合在同一响应流中。
5、综上,现有技术在多渠道路由方面至少存在以下缺陷:其一,多候选渠道无法兼顾成本优先级与流量分摊,单一优先级或普通随机无法表达“先用低成本同层分摊,故障后再升档”的策略;其二,错误分类粗糙,请求本身非法时切换渠道没有意义,渠道限流或超时不切换则会降低可用性;其三,健康状态不独立,全局熔断无法精确到渠道级别,没有指数退避机制会导致持续请求故障渠道;其四,流式语义被破坏,首包后故障转移会把两个上游输出混在同一响应流里;其五,上游模型名不统一,业务侧模型名与供应商模型名不同,静态客户端难以支持同一业务模型路由到多个上游模型。
6、因此,亟需一种能够对同一业务模型名下的多个上游渠道进行分层加权路由、根据错误类型精准切换、并在流式响应中保护首包语义的技术方案。
技术实现思路
1、为了解决以下四个核心技术问题:一是多候选渠道无法兼顾成本优先级与流量分摊的问题,现有方案中同优先级渠道缺乏加权分散机制,导致日常运行时流量过度集中;二是错误类型不加区分导致无效重试或可用性降低的问题,现有方案对所有失败统一执行切换,无法识别请求本身错误与渠道故障错误;三是渠道健康粒度粗、恢复机制单一的问题,现有方案缺乏逐渠道的独立健康状态管理和指数退避冷却机制;四是流式响应故障切换破坏输出一致性的问题,现有方案在首包发出后仍可能切换渠道,导致不同上游模型输出混合在同一响应流中。针对上述问题,本技术设计了一种多大模型渠道的分层路由与流式容错方法及装置。
2、为实现上述目的,本发明提供了一种多大模型渠道的分层路由与流式容错方法,应用于llm网关,由部署于所述llm网关服务器的处理器执行,是一种计算机实现的多渠道路由与容错方法,通过分层加权排序算法、错误分类机制和流式首包语义约束实现路由容错,包括以下步骤:
3、步骤s1、维护模型路由配置,所述模型路由配置将同一业务模型名映射至多个候选渠道,每个候选渠道至少关联上游模型名、优先级和权重;
4、步骤s2、当接收到携带目标业务模型名的调用请求时,过滤所述目标业务模型名对应的候选渠道,排除其中未启用或处于预设冷却窗口内的渠道,得到可用渠道集合;
5、步骤s3、对所述可用渠道集合按优先级降序分层,高优先级层整体先于低优先级层;在同一优先级层内,根据各可用渠道的权重执行加权随机无放回排序,将各层排序结果按优先级降序拼接,生成同时作为首选调用顺序和故障转移顺序的有序渠道容错切换列表;
6、步骤s4、按所述渠道容错切换列表的顺序依次尝试调用:每次调用前将所述目标业务模型名替换为当前候选渠道的上游模型名;调用失败时执行错误分类,若属于渠道级错误则切换至下一个候选渠道重试,若属于请求级错误则终止切换并将错误直接返回给调用方;
7、步骤s5、当所述调用请求为流式调用时,维护一个首包发出标志;若在当前候选渠道首个响应数据块发出前发生渠道级错误,则切换至下一个候选渠道重新发起请求;若在所述首个响应数据块已发出后发生错误,则不切换渠道,将错误直接返回给调用方。
8、优选地,步骤s3中所述加权随机无放回排序的方式为:在同一优先级层内构建待排序集合,每次以当前集合中各候选渠道的权重归一化值作为被抽取的概率分布,随机抽取一个渠道加入排序结果序列并从待排序集合中移除,重复执行直至待排序集合为空;同层内渠道权重越高,被排在靠前位置的概率越大,且每个渠道在所述渠道容错切换列表中仅出现一次。当存在多个权重相同的渠道时,各渠道被抽取的概率均等。所述排序结果同时决定了日常运行中的首选渠道和故障发生后的故障转移顺序。
9、优选地,步骤s4中所述错误分类的判断规则为:所述渠道级错误包括以下至少一种:网络连接错误、请求超时、连接重置、http 5xx状态码和http 429状态码,该类错误判定为上游渠道自身异常,切换渠道可提升调用成功率;所述请求级错误包括以下至少一种:http 400状态码、http 404状态码和http 422状态码,该类错误判定为请求本身参数或格式异常,切换渠道无法解决;http 401状态码和http 403状态码的判定规则为:若当前渠道凭据独立配置且其他渠道存在独立凭据,则归为渠道级错误;若请求身份凭据为统一签发,则归为请求级错误。错误分类的判定优先级为:先根据http状态码或异常类型进行一级分类,对http 401和http 403进行二级分类时查询渠道凭据配置决定最终分类。
10、优选地,还包括渠道健康状态维护步骤:为每个候选渠道独立维护连续失败计数器和冷却截止时间;当渠道发生渠道级错误时,所述连续失败计数器加一;当所述连续失败计数器在预设统计窗口内达到预设阈值时,将该渠道设置为冷却状态,并设置冷却截止时间为当前时间加上冷却时长。在一个实施例中,连续失败阈值为3次,预设统计窗口为60秒。所述冷却时长按以下指数退避规则计算:初始冷却时长为30秒,之后每次该渠道重新进入冷却状态时将冷却时长乘以增长因子2,直至达到预设最大冷却时长上限600秒。冷却时长序列为:第1次冷却30秒,第2次冷却60秒,第3次冷却120秒,依此类推直至达到上限600秒。处于冷却状态的渠道在冷却截止时间到达前不参与步骤s2的可用渠道过滤;冷却截止时间到达后自动恢复为可用状态,以被动探活方式重新参与路由。当渠道调用成功时,所述连续失败计数器清零,冷却状态和冷却截止时间被清除。
11、优选地,步骤s5中所述首个响应数据块的判定标准为:流式响应中第一个携带有效内容的数据块。空响应块(如仅包含http头信息而无响应体的数据块)、协议注释行(如sse协议中以冒号开头的注释行)和仅包含空白字符的数据块不计入首包判定。所述首包发出标志在向调用方发送首个有效数据块时设置为真,并保持至当前请求结束。首包发出后发生错误时,已输出的内容不被撤回,错误信息中附带已输出内容的长度和当前渠道标识。
12、优选地,步骤s1中所述模型路由配置还包括每个候选渠道的启用状态和冷却截止时间。所述模型路由配置的维护方式还包括:以预设时间间隔周期性构建路由快照,预设时间间隔可根据系统规模设置为5秒至60秒之间的值;并在渠道配置或模型路由配置发生变更时按需重建快照,触发事件包括渠道启用或禁用、优先级或权重修改、渠道冷却状态变更。快照构建时以当前配置数据为基础生成业务模型名到可用候选渠道列表的映射,构建完成后原子性地替换旧快照,后续请求直接基于最新快照执行路由。当快照构建失败时,系统继续使用上一个有效快照,并触发告警通知运维人员。
13、优选地,每次调用成功后,将实际使用的渠道标识、渠道名称和上游模型名写入路由上下文,所述路由上下文关联至以下至少一种:响应头字段、审计日志记录、计费流水记录或遥测事件记录。
14、本发明还提供了一种多大模型渠道的分层路由与流式容错装置,部署于llm网关服务器,包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现以下功能模块:
15、路由配置模块,用于维护模型路由配置,所述模型路由配置将同一业务模型名映射至多个候选渠道,每个候选渠道至少关联上游模型名、优先级和权重;
16、渠道过滤模块,用于当接收到携带目标业务模型名的调用请求时,过滤排除未启用或处于预设冷却窗口内的渠道,得到可用渠道集合;
17、分层排序模块,用于对所述可用渠道集合按优先级降序分层,在同一优先级层内根据各可用渠道的权重执行加权随机无放回排序,将各层排序结果按优先级降序拼接,生成同时作为首选调用顺序和故障转移顺序的有序渠道容错切换列表;
18、容错调用模块,用于按所述渠道容错切换列表的顺序依次尝试调用,每次调用前将目标业务模型名替换为当前候选渠道的上游模型名,调用失败时执行错误分类并根据分类结果决定是否切换渠道;
19、流式首包保护模块,用于在流式调用时维护首包发出标志,首个响应数据块发出前发生渠道级错误时切换至下一个候选渠道,首包发出后发生错误时不切换渠道。
20、优选地,还包括渠道健康状态维护模块,用于为每个候选渠道独立维护连续失败计数器和冷却截止时间,按预设阈值和指数退避规则管理渠道的冷却状态与自动恢复。
21、本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。
22、本技术的优点和效果如下:
23、1、本技术设计的一种多大模型渠道的分层路由与流式容错方法,通过为每个候选渠道分配优先级和权重,按优先级分层并在同层内加权随机无放回排序生成渠道容错切换列表,实现了成本优先与负载分散的统一。高优先级层可用于低成本渠道,低优先级层可用于高可用但成本较高的备用渠道。与基于简单优先级故障转移的方案相比,本方案在同层内实现了流量分散,避免了单一首选渠道成为热点,日常流量可在同层多个渠道间按配置比例分摊。
24、2、本技术设计的一种多大模型渠道的分层路由与流式容错方法,通过区分渠道级错误和请求级错误,仅对渠道级错误执行切换,对请求级错误直接返回,有助于减少无效重试和额外成本。与不区分错误类型统一重试的方案相比,本方案避免了因请求参数本身非法而在多个渠道间无效切换带来的资源浪费,无效重试次数可从平均3次以上降至0次。
25、3、本技术设计的一种多大模型渠道的分层路由与流式容错方法,通过在流式调用中维护首包发出标志,首包前可切换、首包后不切换,有助于保证流式输出的一致性和可审计性。与首包后仍切换的方案相比,本方案从根本上避免了两个不同上游模型输出混合在同一响应流中的问题,流式输出异常率从可能出现的混合输出场景降至零。
26、4、本技术设计的一种多大模型渠道的分层路由与流式容错方法,通过逐渠道维护连续失败计数器和指数退避冷却机制,当渠道连续失败达到阈值时自动将其冷却,冷却时长随重复冷却次数指数增长,成功调用时自动清零恢复。与全局熔断方案相比,本方案实现了精确到渠道级别的健康管理,避免单个渠道故障影响整个业务模型的可用性。
27、5、本技术设计的一种多大模型渠道的分层路由与流式容错方法,通过支持同一业务模型名映射到多个具有不同上游模型名的渠道,调用时自动将业务模型名替换为当前候选渠道的上游模型名,并在成功响应中记录实际使用的渠道标识和上游模型名,对调用方屏蔽了渠道差异,同时为计费、审计和排障提供了完整的可追溯信息。
28、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,从而可依照说明书的内容予以实施,并且为了让本技术的上述和其他目的、特征和优点能够更明显易懂,以下以本技术的较佳实施例并配合附图详细说明如后。
29、根据下文结合附图对本技术具体实施例的详细描述,本领域技术人员将会更加明了本技术的上述及其他目的、优点和特征。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com