很多训练模型都存在一个问题,就是资源消耗过大,而且无法有效多并发推理,经测试,语音识别和语音合成,多并发情况下(2并发~20并发),随着并发增加,推理耗时就会呈线性趋势增加,比如同等条件下,一个并发耗时400ms,如果并发加到10,单次最大耗时将增加到4秒左右,增加到20并发,则耗时增加到8秒左右,同理语音合成也是一样,当单并发耗时1-2秒,20并发的单次最大耗时将达到40~60秒,请问有什么方式在有限资源情况下优化提高并发量,谢谢
ModelScope主要展示是模型本身,以模型的功能、背后的算法、精度等为主要。您提到的并发问题,实际是将模型变成一个推理服务(通常以API的形式提供)时所要重点考虑的。假设给定模型本身的结构不变,一个好的推理服务就是要能够考虑并发、延迟等成本体验指标。这里有一些通用的手段是一般会考虑的,包括提高单线程效率(例如优化合并模型的图结构,优化向量运算至矩阵预算并使用更好的矩阵库)、充分利用多线程(例如使用线程池来并行处理多并发、分拆模型只读内存和推理中间过程的动态内存)等手段。最极致的优化甚至可以做到手撸AVX intrinsics的地步。阿里云公共云智能语音交互的语音识别、语音合成API,其背后的核心引擎就是用上述这些手段来优化并发的。