news 2026/4/18 2:32:50

在医疗保健中克服 LLM 挑战:生产开发中的实用策略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在医疗保健中克服 LLM 挑战:生产开发中的实用策略

原文:towardsdatascience.com/overcoming-llm-challenges-in-healthcare-practical-strategies-for-development-in-production-04c617954b9a

生成式 AI

引言

我一直是个深入钻研一个主题并专精到痴迷的人。当我从数据科学硕士学位毕业时,我的痴迷是计算机视觉;具体来说,是将计算机视觉应用于神经科学或心理健康应用。尽管我的导师们敦促我拓宽视野并打开大门,但我决心成为一名“计算机视觉工程师”(但“机器学习工程师”也可以)在心理健康领域。我压制了自己的担忧之声,确信合适的团队会认可我的“专业知识”。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e5e82d7eacad8e0dc26205b71655d015.png

由 DALL·E 生成的图像

幸运的是,我的理论似乎奏效了;我获得了几家心理健康公司的面试机会。但随后发生了一件我最大的面试失误。在我首选的公司——一家我非常喜欢的公司——的最后一轮面试中,我犯了一个错误,至今回想起来仍让我内心感到不适。这个职位是专注于 NLP,处理文本数据,但我忍不住表达了对影像数据的兴趣。*回忆中的哭泣声。*我清晰地记得,当我询问影像数据可用性时,面试官的表情从兴奋转变为担忧,因为我仍然对计算机视觉感兴趣。那天下午,我收到了一封礼貌的拒绝信:他们喜欢我的热情,但需要一位完全致力于 NLP 的人。

具有讽刺意味的是,我很快加入了一家另一家心理健康公司,并完全转向 NLP 工作,创建了焦虑和抑郁症状检测器,改善了临床护理,并开发了推荐系统,将内容可发现性提高了 12%。快进几年,我现在是我团队中的 NLP/LLM 数据科学家,有 6 个信息提取任务,5 个分类任务和 5 个条件摘要任务部署在 15 多家医院和五家客户中。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/144cd2c869ba72363340d0dacae76fac.png

由 DALL·E 生成的图像

几周前,我被要求向我的大型数据团队介绍“LLM 开发 101”。最初,冒名顶替综合症悄悄袭来——*我能在 45 分钟内分享关于 LLM 开发的什么内容呢?*但随着我制作幻灯片,我意识到我有许多话要说,并开始兴奋地分享我所学到的知识的深度。这种兴奋导致了你现在正在阅读的文章。在这篇文章中,我将介绍我在生产中遇到的一些常见 LLM 挑战以及帮助我解决这些挑战的策略。

1. 输出格式错误

这可能是我在工作中遇到的最频繁的问题之一。输出的格式可靠性可能会根据我正在使用的模型而有很大差异。例如,GPT-4 Turbo 通常提供一致的 JSON 输出,但 GPT-4o 在这方面往往不太可靠。在使用 GPT-4o 时,我曾遇到过从列表和字符串到不完整的字典等各种情况,尽管明确请求了结构化的 JSON 输出。如果这些格式问题没有被捕捉到,并且模型没有被重新运行,我可能会面临数据覆盖不完整的风险。

格式错误的影响

不一致的输出格式会对下游过程产生重大影响。如果数据结构不正确,可能会导致后续处理步骤失败,歪曲报告的准确性,或者在未被发现的情况下导致不完整的见解。在我工作的医疗保健等高风险领域,不完整或结构错误的数据可能具有实际影响,因此格式一致性至关重要。

缓解措施

为了处理这个问题,我已实现了格式检查逻辑,用于验证输出结构。如果它不正确,我会重新运行模型,直到它符合预期的格式。此外,我还使用日志记录来捕获与格式相关的错误。然而,重新运行模型会带来权衡,例如增加延迟和更高的 API 成本。我根据数据覆盖的重要性和成本限制建立重新运行的阈值。如果重新运行不可行,有时我会应用后处理来“修复”输出结构,尽管这种方法本身也带来了引入错误或不一致的风险。

为了说明这种方法,这里有一个示例代码片段,它请求以 JSON 格式提供包含特定键如"name""age""insurance"的患者数据。此代码演示了一种验证模型响应是否包含所有必需字段并符合预期结构的方法。通过实现重试逻辑,代码旨在确保数据一致性,降低与格式错误相关的风险。

