Checkr每月为数千家企业提供150万份人员背景调查,这一过程需要生成式人工智能(genAI)和机器学习工具来筛选大量非结构化数据。
自动化引擎根据来自多个来源的背景信息生成关于每个潜在工作前景的报告,并对报告中描述的犯罪或其他问题进行分类。
在Checkr的非结构化数据中,约有2%被认为是“混乱的”,这意味着这些记录无法用传统的机器学习自动化软件轻松处理。因此,像今天的许多组织一样,Checkr决定尝试一种基因人工智能工具——在这种情况下,是OpenAI的GPT-4大型语言模型(LLM)。
然而,GPT-4在背景调查方面的准确率仅为88%,而在混乱的数据中,这一数字降至82%。这些低百分比意味着这些记录没有达到客户标准。
然后,Checkr将检索增强生成(或RAG)添加到其LLM中,这增加了更多信息以提高准确性。虽然这对大多数记录都有效(准确率为96%),但更难的数据的准确率进一步下降,仅为79%。
另一个问题是什么?通用GPT-4模型和使用RAG的模型都有较慢的响应时间:背景调查分别需要15秒和7秒。
因此,checker的机器学习团队决定小规模尝试一个开源的小型语言模型(SLM)。Checkr的机器学习工程师Vlad Bukhin利用多年来收集的数据对SLM进行了微调,以了解公司在员工背景调查和验证中所寻求的内容。
这一招奏效了。大部分数据的准确率达到97%,而对于杂乱的数据,准确率则跃升至85%。查询响应时间也降到了半秒。此外,在Llama-3的基础上微调SLM的成本约为80亿个参数,是18亿个参数GPT-4模型的五分之一。
为了调整SLM, CheckR求助于Predibase,后者提供了一个云平台,CheckR从过去的背景调查中提取了数千个例子,然后将这些数据连接到Predibase。从那里,Predibase UI让它变得简单,只需点击几个按钮微调羊驼-3 SLM。经过几个小时的工作,Bukhin定制了一个模型。
Predibase运营着一个平台,使公司能够对slm进行微调,并将其部署为自己或他人的云服务。它适用于所有类型的slm,大小从3亿到720亿个参数不等。
slm迅速获得了关注,一些行业专家甚至认为它们已经成为主流企业技术。slm的设计初衷是能够很好地执行简单的任务,对于资源有限的组织来说,slm更容易访问和使用;他们天生更安全,因为他们生活在一个完全自我管理的环境中;它们可以针对特定领域和数据安全进行微调;而且比法学硕士更便宜。
《计算机世界》采访了Bukhin和Predibase首席执行官Dev Rishi,讨论了这个项目以及创建定制SLM的过程。以下是采访的节选。
当你谈到用于执行背景调查的数据类别,以及你试图自动化的内容时,这意味着什么?Bukhin:“我们会进行许多不同类型的分类,但在这种情况下,[我们]试图了解报告中描述的民事或刑事指控。比如,‘行为不检’。”
准备数据供法学硕士使用的挑战是什么?Bukhin:“很明显,法学硕士在过去几年才开始流行。早在llm之前,我们就已经在注释非结构化数据了。因此,我们不需要为这个项目做大量的数据清理,尽管将来可能会这样做,因为我们正在生成大量尚未清理的非结构化数据,现在这可能是可能的。”
为什么你第一次尝试GPT-4失败了?你开始在OpenAI模型上使用RAG。为什么不像你希望的那样有效?Bukhin:“我们在这个用例中尝试了带和不带RAG的GPT-4,它在98%的简单情况下工作得很好,但在2%的更复杂的情况下却表现不佳。这是我之前试图调整的东西。RAG会检查我们当前的训练[数据]集,它会挑选出我们想要的10个类似分类的查询类别的例子,但这2%[复杂的情况,混乱的数据]不会出现在我们的训练集中。所以我们给法学硕士提供的样本并没有那么有效。”
你觉得失败了什么?Bukhin:“RAG对其他用例很有用。在机器学习中,你通常会解决80%或90%的问题,然后你会更仔细地处理长尾问题。在这种情况下,我们使用监督模型对文本进行分类,情况正好相反。我试着处理剩下的2%,也就是未知的部分。正因为如此,RAG就没有那么有用了,因为你在处理未知的2%时提出了已知的知识。”
Dev:“我们认为RAG有助于在给定任务中注入新鲜情境。弗拉德所说的是少数民族阶级;你希望LLM能够发现非常细微的差异——在这种情况下,背景调查的分类数据。在这些情况下,我们发现更有效的方法是通过实例来教授模型,这就是微调将通过大量的例子来完成的。”
你能解释一下你是如何主持法学硕士和背景记录的吗?这是SaaS还是在您自己的数据中心中运行?Bukhin:“这就是使用小型模型更有用的地方。我提到我们只对2%的数据进行了分类,但由于我们有一个相当大的数据湖,每秒仍然有相当多的请求。因为我们的成本随使用量而变化,你必须考虑不同的系统设置。使用RAG时,您需要为模型提供大量上下文和输入令牌,这将导致非常昂贵和高延迟的模型。而对于微调,因为分类部分已经微调过了,你只需要给它输入。你给它的代币数量和它生产的代币数量是如此之少,以至于它在规模上变得更有效率。”
“现在我只有一个正在运行的实例,它甚至没有使用完整的实例。”
您所说的“2%的混乱数据”是什么意思?您认为RAG和微调之间的区别是什么?Dev:“2%指的是他们正在处理的最复杂的分类案例。
“他们有所有这些非结构化、复杂和混乱的数据,他们必须处理和分类,以便每月为客户进行数百万次以上的背景调查。其中2%的记录不能很好地用传统的机器学习模型处理。这就是他引入语言模型的原因。
“这是他第一次使用GPT-4和RAG流程来尝试对这些记录进行分类,以自动进行背景调查,但他们没有得到很好的准确性,这意味着这些背景调查不能以最佳方式满足客户的需求。”
弗拉德:“为了让你了解规模,我们每个月要处理150万份背景调查。这导致每三秒钟就有一个复杂的电荷注释请求。有时是每秒几个请求。如果是单实例LLM,这就很难处理了因为它会排队。如果在LLM上使用RAG,则可能需要几秒钟的时间。回答这个问题需要几秒钟。
“在这种情况下,因为它是一个小的语言模型,它使用更少的gpu,延迟更少(不到0.15秒),你可以在一个更小的实例上完成更多的工作。”
您是有多个slm运行多个应用程序,还是只有一个运行所有应用程序?Vlad:得益于Predibase平台,您可以在一个[SLM] GPU实例上启动多个用例解决方案。目前,我们只有一个,但有几个问题我们正在努力解决,我们最终会添加。在Predibase术语中,它被称为适配器。对于不同的用例,我们将为相同的模型添加另一个适配器解决方案。
“因此,例如,如果你已经部署了一个小型语言模型,比如美洲驼-3,然后我们在它上面有一个适配器解决方案来响应一种类型的请求,我们可能会在同一个实例上有另一个适配器解决方案,因为仍然有容量,如果那个解决方案可以使用相同的基本模型来响应完全不同类型的请求。
“相同的(SLM)实例,但不同的参数化集,只负责您的解决方案。”
Dev:“这个实现我们也开源了。所以,对于任何对它如何工作感兴趣的技术专家,我们有一个开源服务项目,叫做LoRAX。当您对模型进行微调时,我认为RAG只是在您向LLM发出请求时注入一些额外的上下文,这对于问答风格的用例来说非常好,这样它就可以获得最新的数据。但这对于专门化模型来说并不好。这就是微调的地方,你可以通过给它一些特定的例子来特殊化它。人们在微调模型时使用了几种不同的技术。
“最常见的技术被称为LoRA,即低级别适应。您可以自定义模型总体参数的一小部分。例如,羊驼-3有80亿个参数。使用LoRA,您通常微调这些参数的1%,以使整个模型专门用于您希望它执行的任务。你可以把模型转换成你想让它完成的任务。
“传统上,组织必须做的是将每个微调模型放在自己的GPU上。如果您有三个不同的微调模型—即使其中99%的模型是相同的—每个模型都需要在自己的服务器上。这很快就会变得非常昂贵。”
我们对Predibase所做的一件事是,拥有一个具有80亿个参数的Llama 3实例,并为其带来多个微调适配器。我们将这一小部分自定义模型权重称为适配器,因为它们是针对特定任务进行调整的整个模型的一小部分。
Vlad现在有一个用例,我们叫它Blue,在Llama 3上运行,有80亿个参数,可以进行背景分类。但是,如果他有另一个用例,例如能够在这些检查中提取关键信息,他可以在现有部署之上提供相同的适配器。
这本质上是一种使用相同的GPU和基本模型构建多个用例以达到成本效益的方法。
Checkr使用多少GPU来运行它的SLM?“Vlad今天在一个A100 GPU上运行。
“我们看到的是,当使用小型模型版本时,比如低于80亿个参数的模型,你可以在一个GPU上运行多个用例的整个模型,运行在Predibase云产品上,这是一个分布式云。”
LLM和SLM的主要区别是什么?Bukhin:“我不知道我是否能够使用GPT运行这个问题的生产实例。这些大型模型非常昂贵,而且总是需要在成本和规模之间进行权衡。
“在规模上,当有很多请求进来时,在GPT上运行它们的成本有点高。我认为在使用RAG的情况下,使用GPT每月将花费我大约7000美元,如果我们不使用RAG,而是直接使用GPT-4,每月将花费12,000美元。
“使用SLM,每月的费用约为800美元。”
实施基因人工智能技术的更大障碍是什么?Bukhin:“我得说没有太多障碍。挑战在于,随着Predibase和其他新供应商的出现,仍然有许多文档漏洞和SDK漏洞需要修复,这样你才能运行它。
“这是一种全新的游戏,所以我们才会根据需要去呈现这些参数。UI功能并没有那么有价值。基本上,在模型建立之后,你必须自己做更多的测试。你知道,只是调试一下。当我们将其投入生产时,我们需要解决一些SDK错误。
“(在Predibase上)微调模型本身非常容易。参数调整很容易,所以我们只需要选择正确的模型。
“我发现并不是所有的模型都能以同样的精度解决问题。我们对lama-3进行了优化,但我们不断尝试不同的模型,看看我们是否能获得更好的性能,并更好地收敛到我们的训练集。”
即使是小的、微调过的模型,用户也会报告一些问题,比如错误和幻觉。你遇到了哪些问题?你是如何解决这些问题的?Bukhin:当然。它不断产生幻觉。幸运的是,当问题是分类时,您有230种可能的响应。令人惊讶的是,它经常会给出230种可能的(训练过的)反应之外的反应。这对我来说很容易检查,然后忽略它,然后重做。
“这是简单的编程逻辑。这不是小语言模型的一部分。在这种情况下,我们正在解决一个非常狭窄的问题:这里有一些文本。现在,把它分类。
“这不是解决整个问题的唯一办法。所以,你尝试了更多的模型,但那不起作用,你尝试深度学习,然后攻读法学硕士。法学硕士有很多逻辑。有一些逻辑可以起到防护栏的作用。这不仅仅是模型的问题。这是程序化的逻辑。
“因此,我们不需要为这个项目做大量的数据清理,尽管未来可能会有,因为我们正在生成大量尚未清理的非结构化数据,现在这可能是可能的。清理大部分数据的工作已经完成。但我们可以通过法学硕士来加强一些清洁工作。”