跳到主要内容

2 篇博文 含有标签「人工智能」

查看所有标签

· 阅读需 29 分钟

LLM的工程实践思考 LLM 已经彻底改变了人工智能领域。LLM 的工程实践是确保这些模型有效开发、部署和管理的关键方面。LLM 在改善各种应用的能力方面具有巨大的潜力,但也提出了独特的挑战。 陆奇博士的主题演讲《新范式 新时代 新机会》非常震撼人心。我远程参加了深圳站和北京站两场演讲,深受感触。虽然了解大模型的机制和原理以了解新的范式非常重要,但是“行胜于言”,基于大模型的众多应用都需要工程技术才能落地。然而,工程技术的重要性往往被忽视,认为只要有资源就可以实现。实际上,这可能是对技术本身缺少了敬畏。 那么,LLM在工程实践中会涉及哪些问题和挑战呢?

  1. 从机器学习实践到大模型的工程实践

在《机器学习系统架构的10个要素》一文中,也描述了机器学习系统架构的工程流水线。其中,模型的监控是指从数据科学和操作角度追踪和了解我们的模型在生产环境中的性能。监控不充分可能会导致在生产环节中留下不正确的模型、陈旧模型或模型中的细微错误随着时间的推移而累积,却未被发现。当机器学习是业务核心时,无法捕捉到这些错误可能会导致重大的事故。

实现大模型的工程涉及到一系列任务,包括数据预处理、模型训练、模型管理、部署和监控。由于大模型的尺寸和复杂性较大,同时需要确保其可靠性、安全性和可解释性,因此大模型的工程实践可能面临更多的挑战。

  1. LLM工程实践的关键环节 LLM工程实践涉及了诸多环节,主要包括训练、模型管理、数据管理、调试和故障排除、部署以及生产环境中的LLM。其中涉及到的关键点包括硬件选择、数据预处理、算法选择、版本控制、数据隐私和合规性、负载均衡、自动扩展、容器化、K8S、监控工具、持续集成和持续交付等。

    2.1 LLM 的训练 LLM需要大量的计算资源来进行训练。选择正确的硬件可以对训练时间和成本产生重大影响。GPU、TPU和基于云的计算是LLM训练的常见选择。 数据预处理是LLM训练的重要步骤。因为它可以影响模型的质量和性能。预处理技术,如标记化、规范化和清理等,可以提高训练数据的质量。优化训练数据流程也可以加快训练过程并降低成本。 LLM可以使用各种算法进行训练,如LSTM、Transformer和BERT。每种算法都有其优点和缺点。选择正确的算法和超参数对于实现良好的性能并避免过度拟合或欠拟合至关重要。 监控训练进度很重要,以确保模型正在收敛而不是陷入局部最小值。跟踪损失、准确度和困惑度等度量指标可以帮助尽早识别问题并改善训练过程。

    2.2 LLM 的模型管理 从保存和加载到版本控制,再到可重现性,需要深入探讨管理大语言模型的最佳实践。 保存和加载LLM模型是模型管理的重要部分,它使模型得以重复利用,减少了重新训练的需求。TensorFlow的 SavedModel和ONNX等格式通常用于保存LLM模型。 版本控制LLM模型对于跟踪变更和保持可重复性至关重要。Git和MLFlow等工具可以帮助管理LLM模型的版本控制。 在科学和业务应用中,可重复性非常重要。容器化、虚拟化和可重复的流程等技术可以帮助确保LLM模型的可重现性。

    2.3 LLM的数据管理 数据是LLM开发的支柱,有效管理对于开发准确可靠的LLM模型至关重要。在LLM Ops中进行数据管理时,一些关键考虑因素包括: • 准备和清洗数据:准备和清洗数据涉及将原始数据转换成可用于LLM训练和推理的格式。这包括数据归一化、特征工程和数据增强等任务。 • 确保数据质量和一致性:确保数据高质量和一致性对于开发准确的LLM模型至关重要。这涉及数据验证和质量控制措施,如异常值检测和数据分析。 • 管理数据隐私和合规性:在处理敏感或个人数据时,数据隐私和合规性是必要的考虑因素。这包括实施数据安全措施,如加密和访问控制,并遵守数据隐私法规,例如GDPR和《个保法》。 有效的数据管理需要数据科学家、工程师和利益相关者之间的协作,以确保数据清洁、可靠和道德采集。投资于数据管理工具和流程可以帮助简化数据准备和验证任务,并提高LLM模型的质量。

    2.4 LLM的调试和故障排除 调试和故障排除是LLM开发过程中必不可少的部分。以下是一些解决LLM常见错误的策略: • 识别和解决LLM常见错误:LLM中常见的错误可能包括输入数据的问题、模型架构的问题以及代码中的错误。仔细的测试和调试可以帮助识别和解决这些问题。 • 调试LLM训练和推断问题:调试LLM训练和推断问题可能很具有挑战性,因为这些问题可能与数据、模型架构或优化过程有关。重要的是要仔细监控训练过程并使用诊断工具及时识别问题。 • 开发强大的LLM测试策略:测试对于确保LLM的可靠性和准确性至关重要。强大的测试策略应包括单元测试和集成测试,以及对输入和输出数据的全面验证。

    2.5 LLM的部署 部署LLM需要可靠且可扩展的基础设施,可以处理LLM推理的计算需求。AWS、GCP、Azure、百度云等云解决方案是部署LLM的流行选择。 LLM的部署涉及将负载分布在多个服务器或节点上,以处理高流量并确保低延迟。负载均衡、自动扩展和分片等技术可以帮助扩展LLM部署。 管理和监控LLM部署对于确保可靠性、安全性和性能至关重要。容器化、Kubernetes和监控工具(如Prometheus和Grafana)等技术可帮助管理和监控LLM部署。下面的架构描述了AWS上的一般部署流程。

    2.6 生产环境中的LLM 在生产环境中部署LLM模型需要对软件开发流程、版本控制和测试进行仔细管理。为了实现LLM模型的持续集成和持续交付,需要考虑以下内容:

