Function calling and OpenAI Cookbook
Основное ограничение лингвистических моделей в том, что они обрабатывают и генерируют текст, но не могут выполнять действия. Различный программы с поддержкой агентов (кстати пост про агентов уже написан, но никак не опубликую его, так как нужно сокращать, получился огромным) аля AutoGPT и т.д., а так же библиотеки вроде LangChain пытаются это изменить, добавляя возможность выполнять кусочки кода, но сталкиваются с тем, что сгенерированный текст в неиспользуемом формате даже не смотря на просьбу “генерируй в формате JSON”.
Function calling это попытка перенести логику внутрь лингвистической модели.
На запрос пользователя “What's the weather like in Boston now?” мы должны сначала понять, что нужно будет использовать функцию получения погоды, дальше выделить из запроса в общем виде отдельно город (Boston) и дату (now, еще и понять, какое сегодня число) и потом все эти данные передать в погодное API. Технически можно это сделать через LangChain сделав серию вызовов, перепроверив, что необходимые данные получены, а дальше дернуть функцию, но опыт показывает, что в некоторых ситуация все равно произойдет ошибка обработки.
Function calling позволяет систематизировать такие задачи и получить на выходе правильно упакованный объект. Предполагаю, что ребята дообучили модель, чтобы она хорошо с этим справлялась.
Я думаю, что Function calling даст еще один больой толчок развития стартапов и проектов поверх OpenAI GPT.
- торговля акциями (принятие решение и выставления ставок)
- отправка писем (отправь Маше последний отчет)
- рекомендации (глянь новые фильмы и договорить с подругой сходить в кино)
У OpenAI есть очень крутые Cookbooks - по сути это подробно описанные примеры применения OpenAI API. Даже не документация, а именно задача-рассуждение-реализация-объяснения. Например на данных википедии подробно описывается подход файнтюнинга и embeddings, показывается реализации одной и той же задачи двумя разными способами, показываются плюсы/минусы каждого подхода и когда какой стоит использовать. Возвращаясь к Function Calling подробное описание и пример использования доступен по ссылке https://github.com/openai/openai-cookbook/blob/main/examples/How_to_call_functions_with_chat_models.ipynb Другие кукбуки доступны тут: https://github.com/openai/openai-cookbook Если вы пишите свои программы - кукбук отличная точка для старта, которая ускоряет разработку. Для совсем ленивых можно скормить GPT-4 текстом описание вашей задачи и приложение текст из кукбука и получить готовый год. P.S. LangChain уже поддержал Function Calling https://github.com/hwchase17/langchain/blob/master/docs/modules/agents/tools/tools_as_openai_functions.ipynb