System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及资源调度,特别是涉及一种面向大模型应用的任务分发方法及系统。
技术介绍
1、随着人工智能技术的发展,大模型的使用场景日益广泛,除了基础的问答功能本身,越来越多的应用基于大模型的能力开发出丰富的功能以供人们使用,比如说ai agent等。除了使用大模型公司提供的api接口,越来越多的开发人员倾向于基于开源大模型,例如chatglm和meta llama等进行本地化部署。对于大模型的本地化部署,使用者往往需要关注大模型的使用、管理和拓展的问题。现有的本地化部署框架,例如hugging face的textgeneration inference框架,往往只关注于单个大模型的使用和部署问题。然而,在实际情况下,单个本地部署的大模型吞吐率较低导致无法支撑多个用户的使用,因此支持多个本地化部署的大模型的使用、调度和管理的系统是支撑基于本地化部署大模型的应用的基石。
2、对于多个大模型的管理和使用,系统解决如下问题。首先,系统需要具有能够管理和使用不同类型大模型执行任务的能力。其次,大模型一次任务执行的代价相对较高,系统需要具有使用大模型优化中的批处理方法优化大模型任务执行效率。同时,vllm和textgeneration inference等大模型推理框架也提供了对于单个大模型任务执行的优化,系统需要具有支持使用上述框架的能力。最后,大模型运行要求大量gpu显存,系统需要对大模型运行状态以及其运行的硬件的监控能力,能够在问题出现后快速定位问题。
3、基于上述解决的问题,研发一种面向大模型应用的任务分发方
技术实现思路
1、为了克服现有技术的不足,本专利技术的目的是提供一种面向大模型应用的任务分发方法及系统。
2、为实现上述目的,本专利技术提供了如下方案:
3、一种面向大模型应用的任务分发方法,包括:
4、使用消息队列分发不同类型的任务到请求分发器;
5、使用用户配置的分组策略对同一类型的任务分组,得到不同的任务组;
6、基于最优匹配算法将不同的任务组调度到任务执行组件进行执行。
7、优选地,使用消息队列分发不同类型的任务到请求分发器,包括:
8、利用http网关为接收到用户请求设置一个路由键和一个请求id;每种路由键标识一种类型的任务;每个请求id标识一个用户请求;
9、使用消息队列的主题交换,将每个路由键绑定到一个队列;
10、利用各个请求分发器接受并消费对应队列的任务;请求分发器的数目与队列的数目相同。
11、优选地,使用用户配置的分组策略对同一类型的任务分组,得到不同的任务组,包括:
12、基于时间优先的分组策略,将尚未执行的任务按照尚未执行的任务到来的时间先后顺序分成一组,得到任务组;或
13、基于长度有限的分组策略,从长度为0到允许任务的最大长度按照间隔划分成组;其中,max_input_length表示最大长度,delta表示间隔;当每次到来一个任务,按照任务的长度加入到对应长度的组内,同一组内按照到来的时间顺序排序,得到任务组。
14、优选地,在使用用户配置的分组策略对同一类型的任务分组,得到不同的任务组之后,还包括:
15、设置任务组的关键值为任务组内最先到来的任务的到来时间并按照时间戳的值由小到大排序,选取关键值最小的组作为调度组由请求分发器。
16、优选地,所述请求分发器管理若干个任务执行组件;每个任务执行组件内封装一个大模型程序执行任务;基于管理员为每个大模型程序分配的gpu显存确定批处理行数;请求分发器还用于根据调度组行数和不同任务执行组件的批处理行数,使用最优匹配算法为调度组选择任务执行组件。
17、优选地,使用最优匹配算法为调度组选择任务执行组件,包括:
18、对每个任务执行组件计算调度关键值;所述调度关键值的计算公式为:schedulingkey=batchsize–schedulinggroupsize;其中,schedulingkey表示调度关键值,batchsize表示批处理行数,schedulinggroupsize表示调度组行数;
19、选取调度关键值大于或等于0并且具有最小调度关键值的任务执行组件执行调度组中的任务,并将调度组设置为空;若全部调度关键值小于0,则选取具有最大的任务执行组件执行调度组的前批处理行数个任务,并从调度组中移除已经发送给任务执行组件执行的任务,重新设置调度组的关键值为当前组内任务的时间戳的最小值。
20、一种面向大模型应用的任务分发系统,其特征在于,应用于上述面向大模型应用的任务分发方法,所述面向大模型应用的任务分发系统包括:
21、一个任务调度器,用于接受任务请求并进行任务分发和调度到任务执行组件;
22、多个任务执行组件,每个任务执行组件包括一个使用任务执行组件框架封装的大模型程序,用于执行请求分发器所分配的一个或一组请求并返回处理结果。
23、优选地,所述任务调度器包括:
24、http网关,用于接收和管理用户请求;
25、消息队列,用于为任务的缓存和分发并接收响应;
26、请求分发器,用于为使用最优匹配算法调度任务组和任务执行组件;
27、请求发送缓冲区,用于为基于分组策略进行任务分组;
28、调度策略管理器,用于为管理分组策略,配置系统信息。
29、优选地,所述http网关包括:
30、接口单元,用于提供http接口,接收用户侧发送的对话请求,将用户向大模型提出的问题赋予一个唯一的id,发送到消息队列中;
31、问题存储单元,用于从消息队列的回答队列中获得回答,根据回答消息中的问题id判断回答归属的问题,根据回答消息中的序列id判断消息是否完成回答,并将已经完成回答的问题存储到数据库中;
32、回答确定单元,用于提供响应式的http接口,允许用户在问题尚未完成回答时根据序列id响应式地返回最新回答,直到回答完成,或者用户在问题回答完成时一次性获得问题的回答。
33、优选地,所述请求分发器包括:
34、管理单元,用于管理着多个同类型的任务执行组件,维护各个任务执行组件的状态,执行心跳检测和错误恢复;
35、收发单元,用于接收消息队列的问题消息并发送到请求发送缓冲区;
36、调度单元,用于使用最优匹配算法调度任务组和任务执行组件。
37、根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果:
38、本专利技术提供了一种面向大模型应用的任务分发方法及系统,方法包括:使用消息队列分发不同类型的任务到请求分发器;使用用户配置的分组策略对同一类型的任务分组,得到不同的任务组;基于最优匹配算法将不同的任务组调度到执行组件进行执行。本专利技术解决了现有技术中存在调度过程不合理、调度器性本文档来自技高网...
【技术保护点】
1.一种面向大模型应用的任务分发方法,其特征在于,包括:
2.根据权利要求1所述的面向大模型应用的任务分发方法,其特征在于,使用消息队列分发不同类型的任务到请求分发器,包括:
3.根据权利要求1所述的面向大模型应用的任务分发方法,其特征在于,使用用户配置的分组策略对同一类型的任务分组,得到不同的任务组,包括:
4.根据权利要求3所述的面向大模型应用的任务分发方法,其特征在于,在使用用户配置的分组策略对同一类型的任务分组,得到不同的任务组之后,还包括:
5.根据权利要求1所述的面向大模型应用的任务分发方法,其特征在于,所述请求分发器管理若干个任务执行组件;每个任务执行组件内封装一个大模型程序执行任务;基于管理员为每个大模型程序分配的GPU显存确定批处理行数;请求分发器还用于根据调度组行数和不同任务执行组件的批处理行数,使用最优匹配算法为调度组选择任务执行组件。
6.根据权利要求5所述的面向大模型应用的任务分发方法,其特征在于,使用最优匹配算法为调度组选择任务执行组件,包括:
7.一种面向大模型应用的任务分发系统
8.根据权利要求7所述的面向大模型应用的任务分发系统,其特征在于,所述任务调度器包括:
9.根据权利要求8所述的面向大模型应用的任务分发系统,其特征在于,所述HTTP网关包括:
10.根据权利要求8所述的面向大模型应用的任务分发系统,其特征在于,所述请求分发器包括:
...【技术特征摘要】
1.一种面向大模型应用的任务分发方法,其特征在于,包括:
2.根据权利要求1所述的面向大模型应用的任务分发方法,其特征在于,使用消息队列分发不同类型的任务到请求分发器,包括:
3.根据权利要求1所述的面向大模型应用的任务分发方法,其特征在于,使用用户配置的分组策略对同一类型的任务分组,得到不同的任务组,包括:
4.根据权利要求3所述的面向大模型应用的任务分发方法,其特征在于,在使用用户配置的分组策略对同一类型的任务分组,得到不同的任务组之后,还包括:
5.根据权利要求1所述的面向大模型应用的任务分发方法,其特征在于,所述请求分发器管理若干个任务执行组件;每个任务执行组件内封装一个大模型程序执行任务;基于管理员为每个大模型程序分配的gpu显存确定批处理行...
【专利技术属性】
技术研发人员:徐鹏,刘年超,温自强,于秀丽,杨王颖,
申请(专利权)人:北京邮电大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。