报告聚焦 AI 大模型领域,对过去一年的技术演进动态、技术趋势、以及开源开发者生态数据进行多方位的总结和梳理。
在第二章《TOP 101-2024 大模型观点》中,
生成式 AI 开发者莫尔索
总结了 2024 年 AI 开发者中间件工具生态。
全文如下:
AI 开发者中间件工具生态 2024 年总结
AI 应用开发者工具自下而上涵盖了模型托管与推理服务、代理工作流编排、大型模型应用的监控与追踪、模型输出的可控性以及安全工具等多个层面。模型是 AI 应用的核心组成部分,其服务需依赖推理引擎实现。开发者接入模型的方式大致可分为四类:
首先是以模型初创企业为代表,提供先进的商业闭源模型,如 OpenAI、Anthropic、智谱及 MiniMax 等。
其次是由 TogetherAI、Groq、Fireworks、Replicate、硅基流动等组成的 GPU 推理集群服务提供商,它们处理扩展与缩减等技术难题,并在基本计算费用基础上收取额外费用,从而让应用公司无需承担构建和管理 GPU 推理集群的高昂成本,而是可以直接利用抽象化的 AI 基础设施服务。
第三类是传统的云计算平台,例如亚马逊的 Amazon Bedrock、阿里云百炼平台、微软的 Azure AI、谷歌 Vertex AI 等,允许应用开发者轻松部署和使用标准化或定制化的 AI 模型,并通过 API 接口调用这些模型。
最后一类是本地推理,SGLang、vLLM、TensorRT-LLM 在生产级 GPU 服务负载中表现出色,受到许多有本地托管模型需求的应用开发者的欢迎,此外,Ollama 和 LM Studio 也是在个人计算机上运行模型的优选方案。
除模型层面外,应用层面的工具同样在快速发展,工具的进步紧密跟随 AI 应用的发展趋势。自 ChatGPT 发布以来,应用构建方式大致经历了三个阶段。
首先是基于单一提示词模板的聊天助手类应用,此阶段重点关注模型和提示词的安全性以及模型输出的可控性。例如,garak 可用于检测模型幻觉、数据泄露和生成毒性内容等问题;rebuff 则针对提示词注入进行检测;DSPy 框架提供了系统高效的编程方法,帮助解决应用开发中的提示编写问题;而 LMFormat Enforcer、Guidance 及 Outlines 等项目旨在帮助开发者控制模型输出的结构,以获得高质量的输出。
第二个阶段涉及通过组合一系列提示词和第三方工具或 API 来编排复杂的工作流,这是目前成熟的 AI 应用构建思路之一。值得注意的是,RAG 技术的出现,得益于大语言模型天然适合处理知识密集型任务,RAG 通过从外部记忆源检索相关信息,不仅提高了模型生成的精确性和相关性,还解决了大语言模型在数据隐私保护、实时数据处理和减少幻觉问题等方面的局限。RAG 技术在数据预处理和索引构建方面的努力,直接影响最终应用的效果。
尤其是在本地数据预处理方面,PDF 内容处理成为一大难点,众多开源项目应运而生,如基于传统 OCR 技术和版面分析的 Unstructured 和 Marker 库,以及结合了多模态大模型识别能力的 ZeroX 和 GPTPDF 库。
此外,还有融合了 OCR 和多模态大模型方案的 PDF-Extract-API 库。在公开在线数据处理方面,Jina Reader、Crawl4AI 和 Markdowner 等开源项目,能够将网页内容转换成适合大模型处理的上下文,从而利用最新信息提升问题回答的质量。这些项目的共同目标是将原始数据转化为有价值的资产,助力企业大规模部署 AI。
对于结构化数据,如对话历史记录和其他数据源的存储管理同样重要。向量数据库如 Chrom、Weaviate、Pinecone、Milvus 等,提供了语义检索和向量存储功能,使得 AI 应用能够利用超出模型上下文限制的数据源。传统数据库 PostgreSQL 现在也支持通过 pgvector 扩展进行向量搜索,基于 PostgreSQL 的公司如 Neon 和 Supabase 为 AI 应用提供了基于嵌入的搜索和存储解决方案。
为了有效管理 AI 应用的复杂工作流程,市场上涌现了 Dify、Wordware、扣子等低代码平台,它们集成了多种大模型,支持外部数据接入、知识库管理和丰富的插件库,通过拖拽式配置帮助初学者快速构建 AI 应用。
同时,在开源生态系统中,LangChain、Haystack、Semantic Kernel 等编排框架的出现,使开发者能够构建、定制和测试 Pipeline,确保这些 Pipeline 的组合能够达到特定应用场景的最佳生成效果。
对于 RAG 应用,这是一种由多个环节构成的工作流应用,出现了许多端到端的开源解决方案,如 LlamaIndex 框架,它集成了数据预处理、索引构建、 多样化检索方法等功能,专为大语言模型设计;RAGFlow 是一个基于深度文档理解的开源 RAG 引擎,提供高质量的问答能力,适用于处理大规模的复杂格式数据;Verba 是向量数据库厂商 Weaviate 开源的一个模块化 RAG 框架,允许开发者根据不同的应用场景灵活定制 RAG 应用的不同环节。
第三个阶段,一些产品团队正探索开发完全由大模型驱动的代理应用。这类代理应用具备从历史记忆中反思、自主规划和使用工具执行特定动作的能力。大语言模型负责选择要调用的工具及其参数,而具体的执行动作则在沙箱环境中进行,以确保安全。
E2B、Modal 等服务提供商正是为了满足这一需求而诞生。代理通过 OpenAI 定义的 JSON 模式调用工具,这使得代理和工具能够在不同的框架中兼容,促进了代理工具生态系统的增长。例如,Composio 是一个支持授权管理的通用工具库,Exa 则提供了一个专门用于网络搜索的工具。随着更多代理应用的构建,工具生态系统将持续扩展,提供更多新功能,如认证和访问控制。
在代理应用中,记忆管理同样关键。开源项目 Mem0 将记忆分为短期记忆和长期记忆,后者进一步细分为事件记忆、语义记忆和程序记忆,并基于此抽象出一套记忆管理 SDK。Zep 通过时态知识图谱管理和更新用户信息,跟踪事实变化并提供最新数据线索。MemGPT 借鉴了计算机操作系统内存管理机制,模拟虚拟内存工作原理,构建了一套记忆管理系统。这些项目使 AI 应用能够记住对话历史,提供更个性化、上下文感知的交互体验,极大地增强了用户的满意度。
此外,代理应用的另一个探索方向是多个代理之间的协同工作。开源社区中出现了许多解决方案,如 CrewAI 和 AutoGen 具备原生的多代理通信抽象,而 LangGraph 和 Letta 中的代理可以互相调用,良好的多代理系统设计使得跨代理协作变得更加容易实现。
鉴于生成模型本质上是一个概率黑盒,AI 应用作为一个复杂的系统,其在生产环境中的质量评估与监控尤为重要。实际应用中最大的挑战之一就是输出结果的不确定性。
面对这些挑战,需要采用科学的评估方法。LangSmith、Arise、Langfuse、Ragas 和 DeepEval 等项目提供了评估和监控所需的各种指标和工具,帮助开发者量化测量、监控和调试他们的 AI 应用系统。
展望未来,o1 模型的发布标志着大模型研究进入了新的时代。o1 模型的推理能力提升对 AI 基础设施提出了更高的要求,例如并行计算部分思维链路、减少不必要的思维过程等。研究的重点重新回到了算法层面,而非简单的算力堆砌,这对于中小型模型开发公司和学术界而言是一大利好。o1 模型的更强推理能力推动了越来越多真正的 autopilot 类产品进入⽇常生活,预示着 AI 技术将更加深入地融入人类社会的方方面面。