定制Amazon Nova模型提升工具利用率

通过定制Amazon Nova模型提升工具利用率

在当今快速发展的技术环境中,大型语言模型(LLMs)已成为强大的自然语言处理工具。然而,它们对静态训练数据的依赖限制了其适应真实世界场景的能力。随着各行各业对能够做出明智决策的AI解决方案的需求日益增长,集成外部工具和API变得至关重要。这些工具的利用精度对于提高自主代理的决策能力和运营效率至关重要,最终为开发复杂的代理工作流铺平了道路。

本文深入探讨了通过Amazon Bedrock使用Amazon Nova模型进行工具调用的技术方面。此外,它还探讨了各种定制这些模型的方法,以在工具利用方面实现更高的准确性。

利用工具扩展LLM能力

LLM已在广泛的自然语言任务中表现出卓越的性能。然而,通过与API和计算框架等外部工具的无缝集成,才能释放它们的真正潜力。这些工具使LLM能够访问实时数据、执行特定领域的计算并检索精确信息,从而增强其可靠性和多功能性。

考虑集成一个天气API,它使LLM能够提供准确和最新的天气预报。同样,Wikipedia API可以使LLM能够访问庞大的信息库,从而使它们能够以更高的准确性响应复杂的查询。在科学环境中,计算器和符号引擎等工具可以帮助LLM克服数值不准确的问题,使其在复杂计算中更加可靠。

通过与这些工具的无缝集成,LLM演变为强大、领域感知的系统,能够处理具有实际应用价值的动态和专业化任务。

Amazon Nova模型和Amazon Bedrock

Amazon Nova模型于2024年12月在AWS re:Invent上推出,旨在提供卓越的性价比。这些模型在关键的文本理解基准测试中提供最先进的性能,同时保持成本效益。该系列包含三个变体:

  • Micro: 仅文本模型,针对边缘使用进行了优化,提供超高效的性能。
  • Lite: 多模态模型,在多功能性和性能之间取得了平衡。
  • Pro: 高性能多模态模型,旨在应对复杂的任务。

Amazon Nova模型可用于各种任务,包括生成和开发代理工作流。这些模型具有通过一种称为工具调用的过程与外部工具或服务交互的能力。可以通过Amazon Bedrock控制台和Converse和Invoke等API访问此功能。

除了使用预训练模型外,开发人员还可以选择使用多模态数据(Pro和Lite)或文本数据(Pro,Lite和Micro)来微调这些模型。这种灵活性使开发人员能够达到所需的准确性、延迟和成本效益水平。此外,开发人员可以利用Amazon Bedrock控制台和API来执行自助式自定义微调,并将较大的模型提炼为较小的模型。

解决方案概述

该解决方案包括准备专门为工具使用而设计的自定义数据集。然后,使用该数据集通过Amazon Bedrock评估Amazon Nova模型的性能,利用Converse和Invoke API。随后,通过Amazon Bedrock使用准备好的数据集对AmazonNova Micro和Amazon Nova Lite模型进行微调。完成微调过程后,将通过预置吞吐量评估这些定制模型。

工具

LLM中的工具使用包括两个基本操作:工具选择和参数提取或生成。例如,考虑一个旨在检索特定位置天气信息的工具。当出现诸如“现在伦敦的天气如何?”之类的查询时,LLM会评估其可用工具以确定是否存在合适的工具。如果识别出合适的工具,则模型会选择它并提取必要的参数(在本例中为“伦敦”)以构建工具调用。

每个工具都使用正式规范进行精心定义,该规范概述了其预期功能、强制性和可选参数以及关联的数据类型。这些精确的定义(称为_tool config_)确保工具调用正确执行,并且参数解析与工具的操作要求相符。为了满足此要求,本示例中使用的数据集定义了八个不同的工具,每个工具都有自己的参数和配置,所有这些工具都以JSON格式结构化。定义的八个工具如下:

  • weather_api_call: 用于检索天气信息的自定义工具。
  • stat_pull: 用于识别统计信息的自定义工具。
  • text_to_sql: 用于将文本转换为SQL查询的自定义工具。
  • terminal: 用于在终端环境中执行脚本的工具。
  • wikipedia: 用于搜索Wikipedia页面的Wikipedia API工具。
  • duckduckgo_results_json: 一个互联网搜索工具,使用DuckDuckGo执行搜索。
  • youtube_search: 用于搜索视频列表的YouTube API搜索工具。
  • pubmed_search: 用于搜索PubMed摘要的PubMed搜索工具。

数据集