将 LLM 模型集成到现有工作流程中,需要将其集成到现有的软件开发工作流程中,例如基于 Git 的版本控制系统和持续集成平台。自动化集成和交付(CI/CD)是 LLM 整体工作流程的重要组成部分。为了确保 LLM 模型能够高效、有效地部署,将它们集成到现有工作流程并自动化部署流水线非常重要。这允许持续交付新的 LLM 模型和更新现有模型,确保它们始终保持最新状态并执行最佳。 为了将 LLM 模型集成到现有工作流程中,重要的是要清楚地了解 LLM 模型的依赖关系和要求,以及现有基础架构和系统。这可能涉及与 IT 团队和 DevOps 工程师密切合作,以确保 LLM 模型可以无缝、安全地部署。 自动化部署管道是 LLM 的 CI/CD 的另一个重要方面。这涉及使用工具和技术,例如 Jenkins、Travis CI 或 GitLab CI/CD,自动化 LLM 模型的构建、测试和部署过程。这可以帮助减少错误,并确保 LLM 模型在不同环境中快速且一致地部署。 管理 LLM 模型的版本和回滚也是至关重要的,以确保 LLM 模型始终按预期执行。这涉及使用版本控制系统,如 Git,跟踪对 LLM 模型的更改,并在必要时回滚到以前的版本。这还涉及使用监控和日志记录工具来跟踪 LLM 模型在生产中的性能并快速识别问题。 总体而言,CI/CD 是 LLM 工程实践的关键部分,它确保了 LLM 模型快速高效地部署,并始终保持最新且性能最佳。通过将 LLM 模型集成到现有工作流程中,自动化部署管道以及管理版本和回滚,团队可以确保其 LLM 模型安全可靠地部署。

  1. LLM 工程实践中的非功能性需求 LLM 工程实践中的非功能性需求主要包括处理模型和数据的安全性、提高模型的可解释性和解释能力、以及性能优化的关键策略,包括微调LLM、压缩、量化和知识蒸馏LLM模型、优化推理时间、使用缓存等技术。

    3.1 LLM的安全性考量 基于尺寸、复杂性和敏感数据的处理能力,LLM面临着独特的安全挑战。为了确保LLM模型和数据的安全,需要考虑以下问题: • 保护LLM模型和数据:这包括实施访问控制、加密和安全数据存储,以防止未经授权的访问LLM模型和数据。 • 审计LLM使用情况:重要的是要跟踪谁在访问LLM模型和数据以及为什么目的。这有助于检测和防止LLM的未经授权使用或滥用。 • 管理对LLM模型的访问:需要确保只有经过授权的用户和应用程序才能访问LLM模型。这涉及设置身份验证和授权机制,以及实施防火墙和网络隔离。

    3.2 LLM的可解释性和解释能力 由于其复杂性和缺乏透明度,LLM通常被认为是“黑匣子”。然而,其可解释性和解释能力对于确保LLM模型的信任和问责是必不可少的。

我们需要了解LLM模型的内部工作原理,以解释其输出并向利益相关者解释决策。这包括使用特征重要性分析、归因方法和可视化等技术来了解LLM模型如何进行预测。我们还需要利用可解释性工具,如LIME、SHAP和集成梯度,来分析LLM模型并确定改进的领域。

3.3 LLM 的优化技术 优化LLM一般包括三个方面:微调LLM以适用于特定任务,压缩、量化和知识蒸馏LLM模型以提高其可扩展性和部署性,以及优化LLM性能的关键策略,包括优化推理时间、使用缓存等技术以及在准确性和速度之间权衡。

3.3.1 LLM的微调 LLM可以通过在特定任务上训练它们来进行微调,以便利用预训练LLM模型所学习的知识和参数来进行特定应用。为了微调LLM,需要考虑以下内容: • 选择合适的预训练LLM模型,并使用特定任务的数据集对其进行微调。 • 尝试不同的微调方法和超参数,以获得最佳结果。 • 使用适当的指标和验证技术评估微调的LLM模型的性能。

3.3.2 LLM的模型优化 由于LLM(语言模型)可能需要大量计算和资源,这可能会限制它们在生产环境中的可扩展性和部署。为了优化LLM,需要考虑以下几点: • 压缩LLM模型:这涉及使用修剪、量化和知识蒸馏等技术来减小LLM模型的大小,而不会影响其性能。 • 量化LLM模型:这涉及将LLM模型从浮点算术转换为定点算术,以减小它们的内存占用并提高它们的推理时间。 • 对LLM使用知识蒸馏:这涉及训练一个较小、更简单的模型(学生)来模仿一个较大、更复杂的模型(教师)的行为。

