专栏名称: 大淘宝技术
淘系技术官方账号
目录
51好读  ›  专栏  ›  大淘宝技术

技术人的大模型应用初学指南

大淘宝技术  · 公众号  · 程序员  · 2025-03-26 15:30

正文

请到「今天看啥」查看全文


  • 特点:基于向量的全托管搜索服务,专注于语义搜索和相关性。
  • 适用场景:搜索引擎优化、自然语言处理应用。

  • 上述所提到的目前主流的向量数据库方案,在向量数据的存储成本、召回率等方面都面临较大的挑战。随着非结构化数据的进一步增长,成本和召回率的挑战会变得越来越棘手。在向量数据库的演讲方向上目前有以下发展趋势


    1. 存储和索引优化

    • 量化技术:使用向量量化(Vector Quantization, VQ)技术,例如产品量化(Product Quantization, PQ)或乘积量化(Additive Quantization, AQ),可以在保证精度的同时大幅度减少存储和计算资源。

    • 压缩向量:采用哈希方法如局部敏感哈希(Locality-Sensitive Hashing, LSH)来减少存储消耗,并加速相似性搜索。

    • 分布式存储:使用分布式文件系统和数据库(如Apache Hadoop、Cassandra)可以优化存储和查询的大规模向量数据。

    • 存储器级别调整:利用固态硬盘(SSD)甚至是新兴的持久化内存(Persistent Memory, PMEM)来在内存和磁盘之间找到平衡,优化存储成本。


    2. 召回率优化


    • 混合搜索技术:结合粗粒度和细粒度的索引,例如先使用粗滤技术快速缩小搜索范围,然后进行精确查找。

    • 近似最近邻查找(ANN)算法:如HNSW(Hierarchical Navigable Small World)图、FAISS中使用的ANN算法可以在保证高召回率的基础上优化搜索速度。

    • 多层次检索:分层结构的检索方法,从粗到细进行,逐步提高召回率和精度。


    3. 系统架构和基础设施


    • 云计算和弹性扩展:利用云计算平台(如AWS、Azure、GCP),按需扩展计算和存储资源,并且利用云端的分布式存储和计算技术来管理大规模数据。

    • 边缘计算:部分预处理和向量化工作放到边缘设备进行,减少中心服务器的负担。


    4. 专用硬件加速


    • GPU和TPU:使用专门的硬件加速器,如GPU(图形处理单元)或TPU(张量处理单元),以加速向量计算和相似性搜索。

    • FPGA:使用可编程门阵列(FPGA)为特定向量计算任务定制硬件加速,以提高效率和降低延迟。


    5. 持续优化和更新模型


    • 动态索引更新:随着非结构化数据的增长和变化,保持索引和向量表示的及时性,使用在线或增量更新的方法管理索引。

    • 自适应模型:利用机器学习和深度学习模型不断优化向量表示的嵌入质量,使得向量检索更加精准有效。


    6. 先进的嵌入技术


    • 预训练模型:使用当前的预训练语言模型(如BERT、GPT-3)进行上下文嵌入,捕捉复杂的语义信息。

    • 多模态嵌入:对于不同类型的数据(如文本、图像、视频),使用多模态嵌入模型来统一表示和处理,提升检索性能。


    ▐  Multi-Agent



    在软件领域,“分而治之”是一种常用的设计和开发理念,而在大模型场景中也同样适用。面向复杂任务场景,多Agent方法会将复杂任务分解为子任务,让不同的智能体完成不同的子任务,即专业“人”做专业“事”。因为,拆解任务有助于降低单个大模型的输入复杂度以及理解难度,从而有利于大模型专注于“做”一件事情,其性能可能会更好。


    多Agent框架的核心交互流程可以概括如下:
    • controller更新当前环境的状态,选择下一时刻行动的agent X
    • agent X 与环境交互,更新自身memory信息
    • agent X 调用LLM,基于指令执行动作,获取输出message
    • 将输出message 更新到公共环境中
    目前在多Agent协作方面,目前比较有名的是AutoGen框架和MetaGPT框架。

    • AutoGen框架

    AutoGen是一个能让多个Agent进行沟通协作的Python开源框架。核心解决两个问题:

    第一个问题:如何设计用户可定制、可重用的、能够互相协作的 Agent。AutoGen 是要设计为一个通用的能够适用多种场景的框架,在AutoGen的官网 Examples中给出了在多种场景下能够解决问题的例子,此外在git 仓库中的 notbook 目录中有50+例子。有解决数学问题场景、有通过开发代码进行分析的场景(比如上一章节的列子)、还有通过五六个 Agent 讨论分析开放问题的场景。所以 Agent 的扩展能力是需要重要考虑问题,AutoGen中通过支持多种外部工具、不同LLM、支持 human in the loop 的方式,Agent 之间能够通信的方式来解决扩展问题。

    第二个问题:如何让 Agent 能灵活支持不同模式的会话方式。不同的场景,根据复杂度、问题的类型需要不同的 Agent 会话模式。这里的“模式”包括了单轮对话 or 多轮对话、自动选择每轮的 speaker or 通过规则选择、通过自然语言控制逻辑 or 通过代码控制,此外设计需要考虑多个Agent 之间如何灵活“组网”,比如三人一组,每组一个leader,组内互相通信,leader能够通信的方式。
    为了解决这两个问题,AutoGen抽象了一些基础概念。

    Conversable Agents

    旨在用于在复杂任务中进行多轮交互。这些智能体能够理解和处理用户输入,维护上下文,并生成合适的响应。Conversable Agents通常集成了自然语言处理技术,包括自然语言理解(NLU)和自然语言生成(NLG),以提高对话的流畅性和智能性。

    Conversation Programming

    旨在通过自然语言与人工智能系统进行交互,来实现编程和任务自动化。这个概念试图简化编程过程,使得用户无需深厚的编程背景也能使用自然语言描述需求,进而生成可执行的代码或自动化脚本。
    在 Conversation Programming 中,用户通过与人工智能助手进行对话,将具体任务、算法逻辑或问题描述出来,AI 系统则负责理解这些意图并生成相应的代码。这种方式降低了编程的门槛,同时也加速了从想法到实现的过程。


    • MetaGPT框架


    MetaGPT 是一个基于多智能体的元编程框架,它通过将不同的角色(如产品经理、架构师、项目经理等)分配给不同的大型语言模型(LLM),实现软件开发流程的自动化。这个框架特别适合于复杂的编程任务,能够自动生成用户故事、需求分析、数据结构、API 和文档等输出。MetaGPT 使用标准操作程序(SOPs)来指导智能体的协作,旨在提高代码生成的质量和效率 。


    工作流程


    MetaGPT的主要工作流程和特点包括:







    请到「今天看啥」查看全文