JoVE Logo

登录

需要订阅 JoVE 才能查看此. 登录或开始免费试用。

本文内容

  • 摘要
  • 摘要
  • 引言
  • 研究方案
  • 结果
  • 讨论
  • 披露声明
  • 致谢
  • 材料
  • 参考文献
  • 转载和许可

摘要

在该协议中,通过向量嵌入机制增强同行评审的、特定领域的科学文章,从而提高了基础大型语言模型的响应质量。此外,还提供了代码来帮助在大型语言模型之间进行性能比较。

摘要

大型语言模型 (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. 先决条件:查看代码并安装所需的库

  1. 验证是否已安装 git、python 和 pip。
    1. 在终端中,执行以下命令验证安装结果。
      git --版本
      python3 --版本
      pip3 --版本
  2. 检查代码和安装要求。
    1. 在终端中,运行以下命令:
      git clone https://github.com/AnaiLab/AugmentedLLM.git
      cd ./AugmentedLLM/

      pip3 install -r requirements.txt

2. 使用 Llama-Index 创建向量数据库

  1. 转换 RTF 文件格式(仅当文件为 RTF 格式时才需要)。
    1. 编辑标题为 config.py 的文件,通过键入以下命令,将以下代码中的文件路径替换为要转换的 RTF 文章的位置以及纯文本文件要写入的位置。保存文件。
      rtf_file_dir = './articles_rtf/'
      converted_file_dir = './articles_converted/'
    2. 在终端的同一目录中,通过运行以下命令执行代码以生成 RTF 文件的纯文本版本:
      python3 ./convert_rtf.py
  2. 创建并保存矢量数据库。
    1. 编辑 config.py 文件,将以下变量的值替换为包含要扩充 LLM 的文档的文件夹的文件路径;保存文件。
      article_dir = './articles/'
    2. 在终端的同一目录中,使用以下命令执行代码以创建并保留数据库。验证数据库现在是否保存在 vector_db 文件夹中。
      python3 ./build_index.py

3. 使用第 2 节中生成的向量数据库增强 Llama 模型

  1. 在本地实例化自定义 LLM(可选)
    注意:仅当您想使用默认 Llama-2-7B 以外的模型时,才需要执行此步骤。如果要使用默认模型,请继续执行步骤 3.2。
    1. (使用自定义 LLM)通过编辑 LLM 并在以下代码行中将 llama-index LLM 对象作为 llm 参数在构造函数中传递run_augmented_llm.py来指定要增强的 LLM。
      augmentedLLM = AugmentedLLM(vector_store, llm=无)
  2. 查询增强的 LLM
    1. 在终端中运行以下命令:
      python3 ./run_augmented_llm.py
    2. 运行用户查询以获得由手稿集中的数据增强的响应(图 3图 4)。完成后按 Ctrl + C 退出。

4. 备选 LLM 的编程比较

  1. 创建 MCQ。
    1. questions.py 编辑文件,记下示例的格式。按照类似的格式添加问题。保存文件。
  2. 通过 API 连接到 GPT-3.5、GPT-4、OpenChat 或其他比较器模型。
    1. 编辑 config.py 文件,添加 OpenAI 或 Huggingface 的 API 密钥(如果目标是与来自任一提供商的模型进行基准测试)。保存文件。
      huggingface_key = ''
      openai_key = ''
    2. 编辑 compare_llms.py 文件,并通过取消注释(在该行的请求处删除 '#' 字符)模型来选择要测试的模型集进行比较。
      注意:某些比较器需要步骤 4.2.1 中设置的 API 密钥。此外,如果需要,编辑 output_dir 参数以更改 LLM 输出的存储位置;否则,将使用默认值。
      output_dir = './llm_responses/'
    3. 在终端中,使用以下命令执行代码。执行后,查看步骤 4.2.2 中指定的文件夹中的模型响应,以进行评分或其他审阅。
      python3 ./compare_llms.py
  3. (可选)尝试对 MCQ 响应进行自动评分。示例代码使用 LMQL 库将 LLM 输出限制为预期的格式。
    1. automated_comparison.py打开文件,与步骤 4.2.2 类似,取消要包含的模型的注释,编辑 output_dir 变量,或以其他方式进行自定义。请注意,模型输出仍将以类似的方式保存。保存文件。
    2. 通过在终端中运行以下命令来运行步骤 4.3.1 中的代码:
      python3 ./automated_comparison.py

结果

来自芝加哥共识工作组管理指南的一组 22 篇出版物用于增强基础 Llama-7b 模型17。使用工具 Llama-Index 将文档转换为向量索引,以生成 Llama-2-7b-CCWG-Embed。流行的 OpenAI 模型,如 GPT-3.5 和 GPT-4,也以类似的方式进行了增强,以生成 GPT-XX-CCWG-Embed 模型。共开发了 20 道多项选择题 (MCQ) 来评估与各种腹膜表面恶性肿瘤管理相关的知识。MCQ 由董事会认证的外科?...

讨论

这里提供的方法旨在促进 LLM 的特定领域应用的研究,而无需从头开始培训或进行广泛的微调。随着 LLM 成为重要研究兴趣的领域,增强知识库和提高响应准确性的方法将变得越来越重要 18,19,20,21。如提供的结果所示,与没有增强的相同 LLM 相比,概述的协议在特定领域...

披露声明

作者没有需要声明的利益冲突。

致谢

这项工作得到了几个开源库的推动,最著名的是 llama-index (https://www.llamaindex.ai/)、ChromaDB (https://www.trychroma.com/) 和 LMQL (https://lmql.ai/)。

材料

NameCompanyCatalog NumberComments
pip3 version 22.0.2 
Python version 3.10.12

参考文献

  1. Singhal, K., et al. Large language models encode clinical knowledge. Nature. 620 (7972), 172-180 (2023).
  2. Gilson, A., et al. How does ChatGPT perform on the United States medical licensing examination? The implications of large language models for medical education and knowledge assessment. JMIR Med Educ. 9 (1), e45312 (2023).
  3. Guerra, G. A., et al. GPT-4 artificial intelligence model outperforms ChatGPT, medical students, and neurosurgery residents on neurosurgery written board-like questions. World Neurosurg. 179, e160-e165 (2023).
  4. . Would Chat GPT3 get a Wharton MBA? A prediction based on its performance in the Operations Management course Available from: https://mackinstitute.wharton.upenn.edu/wp-content/uploads/2023/01/Christian-Terwiesch-Chat-GTP.pdf (2023)
  5. Weizenbaum, J. ELIZA-a computer program for the study of natural language communication between man and machine. Communications of the ACM. 9 (1), 36-45 (1966).
  6. Wu, T., et al. A brief overview of ChatGPT: The history, status quo and potential future development. IEEE/CAA Journal of Automatica Sinica. 10 (5), 1122-1136 (2023).
  7. Huang, L., et al. A survey on hallucination in large language models: Principles, taxonomy, challenges, and open questions. arXiv [cs.CL]. , (2023).
  8. Thirunavukarasu, A. J., et al. Large language models in medicine. Nature Med. 29 (8), 1930-1940 (2023).
  9. Ram, O., et al. In-Context retrieval-augmented language models. Trans Assoc Comput Linguist. 11, 1316-1331 (2023).
  10. . Sequence distance embeddings Available from: https://wrap.warwick.ac.uk/61310/7/WRAP_THESIS_Cormode_2003.pdf (2003)
  11. Chicago Consensus Working Group. The Chicago Consensus Guidelines for peritoneal surface malignancies: Introduction. Cancer. 126 (11), 2510-2512 (2020).
  12. Dodge, J., et al. Measuring the carbon intensity of AI in cloud instances. FACCT 2022. , (2022).
  13. Khene, Z. -. E., Bigot, P., Mathieu, R., Rouprêt, M., Bensalah, K. Development of a personalized chat model based on the European association of urology oncology guidelines: Harnessing the power of generative artificial intelligence in clinical practice. Eur Urol Oncol. 7 (1), 160-162 (2024).
  14. Kresevic, S., et al. Optimization of hepatological clinical guidelines interpretation by large language models: a retrieval augmented generation-based framework. NPJ Digit Med. 7 (1), 102 (2024).
  15. Ge, J., et al. Development of a liver disease-specific large language model chat interface using retrieval augmented generation. medRxiv. , (2023).
  16. Panagoulias, D. P., et al. Rule-augmented artificial intelligence-empowered systems for medical diagnosis using large language models. , 70-77 (2023).
  17. Panagoulias, D. P., et al. Augmenting large language models with rules for enhanced domain-specific interactions: The case of medical diagnosis. Electronics. 13 (2), 320 (2024).
  18. Bommasani, R., Liang, P., Lee, T. Holistic evaluation of language models. Ann N Y Acad Sci. 1525 (1), 140-146 (2023).
  19. Papineni, K., Roukos, S., Ward, T., Zhu, W. -. J. Bleu. Proceedings of the 40th Annual Meeting on Association for Computational Linguistics - ACL '02. , (2001).
  20. Johnson, D., et al. Assessing the accuracy and reliability of AI-generated medical responses: An evaluation of the chat-GPT model. Res Sq. , (2023).
  21. Lin, C. -. Y. ROUGE: A package for automatic evaluation of summaries. Text Summarization Branches Out. , 74-81 (2004).
  22. Chen, S., et al. Evaluating the ChatGPT family of models for biomedical reasoning and classification. J Am Med Inform Assoc. 31 (4), 940-948 (2024).

转载和许可

请求许可使用此 JoVE 文章的文本或图形

请求许可

探索更多文章

214 Llama Index Llama 2

This article has been published

Video Coming Soon

JoVE Logo

政策

使用条款

隐私

科研

教育

关于 JoVE

版权所属 © 2025 MyJoVE 公司版权所有,本公司不涉及任何医疗业务和医疗服务。