3.3.3 LLM的性能优化 LLM通常需要大量的计算资源,因此优化它们的性能是确保它们能够在实际应用中有效使用的关键。以下是一些优化LLM性能的关键策略: • 优化LLM推理时间:影响LLM性能的主要因素之一是处理输入和生成输出所需的推理时间。有许多技术可以优化推理时间,包括修剪未使用的神经元,减少精度和使用高效硬件加速器。 • 对LLM使用缓存和记忆化技术:缓存和记忆化可以通过存储先前计算的结果并在可能时重复使用它们来减少LLM推理过程中所需的计算量。这对于处理具有高度重叠的输入的LLM尤其有效。 • 在LLM的准确性和速度之间权衡:在某些情况下,为了实现更快的推理时间,可能需要牺牲一定程度的准确性。在优化LLM性能时,需要仔细考虑准确性和速度之间的权衡。

  1. LLM与边缘计算 随着人工智能领域的不断发展,实时决策和推理在网络边缘的需求变得越来越重要。这导致了边缘计算的出现。边缘计算指的是在网络边缘的设备上处理数据,而不是在集中式数据中心中处理。 LLM具有在边缘计算中极具潜力的优势,因为它们能够实时处理自然语言输入并快速生成准确的响应。然而,在边缘设备上部署LLM模型还存在一些必须解决的挑战。 为了在边缘设备上部署LLM模型,首先必须将其优化为在计算资源有限的设备上高效运行。这包括缩小模型的大小并最小化其内存和处理要求。一旦模型被优化,它就可以部署在边缘设备上。 在边缘设备上运行LLM的主要挑战之一是这些设备上可用的计算资源有限。LLM模型通常非常大,需要大量的存储器和处理能力来运行。为了克服这个挑战,可以使用模型压缩、量化和修剪等技术来减小模型的大小并使其更加高效。另一个挑战是在边缘设备上运行LLM时需要保持数据隐私和安全。这可以通过联邦学习等技术来解决,该技术允许在边缘设备上训练模型而不暴露敏感数据。 在物联网和机器人等行业中,LLM在边缘设备上具有许多潜在的用例和好处。例如,LLM可以用于实时处理自然语言输入并在智能音箱、聊天机器人和语音助手等设备上生成响应。在机器人领域,LLM可以用来使机器人能够实时理解和响应自然语言输入,使它们更具响应性和易于交互。LLM也可以用于物联网设备,以实现传感器数据的实时自然语言处理,从而更容易实时监控和控制设备。 总体而言,在边缘设备上部署LLM模型既带来了挑战,也带来了机会。通过为边缘计算优化LLM模型并解决数据隐私和安全等问题,可以释放LLM在物联网和机器人等行业的潜力,并在网络边缘实现实时自然语言处理。

  2. LLM 工程实践中的非技术问题 在LLM工程实践中,有效的协作与沟通至关重要,可以通过版本控制、代码审查和问题跟踪等工具来促进。同时,确保LLM模型符合伦理和公正使用也是必要的,包括确保公正性和无偏见、减轻意外伤害的风险和遵守道德和法律标准等方面。

    5.1 LLM工程实践中的协作与沟通 有效的协作与沟通是成功的LLM工程实践的关键。不同团队和利益相关者之间的协作对于确保LLM有效开发和部署至关重要。版本控制、代码审查和问题跟踪等工具可以帮助促进协作。重要的是以易于理解和接受的方式向非技术人员传达LLM的结果。这可能需要使用可视化、摘要或其他工具来传达复杂信息。 这是一个不断发展的领域,重要的是拥抱实验和持续改进的文化。这可能涉及尝试新技术、测试新想法并向利益相关者征求反馈。

    5.2 LLM 工程实践中的公正与伦理 LLM模型有可能对人们的生活产生重大影响。因此,确保它们符合伦理和公正使用至关重要。 • 确保LLM模型公正和无偏见:LLM模型的公正性和准确性对其有效使用至关重要。偏见可能会由于各种因素而潜入LLM模型,例如有偏见的训练数据或不适当的特征选择。有必要定期审计LLM模型,以识别和减轻偏见。 • 减轻LLM模型意外伤害的风险:LLM模型有可能造成意外伤害,例如侵犯隐私、安全漏洞以及对弱势群体产生负面影响。有必要进行彻底的风险评估,以识别潜在的伤害,并采取适当的措施予以减轻。 • 遵守LLM的道德和法律标准:LLM模型必须遵守道德和法律标准。这包括遵守数据隐私规定,在LLM模型的决策过程中确保透明度,并考虑LLM模型对社会的潜在影响。组织必须采取积极的措施,确保其LLM模型符合道德和法律标准。 下面的图片详细描述了人工智能伦理的各种原则。

  3. LLM 工程实践面临的其他挑战 基于LLM的工程实践是一个不断发展的领域,不断有新的趋势和进展。跟上新研究和新开发的节奏对于保持相关和竞争力同样至关重要。一些新兴趋势包括: • AutoML:AutoML工具可以自动化LLM开发的几个方面,从数据预处理到超参数调整。这可以使LLM开发更快速和更可访问。 • 联邦学习:联邦学习是一种隐私保护的LLM训练方法,允许在设备上本地训练数据而不离开设备。这有潜力改善隐私和数据所有权,同时也减少了训练所需的数据量。 • Few-Shot和Zero-Shot学习:这些技术旨在训练具有有限或没有数据的模型,在低资源环境中可以有益。 • 多模态学习:多模态学习涉及训练LLM理解不同类型的数据,例如文本、图像和音频。这对于开发更复杂和多样化的应用程序非常有用。 然而,新的进步带来了新的挑战,这些挑战包括: • 模型偏差:LLM模型中的偏差可能由各种因素引起,例如有偏的训练数据或有偏的模型架构。这可能导致意外后果和不公平的结果。 • 模型可解释性:随着LLM模型变得越来越复杂,了解它们如何做出决策可能是一个挑战。模型可解释性技术对于确保LLM模型能够被理解和信任至关重要。 • 安全和隐私:随着LLM模型变得越来越有价值,确保它们的安全和隐私变得更加关键。这包括保护LLM模型和数据、管理对LLM模型的访问以及审核LLM使用。 为了为未来的LLM工程实践做好准备,需要跟上新兴趋势和技术的步伐,同时解决即将出现的挑战。投资研究和开发、采用新技术和工具、确保LLM模型的道德和公正使用,这些都是保持领先地位的必要条件。

7.小结 LLM 已经彻底改变了人工智能领域。LLM 的工程实践是确保这些模型有效开发、部署和管理的关键方面。LLM 在改善各种应用的能力方面具有巨大的潜力,但也提出了独特的挑战。面向数据管理、模型训练和调整、部署、解释、测试、安全、CI/CD、监控和日志记录以及治理和合规等关键领域,我们需要确保 LLM 在生产环境中的可靠性、安全性和性能。 随着 LLM 在各个行业的日益普及,保持与最新的 LLM 进展和最佳实践的同步是至关重要的,以确保这些模型在遵守道德和法律标准的同时提供准确可靠的结果。

【参考资料】 • Continuous Delivery for Machine Learning,https://martinfowler.com/articles/cd4ml.html • Deploy Models for Inference,https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html • 文心·NLP大模型,https://wenxin.baidu.com/wenxin/nlp

· 阅读需 61 分钟

最近看了openai大佬Andrej Karpathy分享的视频,受益匪浅。本文是对视频内容的总结。 1.LLM是什么

Llama 2 模型 7b/13b/34b/70b,可能是当今最强大的开放权重模型。权重、架构和论文都是由meta发布的 什么是大语言模型? 一个大语言模型只是两个文件:参数和某些可以运行这些参数的代码。 [1]参数基本上是权重或参数 这个神经网络就是我们稍后会讨论的语言模型 因为这是一个 700 亿参数模型 每个参数都存储为2个字节,因此参数文件有140GB 2个字节,是因为数据类型是float16 [2]运行参数的代码,可能是一个c文件/python文件或任何其他编程语言

你可以拿着你的MacBook,这是一个完全自包含的套件,这是所有必要的东西,你不需要任何连接到互联网或其他东西,你只需要这两个文件,编译你的C代码,得到一个可以指向参数并与这个语言模型交互的二进制文件。 例如,你可以发送文本,比如让它写一首关于公司Scale AI的诗,这个语言模型将开始生成文本,在这种情况下,它将按照指示为你创作一首关于Scale AI的诗歌。 所以运行这个模型所需的东西并不多,这是一个非常小的包,但计算复杂性真正体现在当我们想要得到这些参数时。我们如何获取这些参数,这些参数是来自哪里的? 因为在C文件中的任何东西,神经网络架构和网络的前向传播等,所有这些都是通过算法理解和公开的。但真正的魔力在于这些参数,我们如何获得它们。 2.训练模型 2.1 模型训练简介