本解决方案中使用的数据集是一个合成工具调用数据集,是在Amazon Bedrock的基础模型(FM)的帮助下创建的,随后经过手动验证和调整。开发此数据集的目的是为先前讨论的八个工具生成不同的问题和工具调用集合,使另一个模型能够从这些示例中学习并概括为未见过的工具调用。

数据集中的每个条目都构造为一个JSON对象,其中包含定义问题(模型的自然语言用户查询)、回答用户查询所需的真实工具、其参数(包含执行工具所需的参数的字典)以及其他约束(例如order_matters: boolean,指示参数的顺序是否至关重要,以及arg_pattern: optional,用于参数验证或格式化的正则表达式(regex))的键值对。这些真实标签用于监督预训练的Amazon Nova模型的训练,使其适应工具的使用。此过程称为_监督微调_,将在以下各节中进一步探讨。

训练集包含560个问题,而测试集包含120个问题。测试集的结构包括每个工具类别15个问题,总计120个问题。

准备用于Amazon Nova的数据集

为了有效地将此数据集与Amazon Nova模型一起使用,必须按照特定的聊天模板格式化数据。本机工具调用包含一个转换层,该层在将输入传递给模型之前将其格式化为适当的格式。在本解决方案中,采用了一种DIY工具使用方法,采用了自定义提示模板。具体来说,必须将系统提示、嵌入工具配置的用户消息以及真实标签添加为助手消息。

将数据集上传到Amazon S3

此步骤对于使Amazon Bedrock能够在微调过程中访问训练数据至关重要。可以通过Amazon Simple Storage Service(Amazon S3)控制台或以编程方式上传数据集。

通过Amazon Bedrock API使用基本模型进行工具调用

创建并按照要求格式化工具使用数据集后,可以使用它来测试Amazon Nova模型。Converse和Invoke API都可以在Amazon Bedrock中用于工具使用。Converse API支持动态的、上下文感知的对话,允许模型参与多轮对话,而Invoke API允许用户在Amazon Bedrock中调用和与底层模型交互。

要使用Converse API,消息、系统提示(如果有)和工具配置将直接发送到API。

要从LLM响应中解析工具和参数,请考虑以下问题:“嘿,现在巴黎的温度是多少?”。将解析输出以识别回答问题所需的工具和参数。

微调Amazon Nova模型以增强工具使用

微调是将像Amazon Nova这样的预训练语言模型适应特定任务的关键步骤。通过在专门针对所需应用程序的数据集上训练模型,该模型可以学习以更高的准确性和效率执行任务。在工具使用的上下文中,微调可以显着提高模型选择适当工具和提取正确参数的能力。

微调过程涉及调整模型的内部参数,以最大程度地减少其预测与训练数据集中真实标签之间的差异。这通常通过迭代过程来实现,在该过程中,模型会反复暴露于训练数据,并根据观察到的错误调整其参数。

准备微调数据集

应仔细选择微调数据集,以反映模型有望在实际场景中处理的问题和工具调用类型。该数据集应包括各种示例,涵盖不同的工具类别和参数模式。

数据集中的每个示例都应包含一个问题、要调用的相应工具以及执行该工具所需的参数。参数应以结构化方式格式化,通常为JSON对象。

微调过程

可以使用Amazon Bedrock控制台或API执行微调过程。该过程涉及指定要微调的模型、微调数据集以及所需的训练参数。

训练参数控制微调过程的各个方面,例如学习率、批次大小和epoch数。学习率确定在每次迭代期间进行的参数调整幅度。批次大小确定每次迭代中处理的示例数。epoch数确定模型暴露于整个训练数据集的次数。

评估微调后的模型

微调过程完成后,必须评估微调后模型的性能。这可以通过在未在微调过程中使用的单独测试数据集上测试模型来完成。

测试数据集应代表模型有望在实际场景中处理的问题和工具调用类型。可以通过测量诸如准确率、精确率、召回率和F1分数之类的指标来评估模型的性能。

定制Amazon Nova模型以用于工具使用的好处

定制Amazon Nova模型以用于工具使用具有以下几个优点:

  • 提高准确性: 在特定于任务的数据集上微调模型可以显着提高工具选择和参数提取的准确性。
  • 提高效率: 微调后的模型通常可以比预训练模型更有效地执行工具使用任务。
  • 增强适应性: 微调使模型可以适应特定领域和用例。
  • 降低成本: 在某些情况下,微调可以减少执行工具使用任务所需的计算资源。

结论

定制Amazon Nova模型以用于工具使用是一种有价值的技术,可增强LLM的性能和适应性。通过在特定于任务的数据集上微调模型,开发人员可以显着提高工具使用应用程序的准确性、效率和适应性。随着各行各业对能够做出明智决策的AI解决方案的需求日益增长,为工具使用定制LLM将变得越来越重要。