亮网络解锁器,解锁网络数据的无限可能 了解详情
写点什么

我们如何训练和应用大模型 | InfoQ《极客有约》

  • 2023-08-29
    北京
  • 本文字数:7984 字

    阅读完需:约 26 分钟

我们如何训练和应用大模型 | InfoQ《极客有约》

大模型在过去半年多时间里狂飙突进,但最近的大模型应用已经开始降温。要不要用、怎么用大模型成为现在大家需要解决的问题。我们邀请了具有多年实践经验的数禾科技 AI 技术负责人杨春勇,来一起聊聊企业如何落地大模型。

 

杨春勇表示,大语言模型已经构成了一个自己技术栈,强调了在特定情景下它的优势,如降低成本、提升效率。但传统的 NLP 技术依然有其重要性,大模型是其有益补充。每家公司可以根据实际情况尝试不同的开源模型。而企业在大型模型落地中,需要综合考虑多个因素。除了做好技术选型,企业还需审慎评估数据难题以及在算力和人力上的投入成本。

 

下面文字根据直播内容整理,在不改变原意基础上进行了删减,完整版可以点击查看直播视频

 

金融场景下的大模型应用

 

InfoQ:数禾科技开发了一个非常有趣的模型——反诈骗模型,当时是如何开发出这个模型的呢?

 

杨春勇:在借还款环节中,反诈模型发挥着重要作用。在这个阶段,诈骗分子常常利用借还款环节进行违法活动,我们的目的是保护客户的合法权益,防止他们成为欺诈的受害者。因此,基于当下领先的深度学习和大数据技术,我们建立了设备风险识别、行为风险识别以及关联风险识别等多个识别体系,开发出了适用于不同诈骗场景的多种反诈模型,能够提前识别并拦截异常行为。在这个反诈体系的帮助下,自 2020 年至 2022 年,诈骗案件数量显著下降,提前拦截率达到了 92%。结合反诈模型和人工审核,我们成功保护了超过 3 万名用户,其中有 6000 多人因为及时的提醒和拦截而避免了电信诈骗,总计防止用户被骗金额超过 1 亿元。

 

除了反诈模型,我们还利用大量的机器深度学习技术关注借款用户面临的问题。例如,在最近北方发生洪涝灾害时,一些受困的用户无法与搜救人员取得联系,于是他们联系到我们,我们针对紧急情况安排专员与他们对接,协助救援工作,确保这些用户得到及时救援。

 

InfoQ:金融场景的大模型应用有哪些?

 

杨春勇:金融领域,由于大模型相对较新,我们正处于探索阶段。数禾科技目前已经在内部服务台应用中使用大模型进行相关的服务问答,并在用户营销场景中使用大模型生成素材。除了这些已经在使用的场景,大模型还适用于辅助分析和辅助工作。我们也正在开发一个名为数禾助手的辅助工具,类似于 ChatGPT,但我们将其定位为特定领域的助手,更具体地说就是为金融公司定制的。与此同时,我们也在探索如何将大模型直接赋能于业务,例如在风险控制和贷后管理领域直接应用大模型。

 

实际上,大模型有两个方面的应用,一是模型本身的研发,需要加强其理解能力;二是将大型模型与业务场景结合,让其直接在场景中发挥作用。我们的投入主要集中在后者,即如何更好地将大型模型应用于实际场景。我们将调整大模型的理解能力以适应金融行业的需求,并根据不同应用场景进行优化。我们的目标是让大模型与内部各项资源连接,最终实现为业务赋能的目标。

 

InfoQ:就整个行业而言,您注意到适合应用大模型的场景有哪些?

 

杨春勇:大模型在很多方面都可以发挥作用,特别是在辅助分析和工作方面。辅助分析,简而言之,就是利用大模型帮助完成一些业务智能(BI)任务。以前,数据分析通常需要手动下载数据、编写代码、创建可视化和计算统计信息,而现在,我们可以将数据提供给大型模型,利用其能力生成分析代码、执行代码并获得所需的分析结果。在这些场景中,大模型发挥着重要作用,尤其是对于那些以数据为基础的公司来说,这样的应用有很大的前景。

 