基本上模型训练(我们称之为训练)比模型推理(我之前展示的部分)要复杂得多。模型推理只是在你的MacBook上运行模型,而模型训练是一个非常复杂的过程。 模型训练是一个非常复杂的竞争过程,所以基本上我们正在做的事情可以最好地排序,可以理解为对互联网大块的压缩。 所以因为 Llama 2-70b 是一个开源模型,我们对它的训练过程了解得相当多,因为 Meta 在论文中公开了这些信息。以下是一些与训练相关的数据: 基本上你会获取大约10TB的文本,这通常来自于对互联网的爬取,就想象一下从各种不同的网站收集大量文本并将其汇总在一起。然后你会获取一个GPU集群,这些是用于非常重型计算工作负载(比如训练神经网络)的专用计算机。你大约需要使用6,000个GPU,并运行大约12天,才能得到一个 Llama 2-70b 模型,这将花费你大约 200 万美元。 其基本原理是将这一大块文本压缩成一种类似于zip文件的形式。所以我之前展示给你看的这些参数,最好可以看作是互联网的一个“zip文件”。在这种情况下,输出的就是这些参数,大小为 140GB,因此可以看出,这里的压缩比大约是100倍左右,粗略地说。但这并不完全是一个zip文件,因为zip文件是无损压缩,而这里使用的是有损压缩,我们只是获得了文本的一种整体印象,不是它的完全相同副本,可以这样理解为有损压缩。 再指出一件事情,按照当今标准,这些数字在最先进的水平上是相当初级的,如果你想想现在最先进的神经网络,比如你可能在ChatGPT、Claude或Bard中使用的,那么这些数字要高出一个数量级或更多。 因此,你只需开始逐步增加,这就是为什么今天这些训练运行的成本很高,需要非常大型的集群和非常大型的数据集,获取这些参数的过程非常复杂。 一旦你获得了这些参数,运行这个神经网络的计算量就相对较小。 2.2 原理

那那么这个神经网络究竟在做什么呢?我提到了有这些参数,这个神经网络基本上只是试图预测一个序列中的下一个单词,你可以这样理解。你可以输入一个单词序列,例如“cat sat on a”, 这个输入进入神经网络,这些参数分散在整个神经网络中,有神经元彼此相连并以某种方式激活。 最后输出的是对接下来的单词的预测。例如,在这个例子中,这个神经网络可能会预测,在这个四个词的上下文中,下一个词很可能是“Matt”,可能有97%的概率。 所以基本上,这个神经网络所进行的任务就是这样一个问题,你可以从数学上证明预测与压缩之间有着非常密切的关系,这就是为什么我将这个神经网络称之为对互联网进行压缩的一种训练, 因为如果你可以非常准确地预测下一个单词,你可以用来压缩数据集。它就是一个下一个单词预测神经网络,你输入一些单词,它给你输出下一个单词。但是,训练得到的结果为什么会是一个非常神奇的产物呢? 因为基本上,下一个单词预测任务你可能认为是一个非常简单的目标,但它实际上是一个相当强大的目标,因为它迫使你在神经网络的参数中学习很多关于世界的知识。 2.2.1 预训练

比如,我在做这个演讲时随机选了一个网页,我只是从维基百科的主页上抓取了一个关于 Ruth Handler 的页面,想象一下作为神经网络,你得到了一些单词,试图预测序列中的下一个单词,在这种情况下,我用红色标出了一些包含很多信息的单词,例如在这里,如果你的目标是预测下一个单词,那么你的参数可能就必须学习到这么多的知识,你必须了解关于 Ruth 和 Handler 的信息,她的出生日期和去世日期,她是谁,她做过什么等等。 所以在下一个单词预测的任务中,你就会对世界学到很多东西,而所有这些知识都被压缩到了神经网络的权重中,即参数中。

那么我们实际上如何使用这些神经网络呢?一旦我们训练好了,我向你展示了模型推理是一个非常简单的过程,基本上我们生成接下来的内容,从模型中采样,选择一个词,然后继续将其反馈回去,得到下一个词,以此类推。 我们可以迭代这个过程,这个网络就会“梦见”互联网的文档。例如,如果我们只是运行这个神经网络,或者说进行推理,我们会得到一些类似于网页的“梦境”,你可以将其看作是网络梦想的结果。因为这个网络是在网页上训练的,你可以想象一下 所以在左边我们有一种类似Java代码的梦境,中间我们有一种几乎像是亚马逊产品的梦境,右边有一些看起来几乎像是维基百科文章的东西, 稍微关注一下中间的那个作为例子,标题,作者,ISBN号码,其他的一切都是网络完全虚构的,网络是从它训练的分布中进行文本的构想,它只是模仿这些文件,但这都是一种幻觉。比如ISBN号码,这个号码可能我猜几乎肯定是不存在的,模型网络只知道ISB和冒号后面大致是某种长度的数字,有这么多位数,然后它就随意放进去了,放入了看起来合理的任何东西。

所以它分开了训练数据集,右边的分布是black nose dace,我查了一下,它实际上是一种鱼,嗯,这里发生的是,这段文字原封不动地不在训练集文档中,但是如果你真的查找,关于这种鱼的信息大致上是正确的。所以网络对这种鱼有了一些了解,它对这种鱼了解很多,它不会完全复制它在训练集中看到的文件 但再次,它是互联网的某种损失压缩,它记得这个东西,它对这个知识有所了解,然后它会创造出正确的形式,并填充上一些它的知识,但你永远不会百分之百确定它想出来的是所谓的幻觉还是不正确的答案还是正确的答案,因此一些东西可能是记忆的,一些可能不是记忆的,你不确定哪个是哪个。 但在大多数情况下,这只是对互联网文本进行幻想或者说是梦境,来自于它的数据分布。

现在让我们转换一下,看看这个网络是如何工作的,它是如何执行这个下一个单词预测任务的。它内部发生了什么呢? 嗯,这里事情有点复杂,这有点像神经网络的示意图,如果我们放大这个神经网络的玩具图,这就是我们称之为transfomer神经网络架构的东西,这是它的图表。 现在这些神经网络的显著之处在于,我们实际上完全了解这个架构,我们确切地知道在它的不同阶段发生了什么样的数学操作,问题是,这些1000亿的参数分散在整个神经网络中,所以基本上这些数以亿计的参数散布在神经网络中,我们只知道如何迭代地调整这些参数,使得网络作为一个整体在下一个单词预测任务上变得更好。 所以我们知道如何优化这些参数,我们知道如何随着时间的推移调整它们以使得下一个单词的预测更好,但我们实际上并不真正知道这1000亿个参数在做什么,我们可以衡量它在下一个单词预测方面变得更好,但我们不知道这些参数是如何协作来执行这个任务的。我们有一些模型可以尝试从高层次来思考网络可能在做什么,所以我们有点理解它们构建和维护了某种知识数据库,但即使这个知识数据库也是非常奇怪和不完美的。 一个最近的病毒性例子是我们称之为“倒转课程”的东西,举个例子,如果你去和Chat GPT交谈,然后问GP4,目前最好的语言模型,你会问谁是汤姆克鲁斯的母亲,它会告诉你是梅丽莉·黎佛,这是正确的, 但如果你问梅丽莉·黎佛的儿子是谁,它会告诉你它不知道,所以这种知识很奇怪,它有点单一, 你必须从某个方向来问它,这种知识不是存储并且可以以各种不同的方式被访问,你几乎必须从某个特定的角度来问它。所以这真的很奇怪和奇特,基本上我们真的不知道,因为你只能衡量它是否有效,以及以什么概率。长话短说,把LLM想象成大多数是难以捉摸的工艺品。

