将大型语言模型(LLM)应用于现实世界的商业应用
应用大型语言模型(LLM)于商业领域的实际应用
大型语言模型无处不在。每次与客户的对话或风险投资的演讲都会涉及到关于LLM技术准备情况以及它将如何推动未来应用的问题。我在之前的文章中讨论了一些相关模式。在这里,我将讨论Persistent Systems在制药行业开发的一个应用的一些真实模式。
大型语言模型和核心优势
LLM擅长理解语言。我们目前在应用中看到的最常见的模式是检索增强生成(RAG),其中知识从数据源中外部编译并在上下文中作为提示提供给LLM以进行重新表述响应。在这种情况下,超快速搜索机制(如向量数据库和基于Elasticsearch的引擎)作为第一道搜索线提供服务。然后将搜索结果编译成提示,并以API调用的形式发送给LLM。
另一种模式是通过将数据模型作为提示和具体用户查询提供给LLM来生成结构化数据的查询。这种模式可以用于开发高级的“与数据对话”界面,用于SQL数据库(如Snowflake)以及图数据库(如Neo4j)。
利用LLM模式获得真实世界的洞见
Persistent Systems最近研究了Blast Motion这家体育遥测公司(用于棒球、高尔夫等的挥杆分析)的一个模式,我们分析了球员摘要的时间序列数据以获得推荐。
对于更复杂的应用,我们通常需要在调用之间进行处理并将LLM请求链接起来。对于一家制药公司,我们开发了一个智能病例筛选应用,根据从临床试验文件中提取的标准对患者进行筛选。在这里,我们采用了LLM链式方法。首先,我们开发了一个LLM来读取试验PDF文件,并使用RAG模式提取纳入和排除标准。
为此,我们使用了一个相对简单的LLM,如GPT-3.5-Turbo(ChatGPT)。然后,我们将这些提取的实体与Snowflake中的患者SQL数据库的数据模型结合起来,创建一个提示。将这个提示提供给像GPT4这样更强大的LLM,我们就可以得到一个在Snowflake上运行的SQL查询,用于筛选患者。由于我们使用了LLM链式方法,我们可以在链的每个步骤中使用多个LLM,从而使我们能够控制成本。
目前,我们决定使这个链保持确定性以获得更好的控制。也就是说,我们决定在链中增加更多智能,并保持编排非常简单和可预测。链的每个元素本身都是一个复杂的应用程序,在LLM出现之前需要几个月时间来开发。
推动更高级的用例
对于更高级的用例,我们可以使用ReAct等Agent提示LLM创建逐步指令以响应特定用户查询。当然,这需要使用高端的LLM,如GPT4、Cohere或Claude 2。然而,这样做存在一个模型可能采取错误步骤的风险,需要使用防护措施进行验证。这是在链的可控环节中增加智能或使整个链条自主的权衡。
今天,随着我们逐渐适应语言生成AI时代,行业开始采用具有可预测链条的LLM应用。随着这种采用的增长,我们很快将开始尝试通过代理实现这些链条的更多自主性。这就是AGI的辩论所关注的问题,我们很感兴趣看到所有这些在未来如何发展。