此外,大模型还可以在辅助工作方面发挥作用。它可以帮助规划任务,特别是在你对某个领域不熟悉的情况下。你可以向大型模型提问,它会告诉你如何分步进行任务,从第一步到第三步,甚至可以实现自动化,类似于现在流行的 AutoGPT。这样,大模型可以自动执行并输出你需要的结果,实现对工作的辅助。之前提到过,我们在很多领域都广泛使用大型模型,包括内部服务问答和营销场景,这些用途都非常典型。

 

InfoQ:有观众还提到了一个更为细分的领域——消费信贷。金融领域是否已经细化到了消费信贷这种更具体的大模型了吗?

 

杨春勇:尽管有许多公司在探索行业大模型,但我们的看法可能与其他公司不同。有些公司可能只是在现有模型中添加了一些金融术语的知识,这种知识添加仅限于对术语的解释。

 

然而,在实际应用中,对于这个行业来说,模型所需的一些数据,比如任务执行步骤等,可能并不充分或未被积累。这就导致了一个情况,即虽然在金融术语的理解上可能有所优势,但在实际的落地应用中可能并不适用。因此,需要更进一步的细化,深入到各个领域的细节中,看看哪些部分更适合落地应用。

 

目前,很多数据准备工作仍然不够完善。我认为当前的做法是,先让每家公司尝试应用,然后在使用过程中不断迭代,这可能是更好的方式。仅仅依靠现有的金融百科知识、术语解释来构建大型模型,可能无法很好地支持相关的实际工作。

 

微调模型的构建

 

InfoQ:经过微调的模型是否可以适应特定领域的需求?

 

杨春勇:关于微调模型的构建过程,有几个方面需要考虑。首先,大模型的构建应用方式目前主要可以分为四大类:

 

第一种是通过与向量数据库结合,实现企业相关的问答服务;

第二种是利用大模型的生成能力,生成文本和图像素材;

第三种是利用大模型的规划能力,构建智能体应用;

第四种是利用大模型的代码生成和接口调用能力,实现自动化工具与使用工具的应用,同时还可以进行相关分析任务。

 

举个例子,以知识库问答服务为例,构建过程涉及以下步骤。首先,需要收集企业的典型问答数据,并将其进行分割和向量化表示,然后将这些向量存入向量数据库以便后续检索。当用户提问时,我们会将用户提问转化为向量表示,并通过相似度算法从向量数据库中检索相关的知识。最后,我们根据检索到的知识和提问构建一个提示,模型会根据这个提示生成回答。

 

关于微调模型,微调是一个模型选择的过程,需要考虑多方面的因素。首先,要选择一个适合的模型,而选择需要考虑场景、成本和效率等因素。在选择模型时,可以使用自有场景的数据集和公开数据集进行测试,以选择最适合自己场景的模型。其次,要考虑成本,可以使用开源大模型或云服务接口来满足大部分需求,只有在一些特定情况下需要自研。效率方面,不是模型越大越好,需要根据实际需求选择合适大小的模型,以获得更大的吞吐率和更高的效率。

 

微调过程涉及三个阶段。首先是有监督微调阶段,使用高质量标注数据对模型进行微调,使其具备行业相关的知识和行为能力,这有助于模型在特定领域中的表现。然后是训练奖励模型,用于评估回答的合理性,奖励模型在微调的第一阶段也可能会用到。最后是基于奖励模型的强化学习微调阶段,通过 PPO 方法使模型的回答与人类回答对齐,以减少不合理或有害的回答。

 

整个微调过程需要验证和检测,以确保模型在实际场景中的表现符合预期。最后需要强调的是,微调模型的过程中还需关注遗忘问题。微调后模型可能在某些方面提升,但通用能力可能下降。在微调中可能需要进行一些混合训练,以防止模型在特定领域微调时遗忘通用知识。这是微调过程中需要考虑的一些关键点。

 

InfoQ:大家普遍认为微调可以通过使用开源模型并进行微调来降低成本,具体的实现方式是怎么的?

 