它们与工程学科中可能构建的任何其他东西都不相似,它们不像汽车,我们对所有零部件都有一定的理解。它们是经过长时间的优化过程得到的神经网络,所以目前我们并不完全了解它们是如何工作的, 尽管有一个称为可解释性或机械解释性的领域,试图去了解这个神经网络的所有部分在做什么,你可以在某种程度上做到这一点,但现在还不能完全理解。但目前我们基本上将它们视为经验性的工艺品,我们可以给它们一些输入,然后测量输出,基本上我们可以测量它们的行为,我们可以在许多不同的情况下查看它们生成的文本。 所以我认为这基本上需要相应复杂的评估来处理这些模型,因为它们主要是经验性的。那么现在让我们来看看我们到目前为止如何获得一个助手。 2.2.2 微调

我们目前只谈到了这些互联网文档生成器, 是训练的第一阶段,我们称之为预训练阶段,现在我们要进入训练的第二阶段,我们称之为微调。 在这个阶段,我们得到了我们所谓的助理模型,因为我们实际上不只是想要一个文档生成器,对于许多任务来说这并不是很有帮助,我们希望给出一些问题,然后让它根据这些问题生成答案,所以我们实际上更想要一个助理模型。 获得这些助理模型的方法基本上是通过以下过程: 我们基本上保持优化的方式相同,训练过程也是相同的,只是一个下一个单词预测的任务,但我们要交换训练所用的数据集。 之前我们试图在互联网文档上进行训练,现在我们要把它换成手动收集的数据集,我们收集数据的方法是通过许多人,通常一个公司会雇佣人员,他们会给他们标注说明,并要求他们提出问题,然后为这些问题写答案。这里是一个可能进入你的训练的单个示例,有一个用户,他说类似“你能写一个关于单一买方市场在经济学中相关性的简短介绍吗?”然后有一个助理,再次填写理想的回应应该是什么,理想的回应和如何规定以及它应该是什么样的,都来自于我们提供给这些人的标注文档,像OpenAI或者Anthropic等公司的工程师们会创建这些标注文档。而预训练阶段则涉及大量文本。

在第一个阶段,也就是预训练阶段,我们只是从互联网中获取了大量文本,可能有数十或数百TB的数据,但并不都是高质量的内容。 在这个阶段,我们更注重质量而非数量,因此我们可能只有很少的文档,比如10万份,但所有这些文档都是对话,应该是非常高质量的对话。 人们基本上是根据标注说明来创建这些对话的。我们现在替换了数据集,并在这些问答文档上进行训练,这个过程被称为微调。 一旦完成微调,你就得到了我们所说的助理模型。

现在这个助理模型符合其新训练文档的形式。例如,如果你给它一个问题,比如“你能帮我解决这个代码吗,似乎有一个bug,打印出Hello World”,即使这个问题在训练集中没有明确出现过,但在经过微调后,模型明白它应该以帮助解答这类问题的方式回答,并且会这样做。它会逐字逐句地从左到右、从上到下地对这个查询做出回应,这有些了不起,也有些经验性,并不完全理解,这些模型能够改变它们的格式,现在成为了有帮助的助手,因为它们在微调阶段看到了如此多的这种文档,但它们仍然能够访问并某种方式利用在第一阶段预训练阶段积累起来的所有知识。 2.3 总结

大致来说,预训练阶段是在互联网上获取大量文本,你需要一组GPU,这些是专门用于这种并行处理工作负载的特殊目的的计算机。这不是你可以在百思买购买到的东西,这些都是非常昂贵的计算机,然后你把文本压缩到这个神经网络中的参数中。通常这可能需要几百万美元,然后这给你带来了基础模型,因为这是非常计算密集型的部分,所以这只会在公司内部偶尔进行,可能一年一次或者在多个月后进行,因为这实际上是非常昂贵的过程。 一旦有了基础模型,你进入微调阶段,这个阶段的计算成本要低得多。在这个阶段,你撰写一些标注说明,基本上规定了你的助理应该如何行为,然后你雇佣人员,比如Scale AI是一家公司,他们会与你合作,根据你的标注说明实际上创建文档,你收集10万份高质量的理想问答响应,然后你将基础模型在这些数据上进行微调,这会便宜得多,可能只需要一天左右,而不是几个月左右,然后你得到了我们所说的助理模型,然后你进行评估、部署,并监控收集不良行为,对于每一个不良行为,你都想要修复它,然后重复上述步骤。 修复不良行为的方式大致是,你有一个对话,助理给出了一个错误的回应,于是你拿这个回应向人类询问正确的回应,然后这个人类用正确的回应覆盖错误的回应,这个例子被插入到你的训练数据中,下一次进行微调阶段时,模型在这种情况下会得到改进。

这就是通过迭代过程改进的方式,因为微调的成本更低,你可以每周、每天进行一次等等,公司通常会在微调阶段进行更快的迭代,而不是在预训练阶段。 另一个要指出的事情是,比如我提到的Llama 2系列,实际上当Meta发布Llama 2系列时,包含了基础模型和助理模型,它们同时发布了这两种类型。 基础模型并不是直接可用的,因为它不能用答案回答问题,如果你给它问题,它会给你更多问题,或者做一些类似的事情,因为它只是一个互联网文档采样器,所以它们并不是非常有帮助。它们的帮助之处在于Meta已经完成了这两个阶段中非常昂贵的部分,他们完成了第一阶段,并为你提供了结果,所以你可以自己去做微调,这给了你很大的自由度。 此外,Meta还发布了助理模型,如果你只是想问问题并得到答案,你可以使用那个助理模型,然后和它交谈。所以这就是这两个主要阶段

现在看看在第二阶段,我说的结束或者比较,我想简要地再详细解释一下,因为还有一个第三阶段的微调,你可以选择进入或者继续进行。在微调的第三阶段,你将使用比较标签,让我给你展示一下它是什么样子的,我们之所以这样做是因为在许多情况下,比较候选答案要比自己写答案更容易,如果你是一个人类标注员的话。考虑下面这个具体的例子,假设问题是写一个关于回形针之类的haiku(一种日本的短诗形式),从标注员的角度来看,如果要求我写一个haiku,这可能是一个非常困难的任务,对吧,我可能无法写出来。 但是假设你得到了几个由第二阶段助理模型生成的候选haiku,作为一个标注员,你可以看看这些haiku,并挑选出最好的一个。因此,在许多情况下,进行比较要比进行生成更容易。 还有一个第三阶段的微调可以使用这些比较进一步微调模型。我不会详细介绍这个过程的全部数学细节,在OpenAI这个过程被称为从人类反馈中进行强化学习或者RLHF,这是一个可选的第三阶段,可以在这些语言模型中获得额外的性能,并利用这些比较标签。

