LLMs 正在改变我们构建人工智能解决方案的方式。更新、更好的现成模型不断推出。
我经常被问到的一个问题是,为什么有人要选择定制的LLM 而不是现成的解决方案?
如果你正在做一个人工智能项目,比如建立一个人工智能代理或人工智能聊天机器人,你可能会选择使用定制的大型语言模型 (LLM)。
使用自定义LLM 的理由很多,可供您选择的方案也很多。在本文中,我将向您介绍为人工智能项目定制LLM 的不同方法。
为什么要使用自定义LLM ?
使用自定义LLM 有几个原因:
- 您希望通过专注于对业务用例非常重要的特定任务来降低成本,或最大限度地减少延迟。
- 您可能希望将所有数据保密,或者使用公司内部的LLM 。
- 您可能希望提高某项任务的答案质量。
无论出于何种原因,定制LLM 都能让您优化性能,在准确性、速度和成本之间取得平衡,从而满足您的业务需求。
选择LLM
LLMs 人工智能项目有两个影响因素:规模(以参数数量衡量)和响应质量。
你可以把参数想象成大脑中的神经元。大脑越大往往越聪明,但事实并非总是如此。大脑的某些部分可以针对某些任务(如视觉)进行高度优化。
对于人工智能项目而言,模型的大小通常会影响响应速度,并在很大程度上影响响应成本。需要低延迟的项目通常使用较小的模型,但会牺牲响应质量。
挑选模型时应注意的问题
以下是挑选机型时需要回答的问题清单:
- 我可以使用基于云的LLM ,还是需要自己托管一个?
- 我需要多快的回复速度?
- 我需要多精确的回复?
- 我的项目能节省和/或产生多少美元?然后,它应该低于多少价格?
- 我需要多长的回复?
一般来说,要加快功能强大的模型的速度或降低其成本比较困难,而改进精度较低的模型则比较容易。
不过,使用功能强大的模型上手要快得多,而且如果它能满足你的项目需求,你可能不需要投入那么多的工程精力(另外,它也更容易维护)。
在 RAG、微调、N 次学习和提示工程之间做出选择
有五个一般概念可以提高LLM 的答复质量:
- 从预先训练的模型开始
- RAG
- 微调
- Nshot 提示
- 及时的工程设计
这些并不是使用自定义模型所特有的,但无论如何你都应该考虑它们,因为它们是相互配合的。
从模型开始
首先要做的是选择一个起始机型。网上有很多比较不同车型的排行榜。
例如
- Hugging Face 维护着一个开源模型排行榜。
- Vellum为更受欢迎的机型提供了一款出色的产品。
如果贵公司有内部模型,可以考虑使用它来满足预算要求,并保证数据的私密性。如果您需要自己托管模型,请考虑使用开源模型。
微调
微调包括向模型提供示例,让它学会如何出色地完成某项任务。如果您想让模型在谈论您的产品时表现出色,您可以提供大量贵公司最出色的销售电话实例。
如果模型是开源的,请自问您的团队是否有足够的工程能力对模型进行微调。
如果模型是闭源的,并以服务形式提供(GPT-4 或 Claude),那么您通常可以让工程师使用 API 对定制模型进行微调。通过这种方法,价格通常会大幅提高,但几乎不需要维护。
但对于许多用例来说,微调并不是优化模型的第一步。
为静态知识构建知识机器人就是一个很好的微调案例。通过提供问题和答案的示例,它应该能够在未来回答这些问题,而无需查找答案。但对于实时信息来说,这并不是一个实用的解决方案。
检索增强生成
RAG是我们在ChatGPT 中都做过的一件简单事情的别称:在ChatGPT 中粘贴一些文本,然后提出相关问题。
一个典型的例子是,询问电子商务网站上的某种产品是否有库存,聊天机器人会在产品目录(而不是更广泛的互联网)中查找相关信息。
就开发速度和获取实时信息而言,RAG 是必备工具。
这通常并不影响您选择哪种模型,但是没有什么能阻止您创建一个LLM API 端点来查询信息和回答问题,并将该端点当作自己的LLM 来使用。
在基于知识的聊天机器人中使用 RAG 通常更易于维护,因为您不需要对模型进行微调和不断更新,这还可以降低成本。
N 次学习
开始提高响应质量的最快方法是在单个LLM API 调用中提供示例。
我们大多数人都使用ChatGPT 。添加一个示例(或一个镜头)通常就足以使回复质量得到大幅提高。
一个以上的示例被视为 N-shot。N-shot不会改变模型,这与微调不同。你只是在要求回答之前举例而已,每次提问都是如此。
但这一策略不能过度使用:LLM 模型有最大上下文大小,并根据信息大小定价。微调可以消除对 n 个示例的需求,但需要更多时间才能做到正确。
其他快速工程技术
还有其他一些提示工程技术,比如思维链,它可以迫使模型在得出答案之前大声思考。
这样可以提高响应质量,但代价是响应的长度、成本和速度。
我的建议
虽然每个项目都有其独特的需求,但我还是要就一种强有力的方法提出自己的看法。
一个好的开始是使用兼顾速度和质量的现成模型,如GPT-4o Mini。首先查看响应质量、响应速度、成本、背景窗口需求,然后决定需要改进的地方。
然后,在使用范围较窄的情况下,可以尝试一些简单的提示工程,接着是 RAG,最后是微调。每一个经过上述过程的模型都会有性能提升,因此要确定使用什么可能会很棘手。
隐私考虑因素
在理想的世界里,每一个LLM 都将 100% 由你自己控制,没有任何东西会暴露在任何地方。
遗憾的是,我们在实践中看到的情况并非如此,这是有充分理由的。
第一点很简单:它需要工程人员托管和维护一个自定义模型,成本非常高昂。当托管模型出现停机时,业务指标就会受到影响,因此部署应该非常坚固。
另一个原因是,OpenAI 、Google 和 Anthropic 等行业领导者不断推出更新、功能更强、价格更低的机型,使得任何微调工作都变得多余。自ChatGPT 3.5 发布以来,这种情况就一直存在,而且没有任何改变的迹象。
如果您的用例中有极其敏感的数据,那么使用模型并针对您的用例对其进行优化是有意义的。如果 GDPR 是最重要的问题,那么有很多现成的模型都符合 GDPR 标准。
选择您的LLM
一旦选择了LLM ,就可以开始考虑如何构建和维护人工智能项目了。我以自己最熟悉的项目类型为例:人工智能代理或人工智能聊天机器人。
您可以回答以下问题来确定项目范围:
- 我希望我的人工智能代理住在哪里?(Slack,WhatsApp, 网站小部件等)
- 它应该具备哪些知识,这些知识在哪里?
- 除了知识解答之外,它还应具备哪些能力(如果有的话)?
- 当业务中的某个环节出现问题时,它是否应该启动?
卸载工程设计,节省资金
要使项目成为现实,精打细算至关重要。其中一种方法就是通过解耦需求来缩短工程时间。
如今,我们可以使用 Flutterflow、Shopify 等低代码解决方案,产品经理等传统的非技术角色也可以使用这些解决方案。聊天机器人也不例外,有些人工智能自动化平台甚至允许你使用自己的LLM 。
您可以指示工程师专注于托管LLM 和设置自动化平台。这样,业务分析师、产品经理和其他相关人员就可以腾出时间来构建满足业务需求的人工智能代理。
当需要额外功能时,这些平台一般都有办法让工程师添加一些代码。这样,您既能保持定制模型的优势,又能获得灵活性、速度和经济性。
为解决业务问题提供工程自由
另一方面,有时业务问题很难解决。
我们谈论的是完全网络连接的LLM 应用程序、设备上的应用程序,或者需要赋予聊天机器人极其先进的功能的项目,这些功能不仅仅是在两个平台之间同步数据。
在这种情况下,允许工程师自由使用他们最擅长的工具是合理的。这通常只是编写代码,而利益相关者只是充当项目经理的角色。
关于定制个性化服务的战略考虑因素LLM
为您的人工智能项目选择定制的LLM 不仅仅是选择最好的模型,而是要做出与您的目标相一致的战略决策。
定制模型具有灵活性、可控性和针对特定任务进行优化的潜力,但同时也增加了复杂性。从现成的模型开始,进行及时工程试验,并在此基础上逐步完善。
请记住,正确的模式应适合您的业务需求,而不仅仅是您的技术stack 。
利用功能强大的平台进行定制
准备好让您的人工智能项目更上一层楼了吗?
Botpress 是一个完全可扩展且灵活的人工智能代理平台。我们的stack 允许开发人员为任何可能的用例构建聊天机器人和人工智能代理。
我们拥有一个强大的教育平台、 Botpress Academy以及详细的YouTube 频道。我们的Discord 承载了 20,000 多名机器人构建者,因此您可以随时获得所需的支持。