杨春勇:微调的成本降低方法实际上有多种途径。我们目前主要采用了一种叫做 QLoRA 的方式,这种方式通过对量化后的部分重要结构微调,实现用更低成本得到微调后的模型结果。例如,我们使用 QLoRA 在 A100 40G 显卡上进行模型的微调,这种配置对于大部分企业和行业模型已经足够,单个分支在 40G 的显存下只需约 26G,训练速度也很快,一个 5 万条中文数据集只需 12 小时就可以完成训练,极大地节省了成本。

 

不过,每家公司的情况不同,要考虑自身的基础架构。有些公司可能拥有自有基础设施,比如运维团队和机器设备,从而不需要过多的成本投入。然而,对于没有这些资源的公司,可以考虑云厂商提供的云原生服务,这样训练时能够弹性使用资源,从而在成本上更加灵活。云厂商提供的弹性扩容和缩容功能也有助于在推理时降低成本。

 

综上所述,降低微调成本主要有两个方向:第一个方向是通过微调加速的方法,包括使用更低的 GPU 和显存;第二个方向是通过云厂商提供的弹性服务,根据具体使用情况灵活调整资源。

 

InfoQ:关于微调效果的问题,您有什么建议?

 

杨春勇:关于微调效果的问题,是否有效取决于具体情况。并不一定是仅仅由提示造成的问题。你需要根据评测结果来判断。如果你发现微调后在现有任务场景中表现不佳,那确实和提示有可能有关。这时,可能需要准备更多的提示。例如,ChatGPT 在提示和回答之间通常需要多轮回答,但很多公司可能没有足够的数据和条件,导致微调效果受限。目前,微调最大的难题可能是数据问题,但尚没有明确的解决办法。

 

数据对于大模型的落地确实存在一定要求。不同企业的数据情况各异,有些企业可能本身没有足够的数据收集,但在特定场景下也许足够使用,例如构建问答服务企业的知识库时,可以直接使用现有的知识库和文档数据进行微调。

 

大模型的迭代是一个更复杂的问题。如何建立一个让大模型不断优化的体系对于很多企业来说是具有挑战性的。在特定领域使用通用模型时,很多问题可能无法解决,此时如何获取并回应不能解决问题的反馈、然后对模型进行迭代,是一个关键的问题。这种迭代可以使大模型更加适应特定领域,最终实现行业级别的应用。

 

在引入新元素时,需要考虑如何实现迭代,特别是在面对解决不了的问题时,如何推动它的进化。我们正在思考这个问题,从用户界面的角度出发,通过应用的用户界面来获取良好的反馈。此外,还需要考虑在大模型应用失败时如何通过人工分发进行兜底。同时,还需要建立一个完善的日志系统以及训练数据分析系统等,以确保在这个基础上实现大模型的自动迭代和演进。

 

企业无需过于担忧自身的数据体系是否存在问题,而是应先开始使用大模型。然后,建立一个刚刚所提到的迭代演进系统,我认为这种方法可能会比依赖外部的所谓行业大模型更加可靠。

 

大模型应用技术栈

 

InfoQ:目前在行业中是否已经形成了完整的大模型应用技术栈呢?

 

杨春勇:之前我们已经介绍了大语言模型的应用构建方式,这也涵盖了大模型技术栈的一些方面。在这个技术栈中,我们需要使用一系列的技术和工具来构建应用,例如在构建知识库问答服务时,向量数据库是其中之一,我们需要了解其工作原理。同时,提示工程也是关键,它能够提升应用效果。任务规划编排也是技术栈的一部分,可以借助开源技术如 LangChain 和 LangFlow 来实现。大模型的缓存和监控也不可或缺。

 

此外,微调大模型也是技术栈中的一环。对比传统的 NLP 模型,大模型是一个补充,它在许多情况下表现出色。然而,对于一些特定领域,专有的 NLP 模型仍然更优。大模型在没有数据标注的情况下能够取得良好结果,尤其适用于数据标注成本高昂的场景。

 