我也想简单地向你展示一张幻灯片,展示一些我们给人类的标注说明。这是OpenAI的一篇论文《Instruct GPT》的节选,它向你展示了我们要求人们要有帮助、真实和无害。虽然这些标注说明可能会变得很复杂,可能会有几十页甚至几百页,但大致上就是这个样子。

我想要提到的另一件事是,我简单地描述了这个过程是人类进行所有手动工作,但这并不完全正确,并且越来越不正确,因为这些语言模型同时正在变得更加优秀 你基本上可以使用人机协作来创建这些标签,而且效率和正确性都在不断提高。 例如,你可以让这些语言模型生成答案,然后人们从答案中挑选最好的部分,形成一个最佳答案,或者你可以让这些模型尝试检查你的工作,或者尝试要求它们创建比较,然后你只是对其进行修饰。 这是一个你可以确定的滑动条,越来越多的模型正在变得更好,向右移动这个滑动条。

最后,我想向你展示一下当前主要大型语言模型的排行榜。比如这个聊天机器人竞技场,由伯克利团队管理,他们在这里根据ELO评分对不同的语言模型进行排名。计算ELO的方式与国际象棋的计算方法非常相似,不同的国际象棋选手相互对弈,根据彼此的胜率可以计算出他们的ELO分数。你可以用同样的方式来计算语言模型,你可以在这个网站上输入一些问题,从两个模型获取回答,你不知道这些回答来自哪个模型,然后你选择一个赢家。根据谁赢谁输,你可以计算出ELO分数,分数越高越好。你可以看到排在最顶端的是专有模型,这些是封闭模型,你无法访问它们的权重,它们通常在一个网络界面后面,比如OpenAI的GPT系列和Anthropic的claude系列 还有其他一些公司的系列模型。这些目前是性能最好的模型,然后在下面你将开始看到一些开放权重的模型,关于它们已知的更多,通常有相关的论文可用。例如Meta的Llama 2 Series,或者底部你看到的Zephyr 7B beta,它基于法国的另一家初创公司的Mistol系列 但大致上,你今天在这个生态系统中看到的是封闭模型的工作效果更好,但你不能真正使用它们来微调、下载等,你只能通过网络界面使用它们,然后在这些封闭模型的后面是所有开源模型和整个开源生态系统,所有这些东西的效果都不如封闭模型好,但根据你的应用,这可能是足够好的 目前我可以说的是,开源生态系统正在努力提高性能,并且追赶专有生态系统,这大致是你在行业中看到的今天的动态。 3.模型的未来

所以现在我要转换话题,我们来谈谈语言模型以及它们的改进方向 3.1 缩放定律

关于大型语言模型领域非常重要的一点是所谓的“扩展(缩放)定律”。 事实证明,这些大型语言模型在下一个单词预测任务的准确性方面是一个非常平稳、表现良好且可预测的函数,只涉及两个变量:你需要知道的是网络中的参数数量n和你将要进行训练的文本量D。 仅凭这两个数字,我们可以预测非常精确、非常有信心地预测你在下一个单词预测任务中会达到什么样的准确性。 值得注意的是,这些趋势似乎没有显示出任何达到顶峰的迹象。如果你在更多文本上训练一个更大的模型,我们有很大的信心下一个单词预测任务的表现会提升。 所以算法进步并不是必要的,虽然是一个非常好的额外奖励,但我们可以无偿地获得更强大的模型,因为我们可以只是获取一台更大的计算机,我们可以有一定的信心会得到这台计算机,并且我们可以训练一个更大的模型更长时间,我们非常有信心会得到更好的结果。 当然,在实践中我们实际上并不在意下一个单词预测的准确性,但根据经验我们发现这种准确性与我们真正关心的许多评估是相关的。

例如,你可以对这些大型语言模型进行许多不同的测试,你会发现,如果你训练一个更大的模型,比如在GPT系列中从3.5升级到4,所有这些测试的准确性都会提高。 所以,随着我们训练更大的模型和使用更多的数据,我们几乎可以免费地期待性能的提升。这基本上是推动当今计算领域的淘金热的根本原因,每个人都在努力获取更大的GPU集群,获取更多的数据,因为人们非常有信心,通过这样做,你将获得一个更好的模型。 算法进步是一种很好的奖励,许多组织都在大量投入其中,但从根本上来说,规模化提供了一条通往成功的保证路径。 3.2 Agent

现在我想谈一下这些语言模型的一些功能以及它们如何随着时间的推移而发展。 我不想用抽象的术语来讲,我想用一个具体的例子来说明,我们可以一步一步地进行。我去了chatgpt,然后输入了以下查询,我说收集关于Scale及其融资轮次的信息,包括时间、金额和估值,并将其组织成一个表格。 chatgpt基于我们收集的大量数据以及我们在微调阶段教给它的知识,理解到在这种查询中,它不能单独作为一个语言模型直接回答问题,而是需要使用能帮助它完成任务的工具。 在这种情况下,一个非常合理的工具可能是浏览器。如果你和我面临同样的问题,你可能会进行搜索,对吧,这正是chatgpt所做的。 它有一种方法生成我们可以查看的特殊词汇,我们可以看到它试图执行搜索,在这种情况下,我们可以获取那些查询,转到Bing搜索,查找结果,然后我们可以像你和我可能浏览搜索结果一样,将这些文本返回给语言模型,然后根据这些文本,让它生成回答。 它的工作方式非常类似于我们使用浏览器进行研究,它将信息组织成了以下内容,并以这种方式回应:它收集了信息,我们有了一个表格,有A、B、C、D和E系列,有日期、筹集的金额和暗含的估值,在系列中,然后它提供了可以验证这些信息是否正确的引用链接。 在底部,它说实际上抱歉,它无法找到A和B系列的估值,它只找到了筹集的金额,所以你看到表格中有一些信息是“无法获取”的。

