这章主要从工程化的角度上来讲,如何做一个跟OpenAI差不多级别访问量的线上推理任务。
现代的LLM推理任务优化,要是自己玩的话,基本分为4类
一类是让推理的数据尽量靠近SRAM,代表作是Dojo,Groq,Flash-attention
第二类就是KV cache类,主要是围绕着page attention等类似的方法来做,代表作就是vLLM,tgi(难用)
第三类就是各种围绕GGUF做的什么fastllm,llamacpp啥的,他们思路本身在模型和代码上也有优化,这几个东西要用上了基本都是弄quantized。
第四类其实是训练手段来做的优化,就是各种迁移学习,知识蒸馏啥的。
除了第一种和第二种,其他的往往代表着精度损失(其实flash-attention本来也和hf的模型推出来的东西有区别,不过大家没有不用的,就睁一眼闭一眼了),所以我说自己玩还行,线上就有点扯淡,当然这个时候不同的观点会说,量化完了以后的模型比原始模型损失也就几个百分点,相差不大,到这里我就会提一个尖锐的问题,你知道我为了提升几个百分百点的准确率,其实现在这么卷的环境下,别说几个百分点,就是一个百分点,背后都付出了多少算力,合成了多少数据???