如果我们想搭建一个企业级的大模型应用,不管使用开源的基础模型自己来发布,还是使用类似于 ChatGPT 的闭源 API,我们都需要搭建一个大模型流水线来管理应用体系中除了基础模型之外的功能模块。
Replit 的一篇博客(https://blog.replit.com/llm-training)里列出了一个非常典型的使用私有数据来训练和伺服私有大模型的流水线:
当然,绝大部分企业或者机构都不会太需要自己去训练一个私有化的大模型,但是即使是做一个简单的 RAG(Retrieval-Augmented Generation)系统,我们也需要一个完整的文档处理流水线来持续转换文档,划分文档为合适的文本块,选择合适的 embedding model 和向量数据库,然后使用 prompt engineering 来构建合理的问题提交给大模型。在目前来说,类似于 LlamaIndex 或者 LangChain 的工具在使用集成的第三方 API 或者内嵌的数据库来实现快速原型是很方便的,但是如果我们想尝试独立的 embedding 模型,高速的分布式向量数据库,定制化的文档划分策略,或者是细分的权限管理,还是有很多额外的工作要处理。
除了基础大模型之外,大模型生态系统中用来建设一个模型流水线的工具组件可以分为两大类,第一类是作为第三方库被其它应用调用,从最底层的 CUDA,PyTorch,Pandas, 到中间的各种 tokenizer, quantization, 到上层的 Transformers, Adapters 等等。第二类一般是作为建设一个完整模型流水线时的一个应用组件,可以独立运行并完成特定的任务。当然,有些开源系统两种使用形式都