好的,我们现在可以继续这个互动了,我说好,让我们尝试根据我们在CD和E系列中看到的比例来猜测或推断A和B系列的估值,你看,CD和E系列中筹集金额与估值的比例是一定的。如果我们试图推断这个值,我们不会仅仅在脑海中计算,这样很复杂。 因为你和我在数学方面都不是很擅长,而就像 chatgpt(语言模型)本质上也不太擅长数学一样,所以实际上 chatgpt 理解到它需要在这类任务中使用计算器。 它会再次发出特殊的单词,表明它想使用计算器。我们想要计算这个值,实际上它的做法是基本上计算了所有的比率,然后根据这些比率计算出 A 轮和 B 轮的估值应该是,你知道的,大约是 7000 万和 2.83 亿。

所以现在我们想要做的是,我们有不同轮次的估值,所以让我们将其组织成一个二维图表。我说的是 x 轴是日期,y 轴是 Scale AI 的估值,使用对数刻度作为 y 轴,使其看起来很专业,并使用网格线。而 chatgpt 实际上可以再次使用,比如,它可以编写使用 Python 中的 Matplotlib 库来制作这个数据图表的代码。所以它进入一个 Python 解释器,输入所有的值,然后生成一个图表。这就是这个图表,所以它在底部显示了数据,它完全按照我们用纯英语要求的方式完成了工作,你可以像与人交谈一样与它交流。

现在我们正在看这个图表,我们想做更多的任务,例如,让我们现在在这个图表上添加一个线性趋势线,并且我们想将估值外推到 2025 年底,然后在今天创建一个垂直线,并根据拟合告诉我今天和 2025 年底的估值。 而 chatgpt 进行了所有代码编写(未显示),然后进行了分析。所以在底部我们有了日期,我们已经外推了,这就是估值。所以根据这个拟合,今天的估值似乎大约是 1500 亿,而到 2025 年底,Scale AI 预计将成为 2 万亿美元的公司。所以祝贺团队,但这正是 chatgpt 非常擅长的分析类型。 我想要在这一切中展示的关键点是,这些语言模型的工具使用方面以及它们的发展,不仅仅是关于在头脑中工作和采样单词,现在它们是关于使用工具和现有的计算基础设施,并将所有事物联系在一起,并与单词交织在一起,如果有意义的话。 所以工具使用是这些模型变得更加强大的一个重要方面,它们基本上就像人类一样能够写出大量的代码,进行所有的分析,查找互联网上的东西,等等。

还有一件事,根据上述信息,生成一个代表公司 Scale AI 的图片。所以基于大型语言模型的上下文窗口中的所有内容,它对 Scale AI 了解很多,甚至可能记得关于 Scale AI 以及网络中所掌握的一些知识,并使用另一个工具,比如 OpenAI 开发的 DALL 工具,它采用自然语言描述并生成图像。所以这里DALL 被用作生成这个图像的工具。所以希望这个演示清楚地说明了在解决问题中涉及大量的工具使用,这与人类解决许多问题是非常相关和相关的。 你和我不仅仅试图在脑海中解决问题,我们使用大量工具,我们发现计算机非常有用,同样的情况也适用于更大型的语言模型,这是这些模型越来越多地被利用的方向。 我在这里向你展示了chatgpt可以生成图像,现在多模态实际上是使得大型语言模型变得更好的一个重要方向,所以我们不仅可以生成图像,还可以看到图像。

在OpenAI的创始人之一Greg Brockman的一个著名演示中,他向chatgpt展示了一个用铅笔草绘的小笑话网站的示意图,chatgpt可以看到这张图片,并基于它写出了这个网站的一个功能性代码,所以它写了HTML和JavaScript,你可以访问这个我的笑话网站,你可以看到一个小笑话,你可以点击揭示一个笑话的结尾,这一切都可以实现,这是非常了不起的,这基本上就是工作原理,基本上你可以开始将图像与文本一起插入到语言模型中,chatgpt能够获取这些信息并利用它,而且更多的语言模型也将在未来获得这些能力。

现在我提到了这里的一个主要方向是多模态,所以不仅仅是关于图像,看到它们和生成它们,还有关于音频 所以chatgpt现在既可以听到又可以说话,这使得语音之间的交流成为可能,如果你去你的IOS应用,你实际上可以进入这种模式,在那里你可以与chatgpt交谈,就像电影《她》中一样,这就像是一个人工智能的对话界面,你不需要输入任何东西,它就可以回答你,这感觉非常神奇,也是一种非常奇特的感觉,我鼓励你去尝试一下。

好的,现在我想转换话题,谈谈更大型语言模型未来发展的一些方向,这是该领域广泛感兴趣的。所以,如果你去学术界,看看正在发表的论文以及人们普遍感兴趣的内容,我这里不是为OpenAI或其他任何公司做产品发布,只是一些人们正在思考的事情。 第一件事是系统一和系统二思维模式的概念,这是由《思考,快与慢》一书所推广的。区别在于,你的大脑可以以两种不同的模式运行,系统一思维是你大脑的快速、本能和自动化的部分,所以例如,如果我问你2加2等于多少,你实际上并不需要进行数学运算,你只是告诉我是4,因为这个答案是可得的、缓存的和本能的。 但是,如果我问你17乘以24等于多少,你没有准备好这个答案,于是你会启动大脑的另一个部分,一个更加理性、更慢、执行复杂决策的部分,更加有意识,你需要在脑海中计算出答案。

另一个例子是,如果你可能玩国际象棋,当你进行快棋时,你没有时间思考,所以你只是根据看起来正确的着法进行本能的移动,这主要是由你的系统一来完成大部分工作,但是如果你处于比赛状态,你有更多时间来思考,你会感到自己在构思可能性树并努力工作和思考,这是一个非常有意识、需要努力的过程,这基本上就是你的系统二在做的事情。现在事实证明,目前大型语言模型只有系统一,它们只有这种本能的部分。

它们不能像思考和推理出各种可能性的树状结构之类的东西一样。它们只是有单词以序列输入,并且基本上这些语言模型有一个神经网络,可以给出下一个单词。 所以就像右边的这个卡通一样,在这个模型中你就像是在轨道上行进,这些语言模型基本上就像是在消耗单词,它们就像是“咚、咚、咚、咚”的样子在序列中采样单词,每一个这样的“咚”都花费大致相同的时间。 所以,这基本上是大型语言模型在系统一的环境中运作。

我认为很多人对能够给大型语言模型加入系统二的能力感到兴奋,直觉上我们想要的是将时间转化为准确性,所以你应该可以来到chatgpt并说:“这是我的问题,我需要30分钟,可以吗?没关系,我不需要立刻得到答案,你不必马上开始输入单词,你可以花时间思考。” 目前,这不是任何一个语言模型具备的能力,但这是很多人感到激发的并且正在努力实现的目标。 那么,我们如何实际上创建一种思维树来思考问题,反思和重新表述,然后再给出模型更有信心的答案呢?你可以想象将时间作为X轴,而Y轴将是某种响应的准确性,当你绘制出这个函数图像时,你希望它是单调递增的。但今天并非如此,但很多人正在考虑这个问题。