总之,大语言模型构成了一个自己技术栈,强调了在特定情景下它的优势,如降低成本、提升效率。同时,传统的 NLP 技术依然有其重要性,大模型是其有益补充。每家公司可以根据实际情况尝试不同的开源模型。

 

InfoQ:金融领域强监管的特点,会对我们在选择模型方面会带来哪些限制?

 

杨春勇:在金融领域,强监管特点会对模型选择产生限制,一些外部模型如 ChatGPT 可能无法使用,很多云厂商内部提供的模型,如阿里、讯飞、星火等,在国内某些场景中可能是可用的,且不受监管问题影响。

 

在内部使用模型时,企业需根据是否用于内部应用或外部构建应用进行区分。内部应用的监管要求较为宽松,但对于外部应用则需要更多考虑,包括全方位评估和微调。

 

模型的微调是关键阶段之一,尤其是对于有害性的降低。尽管一些技术如 RHF 可用于降低模型有害性,但目前尚未完全解决,仍存在挑战。类似近期的 OpenAI 办的“黑客比赛”也反映出该问题的挑战性,需要学术界和工业界共同努力解决。

 

总体来说,合规问题是首要关注点,然后逐步提升模型的安全性。虽然不能马上实现完美解决,但不能因此完全放弃使用模型,而应在不断的迭代和提升中寻找平衡。

 

InfoQ:当前的大模型技术栈中,数据存储和访问的方式是否发生了重大演变?

 

杨春勇:当前的大模型技术栈中,数据存储方式确实发生了重大的演变——我们引入了向量数据库作为一个重要的组件。与传统的数据库不同,向量数据库旨在处理非结构化的数据,如文档、图像、音频等。这个概念并不是新的,早在上世纪 90 年代,美国国立卫生研究院和斯坦福大学就开始使用向量数据库。

 

在大模型时代,向量数据库扮演了关键的角色。它设计了一些索引方式,使我们能够根据对象的数值进行高效的检索,例如我们可以搜索相似的文本内容、可以根据语义搜索图像和音频。向量数据库逐渐成为大模型时代中不可或缺的存储组件。开源的向量数据库如 Facebook 的 Faiss、Milvus、Annoy 等,都为企业提供了可用的基础。

 

InfoQ:企业应该如何引入向量数据库?

 

杨春勇:对于企业来说,需要根据实际场景来评估。首先,你需要审查企业内部的结构化数据存储方式,确保现有的方式是否满足存储需求和应用场景。如果传统数据库已经能够满足需求,可能不需要引入新的向量数据库。

 

目前许多开源技术和服务提供商都为企业提供了轻松接入和跟进的机会。如果确实存在需求,企业可以考虑将内部数据转型并与大模型对接,以实现更高的效能。

 

InfoQ:金融行业使用开源大模型,可能会面临哪些挑战或者不太理想的情况?

 

杨春勇:金融行业如果使用开源模型会有一些挑战。首先,不能直接使用模型,需要进行评测并确保模型符合合规性要求。这需要涵盖多个方面,包括数据隐私和合规等。对外部应用而言,企业需要更严格地考虑合规性。确保平台设计考虑了合规性问题,同时在评测、调整和数据处理方面投入更多的资源。开源模型虽然提供了便利,但评估和调整过程是不可或缺的。

 

InfoQ:有观众问道:“很多人吐槽 LangChain 大多数工作都是在构造 Prompt,重用性低。”对此您怎么看?

 

杨春勇:LangChain 体现了一种设计思维,即强调工作流的可重用性。虽然在构建工作流时可能需要关注重用性,但 LangChain 本身的设计并不完全受其构造的 Prompt 和重用 ID 的影响。关键在于,其设计思想可以帮助我们串联各种组件,包括 AI 和其他元素的工作流,以便更好地复用组件,这种底层思想值得我们学习。

 

可能有人会批评 LangChain 的代码质量或者相比于其参考的论文,直接实现可能更快。但从另一个角度来看,重要的是让大家接受其理念,而不仅仅考虑代码的质量。此外,它的工程可以使不太熟悉的用户能够快速应用,这种贡献是相当大的。

 

