

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在医疗保健和生命科学用例中使用大型语言模型
<a name="llms"></a>

这描述了如何在医疗保健和生命科学应用中使用大型语言模型 (LLMs)。某些用例需要使用大型语言模型来实现生成式 AI 功能。即使是大多数也存在优点和局限性 state-of-the-art LLMs，本节中的建议旨在帮助您实现目标结果。

考虑到领域知识和可用训练数据等因素，您可以使用决策路径来确定适合您的用例的法学硕士解决方案。此外，本节还讨论了流行的预训练医学 LLMs 和最佳实践，供其选择和使用。它还讨论了复杂、高性能的解决方案和更简单、更低成本的方法之间的权衡。

## 法学硕士学位的用例
<a name="llm-use-cases"></a>

Amazon Comprehend Medical 可以执行特定的 NLP 任务。有关更多信息，请参阅 [亚马逊 Comprehend Medical 的用例](comprehend-medical.md#comprehend-medical-use-cases)。

高级医疗保健和生命科学用例可能需要法学硕士的逻辑和生成人工智能能力，例如：
+ 对自定义医疗实体或文本类别进行分类
+ 回答临床问题
+ 汇总医疗报告
+ 从医疗信息中生成和检测见解

## 定制方法
<a name="llm-customization"></a>

了解如何实施 LLMs 至关重要。 LLMs 通常使用数十亿个参数进行训练，包括来自多个领域的训练数据。该培训使法学硕士能够解决大多数一般性任务。但是，当需要特定领域的知识时，往往会出现挑战。医疗保健和生命科学领域知识的例子包括诊所代码、医学术语和生成准确答案所需的健康信息。因此，在这些用例中按原样使用 LLM（在不补充领域知识的情况下进行零点提示）可能会导致结果不准确。您可以使用几种流行的方法来克服这一挑战：即时工程、检索增强生成 (RAG) 和微调。

### 提示工程
<a name="llm-customization-prompt-engineering"></a>

P@@ *rompt Engin* eering 是指导生成式 AI 解决方案通过调整 LLM 的输入来创建所需输出的过程。通过制定具有相关背景的精确提示，可以引导模型完成需要推理的专业医疗保健任务。有效的即时工程可以显著提高医疗保健用例的模型性能，而无需修改模型。有关提示工程的更多信息，请参阅[使用 Amazon Bedrock 实现高级提示工程](https://aws.amazon.com/blogs/machine-learning/implementing-advanced-prompt-engineering-with-amazon-bedrock/)（AWS 博客文章）。Few-shot chain-of-thought 提示和提示是你可以在提示工程中使用的技术。

#### 少样本提示
<a name="few-shot-prompting"></a>

Few-shot prompting 是一种技术，在让 LLM 执行类似的任务之前，你可以向 LLM 提供一些所需输入输出的示例。在医疗保健领域，这种方法对于专业任务（例如医疗实体识别或临床记录摘要）特别有价值。通过在提示中包含 3-5 个高质量的示例，可以显著提高模型对医学术语和特定领域模式的理解。有关少镜头提示的示例，请参阅 [ LLMs Amazon Bedrock 中的 Few-shot 提示工程和微调](https://aws.amazon.com/blogs/machine-learning/few-shot-prompt-engineering-and-fine-tuning-for-llms-in-amazon-bedrock/)（博客文章）。AWS 

例如，当您从临床记录中提取药物剂量时，可以提供不同符号样式的示例，以帮助模型识别医疗保健专业人员记录处方的方式的差异。当使用标准化文档格式或数据中存在一致模式时，这种方法特别有效。

#### Chain-of-thought 提示
<a name="chain-of-thought-prompting"></a>

*Chain-of-thought (CoT) 提示*引导法学硕士完成 step-by-step推理过程。这使得它对于复杂的医疗决策支持和诊断推理任务非常有价值。通过明确指示模型在分析临床情景时 “分步思考”，您可以提高其遵循医学推理方案并减少诊断错误的能力。

当临床推理需要多个逻辑步骤（例如鉴别诊断或治疗计划）时，这种技术非常出色。但是，在处理模型训练数据之外的高度专业化的医学知识或需要绝对精确的重症监护决策时，这种方法存在局限性。

在这些情况下，将 CoT 与另一种方法结合使用可以产生更好的结果。一种选择是将 CoT 与自一致性提示相结合。有关更多信息，请参阅 [Amazon Bedrock 上使用自一致性提示增强生成语言模型的性能](https://aws.amazon.com/blogs/machine-learning/enhance-performance-of-generative-language-models-with-self-consistency-prompting-on-amazon-bedrock/)（AWS 博客文章）。另一种选择是将推理框架（例如 ReAct 提示）与RAG结合使用。有关更多信息，请参阅[使用 RAG 和 ReAct提示开发基于 AI 聊天的高级生成式 AI 助手](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/develop-advanced-generative-ai-chat-based-assistants-by-using-rag-and-react-prompting.html)（AWS 规范性指导）。

### 检索增强生成
<a name="llm-customization-rag"></a>

*检索增强生成 (RAG)* 是一种生成式人工智能技术，其中法学硕士在生成响应之前引用其训练数据源之外的权威数据源。RAG 系统可以从知识来源检索医学本体信息（例如国际疾病分类、国家药物档案和医学主题标题）。这为法学硕士提供了额外的背景信息，以支持医学自然语言处理任务。

如[将 Amazon Comprehend Medical 与大型语言模型相结合](comprehend-medical-rag.md)本节所述，您可以使用 RAG 方法从 Amazon Comprehend Medical 检索上下文。其他常用知识来源包括存储在数据库服务中的医疗领域数据，例如亚马逊 OpenSearch 服务、Amazon Kendra或Amazon Aurora。从这些知识源中提取信息可能会影响检索性能，尤其是使用矢量数据库的语义查询。

存储和检索特定领域知识的另一种选择是在您的 RAG 工作流程中使用 A [mazon Q Bus](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/what-is.html) iness。Amazon Q Business 可以为内部文档存储库或面向公众的网站（例如 ICD-10 数据的 [cms.gov](https://cms.gov/)）编制索引。然后，Amazon Q Business 可以从这些来源提取相关信息，然后再将您的查询传递给 LLM。

有多种方法可以构建自定义 RAG 工作流程。例如，有许多方法可以从知识源检索数据。为简单起见，我们建议使用常用的检索方法，即使用矢量数据库（例如 Amazon S OpenSearch ervice）将知识存储为嵌入内容。这要求您使用嵌入模型（例如句子转换器）来为查询和存储在矢量数据库中的知识生成嵌入式。

有关完全托管和自定义 RAG 方法的更多信息，请参阅中的[检索增强生成选项和架构](https://docs.aws.amazon.com/prescriptive-guidance/latest/retrieval-augmented-generation-options/introduction.html)。 AWS

### 微调
<a name="llm-customization-fine-tuning"></a>

*微调*现有模型包括获取 LLM，例如 Amazon Titan、Mistral 或 Llama 模型，然后根据您的自定义数据调整模型。有多种微调技术，其中大多数只涉及修改几个参数，而不是修改模型中的所有参数。这称为*参数效率微调 (PEFT)*。欲了解更多信息，请参阅上的 [Hugging Face PEF](https://github.com/huggingface/peft) T GitHub。

以下是两个常见的用例，你可以选择微调法学硕士以完成医疗 NLP 任务：
+ **生成任务** — 基于解码器的模型执行生成式 AI 任务。 AI/ML 从业者使用实况数据来微调现有的法学硕士。例如，你可以使用公共医疗问答数据集 [MedQuAD](https://github.com/abachaa/MedQuAD) 来训练 LLM。当你调用对经过微调的 LLM 的查询时，你不需要 RAG 方法来为 LLM 提供额外的上下文。
+ **嵌入** — 基于编码器的模型通过将文本转换为数值向量来生成嵌入。这些基于编码器的模型通常称为*嵌入*模型。*句子转换器模型*是一种针对句子进行了优化的特定类型的嵌入模型。目标是根据输入文本生成嵌入内容。然后，嵌入用于语义分析或检索任务。要微调嵌入模型，您必须拥有可以用作训练数据的医学知识语料库，例如文档。这是通过基于相似度或情感的文本对来微调句子转换器模型来实现的。有关更多信息，请参阅 Hugg [ing Face 上的 “使用句子转换器 v3 训练和微调嵌入模型](https://huggingface.co/blog/train-sentence-transformers)”。

您可以使用 [Amazon G SageMaker round Trut](https://docs.aws.amazon.com/sagemaker/latest/dg/sms.html) h 来构建带有标签的高质量训练数据集。您可以使用从 Ground Truth 输出的已标注数据集来训练自己的模型。您也可以将输出用作 Amazon A SageMaker I 模型的训练数据集。有关命名实体识别、单标签文本分类和多标签文本分类的更多信息，请参阅 Amazon A SageMaker I 文档中的使用 G [round Truth 进行文本标注](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-text.html)。

有关微调的更多信息，请参阅本指南[微调医疗保健中的大型语言模型](fine-tuning.md)中的。

## 选择法学硕士
<a name="llm-selection"></a>

[Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) 是评估高 LLMs绩效的推荐起点。有关更多信息，请参阅 [Amazon Bedrock 中支持的基础模型](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html)。您可以在 Amazon Bedrock 中使用模型评估任务来比较多个输出的输出，然后选择最适合您的用例的模型。有关更多信息，请参阅 Amazon Bedrock 文档中的[使用 Amazon Bedrock 评估选择性能最佳的模型](https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation.html)。

 LLMs 有些人接受的医学领域数据培训有限。[如果你的用例需要微调 Amazon Bedrock 不支持的 LLM 或 LLM，可以考虑使用 Amazon AI。 SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html)在 SageMaker AI 中，你可以使用经过微调的 LLM，也可以选择经过医学领域数据训练的自定义 LLM。

下表列出了接受 LLMs 过医学领域数据训练的热门课程。


| 
| 
| LLM | 任务 | 知识 | 架构 | 
| --- |--- |--- |--- |
| [BioBert](https://github.com/dmis-lab/biobert) | 信息检索、文本分类和命名实体识别 | 摘要 PubMed、来自的全文文章和一般领域知识 PubMedCentral | 编码器 | 
| [临床伯特](https://github.com/kexinhuang12345/clinicalBERT) | 信息检索、文本分类和命名实体识别 | 大型多中心数据集以及来自电子健康记录 (EHR) 系统的超过 300 万份患者记录 | 编码器 | 
| [clinicalGPT](https://huggingface.co/medicalai/ClinicalGPT-base-zh) | 摘要、问答和文本生成 | 广泛而多样的医疗数据集，包括病历、特定领域的知识和多轮对话咨询 | 解码器 | 
| [GatorTron-OG](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/clara/models/gatortron_og) | 摘要、问答、文本生成和信息检索 | 临床笔记和生物医学文献 | 编码器 | 
| [Med-bert](https://github.com/ZhiGroup/Med-BERT) | 信息检索、文本分类和命名实体识别 | 包含医学文本、临床笔记、研究论文和医疗保健相关文档的大型数据集 | 编码器 | 
| [Med-Palm](https://sites.research.google/med-palm/) | 用于医疗目的的问答 | 医学和生物医学文本数据集 | 解码器 | 
| [MedalPaca](https://github.com/kbressem/medAlpaca) | 问答和医学对话任务 | 各种医学文本，包括医学抽认卡、wiki 和对话数据集等资源 | 解码器 | 
| [BiomedBert](https://huggingface.co/microsoft/BiomedNLP-BiomedBERT-base-uncased-abstract-fulltext) | 信息检索、文本分类和命名实体识别 | 独家摘要 PubMed 和全文文章来自 PubMedCentral | 编码器 | 
| [BioMedLM](https://github.com/stanford-crfm/BioMedLM) | 摘要、问答和文本生成 | 来自 PubMed 知识来源的生物医学文献 | 解码器 | 

以下是使用预先训练的医疗 LLMs服务的最佳实践：
+ 了解训练数据及其与您的医学 NLP 任务的相关性。
+ 确定法学硕士架构及其用途。编码器适用于嵌入和 NLP 任务。解码器用于生成任务。
+ 评估托管预先培训的医学法学硕士学位所需的基础设施、性能和成本要求。
+ 如果需要微调，请确保训练数据的地面真相或知识准确。确保屏蔽或删除任何个人身份信息 (PII) 或受保护的健康信息 (PHI)。

在知识或预期用例方面，现实世界 LLMs 中的医学 NLP 任务可能与预先训练的任务有所不同。如果特定领域的 LLM 不符合您的评估基准，则可以使用自己的数据集对 LLM 进行微调，也可以训练新的基础模型。培训新的基础模型是一项雄心勃勃且往往代价高昂的任务。对于大多数用例，我们建议对现有模型进行微调。

当你使用或微调经过预先训练的医学法学硕士时，解决基础设施、安全和护栏问题很重要。

### Infrastructure
<a name="llm-selection-infrastructure"></a>

与使用 Amazon Bedrock 进行按需或批量推理相比，托管预先训练的医学 LLM（通常来自 Hugging Face）需要大量资源。要托管预先训练的医学 LLM，通常使用在亚马逊弹性计算云 (Amazon EC2) 实例上运行的 Amazon A SageMaker I 映像，其中包含一个或多个 GPUs实例，例如用于加速计算的 ml.g5 实例或用于加速计算的 ml.inf2 实例。 AWS Inferentia这是因为 LLMs 消耗大量内存和磁盘空间。

### 安全和护栏
<a name="llm-selection-guardrails"></a>

根据您的业务合规要求，可以考虑使用亚马逊 Comprehend 和 Amazon Comprehend Medical 来屏蔽或删除培训数据中的个人身份信息 (PII) 和受保护的健康信息 (PHI)。这有助于防止 LLM 在生成响应时使用机密数据。

我们建议您考虑和评估生成式 AI 应用中的偏见、公平性和幻觉。无论您使用的是先前存在的 LLM 还是微调的 LLM，都要实施护栏以防止有害反应。*护栏*是您可以根据生成式人工智能应用程序要求和负责任的人工智能政策进行定制的保障措施。例如，你可以使用 [Amazon Bedrock Guardrails](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html)。