Агенты, работающие на Llama 3.1: Тестирование возможностей вызова функций

Исследуйте возможности Llama 3.1 в вызове функций и использовании инструментов. Узнайте, как использовать инструменты наблюдаемости, такие как LangTrace, для мониторинга производительности LLM. Откройте для себя сильные и слабые стороны различных размеров моделей Llama в обработке сложных задач.

15 февраля 2025 г.

party-gif

Раскройте силу Llama 3.1 с помощью этого всеобъемлющего руководства по его возможностям вызова функций. Узнайте, как этот передовой языковой модель может использоваться в качестве интеллектуального агента, плавно интегрируясь с API для решения сложных задач. Изучите аспекты наблюдаемости и получите представление о производительности модели, что позволит вам принимать обоснованные решения для вашего следующего проекта.

Возможности Llama 3.1 и агентной системы Meta

Одной из ключевых возможностей Llama 3.1, на которую Meta акцентировала внимание в релизе, является вызов функций или использование инструментов. Автор хотел проверить эту возможность.

Автор сначала настроил необходимые инструменты и API, включая API Groq, который предоставляет один из самых быстрых API для взаимодействия с Llama 3.1. Они протестировали модели Llama 3.1 на 70 миллиардов и 8 миллиардов параметров, а также специально настроенную версию модели на 70 миллиардов параметров от Groq.

Автор начал с простого примера вызова одной функции, а затем перешел к более сложным сценариям, включающим параллельные и вложенные вызовы функций. Они использовали платформу наблюдаемости LangTrace для отслеживания использования токенов и других метрик во время экспериментов.

Настройка LangTrace для наблюдаемости

В этом разделе мы настроим LangTrace, открытую платформу наблюдаемости и открытого телеметрии для приложений LLM. LangTrace позволяет нам отслеживать количество запросов и токенов, передаваемых между нашей локальной средой и API LLM.

Прежде всего, нам нужно установить необходимые пакеты, включая Python SDK LangTrace, Python SDK Groq и Python SDK OpenAI (хотя мы не используем LLM OpenAI, это зависимость SDK LangTrace).

Затем мы настроим наши ключи API. Для этого эксперимента нам строго не нужен LangTrace, но он может предоставить ценные сведения об использовании наших токенов. LangTrace похож на функциональность LangSmith, платформу наблюдаемости от LangChain, но поддерживает более широкий спектр поставщиков, включая OpenAI, Groq, Cohere и Perplexity.

Тестирование вызова функций с моделями Llama 3.1 70B и 8B

Автор начинает, подчеркивая выпуск Meta агентской системы вокруг вызова функций в Llama 3.1. Поскольку автор не настроил систему локально, они решают использовать API Groq, который предоставляет один из самых быстрых API для взаимодействия с Llama 3.1.

Автор тестирует модели Llama 3.1 на 70 млрд и 8 млрд параметров, а также специально настроенную версию модели на 70 млрд параметров от Groq. Они используют LangTrace, открытую платформу наблюдаемости для приложений LLM, для отслеживания количества запросов и токенов, обмениваемых между локальной средой и API LLM.

Автор начинает с простого примера, где модели нужно использовать функцию "получить результаты игр", чтобы определить победителя в матче НБА. Модель на 70 млрд успешно справляется с этой задачей, и автор изучает данные LangTrace, чтобы понять внутренний механизм.

Параллельные вызовы функций и вложенные последовательные вызовы функций

Модель Llama 3.1 на 70 млрд продемонстрировала впечатляющие возможности в обработке параллельных вызовов функций и последовательных вложенных вызовов функций.

Когда ей был представлен сложный запрос на планирование поездки из Нью-Йорка в Париж, включая проверку погоды, поиск рейсов, отелей и достопримечательностей, 70-миллиардная модель смогла разложить задачу и выполнить параллельные вызовы функций, чтобы собрать необходимую информацию. Затем она объединила результаты различных функций, чтобы предоставить всестороннее резюме деталей поездки.

Модель также продемонстрировала способность справляться с вложенными вызовами функций, когда вывод одной функции использовался в качестве входных данных для другой. В сценарии рекомендации фильмов модель смогла сначала выбрать фильм на основе предпочтений пользователя, а затем рекомендовать подходящую закуску и платформу для просмотра.

Трудности модели Llama 3.1 8B с вызовом функций

Модель Llama 3.1 на 8 млрд параметров значительно хуже справлялась со сложными задачами вызова функций по сравнению с более крупной 70-миллиардной моделью. Некоторые ключевые наблюдения:

  • Для простой функции "получить результаты игр" 8-миллиардная модель справлялась без проблем, аналогично 70-миллиардной модели.

  • Однако, когда дело дошло до параллельных вызовов функций для задач, таких как планирование поездки, 8-миллиардная модель споткнулась. Она не смогла предоставить всестороннюю информацию о погоде, рейсах, отелях и достопримечательностях, часто галлюцинируя детали или не перечисляя доступные варианты.

  • С расширенным набором функций 8-миллиардная модель столкнулась с еще большими трудностями, галлюцинируя информацию о событиях и деталях погоды, которые не запрашивались.

Модель Llama 3 с тонкой настройкой от Groq для вызова функций

Специализированная модель вызова функций от Groq также показала плохие результаты в тестах, часто запрашивая более конкретные детали, вместо того, чтобы эффективно использовать предоставленные инструменты.

В целом, 70-миллиардная модель Llama 3.1 продемонстрировала гораздо более сильные возможности в обработке параллельных и вложенных вызовов функций, предоставляя всесторонние и точные ответы. 8-миллиардная модель просто не кажется готовой для серьезных задач вызова функций или агентских задач, а специализированная модель Groq также показала низкие результаты в этих тестах.

Для наблюдаемости и трассировки этих вызовов функций LLM открытая платформа LangTrace оказалась полезным инструментом для отслеживания использования токенов и взаимодействия с API.

Часто задаваемые вопросы