在该协议中,通过向量嵌入机制增强同行评审的、特定领域的科学文章,从而提高了基础大型语言模型的响应质量。此外,还提供了代码来帮助在大型语言模型之间进行性能比较。
方法文章
在该协议中,通过向量嵌入机制增强同行评审的、特定领域的科学文章,从而提高了基础大型语言模型的响应质量。此外,还提供了代码来帮助在大型语言模型之间进行性能比较。
大型语言模型 (LLM) 已成为生成与用户查询相关的信息的常用资源。此类模型是通过资源密集型训练过程创建的,该过程利用广泛的静态文本数据语料库。这种静态特性导致在知识、专有信息和敏感数据快速变化的领域中采用受到限制。在这项工作中,概述了使用基于嵌入的方法为特定领域的信息增强通用 LLM(称为基础模型)的方法,以整合最新的、经过同行评审的科学手稿。这是通过 Llama-Index 等开源工具和 Llama-2 等公开可用的模型实现的,以最大限度地提高透明度、用户隐私和控制力以及可复制性。虽然科学手稿用作示例用例,但这种方法可以扩展到任何文本数据源。此外,还讨论了在此增强功能之后评估模型性能的方法。 这些方法能够为高度专业化的领域快速开发 LLM 系统,而不管训练语料库中信息的全面性如何。
OpenAI 的 ChatGPT 或 Meta AI 的 Llama 等大型语言模型 (LLM) 已迅速成为生成与用户提示相关的文本的流行资源。这些模型最初用于预测序列中的下一个词汇项目,现在已经发展到理解上下文、编码临床信息并在各种任务上表现出高性能 1,2,3,4。尽管语言模型比这些功能及其目前的流行程度早了几十年5,但深度学习和计算功能的最新进展使用户可以通过基于 Web 的技术和应用程序接口 (API) 6 广泛使用预训练的高质量商业 LLM。但是,以这种格式使用 LLM 有几个明显的限制。
挑战 1:静态训练语料
LLM 在大量(例如,在 Llama 27 的情况下为 2 万亿个标记)但静态的文本数据主体上进行训练。这为生成与正在快速发展或不断变化的文献相关的准确响应带来了挑战。在这种静态方法中,LLM 需要经常重新训练以跟上最新数据,这既不实用也不可扩展。此外,需要根据训练数据中不存在的信息进行响应的提示可能会阻止有用的文本生成或导致幻觉8(Hallucinations)。幻觉或事实捏造的实例引起了人们对 LLM 可靠性的严重担忧,尤其是在信息准确性至关重要的环境中9。
挑战 2:缺乏域特异性
预先训练的模型通常是为一般用途而创建的,而用户可能需要专门针对特定域中的性能优化的模型。此外,从 头 训练模型或执行重大微调所需的计算资源和数据对许多用户来说是令人望而却步的。
挑战 3:缺乏隐私
寻求涉及敏感数据或专有信息的应用程序的用户可能不愿意或不能使用某些 LLM 服务,因为他们缺乏有关如何存储或使用数据的信息。
挑战 4:缺乏保证的稳定性
具有专有 LLM 的服务可能随时更改可用模型或更改行为,这使得稳定性成为依赖这些服务的应用程序的实施的一个问题。
检索增强生成 (RAG) 是一种为提高 LLM 性能而开发的技术,尤其是在与模型训练语料库10,11 之外的信息相关的查询上。这些系统通过合并在生成对用户查询的响应时要考虑的上下文信息来增强 LLM。最近的各种工作描述了 RAG 系统的应用及其潜在优势 12,13,14。
这项工作中概述的方法的目标是演示这样一个系统的构建,并为研究人员提供一个框架,以快速试验特定领域的增强 LLM。此方法适用于寻求使用基于文本的外部数据源来扩充 LLM 的用户。具体来说,该协议的首要目标是提供可扩展到各种实际 LLM 和 RAG 实验的分步代码,而无需语言建模领域的大量技术专业知识,尽管需要 Python 的工作知识才能应用这种方法而无需修改。为了最大限度地提高用户控制、透明度、可移植性和解决方案的可负担性,使用了开源、公开可用的工具。建议的系统通过以下方式解决前面提到的问题:
解决方案 1 和 2:静态训练语料库和缺乏领域特异性
提供的方法利用 RAG 方法,利用嵌入来提供原始训练数据中未包含的域特定信息。概括性模型将文本或其他数据转换为向量或单维数字数组的表示形式。这种技术非常有用,因为它将文本中包含的语义信息转换为密集的数字形式。通过将用户查询投影到同一嵌入空间中,可以使用各种算法来计算用户查询和文本文档部分之间的距离15,从而近似语义相似性。因此,从分解为离散部分的文档中创建此类向量的数据库可以促进在大量文档中搜索与用户查询最相关的文本(图 1)。此方法可扩展到任何文本文档。虽然开始实施其他方法(例如在线搜索功能)来增强 LLM,但这种方法允许用户选择被认为对其用例具有足够高质量的来源。
解决方案 2:缺乏隐私
在此实施中,使用安全的云环境进行托管,没有用户提示、生成的响应或其他数据离开此生态系统。但是,所有代码都是以与平台无关的方式编写的,以确保可以替代其他云提供商或本地硬件。
解决方案 3:缺乏保证的稳定性
这种方法利用开源库,并专注于使用公开可用的权重来增强 LLM,从而在需要时实现更高程度的透明度、稳定性和版本控制。
图 2 显示了我们提议的系统的完整示意图,协议部分概述了复制此系统或类似系统的详细说明。通过微调或增强来改变模型行为时,另一个考虑因素是性能评估。在语言生成模型中,这带来了独特的挑战,因为许多传统的机器学习指标不适用。尽管存在多种技术16,但在这项研究中,使用专家编写的多项选择题 (MCQ) 来评估准确性并比较增强前后的性能,以及与流行的替代 LLM 的性能。
在本文中演示的使用案例中,向量存储是使用芝加哥共识第17 工作组发布的指南生成的。该专家组的成立是为了制定腹膜癌管理指南。选择该主题领域是因为它属于研究者的临床专业领域。这组论文是从在线期刊存储库访问的,包括 Cancer 和 Annals of Surgical Oncology。由北京人工智能研究院 (BAAI, https://www.baai.ac.cn/english.html) 创建的紧凑(33.4M 参数)嵌入模型 bge-small-en 用于从源文档生成嵌入。然后将生成的数据库用于增强 Llama 2 和 Open-AI 基础模型7。为方便读者,代码可通过 GitHub (https://github.com/AnaiLab/AugmentedLLM) 获得。为确保可复制性,建议使用提供的需求列表中使用的相同版本的库以及相同版本的 Python。有关以下方法中使用的工具的安装或文档的更多详细信息,请访问 Python (https://www.python.org)、git (https://git-scm.com)、Llama-Index (https://llamaindex.ai) 和 Chroma (https://trychroma.com) 提供商的官方网站。
1. 先决条件:查看代码并安装所需的库
2. 使用 Llama-Index 创建向量数据库
3. 使用第 2 节中生成的向量数据库增强 Llama 模型
4. 备选 LLM 的编程比较
来自芝加哥共识工作组管理指南的一组 22 篇出版物用于增强基础 Llama-7b 模型17。使用工具 Llama-Index 将文档转换为向量索引,以生成 Llama-2-7b-CCWG-Embed。流行的 OpenAI 模型,如 GPT-3.5 和 GPT-4,也以类似的方式进行了增强,以生成 GPT-XX-CCWG-Embed 模型。共开发了 20 道多项选择题 (MCQ) 来评估与各种腹膜表面恶性肿瘤管理相关的知识。MCQ 由董事会认证的外科肿瘤学家创建,以符合外科肿瘤学研究员应有的知识水平进行测试。Llama-2-7b-CCWG-Embed 的性能明显优于基本模型(见 表 1),增强的 OpenAI 模型也是如此。这被认为是这种方法的积极结果,因为与基线相比,增强提高了模型性能。

图 1:从学术论文生成向量数据库的示意图。请单击此处查看此图的较大版本。

图 2:增强型 LLM 的整体系统图。请单击此处查看此图的较大版本。

图 3:在 Linux 终端中运行的增强 Llama-2 模型。 请单击此处查看此图的较大版本。

图 4:增强的 Llama-2 模型的查询结果。请单击此处查看此图的较大版本。
| 法学硕士 | 分数 (正确百分比) |
| 骆驼-2-7b-chat-hf | 65% |
| Llama-2-7b-CCWG-嵌入 | 75% |
| 打开聊天-3.5-010618 | 65% |
| Mistral-7B-v0.119 | 70% |
| GPT-3.5 的 | 75% |
| GPT-3.5-CCWG-嵌入 | 85% |
| GPT-4 的 | 85% |
| GPT-4-CCWG-嵌入 | 90% |
表 1:与腹膜恶性肿瘤管理相关的 20 个问题的各种 LLM 的分数(正确百分比)。
这里提供的方法旨在促进 LLM 的特定领域应用的研究,而无需从头开始培训或进行广泛的微调。随着 LLM 成为重要研究兴趣的领域,增强知识库和提高响应准确性的方法将变得越来越重要 18,19,20,21。如提供的结果所示,与没有增强的相同 LLM 相比,概述的协议在特定领域的问题上提供了性能改进,并接近更复杂的模型(如 OpenAI GPT 模型)的性能。由于 LLM 可能需要大量的计算资源来生成响应22,23,因此增强更简单的模型可能会为在资源受限的用例中实现提供一条途径。此外,RAG 系统在增强高复杂性模型(例如 OpenAI 提供的模型)时也产生了好处。虽然所呈现的结果是针对腹膜癌管理的,但最近对 RAG 系统的研究具有各种领域和规模的数据源,表明此类系统的广泛适用性 21,24,25,26。然而,由于响应的质量与用于增强的文本数据密切相关,因此用户仔细考虑哪些来源最适合他们的特定领域和所需应用程序是至关重要的。这种考虑在医疗保健等领域尤为重要,这一直是法学硕士相关研究的特别关注点。LLM 用于诊断27,28、临床试验匹配29,30 和许多其他应用正在探索中,并且需要经过验证、值得信赖的文本资源,而不是依赖未知的训练语料库。
绩效是通过腹膜癌专家及其临床管理专家撰写的 MCQ 的正确百分比来衡量的。人工审核将回答分类为正确或不正确;但是,为了最大限度地减少研究人员的重复性任务,我们提供了基本代码,以开始对 LLM 之间的性能进行更自动化的比较。
该协议的一个主要优点是提供的代码可以以编程方式访问各种 LLM。以前,为了评估 MCQ 的性能,没有必要技术能力的用户可能依赖于通过基于 Web 的界面进行重复的手动测试。提供的代码提供了与几种流行的 LLM 交互的基本类,以及如何执行代码的示例。提供这些工具的目标是让更多的研究人员能够朝着自动化工作流程的方向发展,以评估各种 LLM 对提示的响应,从而提高进行比较研究的能力。
此外,概述的方法旨在强调灵活性和可扩展性。虽然代码可以按原样使用,但编写代码的目的是根据需要进一步定制特定用例,例如使用不同的 LLM 和嵌入模型进行增强或比较。随着 LLM 领域的快速发展,这种可扩展性对于满足不同领域用户的不同需求将变得越来越重要。此外,Llama-Index 库提供了大量演示方法中未使用的功能,这些功能可以在创建类似系统时为用户提供更多选择。这些可以在 Llama-Index 官方文档中找到。
读者还应仔细考虑最适合其使用案例的评估方法。虽然 MCQ 由于其易于量化的性质而在 LLM 比较中广受欢迎31,32,但在将它们视为生成系统的综合性能指标时应谨慎。最近的文献实施了多种评估,包括定性方法、人工审查、斯坦福语言模型整体评估 (HELM)33 和标准自然语言处理指标,例如双语评估研究 (BLEU)、一般语言理解评估 (GLUE)、ROUGE、困惑和 F1 分数 34,35,36,37,38,39。
此处提供的这些方法存在限制。例如,虽然为几个领先的 LLM 提供商实施了接口,但考虑到该领域的快速发展性质以及用例的多样性,这种实现可能并不全面。但是,如前所述,该代码在设计时考虑到了这一点。此外,虽然提供了用于转向自动评分的基本代码,但仍有扩展空间,以使用替代工具(如 HELM 或 BLEU)对响应进行评分。此外,额外使用工具根据预定义的语法限制输出,例如语言模型查询语言 (LMQL),可用于扩展这项工作并提高比较 LLM 研究的自动化。此外,鉴于潜在的用例种类繁多,需要进一步研究 RAG 系统对一般域外性能的影响,以描述任何性能权衡。最后,必须继续研究提高 LLM 响应的可靠性和评估的其他方法。
请注意,出于技术原因,需要 python 3.10 或更高版本。Shell 提示符是为 bash、zsh 或其他类似 UNIX 的终端编写的。只需键入文本,然后按 Return 键即可执行命令(在协议中称为"运行命令")。对于协议中的每个步骤,用户可能希望检查正在执行的文件中的代码,以便更全面地了解工作流程背后的机制。
作者没有需要声明的利益冲突。
这项工作得到了几个开源库的推动,最著名的是 llama-index (https://www.llamaindex.ai/)、ChromaDB (https://www.trychroma.com/) 和 LMQL (https://lmql.ai/)。
| 姓名 | 公司 | 目录编号 | 评论 |
|---|---|---|---|
| pip3 版本 22.0.2 | |||
| Python 版本 3.10.12 |
申请许可以重复使用本 JoVE 文章的文本或图表
申请许可