【摘要】本篇将重点介绍大模型生态。通常情况下,大模型的开发和应用需要依赖于围绕它们构建的工具生态系统。因此,在实际的业务场景中,我们不仅需要了解如何使用这些工具来构建和部署大模型,还需要了解这些工具的设计和工作原理。
【作者】李杰,专注于Java虚拟机技术、云原生技术领域的探索与研究。
随着大模型越来越成熟、稳定,业内人士预估2024年将会进入大模型应用元年。twt社区推出【大模型行业应用入门系列】文章,为相关人员提供必要的基础知识储备,后续还将推出实践系列,以应对大模型在各个行业的广泛应用带来的挑战。该系列还将上线题库,帮助大家进行知识检验。欢迎关注公众号的内容更新。
众所周知,LLM(大语言模型)正在成为推动下一波技术创新浪潮的颠覆性力量,类似于互联网、智能手机以及云计算所引发的革命。
通常来说,LLM(大语言模型)往往具备丰富而强大的功能。它能够生成令人惊叹的新颖文本,进行语言翻译,撰写各种类型的富有创意的内容,并以信息丰富的方式回答问题等。这些功能使得 LLM 以一种前所未有的方式改变了我们与信息、知识以及整个世界互动的方式。
1. 什么是LLM?
大语言模型(LLM)是一种深度学习算法的技术,能够总结、翻译、预测和生成文本,以传播思想和概念。LLM 依赖于一定的大数据集来执行这些功能,这些数据集可以包括 亿级甚至更多的参数,每个参数代表语言模型的一部分,用于推断、生成新内容。
从本质上讲,LLM 利用迁移学习的模式,借助自注意力等核心机制,能够将从一个任务中获得的知识应用到不同但相关的任务上。这些模型的目标是解决各种常见的语言问题,例如回答问题、文本分类、文档摘要以及文本生成等。
在应用方面,LLM 能够在各个行业和领域中发挥重要作用。通常与 GenAI (生成人工智能)密切相关,能够为文本生成、自动化写作、智能对话等领域提供强大的支持和应用。这些模型的发展和应用将推动语言处理技术的发展,为人们提供更高效、准确和创造性的文本处理工具。
图:过去一年(2023年)不同 LLM 产品发展趋势
在过去的2023 年,仅仅一年的时间,大语言模型的发展出现了前所未有的激增,新模型以惊人的速度涌现在世人眼前。首先是 Google AI 发布的 PaLM 2,这是一个具有 540B 参数的大型 LLM,成为了行业的焦点。PaLM 2 在各种 NLP 任务中展示了卓越的能力,包括文本生成、语言翻译和问答。
紧随其后的是Meta AI 的 LLaMa,这是一个具有一系列参数大小(7B、13B、33B 和 65B)的基础 LLM。LLaMa 的多功能性和开源性质使其成为研究人员和开发人员的宝贵工具。同时,能够生成 13 种编程语言和 46 种自然语言的文本的多语言 Bloom 首次亮相,凸显了 LLM 开发中对多语言能力的日益重视。接踵而来的便是 OpenAI 的 GPT-4 模型,使得应用更为广泛,与此同时,Google 的 2 大重磅产品 Bard 和 Gemini 也随之横空出世,使得大语言模型领域的创新出现了巨大的增长,导致竞争白热化。
2.LLM演进历史
在传统科技与AI(人工智能)领域不断发展的背景下,引入 LLM(大语言模型)被视为具有里程碑意义的一步。这些复杂的人工智能模型具备理解和生成类似于人类语言的文本的能力,从而弥合了机器和复杂语言之间的鸿沟。LLM 的出现不仅仅代表了一次技术创新,更是一场工业革命。
毕竟,LLM 正在通过简化互动的方式改变行业,从客户服务到内容创建,都带来了巨大的影响。LLM 能够与用户进行自然而然的交流,理解用户的问题并提供准确的回答和解决方案。这使得客户服务变得更加高效和个性化,为企业和用户带来了更好的体验。
接下来,我们来了解一下 LLM 的演进历史以及各个领域以及它们之间的相互关系。具体可参考如下图所示:
图:AI 生态不同领域之间的关联关系
通常而言 , 我们可以将 LLM(大语言模型)的演变历史过程大致分为如下四个 “里程碑” 阶段:
阶段一:NPL 时代
即也是 LLM 的“初始阶段”。自然语言处理(NLP)是计算机科学的一个重要分支,致力于研究如何使计算机能够理解和处理人类语言。NLP的历史可以追溯到20世纪50年代,那时的研究人员开始尝试开发能够理解和生成人类语言的计算机程序。自然语言处理是大语言模型(LLM)演变的基础,为其出现奠定了重要基础。
阶段二:LM 时代
此阶段也成为“统计时代”。在20世纪70年代和80年代,自然语言处理(NLP)的研究重点逐渐转向了统计方法。统计语言模型利用统计方法来学习人类语言的模式,成为当时的主要研究方向。这些模型通过分析大量的语料库数据,使用概率和统计模型来预测单词或短语的出现概率,从而实现对文本的理解和生成。
阶段三:NLM 时代
此阶段也成为“神经网络时代”。在20世纪90年代,神经网络技术开始在自然语言处理(NLP)领域得到应用。神经语言模型利用神经网络来学习人类语言的模式,这一技术引入了新的发展方向。相较于传统的统计语言模型,神经语言模型具备更强的表现力,能够应用于更加复杂的NLP任务。
神经语言模型的出现对于大语言模型(LLM)的发展起到了关键作用。它们利用神经网络来学习语言的模式和规律,有效地捕捉上下文信息和语义关系。从而 使得神经语言模型在文本生成、语言翻译、问答系统等各种NLP任务中表现出色。
阶段四:LLM 时代
此阶段也成为大模型的“革命时代”。在21世纪20年代,大语言模型(LLM)的出现引起了自然语言处理(NLP)领域的一场革命。作为一类拥有数十亿甚至上百亿参数的大型神经语言模型。LLM 具备惊人的学习能力,通常可以应用于多种 NLP 任务,涉及文本生成、语言翻译、问答等不同场景类型。
LLM 的出现带来了 NLP 领域的重大变革。基于所拥有巨大的参数规模, LLM 使得自身能够学习到更加复杂和深层次的语言模式和语义关系。通过利用深度学习技术和大规模的训练数据,LLM 能够从海量的文本数据中提取出丰富的语言知识,并在多个领域取得了突破性的进展。
3.LLM 生态系统解析
通常情况下,LLM 的开发和应用需要依赖于围绕它们构建的工具生态系统。因此,在实际的业务场景中,我们不仅需要了解如何使用这些工具来构建和部署 LLM,还需要了解这些工具的设计和工作原理。毕竟, 每 一种 工具都有自己的特点和优势,我们需要根据不同的 场景 需求来选择合适的工具。
LLM 所依赖的生态系统堆栈如下所示:
图:LLM 所依赖的生态系统堆栈
3.1Prompt Engineering
Prompt Engineering 是 AI 中使用的一种技术,用于针对特定任务和所需输出优化和微调语言模型。也称为提示设计,是指为 AI 模型仔细构建提示或输入以提高其在特定任务上的性能的过程。提示用于指导和调整人工智能系统所需的行为,并从 AI 模型获得准确且所需的响应。
从本质上来说,Prompt 工程是一种关键的技能,应用于设计和优化文本提示,以发挥人 AI 功能的潜力。同时,涉及利用语言模型的力量,是塑造 AI 输入的唯一方式,因为提示是 AI 接收信息的唯一途径。
在Prompt 工程中,重要的是能够准确地定义和构建提示,以引导 AI 模型产生期望的输出。这包括选择合适的关键词、编写明确的问题陈述或指令,并了解如何利用语言模型的特性和功能来实现预期的结果。
在实际的场景中,Prompt 通常由两个或多个组件组成,最常见的包括多个指令、外部信息、一次/几次提示、用户输入以及查询和输出。具体可参考如下:
指令告诉模型要完成的任务、模型的表现要求和输出的构建方式。
外部信息(源知识)可以为模型提供额外的知识,例如事实信息、规则或算法。
一次/几次提示可以帮助模型学习特定的姿势。
用户输入或查询可以帮助模型理解用户的意思。
输出可以帮助模型理解输出的开始。
通过Prompt Engineering,我们可以显着提高 LLM 的终极效果。然而,LLM 终究是一个“黑匣子”,我们仍需要进一步探究参数化知识以进一步提高 LLM 的可靠性。
3.2RAG
RAG,全称为“Retrieval Augmented Generation(检索增强生成)”是一种 AI 框架,旨在通过从外部知识源检索数据来提高响应质量。这种自然语言处理技术通常用于增强 LLM 的准确性和时效性。
LLM 是 OpenAI 的 ChatGPT 和 Google Bard 等聊天机器人所采用的 AI 模型。LLM 具备理解、总结、生成和预测新内容的能力。然而,在某些知识密集型任务上,LLM 仍可能面临不一致和失败的问题,尤其是在超出其初始训练数据范围或需要最新信息和决策透明度的任务中。在这种情况下,LLM 可能会返回虚假信息,也被称为“人工智能幻觉”。
当LLM 的训练数据不足时,需要通过从外部来源检索信息,以便提高其响应质量。例如,通过从在线资源检索信息,LLM 可以获取其最初未接受培训的当前信息,从而增强其知识和应答能力。
那么,RAG 如何与 LLM 相互协作呢?
通常情况下,RAG 将信息检索与文本生成器模型相结合,从各种数据源如数据集、在线资源、API、数据库或文档存储库中检索外部知识。
我们以聊天机器人为例,当用户输入提示时,RAG 便会使用关键字或语义数据对该提示进行摘要总结。然后,转换后的数据被发送到搜索平台以检索所请求的数据,并基于相关性对检索结果数据进行排序。
接下来,LLM 会将检索到的数据与增强提示及其内部训练数据进行结合,以创建生成的响应,该响应可以通过用户的源链接传递给聊天机器人,实现更准确、详细和有用的回答。
使用RAG 的好处在于能够利用外部知识源来补充 LLM 的知识和信息,从而提高生成文本的质量和准确性。通过结合检索和生成的能力,RAG 和 LLM 共同协作,使得聊天机器人能够更好地理解用户的意图并提供更富有含义的回答。
3.3Agents
Agents 通常被视为 LLM 的逻辑包装器,允许我们向 AI 系统添加多个功能,主要包括以下几个方面:
工具使用:代理可以调用API 获取信息、执行代码等工具操作。
对多个生成步骤的内部思考:代理具备在多个生成步骤中进行内部思考的能力,可以在生成文本之前进行逻辑推理和语义理解。
处理复杂查询:代理能够使用各种工具和推理步骤来回答更复杂的查询,提供更全面和准确的答案。
并行代理:并行代理可以同时处理多个任务,这在AutoGPT 或研究人员的人工智能项目中非常常见。
其中,会话代理是最常见的代理之一,使用ReAct 框架或类似框架。ReAct 的核心思想是,我们的 LLM(指代 AI 系统)应该经历一个"思考循环",即 Reason(推理)和 Act(行动)。
通常情况下,人工智能开发人员往往使用LangChain 来构建代理工具,但也有其他选择可供他们使用。最近,Llama-index 推出了代理支持,使开发人员能够更方便地构建代理工具。另外,Haystack 已经支持代理一段时间了,开发人员可以利用它来构建强大的代理功能。此外,通过一些额外的努力,开发人员还可以将 OpenAI 函数调用转化为代理风格的框架,从而使其具备代理的能力。
这些选项为开发人员提供了多种选择,以适应不同的开发需求。无论是选择LangChain、Llama-index、Haystack 还是 OpenAI 函数调用,开发人员都可以根据项目的要求和偏好来选择最适合的代理工具。
3.4Conversational Memory
LLM 的"Conversationa Memory"是一种用于增强 LLM 对话能力的技术,允许 LLM 记住之前的对话,并根据这些记忆生成更相关、更连贯的回复。
通常而言,Conversationa Memory (会话记忆)的工作原理如下:
LLM 首先将之前的对话记录下来,包括用户的输入和模型的回复。这些记录可以是对话历史的一个片段或完整的对话序列。
然后,LLM 使用这些记录来构建一个内存模型,将对话信息存储在内部数据结构中。这个内存模型可以是一个上下文向量、记忆矩阵或其他形式的数据表示。
当LLM 生成回复时,它可以访问内存模型中的对话历史。通过检索之前的对话信息,LLM 可以更好地理解当前的上下文,并根据记忆中的信息生成更相关、更连贯的回复。
通过使用会话记忆,LLM 能够利用先前的对话经验来提高对话质量。它可以记住重要的信息、上下文和对话线索,从而更好地理解用户的意图并生成更准确、连贯的回复。
具体体现在如下方面:
上下文理解:模型可以回顾以前的互动,记忆上下文细节,例如用户偏好、之前的问题或相关主题。这使得模型能够提供与当前对话一致的、更加个性化的响应。
连贯性和连续性:通过前面的对话,LLM可以生成连贯的回复,建立在过去的交流基础上。这有助于保持对话的流畅和自然。
长期情境意识:会话内存允许LLM在多个轮次甚至多个会话中保留信息,从而更持久、更全面地了解用户的需求和偏好。
需要注意的是,不同的LLM框架或平台在实现会话内存时可能存在差异。一些模型可能使用显式的记忆模块,而其他模型则通过注意力机制或隐藏状态等技术隐式地整合会话内存。
3.5Dialogue Flows & Guardrails
LLM 的 Dialogue Flows(对话流程)和 Guardrails(护栏)是两种用于控制 LLM 对话行为的技术。
Dialogue Flows 是指 LLM 在对话过程中的交互行为的定义。它规定了 LLM 如何响应用户的提示、如何维持对话的连贯性、如何避免生成损坏或冒犯性的输出等。
通过Dialogue Flows,LLM 能够更好地理解和回应用户的意图,确保生成的回复与对话的上下文相符合。对话流程可以包括对话策略、对话状态管理和上下文感知等技术,以确保 LLM 在对话中表现出一致性和连贯性。
而Guardrails 是指在 LLM 的输出中设置的安全限制,定义了 LLM 可以生成的输出类型,例如限制生成具有冒犯性、不当或不准确内容的回复,以避免不良影响或不当使用。
Guardrails 的目的是保护用户免受有害或误导性内容的影响,并确保 LLM 的使用符合道德和法律准则。通常,Guardrails 可以通过过滤器、审查机制、敏感词汇检测等方法来实现,以确保 LLM 生成的内容符合特定的准则和标准。
在实际的模型开发中,Dialogue Flows 和 Guardrails 两者 可以相互配合 、相互协作, 以提高LLM 的对话能力和安全性。通过定义合适的 Dialogue Flows,LLM 可以更好地理解用户的意图并生成连贯的回复。同时,Guardrails 技术可以确保 LLM 的输出符合预定的安全限制,保护用户和社会免受潜在的负面影响。
综上所述,LLM 是一个多元化且快速发展的领域,涵盖了广泛的应用场景。随着 LLM 技术生态的不断发展,未来 LLM 将在更多领域获得成效,例如自动驾驶、机器翻译、创造性写作等。LLM 也将在解决社会问题方面发挥重要作用,例如帮助解决贫困、疾病、环境污染等问题。
参考:
retrieval-augmented generation(Alexander S. Gillis)
暂无评论内容