编者按:这篇博文由来自 Sonia Health 的 Chris 撰写。我们特别兴奋地强调这一点,原因有几个。首先,这是一个具有非常积极社会效益的用例。其次,该实现反映了我们在内部考虑更复杂工作流程的方式——作为状态机!查看 LangGraph(我们刚刚发布),这是一种构建此类应用程序的简单方法。
心理健康危机
每年有 20% 的美国人 患有心理健康问题。虽然对心理治疗的需求稳步上升,但供应却严重受限。心理治疗的等待名单通常长达数月,一旦您最终获得预约,每次疗程的费用高达 100 美元以上。这超过了普通美国人 每天收入 的一半。
今天,大多数患有心理健康挑战的人无法获得任何支持。我们认为人工智能可以帮助解决心理健康危机,并将在本文中解释我们如何通过开发 AI 治疗师 Sonia 来解决这个问题。
AI 治疗
追溯到过去,AI 治疗的概念最早出现在 1964 年,当时麻省理工学院教授约瑟夫·维森鲍姆开发了 计算机程序 ELIZA。这款聊天机器人以 罗杰斯式心理治疗师 为模型,最初是作为一种反讽而构建,旨在展示人机交互是多么肤浅。令他惊讶和困惑的是,人们开始花费数小时与 ELIZA 交谈,珍视其提供的非评判性回应,这些回应为表达他们的感受提供了一个安全的空间。
快进近半个世纪,大型语言模型 (LLM) 的兴起和 ChatGPT 的发布再次将焦点带回了 AI 治疗。自发布以来的过去 15 个月中,许多人 报告转向 ChatGPT 来谈论他们的情绪和挣扎。
ChatGPT 代表着通过使用 AI 使心理健康护理更易于获得的有希望的一步。然而,像 ChatGPT 这样的原生模型的问题在于缺乏特定领域的对话结构。单个系统提示无法引导完成整个 30-60 分钟的对话,在此期间,客户和治疗师需要不断深入挖掘才能找到问题的核心。虽然这些模型在无数心理学教科书上进行了预训练(从而获得了治疗知识),但治疗课程的记录几乎没有公开(从而导致缺乏治疗行为)。ChatGPT 是一个 通过人类反馈进行强化学习微调 的模型,它接收指令并提供解决方案,这与治疗师在治疗课程中应该如何互动截然不同。
认知行为疗法
在我们开始讨论技术细节之前,我们将简要介绍一下认知行为疗法,Sonia 的主要治疗方法。CBT 是最广泛使用的心理治疗形式之一,已被证明对 包括焦虑和抑郁症在内的多种心理健康问题有效。该方法以 CBT 的 认知模型 为中心,该模型描述了情境、想法、行为和情绪的相互关联性。该模型指出,影响我们感受或反应的不是情境本身,而是我们对情境的解释和想法。CBT 旨在帮助客户意识到、挑战和重塑这些消极的解释和想法。
LLM 状态机
人们普遍认为,治疗更多的是一门艺术,而不是科学。恰恰相反,CBT 是一种结构非常严谨的治疗方法。正如其创始人 Aaron Beck 所描述的那样,一个疗程由 8 个明确定义的阶段 组成,治疗师会遍历这些阶段。疗程的每个阶段,例如“情绪检查”、“议程设置”或“反馈”,都有非常具体的目的和目标。从计算机科学的角度来看,这种结构使其非常适合建模为 有限状态机,而这正是我们所做的。
架构
AI(和人类)治疗师的主要任务是回应他们的客户。每个回应都需要新的背景和信息,这些信息取决于与客户的过去互动、正在进行的疗程阶段、正在解决的当前主题,或者仅仅是最近一条客户消息的情绪,仅举几例。那么,我们如何确保我们的 AI 治疗师在正确的时间拥有正确的背景信息呢?
许多 检索增强生成 (RAG) 解决方案会简单地嵌入心理学知识语料库并语义检索相关数据。然而,完全依赖这一点将无法充分利用 CBT 疗法定义良好的结构,并且信噪比会很差。
另一方面,为每个阶段硬编码单个提示不允许足够的灵活性,这对于个性化和有效的治疗至关重要。在 CBT 中,每个阶段都可以分解为几个更细粒度的子阶段,当然不应平等对待所有子阶段。
为了找到中间立场,我们使用 LangChain 框架为每个阶段构建了一个结构化检索和提示的深度决策树。LangChain 的可定制内存模块和代理构造器显着加速了我们的开发。一旦一切设置完毕,在 LangSmith 上的监控和测试为我们在迭代提示时节省了大量时间。
过渡
在我们为每个阶段构建了 代理 之后,我们需要考虑如何在 CBT 疗程的 8 个不同阶段之间进行过渡。这里棘手的部分在于,这项任务高度特定于治疗领域。它既不是完全句法的,也不是完全语义的问题。
在句法方面,诸如“阶段 X 中应该正好有 8 条消息”或“阶段 X 最多应持续 5 分钟”之类的规则很容易实现。但是,如果客户在第 8 条消息中提出后续问题,或者必须休息几分钟怎么办?关键是,您不能完全依赖这些类型的规则(但您也不能完全忽略它们)。
在语义方面,一种潜在的方法是运行重复的 LLM 调用,以确定是否已满足所有阶段目标。然后,输出可以用于显式切换代理的上下文,或者更隐式地通过将输出集成到生成对客户响应的提示中。
这些方法中没有一种是完全足够的,但总的来说,它们表现得相当好。毫不奇怪,这种组合也在实践中被人类治疗师所采用。他们需要保持在某些设定的界限内,例如疗程持续时间,但要确保顺利完成重要主题的覆盖。
异步紧急检查
正如 比尔·盖茨 最近描述的那样,AI 心理健康代理可以并且应该做更多的事情,而不仅仅是生成回应。这种附加任务的一个例子是紧急情况检测。如果客户有立即伤害自己或他人的危险,他们不应该与机器交谈——至少在 2024 年初还不应该。我们实施了几项异步检查,以评估客户键入或说出的每条消息中包含的风险。当风险超过一定阈值时,Sonia 会立即将客户重定向到国家热线。
另一个例子是治疗工作表。如果客户难以表达他们的想法、价值观或目标,治疗师会有一系列练习和工作表来帮助他们。我们的 AI 治疗师 Sonia 的实现方式与 LangChain 描述的工具 非常相似,它可以识别中断疗程并在前端向客户展示交互式工作表的正确时机。然后,这些结果将被分析和利用以继续疗程。
结论
人工智能有可能使任何人、在任何地方、在任何时间都能以当今成本的 1% 获得心理健康护理。我们很高兴能够构建一些有可能积极影响全球数百万人生活的事物,并感谢像 LangChain 这样的合作伙伴为我们提供支持并在这一过程中加速我们前进。
Sonia:AI 治疗 已在 App Store 上线。
其他状态机和 LangGraph
将 CBT 建模为状态机使我们能够在结构和灵活性之间找到适当的平衡。虽然实现细节非常特定于领域,但我们认为该架构和心智模型可以用于广泛的对话式 AI 应用程序(客户支持、候选人筛选、辅导等)。LangChain 最近发布了 LangGraph,这是一个在 LangChain 之上创建有状态循环图的模块。主要用例之一是 多代理工作流程 的概念,定义为“以特定方式连接的由语言模型驱动的独立参与者”。简而言之,它是构建 LLM 状态机的最佳框架。我们希望在我们 10 月份开始构建时它就已经存在,并强烈建议任何正在研究类似状态机应用程序的人都去了解一下。如果您这样做了,请告诉我们,我们很乐意聊天并分享经验!
非常感谢您的阅读 - 如有任何问题或反馈,请联系 contact@soniahealth.com。