InfoQ:有观众问道:“很多选型都是成本和性能的权衡,您可以分享下私有 Embedding 和 Embedding API 做选型的话您会怎么思考吗?”

 

杨春勇:在某些情况下,并不是说外部的 embedding 或 API 在你的场景下一定会产生最佳效果。我们经过测试发现,在某些场景中,比如 ChatGPT 生成的 embedding,其效果未必比常规训练模型改进的 embedding 效果更好。这涉及到国内和国外的差异,因为我们是使用中文,一个专注于中文预训练模型的 embedding 可能比一个通用的多语言 embedding 更具区分度。

 

另外,文本的长度也是一个影响因素。如果文本长度不是很长,大模型的 API 和私有 embedding 的差距可能不大。但是,随着文本长度变得更长更复杂,大模型可能会带来更好的效果。这时,你可以选择使用大模型提供的 API,从而在更长文本的情况下获得更好的效果。

 

总的来说,在一些复杂的情况下,尤其是文本较长的情况下,使用大模型提供的 API 可能会更合适。而对于较短的文本,可能私有的 embedding 效果更接近,选择更灵活。

 

InfoQ:当模型部署到生产环境后,开发者如何进行后续的管理维护和迭代优化工作?

 

杨春勇:关于模型部署和维护,大模型和传统模型的维护没有太大区别。首先,需要进行版本和数据管理。同时,保障线上模型的稳定性和版本管理是必要的,方便快速回滚等操作。此外,自动扩缩容也是关键,以满足模型的资源需求。

 

另外,部署前需要考虑资源优化,以提高推理速度并降低资源占用。针对这一点,有量化、剪枝、蒸馏等方法可以帮助实现目标。底层框架也可以提供提升推理速度的方法。

 

最后,在上线部署后,建立用户反馈系统至关重要,以便及时获得有关模型输出的反馈。这将有助于模型的改进和调优。整个过程需要深思熟虑,以确保模型的有效运营和持续优化。

 

InfoQ:关于防止恶意 Prompt 注入攻击的经验,您是否有相关的分享?

 

杨春勇:关于 Prompt 注入这个问题,实际上是一个相当复杂的课题。正如之前提到的,一些“黑客比赛”显示出对此类问题的潜在威胁。尽管我个人对此关注并不深入,但我认为解决这个问题的关键思路可能主要集中在 RLHF 方法上,需要在这个领域做出更多努力。

 

InfoQ:在实施大型模型的落地过程中,开发者可能会面临哪些问题?

 

杨春勇:在将大型模型应用于实际场景时,需要综合考虑多个因素。除了前面提到的各个方面,企业还需审慎评估数据难题以及在算力和人力上的投入成本。利用大模型构建应用涉及到一定难度,尤其需要关注创业成本,因此对于创业者而言,需权衡场景选择和资源投入。

 

事实上,许多从事大模型应用的企业如 Jasper,最初采用 OpenAI 的模型但随后因为没有自己的核心模型,已经开始了大规模裁员。这显示了大模型创业需要审慎,根据不同场景定制。因此,在将大模型落地应用中,需结合企业场景、资源投入、创业环境等因素综合考虑。这个过程可能需要根据场景进行研究,并在有了清晰场景后深入研究。

 

成本的影响因素

 

InfoQ:之前杨老师提到,选择大模型时的一个关键问题是成本。如果使用大模型构建一个应用,成本大致在什么数量级上?

 

杨春勇:在讨论应用大型语言模型时,其中的成本主要涉及到算力和开发方面。算力成本是一个主要因素,然后还需要考虑应用的开发以及系统集成等方面的费用。关于成本的量级,实际上与应用的具体情况密切相关。成本取决于多个因素,包括应用的开发复杂程度、并发量、对算力的需求以及系统集成规模等,因此不容易精确预测。

 

针对自研大模型的情况,需要考虑 GPU 的成本以及系统集成的投入。另一方面,如果选择使用第三方的接口,例如云厂商提供的服务,成本可能与调用的 token 数量相关。而这些 token 的使用量与业务规模和场景有关,难以简单确定成本。此外,系统集成和应用开发属于研发成本,这个部分也是因具体情况而异,不容易量化。

 

