“GenAI解决方案如何革新业务自动化:揭秘LLM应用于高管们”
GenAI解决方案革新业务自动化,揭秘LLM应用于高管
如何应用LLMs的力量来自动化工作流程并获得成本效益的公司
介绍
最近与生物制药公司的制造业高管合作时,我们深入研究了生成式人工智能(Generative AI),特别是大型语言模型(LLMs),以探索它们如何用于加快质量调查的过程。当在产品的制造或测试中发现偏差时,会触发质量调查。由于对患者健康和监管要求的潜在风险,批次被暂停,甚至可能停止生产。加快调查过程,尽快进行根本原因分析,并实施纠正和预防措施计划至关重要。我们的目标是在可能的情况下使用GenAI加快这个过程。
当我们开始考虑最小可行产品(MVP)时,我们面临着关于如何让GenAI自动化流程的不同阶段以改善周期时间并尽快解冻批次的几个选择。高管们都是各自领域的专家,并接受过GenAI培训。然而,有必要更深入地了解LLM的能力以及各种GenAI解决方案模式,以确定在MVP中优先考虑质量调查过程的哪个阶段,平衡短期解决方案的可行性和周期时间的预期改善。
尽管在我们的案例中,讨论集中在一个特定的流程上,但是相同的解决方案模式正在被应用于各个行业和职能,以提取成本效益并加速结果。那么,GenAI解决方案如何帮助解决这样的流程呢?
LLMs的独特能力
在GenAI近期的普及之前,企业界的自动化解决方案主要针对例行的、基于规则的任务,或依赖于机器人流程自动化(RPA)。机器学习应用主要围绕分析展开,例如使用回归模型来预测销售量等结果。然而,最新的LLMs由于其显著的特性而脱颖而出:
- 内容理解:LLMs能够“理解”文本的意义
- 即时训练:LLMs能够执行原始训练中未涉及的新任务(即零样本学习),根据自然语言指令和可选的一些示例进行引导训练(少样本学习)
- 推理:LLMs能够以一定程度上的“思考”和“推理”潜在行动(尽管存在一些限制和风险)
在“传统”的机器学习中,构建和使用模型的过程通常涉及收集数据、手动定义“目标”,并训练模型以预测给定其他属性的“目标”。因此,模型只能执行一个特定的任务或回答一个特定类型的问题。相反,您可以直接询问经过预训练的LLM来评估对您业务重要的特定方面的客户评论,这些方面既没有被LLM之前看到过,也没有在评论中明确提到。
基于LLMs的解决方案的工作原理
业界中许多基于LLM的解决方案都围绕设计并提供详细的指令,让LLMs执行特定任务(这被称为提示工程)。增强检索生成(RAG)已成为实现此目的的最常见解决方案模式之一。
概览 —— 一万英尺视图
简单来说,该解决方案包括两个阶段:
- 检索:检索与用户请求相关的公司数据。例如,如果要求以特定格式或样式编写报告,将获取先前报告的文本,并作为示例发送给LLMs
- 生成:将在前一阶段检索到的指令和示例(或任何其他相关信息)编译成文本提示,并发送给LLMs生成所需的输出。对于报告,提示可以是:
请将以下信息编译成报告,使用提供的示例的格式和样式。这是内容:[报告内容… ]。这是示例:[ 上一份报告标题 第1部分… 第2部分… 结论 ]
RAG工作流程 — 1000英尺视角
让我们深入了解解决方案模式中搜索和生成阶段。
1. 词向量 —— 语言“理解”的基础: 为了促进自然语言理解,文本通过算法或通过LLM来获得一个数值表示(称为向量嵌入),该表示捕捉数据的含义和上下文。长度由用于创建此表示的模型确定 —— 一些模型(如word2vec)的向量长度可高达300,而GPT-3使用长度高达12,288的向量。例如,
以下是这些数值表示如何映射到二维空间。有趣的是,关于相似主题的句子被映射到彼此附近。
2. 创建 知识库: 解决方案的搜索组件接收一个问题,并运行语义搜索以查找知识库中最相似的信息片段。那么,如何创建这个知识库呢?需要放入知识库的文件通过嵌入模型进行处理,从而创建数值表示。这些数值表示加载到专门的数据库中 —— 通常是为高效存储和快速检索此类信息而构建的矢量数据库。
3. 在知识库中搜索相似信息(即检索): 当用户提交一个问题或任务给解决方案时,解决方案使用嵌入模型将问题文本转换为数值表示。这个问题向量与知识库中的信息进行匹配,以找到最相似的信息片段。可能会返回一个或多个搜索结果,可以传递给下一阶段生成响应或输出。
4. 使用LLM生成输出(即生成): 现在,解决方案已经成功找到了可以帮助LLM生成有意义输出的相关信息,整个组合,称为“提示”,可以发送给LLM。这个提示包括一个或多个标准指令集,用于指导LLM,实际用户问题,以及在搜索阶段检索到的信息片段。从LLM产生的输出可以在交付给用户之前进行必要的处理(例如,将输出加载到特定格式的Word文档中)。
深入了解解决方案组件
让我们进一步了解解决方案的组成部分
1. 创建知识语料库:将相关文档加载到知识语料库中有一些细微差别,并涉及多个考虑因素。
- 文档加载:不同的相关文档(pdf、word、在线资源等)可能需要导入到数据存储库中。根据使用情况,某些文档的只有某些部分可能是相关的。例如,在为金融分析师设计的解决方案中,公司10-K报告的标题页、目录、样板合规信息和一些附件可能与金融分析无关。因此,这些部分可以从知识库中省略。确保知识库中没有冗余信息对于确保LLM模型提供多样化和高质量的回答至关重要。
- 文档分割:一旦确定了要包含在知识库中的相关文档部分,下一步是确定如何划分这些信息并将其加载到向量数据库中。选择可以根据使用情况而变化。一种有效的方法是通过带有一定重叠的段落进行分割。这意味着为保持上下文,设置一个保留整个段落的字数(或“标记”,LLM用于文本处理的单位)限制。如果一个段落超过了这个限制,应将其分割成多个记录以加载到向量数据库中。通常,会有一定的词重叠以保持上下文。例如,使用每个向量1,000个词的限制,并设置40个词的重叠。
- 附加元数据:增强知识库中的信息涉及使用有意义的元数据为每个记录进行标记。基本元数据示例包括从提取信息的原始文档标题和部分层次结构。附加元数据可以进一步提高搜索和检索的质量。例如,从10-K报告提取的资产负债表数据可以用以下元数据进行标记:
原始文档标题:XYZ公司10-K年份:2022部分:财务报表和附加数据 | 资产负债表
- 存储:有多种可用的存储信息的选项。可以使用矢量数据库解决方案,如chroma或在Postgres/MySQL上的Faiss。但也可以使用SQL数据库、NoSQL数据库或文档存储、图数据库等。此外,还有可能采用内存存储以减少延迟,以及横向扩展以提高可扩展性、可用性、负载平衡等。
2. 从知识语料库中搜索相似信息(检索):对于简单的用例,基于在前一节讨论的在知识库中搜索相似向量的检索方法应该足够。常见的两阶段方法可以在搜索速度和准确性之间取得平衡:
- 密集检索:首先,使用快速近似最近邻搜索对广泛的知识语料库进行快速扫描以进行搜索查询。这将为进一步评估提供数十个或数百个结果。
- 重新排序:在获取的候选结果中,可以使用更消耗计算资源的算法来区分更相关和不太相关的结果。可以通过对密集检索阶段获取的候选集进行第二次遍历,或使用其他特征(例如指向每个搜索结果的链接数量,表示可信度或话题权威性的指标)、TF-IDF分数,或要求LLM审查所有候选结果并对其进行排序来计算附加的相关性分数。
对于高级功能,例如通过选择多样化信息来改善搜索结果的质量,根据用户提示应用基于普通语言的筛选等,可能需要更复杂的方法。例如,在金融查询中,用户问:“XYZ公司2020年的净利润是多少?”解决方案必须为XYZ公司和2020年过滤文档。一种可能的解决方案是使用LLM将请求拆分为一个筛选组件,通过使用元数据对2020年进行筛选,从而缩小语义搜索目标的范围。然后,执行语义搜索以在知识库中定位“XYZ公司的净利润”。
3. 使用LLM生成输出(生成):该过程的最后一步涉及使用LLM生成输出。
- 直接方法:直接的方法是将从搜索阶段检索到的所有信息与人类提示和指令一起传递给LLM。但是,对于可以传递给LLM的信息量存在限制。例如,Azure OpenAI基础GPT-4模型的上下文大小为1024个标记,大约相当于2页文本。根据使用情况,可能需要对此限制进行解决。
- 链:为了规避上下文大小限制,一种方法是逐步向语言模型提供信息片段,并指示其在每次迭代中构建和完善答案。LangChain框架提供了“refine”,“map_reduce”和“map_rerank”等方法,以便使用语言模型生成多个答案部分,并最终使用另一个LLM调用将它们组合。
结论
在一个不断增长的数据生成时代,利用GenAI的力量,我们的上下文感知和可训练助手变得更具影响力。正如文章中所概述的,这种解决方案无缝地解决了自动化数据处理的挑战,并为更复杂的任务释放了人力资源。随着大规模语言模型(LLMs)的商品化和解决方案组件的标准化,这样的解决方案很快将变得无处不在。
常见问题(FAQs)
- 生成的内容是否会成为LLM的记忆的一部分并影响未来的输出?例如,由经验较少的用户生成的错误输出会影响其他用户的输出质量吗?不会。在这种解决方案中,LLM对其生成的内容没有“记忆” —— 每个请求都是从一个干净的状态开始。除非对LLM进行微调(进一步训练)或将生成的输出添加到知识库中,否则不会影响未来的输出。
- LLM是否会通过使用而学习并变得更好?不会自动。RAG解决方案模式不是一个强化学习系统。然而,可以设计解决方案,使用户能够对输出质量提供反馈,然后可以用于微调模型。更新知识库或使用升级的LLM也可以提高解决方案输出的质量。
- 向量嵌入是否会保存在源数据仓库中?通常不会。虽然文档块的向量可以在源数据仓库中保存,但源数据仓库和向量数据库(或者说专门用于存储解决方案向量的SQL数据库)的目的是不同的。将向量添加到源数据库可能会创建操作依赖和开销,这可能是不必要的或者不会带来任何回报。
- 如何使用新数据更新解决方案?当新数据可用时,需要运行数据加载流水线(识别要加载的文档、处理、分块、向量化、加载到向量数据库)。这可以是定期批量处理。更新频率可以根据使用情况进行调整。
- 如何确保存储在知识库中的文档中的敏感信息对公众或LLM供应商不可访问?企业可以使用Azure OpenAI服务作为一个单租户解决方案,拥有OpenAI的LLMs的私有实例。这可以确保数据的隐私和安全。另一种解决方案是在公司的私有基础设施上部署Hugging Face的LLMs,以确保没有数据离开公司的安全边界(与使用公共托管的LLM时不同)。
推荐资源
探索以下资源,深入了解LLMs及其应用:
- 生成式AI定义:工作原理、好处和危险 (techrepublic.com)
- 业务领导者应该了解的使用像ChatGPT这样的LLMs (forbes.com)
详细了解RAG解决方案模式:
- 使用Amazon SageMaker JumpStart中的基础模型进行检索增强生成的问答 | AWS机器学习博客
- Deeplearning.ai课程:具有语义搜索的大规模语言模型
- Deeplearning.ai课程:LangChain:与您的数据聊天