defget_llm_response(prompt:str,required_keys:Set[str],retries:int=3)->Optional[Dict[str,Any]]:""" Calls the language model to get a response in JSON format. If the response is not in the expected JSON format or lacks required keys, retries the call up to `retries` times. Parameters: prompt (str): The prompt sent to the language model. required_keys (Set[str]): A set of required keys that must be present in the JSON response. retries (int): The maximum number of retries if the output format is invalid. Returns: Optional[Dict[str, Any]]: Parsed JSON response if successful; None if retries are exhausted. """forattemptinrange(retries):try:response=openai.Completion.create(model="gpt-4o",prompt=prompt,max_tokens=100,temperature=0.7)# Attempt to parse the response as JSONresponse_text=response.choices[0].text.strip()parsed_response=json.loads(response_text)# Check if parsed_response is in the expected structure and contains required keysifisinstance(parsed_response,dict)andrequired_keys.issubset(parsed_response.keys()):returnparsed_responseelse:print(f"Attempt{attempt+1}: Output format invalid or missing required keys, retrying...")except(json.JSONDecodeError,KeyError)ase:print(f"Attempt{attempt+1}: Error parsing JSON -{str(e)}, retrying...")print("Max retries exceeded: Unable to get valid JSON output with required keys.")returnNone

2. 幻觉

当模型创造听起来合理但实际上并不存在的信息时,就会发生幻觉。例如,当我试图从源文本中提取引言时,有时模型会决定“发挥创意”,并产生听起来相似但实际上完全虚构的短语。在准确性至关重要的领域,如医疗保健,小的幻觉可能导致大问题。

缓解措施

我通过实现后处理逻辑来解决幻觉问题,以确保对于任何信息提取任务,提取的上下文与源文本完全匹配。为了确保细微的变化不会导致匹配失败,我在比较源文本和检索文本时,通过去除标点符号并将所有内容转换为小写来标准化文本。此外,其他几种策略也有助于最小化幻觉。例如,思维链提示,其中模型解释其推理的每一步,可以产生更接地气的输出并降低不准确输出的可能性。在高风险应用(如医疗保健用例)中,人工审核作为额外的一层审查非常重要,有助于捕捉自动化流程可能错过的幻觉。最后,强调事实准确性的提示,例如指示模型“只使用源文本中的确切短语”,可以引导模型向更精确的响应方向发展。

3. 过时信息

过时的信息可能难以管理,尤其是在准确性和时效性至关重要的应用中。有时,一个模型可能会从文档的较旧部分检索信息,并像它是当前信息一样呈现。使用检索增强生成(RAG)时,这个问题可能会变得更加复杂,因为 RAG 是根据相关性而不是时效性或特定文档部分来检索内容的。缺少部分标签或时间戳意味着 RAG 可能会从看似相关的文档部分中抽取内容,而无法辨别它们是否过时,这可能导致新旧信息的混合。使用向量数据库的另一个挑战是,如果我们存储整个文档,就无法轻易地在不明确标签的情况下删除特定部分,这使得有效地过滤掉无关信息变得困难。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/92f0bede6e2ca555d13fdae7e28ff1ea.png

由作者创建的图像

缓解措施

为了解决这个问题,我在提示中直接指定“当前”或“最新”数据,并在将数据传递给模型之前使用预处理步骤来删除任何过时的部分。这个额外的预处理步骤确保只保留最新、最相关的信息,帮助模型专注于提供及时和准确的响应。这一步骤不仅确保了更准确的输出,还降低了调用成本。通过提前实施这些过滤器,我可以保持模型输出的连贯性和相关性。

4. 过度依赖和伦理

尽管我很希望我所做的工作被使用并发挥作用,但我最大的恐惧是用户会对模型预测过于信任——尤其是在医疗保健领域,生成式人工智能通常会产生摘要或提取特定患者细节,而不仅仅是做出预测。专家们可能在某些定义上持有不同的观点,因此多样性和对话对于达成共识很重要。过度依赖这些预测可能会导致护理团队限制这些对话,并忽视他们可能更仔细检查的错误。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/6a14bf3cf6856437ec170be6cdf27d4c.png

由 DALL·E 生成的图像

缓解措施

我优先考虑教育团队了解模型的局限性,包括其错误倾向,并鼓励他们将人工智能视为人类专业知识的补充。在医疗保健领域,细微之处至关重要,对于具有重大影响的情况,人工介入的监督对于确保高可靠性至关重要,允许专家审查人工智能输出并降低过度依赖的风险。这种协作方法允许人工智能放大专家见解,保持高风险应用所要求的可靠性和道德完整性。