InfoQ:人力成本也是一项重要开销,人力支出通常在整体成本中占多大的比例?

 

杨春勇:人力成本往往在这个领域是占据重要位置的,可能排在开销的第一位。不论是自主研发还是采用第三方应用,技术实力通常是主要投入,尽管相对而言 GPU 等硬件开销并不占据太大比例。

 

InfoQ:您建议大家进入到这个行业里去从事相关工作吗?

 

杨春勇:当考虑在公司内部采用大型模型时,重要的是不要盲目追随潮流,而是应该根据自身的业务场景来进行判断。不妨从实际应用的角度出发,了解是否能够将大型模型应用到其中。

 

实际上,更有意义的方法可能是从落地应用的角度入手,根据遇到的问题进行研究和优化。这种方式可能更加实效,而不是仅仅因为大型模型目前很受瞩目就过早地投入大量的基础性工作。当然在学术界可能会有不同的情况,但在工业界,基于应用的思路可能更加适用。

 

InfoQ:您认为,未来大模型应用领域可能出现怎样的发展趋势?

 

杨春勇:在大模型应用领域,未来的发展趋势可能会更加清晰,特别是针对行业大模型。现阶段所谓的行业大模型或许还不够明确,但未来行业大模型可能会建立更完善的行业落地机制,促使大模型在各个领域真正落地并发挥作用。另一方面,我对于大模型所带来的通用人工智能影响更加关注。

 

在这个领域,有许多人正在从不同的角度进行研究,未来可能会取得迅速的进展。通用人工智能的实现将直接影响到普通人们的生活,它将更广泛地应用,甚至包括具身智能,如实体机器人,有可能会进入千家万户。这些变化都是我们可以预见到的未来发展方向。

 

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2023-08-29 18:204748

评论

发布
暂无评论
发现更多内容

架构2期-第六周作业(1)

浮生一梦

极客大学架构师训练营 2组 第六周作业

10 模块分解课后练习

ABS

CAP原理

幸福小子

分布式 CAP原理

学习总结之分布式数据库

幸福小子

架构第十周作业

Geek_Gu

极客大学架构师训练营

9 性能优化(三)课后练习

ABS

第六周作业总结

hunk

极客大学架构师训练营

架构师训练营第六周作业

xiaomao

架构师训练营 - week10 - 作业

lucian

极客大学架构师训练营

Week_10 总结

golangboy

极客大学架构师训练营

第十周作业

solike

面试被问Mybatis底层实现:你连这个知识点都说不明白?

小Q

Java 编程 程序员 架构 mybatis

CAP 原理简述

jorden wang

架构师训练营第六周总结:

xiaomao

week6 技术选型(二) 作业和学习总结

杨斌

架构师训练营第 10 周课后练习

叶纪想

极客大学架构师训练营

模块分解

wing

极客大学架构师训练营

【架构师训练营 1 期】第十周作业

诺乐

【架构师训练营 1 期】第十周学习总结

诺乐

与前端训练营的日子 --Week05

SamGo

学习

CAP原理

皮蛋

CAP CAP原理

架构师训练营第2期 第六周课后练习

月下独酌

极客大学架构师训练营

架构第十周总结

Geek_Gu

极客大学架构师训练营

目标检测之WBF(Weighted Boxes Fusion)

Dreamer

目标检测

第 6 周作业

Steven

极客大学架构师训练营

git 在未保存,add,commit,push下撤销的方法?收藏后再也不用找了

小松漫步

第十周 模块分解总结

蓝黑

极客大学架构师训练营

架构师训练营第十一周作业

Geek_4c1353

极客大学架构师训练营

模块分解-微服务,组件设计原则,领域驱动开发

garlic

极客大学架构师训练营

第十周学习总结

熊桂平

极客大学架构师训练营

架构师训练营2期 第六周总结

月下独酌

极客大学架构师训练营

我们如何训练和应用大模型 | InfoQ《极客有约》_企业动态_褚杏娟_InfoQ精选文章