В днешния бързо развиващ се технологичен пейзаж, големите езикови модели (LLMs) се превърнаха в мощни инструменти за обработка на естествен език. Въпреки това, тяхната зависимост от статични данни за обучение ограничава способността им да се адаптират към реални сценарии. Тъй като индустриите все повече изискват AI решения, способни да вземат информирани решения, интегрирането на външни инструменти и API-та стана от първостепенно значение. Прецизността, с която се използват тези инструменти, е от решаващо значение за подобряване на възможностите за вземане на решения и оперативната ефективност на автономните агенти, което в крайна сметка проправя пътя за разработването на сложни агентни работни процеси.
Тази статия разглежда техническите аспекти на извикването на инструменти с помощта на Amazon Nova модели чрез Amazon Bedrock. Освен това, тя изследва различни методи за персонализиране на тези модели, за да се постигне по-голяма точност при използването на инструменти.
Разширяване на възможностите на LLM с използване на инструменти
LLMs демонстрираха забележителна компетентност в широк спектър от задачи за естествен език. Въпреки това, истинският им потенциал се отключва чрез безпроблемна интеграция с външни инструменти като API-та и изчислителни рамки. Тези инструменти дават възможност на LLMs да имат достъп до данни в реално време, да извършват специфични за домейна изчисления и да извличат точна информация, като по този начин подобряват тяхната надеждност и гъвкавост.
Помислете за интегрирането на API за времето, което позволява на LLMs да предоставят точни и актуални прогнози за времето. По същия начин, Wikipedia API може да предостави на LLMs възможността да имат достъп до огромен хранилище на информация, което им позволява да отговарят на сложни заявки с по-голяма точност. В научни контексти, инструменти като калкулатори и символни двигатели могат да помогнат на LLMs да преодолеят числените неточности, което ги прави по-надеждни за сложни изчисления.
Чрез безпроблемна интеграция с тези инструменти, LLMs се развиват в стабилни, домейн-осведомени системи, способни да обработват динамични и специализирани задачи с реална полезност.
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, използвайки Converse и Invoke API-та. Впоследствие, моделите AmazonNova Micro и Amazon Nova Lite са фино настроени с помощта на подготвения набор от данни чрез Amazon Bedrock. След завършване на процеса на фино настройване, тези персонализирани модели се оценяват чрез осигурена пропускателна способност.
Инструменти
Използването на инструменти в LLMs обхваща две основни операции: избор на инструмент и извличане или генериране на аргументи. Например, помислете за инструмент, предназначен да извлича информация за времето за конкретно местоположение. Когато е представен със заявка като ‘Каква е температурата в Лондон в момента?’, LLM оценява наличните си инструменти, за да определи дали съществува подходящ инструмент. Ако бъде идентифициран подходящ инструмент, моделът го избира и извлича необходимите аргументи – в този случай ‘Лондон’ – за да конструира извикването на инструмента.
Всеки инструмент е щателно дефиниран с формална спецификация, която очертава неговата предвидена функционалност, задължителни и незадължителни аргументи и свързани типове данни. Тези точни дефиниции, наричани tool config, гарантират, че извикванията на инструменти се изпълняват правилно и че анализа на аргументи се привежда в съответствие с оперативните изисквания на инструмента. Придържайки се към това изискване, наборът от данни, използван в този пример, дефинира осем отделни инструмента, всеки със свои собствени аргументи и конфигурации, всички структурирани в JSON формат. Осемте дефинирани инструмента са следните:
- weather_api_call: Персонализиран инструмент, предназначен за извличане на информация за времето.
- stat_pull: Персонализиран инструмент за идентифициране на статистически данни.
- text_to_sql: Персонализиран инструмент за конвертиране на текст в SQL заявки.
- terminal: Инструмент за изпълнение на скриптове в рамките на терминална среда.
- wikipedia: Wikipedia API инструмент за търсене през страници на Wikipedia.
- duckduckgo_results_json: Инструмент за търсене в интернет, който използва DuckDuckGo за извършване на търсения.
- youtube_search: YouTube API инструмент за търсене за търсене на видео списъци.
- 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), или програмно.
Извикване на инструменти с базови модели чрез 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 обект.
Процес на фино настройване
Процесът на фино настройване може да бъде извършен с помощта на конзолата или API-тата на Amazon Bedrock. Процесът включва посочване на модела, който трябва да бъде фино настроен, набора от данни за фино настройване и желаните параметри за обучение.
Параметрите за обучение контролират различни аспекти на процеса на фино настройване, като например скоростта на обучение, размера на партидата и броя на епохите. Скоростта на обучение определя величината на корекциите на параметрите, направени по време на всяка итерация. Размерът на партидата определя броя на примерите, обработени във всяка итерация. Броят на епохите определя броя на пътите, когато моделът е изложен на целия набор от данни за обучение.
Оценка на фино настроения модел
След като процесът на фино настройване е завършен, е от съществено значение да се оцени производителността на фино настроения модел. Това може да бъде направено чрез тестване на модела върху отделен набор от данни за тестване, който не е бил използван по време на процеса на фино настройване.
Наборът от данни за тестване трябва да бъде представителен за типовете въпроси и извиквания на инструменти, които моделът се очаква да обработва в реални сценарии. Производителността на модела може да бъде оценена чрез измерване на показатели като точност, прецизност, отзивчивост и F1-резултат.
Ползи от персонализирането на Amazon Nova модели за използване на инструменти
Персонализирането на Amazon Nova модели за използване на инструменти предлага няколко предимства:
- Подобрена точност: Финото настройване на модела върху специфичен за задачата набор от данни може значително да подобри точността на избора на инструмент и извличането на аргументи.
- Повишена ефективност: Фино настроените модели често могат да изпълняват задачи за използване на инструменти по-ефективно от предварително обучените модели.
- Подобрена адаптивност: Финото настройване позволява на модела да се адаптира към специфични домейни и случаи на употреба.
- Намалени разходи: В някои случаи, финото настройване може да намали изчислителните ресурси, необходими за изпълнение на задачи за използване на инструменти.
Заключение
Персонализирането на Amazon Nova модели за използване на инструменти е ценна техника за подобряване на производителността и адаптивността на LLMs. Чрез фино настройване на модела върху специфичен за задачата набор от данни, разработчиците могат значително да подобрят точността, ефективността и адаптивността на приложенията за използване на инструменти. Тъй като индустриите все повече изискват AI решения, способни да вземат информирани решения, персонализирането на LLMs за използване на инструменти ще става все по-важно.