5. 模型快速弃用

随着人工智能发展的快速步伐,模型和 API 版本频繁更新,版本比预期更快地被弃用是很常见的情况。如果你曾经因为模型版本被退役而导致工作流程意外中断,你就会知道这会造成多大的破坏。在过去的一年里,这种情况发生了几次,迫使我们迅速重新进行分析,以确保新的模型版本仍然按预期运行。

缓解措施

将定期检查模型版本并保持对弃用警告的领先地位作为优先事项。这种主动方法将使我们能够提前规划过渡,避免最后一刻的混乱。虽然这只是一个小步骤,但它对保持平稳运行有着显著的影响。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3fa6e4955cb94a425c68da16990e23b0.png

由作者创建的图像

6. 使用 API 进行速率限制

API 速率限制是一个微妙但重大的挑战,尤其是在处理大量请求时。达到速率上限可能会造成延迟,减慢实时工作流程,甚至停止整个流程。在我们处理时间敏感数据的情况下,达到限制可能会造成高度破坏,因为工作流程会意外停止。这在医疗保健环境中尤其有问题,因为时间可以直接影响运营和患者护理。

缓解措施

为了缓解这一问题,我们通过跟踪 API 使用模式来采取主动方法,以识别高峰时段并减少非必要调用。通过错开请求和批量调用,我可以更均匀地分配负载并避免超过限制。在需求高且速率限制持续达到的情况下,从提供商那里请求额外的配额可以提供一个实际解决方案。平衡使用量至关重要,提前了解我们的高峰时段和使用模式已被证明对于保持稳定、不间断的工作流程至关重要。

结论

这些只是我在与大型语言模型(LLMs)合作过程中遇到的一些常见问题。我没有预料到自己会来到这里,但当我退一步反思时,我意识到自己在这一领域已经积累了多少专业知识——并且我非常兴奋地想要在未来的文章中继续分享这些学习成果。我很乐意听到其他人关于他们遇到的挑战以及他们找到的有效缓解策略或解决方案,无论是与这些问题相关还是全新的问题。我希望这些见解能有所帮助,并激发关于这个快速发展的领域(模型版本和 API 版本更新换代速度过快)最佳实践的进一步讨论。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:11:22

5分钟实现GitHub界面中文化:开发者效率提升指南

5分钟实现GitHub界面中文化:开发者效率提升指南 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 作为开发者,你…

作者头像 李华
网站建设 2026/4/16 17:01:41

DAMO-YOLO TinyNAS 效果展示:高清目标检测案例

DAMO-YOLO TinyNAS 效果展示:高清目标检测案例 1. 引言:当目标检测遇上毫秒级响应 想象一下,在一个繁忙的十字路口,监控摄像头需要实时识别出车辆、行人、交通标志,并立即做出判断。传统的目标检测模型可能因为计算量…

作者头像 李华
网站建设 2026/4/14 13:24:45

MedGemma-X参数详解:bfloat16精度对GPU显存占用与推理速度的影响

MedGemma-X参数详解:bfloat16精度对GPU显存占用与推理速度的影响 1. 理解bfloat16精度格式 1.1 什么是bfloat16 bfloat16(Brain Floating Point 16)是一种16位浮点数格式,由Google开发并广泛应用于深度学习领域。与传统的float…

作者头像 李华
网站建设 2026/4/16 4:10:08

NVIDIA Profile Inspector完全指南:解锁显卡潜力的专业调校实战手册

NVIDIA Profile Inspector完全指南:解锁显卡潜力的专业调校实战手册 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 对于追求极致游戏体验的PC玩家和专业用户而言,显卡性能的优化…

作者头像 李华
网站建设 2026/4/16 14:21:36

英雄联盟皮肤修改工具:上分神器还是皮肤党必备?

英雄联盟皮肤修改工具:上分神器还是皮肤党必备? 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 你是否也曾遇到这样的尴尬:想在好友面前展示高端段位却实力不足?或是眼馋稀有皮肤…

作者头像 李华
网站建设 2026/4/16 10:51:54

HY-Motion 1.0在游戏开发中的应用:快速原型制作实战

HY-Motion 1.0在游戏开发中的应用:快速原型制作实战 1. 引言 想象一下这个场景:你的游戏团队正在为一个新的角色设计一套复杂的战斗连招。美术师画好了概念图,策划写好了技能描述,但动画师告诉你,要做出一个5秒钟的流…

作者头像 李华