我想给出的第二个例子是自我提升的概念,我认为很多人受到了AlphaGo所发生的事情的启发。在AlphaGo中,这是DeepMind开发的一个围棋程序,实际上有两个主要阶段。在第一个阶段中,它通过模仿人类专家玩家学习。所以你获取了大量由人类玩家下的棋局,筛选出由真正优秀的人类玩家进行的棋局,然后通过模仿来让神经网络模拟这些优秀的玩家。这很有效,并且可以给出一个相当不错的围棋程序,但它不能超越人类,它只能达到提供训练数据的最好人类的水平。因此,DeepMind找到了一种方法来实际超越人类,这是通过自我提升实现的。 在围棋的情况下,这是一个简单的封闭的沙盒环境,你有一个游戏,你可以在这个环境中玩很多游戏,并且你可以有一个非常简单的奖励函数,就是赢得游戏。所以你可以查询这个奖励函数来告诉你,你所做的是好还是坏,你是否赢了。这是一种非常便宜、自动的评估方式,因此你可以玩数以百万计的游戏,并且根据获胜的概率来完善系统。所以没有必要模仿,你可以超越人类,实际上这正是这个系统最终所做的。在右边的图中显示,AlphaGo用了40天的时间来超越一些最优秀的人类玩家。所以我认为很多人都对大型语言模型的类似第二步是什么感兴趣。 因为今天我们只在进行第一步,我们正在模仿人类,正如我之前提到的,有人类标注者在书写这些答案,我们在模仿他们的回答,我们可以有非常优秀的人类标注者,但从根本上说,如果我们只是在人类上进行训练,要想超越人类的响应准确性将是困难的,所以这是一个重要的问题,在开放语言建模领域中的步骤二相当于什么呢? 主要挑战在于,在一般情况下缺乏奖励标准,因为我们处于语言空间中,一切都更加开放,并且有各种不同类型的任务,从根本上来说,没有一个简单的奖励函数可以告诉你,无论你所做的采样是好还是坏,没有一个易于评估的快速标准或奖励函数。但在狭窄的领域中,这样的奖励函数可能是可实现的,所以我认为在狭窄的领域中,自我改进语言模型是可能的,但这在该领域还是一个开放的问题,很多人正在思考,如何在一般情况下实现某种形式的自我改进。 3.3 定制化/LLM OS

好的,还有一个改进的方向,我想简要谈谈,那就是定制化的方向,你可以想象,经济有很多细微之处和不同类型的任务,大量多样化,可能我们实际上希望定制这些大型语言模型,让它们成为特定任务的专家。 举个例子,Sam Altman在几周前宣布了GPTs App Store,这是OpenAI尝试创建的一个定制化层面,你可以去Chat GPT,你可以创建你自己的GPT,今天这只包括沿着特定自定义指令的定制化,或者你可以通过上传文件添加知识,当你上传文件时,有一种叫做检索增强生成的方法,chatgpt实际上可以参考那些文件中的文本块,并在生成答案时使用它们,这有点像浏览的等价物,但是不是浏览互联网,chatgpt可以浏览你上传的文件,并将它们用作参考信息来生成回答。 今天这些是可用的两种定制化手段,未来可能你可以想象微调这些大型语言模型,为它们提供你自己的训练数据,或者进行其他类型的定制化,但从根本上说,这是为了创建多种不同类型的语言模型,使它们在特定任务上表现出色,并且可以成为这些任务的专家,而不是只有一个模型,你可以用来处理所有事情。

现在让我试着将一切整合到一个单一的图表中,这是我的尝试。在我看来,基于我向你展示的信息并将它们整合在一起,认为将大型语言模型视为聊天机器人或某种词语生成器并不准确,我认为更正确的想法是将其视为新兴操作系统的内核进程,基本上这个过程是协调着大量资源,无论是内存还是计算工具,来解决问题。让我们思考基于所提到的一切。 我向你展示了未来几年内语言模型可能会变成什么样子:它可以阅读和生成文本,它拥有比任何一个单个人更多的知识,涵盖了所有学科,它可以浏览互联网或引用本地文件,通过检索增强生成技术,它可以使用现有的软件基础设施,如计算器、Python等,它可以看到和生成图像和视频,它可以听到和说话,并生成音乐,它可以通过系统二长时间思考,也许在某些具有可用奖励函数的狭窄领域中自我提升,也许它可以被定制和微调为许多具体的任务,也许有很多大型语言模型专家几乎就像生活在一个应用商店中,可以协调解决问题。 因此,我认为这个新的大型语言模型操作系统与今天的操作系统有很多相似之处,这有点像一个几乎看起来像今天的计算机的图表。 所以在这个记忆层次结构中有相应之处,你可以通过浏览访问硬盘或互联网,你有相应于随机访问存储器或RAM的东西,在这种情况下,对于一个大型语言模型来说,是最大数量的词语上下文窗口,用来预测序列中的下一个单词。 我没有在这里详细介绍,但这个上下文窗口是你有限宝贵的工作内存,你的语言模型的工作内存,你可以想象这个操作系统内核进程,这个大型语言模型试图在其上下文窗口中传入和传出相关信息,来执行你的任务。 还有很多其他的联系,我认为也存在。例如,有多线程、多处理、投机执行等等的等价物。在上下文窗口中的随机访问存储器中,也有用户空间和内核空间的等价物,还有很多其他今天操作系统的等价物,我没有完全涵盖

但基本上另一个我真的很喜欢的大型语言模型有点成为一个操作系统生态系统的类比的原因是,我认为当前操作系统和今天正在崛起的操作系统之间也存在一些相似之处。例如,在桌面操作系统领域,我们有一些专有的操作系统,如Windows和Mac OS,但我们也有基于Linux的开源生态系统中多样化的操作系统。同样地,在这里,我们有一些专有的操作系统,如Google的GPT系列、CLA系列或Bart系列,但我们也有一个快速崛起和成熟的生态系统,是基于开源的大型语言模型,目前主要基于LLama系列。 因此,我认为这个类比也适用于这个原因,就是在生态系统的形成方面,我们可以从以前的计算栈中借鉴很多类比,来思考这个基于大型语言模型的新计算栈,它基本上是围绕着大型语言模型协调解决问题的工具,并且通过自然语言界面来访问

今天我们谈论了大型语言模型,它们是什么,它们是如何实现的,它们是如何训练的。 我谈到了语言模型的潜力以及它们未来的发展方向,我还谈到了这种新兴计算范式的挑战,还有很多正在进行的工作 这绝对是一个需要密切关注的非常激动人心的领域