https://zhuanlan.zhihu.com/p/65242220
sys是为了ml落地:机器学习分为若干阶段:数据收集和标定,处理数据,特征工程,编写模型,训练模型,模型管理,模型部署,其实每个阶段都对应着一种或多种机器学习系统,另外还有一些边缘计算AI系统,强化学习系统,AI视频系统
AI-System-School/llm_serving.md at master · HuaizhengZhang/AI-System-School · GitHub
clipper
吞吐量优化
比如:晚上的请求很多,所以等待时间比较短,可以增大batch
早上的请求很少,等待时间长,可以减少batch
SLO:service level objective(上线一个应用,为了让用户感到舒服,一般会设置一个指标,model serving主要是latency)即使有时候batch很小,但是为了不让用户等待很久,还是会开始打包,不会增大batch
delayed batching:在batch没满的情况下,等待两秒钟,如果有request,把加进去;如果没有,开始处理batch
总结:在latency满足用户的前提下,提高了吞吐量和系统利用率
latency优化
最近最少使用:least recently used
为什么会有延迟:计算消耗时间->不计算-->cache,将数据缓存起来->牺牲空间换取时间(kvcache也是一样的思路)
accuracy优化:强化学习
EXP3:
EXP4:
每个模型都试一遍?花费和准确率之间的trade-off,花费比较少达到比较高的准确度