Расширение возможностей LLM с помощью использования инструментов
Большие языковые модели (LLM) продемонстрировали замечательное мастерство в широком спектре задач обработки естественного языка. Однако их истинный потенциал раскрывается благодаря бесшовной интеграции с внешними инструментами, такими как API и вычислительные платформы. Эти инструменты позволяют LLM получать доступ к данным в режиме реального времени, выполнять предметно-ориентированные вычисления и извлекать точную информацию, тем самым повышая их надежность и универсальность.
Рассмотрим интеграцию API погоды, которая позволяет LLM предоставлять точные и актуальные прогнозы погоды. Точно так же API Википедии может предоставить LLM возможность доступа к обширному репозиторию информации, позволяя им отвечать на сложные запросы с большей точностью. В научных контекстах такие инструменты, как калькуляторы и символические движки, могут помочь LLM преодолеть числовые неточности, делая их более надежными для сложных вычислений.
Благодаря бесшовной интеграции с этими инструментами LLM превращаются в надежные, предметно-ориентированные системы, способные справляться с динамическими и специализированными задачами, приносящими реальную пользу.
Модели Amazon Nova и Amazon Bedrock
Модели Amazon Nova, представленные на AWS re:Invent в декабре 2024 года, предназначены для обеспечения исключительного соотношения цены и производительности. Эти модели предлагают современную производительность по ключевым тестам понимания текста, сохраняя при этом экономическую эффективность. Серия состоит из трех вариантов:
- Micro: Модель только для текста, оптимизированная для использования на периферии, обеспечивающая сверхэффективную производительность.
- Lite: Мультимодальная модель, которая обеспечивает баланс между универсальностью и производительностью.
- Pro: Высокопроизводительная мультимодальная модель, предназначенная для решения сложных задач.
Модели Amazon Nova можно использовать для широкого спектра задач, включая генерацию и разработку агентных рабочих процессов. Эти модели обладают возможностью взаимодействия с внешними инструментами или службами посредством процесса, известного как вызов инструментов. Эта функция доступна через консоль Amazon Bedrock и API, такие как Converse и Invoke.
В дополнение к использованию предварительно обученных моделей разработчики имеют возможность точно настроить эти модели с помощью мультимодальных данных (Pro и Lite) или текстовых данных (Pro, Lite и Micro). Эта гибкость позволяет разработчикам достичь желаемого уровня точности, задержки и экономической эффективности. Кроме того, разработчики могут использовать консоль Amazon Bedrock и API для выполнения самостоятельной пользовательской тонкой настройки и дистилляции более крупных моделей в более мелкие.
Обзор решения
Решение включает в себя подготовку пользовательского набора данных, специально разработанного для использования инструментов. Этот набор данных затем используется для оценки производительности моделей Amazon Nova через Amazon Bedrock с использованием API Converse и Invoke. Впоследствии модели AmazonNova Micro и Amazon Nova Lite точно настраиваются с использованием подготовленного набора данных через Amazon Bedrock. После завершения процесса тонкой настройки эти настроенные модели оцениваются посредством предоставленной пропускной способности.
Инструменты
Использование инструментов в LLM охватывает две основные операции: выбор инструмента и извлечение или генерация аргументов. Например, рассмотрим инструмент, предназначенный для получения информации о погоде в конкретном месте. Когда представлен запрос, например, ‘Какая сейчас погода в Лондоне?’, LLM оценивает свои доступные инструменты, чтобы определить, существует ли подходящий инструмент. Если подходящий инструмент идентифицирован, модель выбирает его и извлекает необходимые аргументы — в данном случае ‘Лондон’ — для создания вызова инструмента.
Каждый инструмент тщательно определен с помощью формальной спецификации, в которой указаны его предполагаемые функции, обязательные и необязательные аргументы, а также связанные типы данных. Эти точные определения, называемые конфигурацией инструмента, гарантируют правильное выполнение вызовов инструментов и соответствие анализа аргументов операционным требованиям инструмента. В соответствии с этим требованием набор данных, используемый в этом примере, определяет восемь различных инструментов, каждый со своими аргументами и конфигурациями, все структурированные в формате JSON. Определены следующие восемь инструментов:
- weather_api_call: Пользовательский инструмент, предназначенный для получения информации о погоде.
- stat_pull: Пользовательский инструмент для выявления статистики.
- text_to_sql: Пользовательский инструмент для преобразования текста в запросы SQL.
- terminal: Инструмент для выполнения скриптов в среде терминала.
- wikipedia: Инструмент API Википедии для поиска по страницам Википедии.
- duckduckgo_results_json: Инструмент поиска в Интернете, использующий DuckDuckGo для выполнения поиска.
- youtube_search: Инструмент поиска API YouTube для поиска видеороликов.
- pubmed_search: Инструмент поиска PubMed для поиска тезисов PubMed.
Набор данных
Набор данных, используемый в этом решении, представляет собой синтетический набор данных для вызова инструментов, созданный с помощью базовой модели (FM) из Amazon Bedrock и впоследствии проверенный и скорректированный вручную. Этот набор данных был разработан для набора из восьми инструментов, обсуждавшихся ранее, с целью создания разнообразной коллекции вопросов и вызовов инструментов, которые позволяют другой модели учиться на этих примерах и обобщать их на невидимые вызовы инструментов.
Каждая запись в наборе данных структурирована как объект JSON, содержащий пары ‘ключ-значение’, которые определяют вопрос (запрос пользователя на естественном языке для модели), основной инструмент, необходимый для ответа на запрос пользователя, его аргументы (словарь, содержащий параметры, необходимые для выполнения инструмента), и дополнительные ограничения, такие как order_matters: boolean
, который указывает, имеет ли значение порядок аргументов, и arg_pattern: optional
, регулярное выражение (regex) для проверки или форматирования аргументов. Эти основные метки используются для контроля обучения предварительно обученных моделей Amazon Nova, адаптируя их для использования инструментов. Этот процесс, известный как контролируемая тонкая настройка, более подробно рассматривается в следующих разделах.
Набор данных для обучения содержит 560 вопросов, а набор данных для тестирования — 120 вопросов. Набор данных для тестирования структурирован таким образом, чтобы включать 15 вопросов на категорию инструментов, всего 120 вопросов.
Подготовка набора данных для Amazon Nova
Чтобы эффективно использовать этот набор данных с моделями Amazon Nova, необходимо отформатировать данные в соответствии с определенным шаблоном чата. Собственный вызов инструментов включает уровень перевода, который форматирует входные данные в соответствующий формат, прежде чем передавать их модели. В этом решении принят подход ‘сделай сам’ к использованию инструментов, использующий пользовательский шаблон подсказки. В частности, системная подсказка, сообщение пользователя, встроенное в конфигурацию инструмента, и основные метки должны быть добавлены в качестве сообщения помощника.
Загрузка набора данных в Amazon S3
Этот шаг необходим для того, чтобы Amazon Bedrock мог получить доступ к данным обучения во время процесса тонкой настройки. Набор данных можно загрузить либо через консоль Amazon Simple Storage Service (Amazon S3), либо программно.
Вызов инструментов с базовыми моделями через API Amazon Bedrock
После создания и форматирования набора данных для использования инструментов в соответствии с требованиями его можно использовать для тестирования моделей Amazon Nova. Для использования инструментов в Amazon Bedrock можно использовать как API Converse, так и Invoke. API Converse обеспечивает динамичные, контекстно-зависимые разговоры, позволяя моделям участвовать в многоходовых диалогах, а API Invoke позволяет пользователям вызывать базовые модели и взаимодействовать с ними в Amazon Bedrock.
Чтобы использовать API Converse, сообщения, системная подсказка (если есть) и конфигурация инструмента отправляются непосредственно в API.
Чтобы проанализировать инструмент и аргументы из ответа LLM, рассмотрим вопрос: ‘Привет, какая сейчас температура в Париже?’. Выходные данные будут проанализированы, чтобы определить инструмент и аргументы, необходимые для ответа на вопрос.
Тонкая настройка моделей Amazon Nova для расширенного использования инструментов
Тонкая настройка — это важный шаг в адаптации предварительно обученных языковых моделей, таких как Amazon Nova, к конкретным задачам. Обучая модель на наборе данных, адаптированном к желаемому приложению, модель может научиться выполнять задачу с большей точностью и эффективностью. В контексте использования инструментов тонкая настройка может значительно улучшить способность модели выбирать подходящий инструмент и извлекать правильные аргументы.
Процесс тонкой настройки включает в себя корректировку внутренних параметров модели, чтобы минимизировать разницу между ее прогнозами и основными метками в наборе данных для обучения. Обычно это достигается посредством итеративного процесса, когда модель многократно подвергается воздействию данных обучения, а ее параметры корректируются на основе наблюдаемых ошибок.
Подготовка набора данных для тонкой настройки
Набор данных для тонкой настройки следует тщательно курировать, чтобы он отражал типы вопросов и вызовов инструментов, с которыми модель должна справляться в реальных сценариях. Набор данных должен включать в себя разнообразный диапазон примеров, охватывающих различные категории инструментов и шаблоны аргументов.
Каждый пример в наборе данных должен состоять из вопроса, соответствующего инструмента, который необходимо вызвать, и аргументов, необходимых для выполнения инструмента. Аргументы должны быть отформатированы структурированным образом, обычно в виде объекта JSON.
Процесс тонкой настройки
Процесс тонкой настройки можно выполнить с помощью консоли Amazon Bedrock или API. Этот процесс включает в себя указание модели, подлежащей тонкой настройке, набора данных для тонкой настройки и желаемых параметров обучения.
Параметры обучения управляют различными аспектами процесса тонкой настройки, такими как скорость обучения, размер пакета и количество эпох. Скорость обучения определяет величину корректировок параметров, вносимых во время каждой итерации. Размер пакета определяет количество примеров, обрабатываемых в каждой итерации. Количество эпох определяет количество раз, когда модель подвергается воздействию всего набора данных для обучения.
Оценка модели с тонкой настройкой
После завершения процесса тонкой настройки важно оценить производительность модели с тонкой настройкой. Это можно сделать, протестировав модель на отдельном наборе данных для тестирования, который не использовался во время процесса тонкой настройки.
Набор данных для тестирования должен быть репрезентативным для типов вопросов и вызовов инструментов, с которыми модель должна справляться в реальных сценариях. Производительность модели можно оценить, измерив такие показатели, как точность, прецизионность, полнота и F1-оценка.
Преимущества настройки моделей Amazon Nova для использования инструментов
Настройка моделей Amazon Nova для использования инструментов предлагает несколько преимуществ:
- Повышенная точность: Тонкая настройка модели на наборе данных, ориентированном на конкретную задачу, может значительно повысить точность выбора инструмента и извлечения аргументов.
- Повышенная эффективность: Модели с тонкой настройкой часто могут выполнять задачи использования инструментов более эффективно, чем предварительно обученные модели.
- Улучшенная адаптируемость: Тонкая настройка позволяет модели адаптироваться к конкретным доменам и вариантам использования.
- Сокращение затрат: В некоторых случаях тонкая настройка может снизить вычислительные ресурсы, необходимые для выполнения задач использования инструментов.
Заключение
Настройка моделей Amazon Nova для использования инструментов — ценный метод повышения производительности и адаптируемости LLM. Тонко настроив модель на наборе данных, ориентированном на конкретную задачу, разработчики могут значительно повысить точность, эффективность и адаптируемость приложений для использования инструментов. Поскольку отрасли все больше нуждаются в решениях на основе ИИ, способных принимать обоснованные решения, настройка LLM для использования инструментов будет становиться все более важной.