ДалееСледующее руководство
Функции влияния для атрибуции обучающих данных
Технический
Техническое РУКОВОДСТВО
Параллельный вызов функций — это когда языковая модель запрашивает несколько вызовов инструментов в одном ответе, поэтому приложение может запускать их одновременно и возвращать все результаты вместе.
Это важно, поскольку сокращает количество циклов обработки и задержку для независимых поисков, но безопасно только тогда, когда вызовы не зависят друг от друга и когда приложение правильно обрабатывает порядок, побочные эффекты и частичные сбои.
При использовании базового инструмента модель запрашивает один инструмент, приложение запускает его, возвращает результат, и модель продолжает работать. Каждый шаг стоит полного путешествия модели туда и обратно. При параллельном вызове функций модель может отправлять несколько запросов вызова инструментов в одном ответе, каждый со своим идентификатором, именем и аргументами. Приложение выполняет их, часто одновременно, и отправляет обратно один результат для каждого вызова, каждый из которых связан со своим идентификатором, чтобы модель знала, какой результат к какому запросу принадлежит. OpenAI добавил параллельный вызов функций в свой API в конце 2023 года, а другие крупные поставщики поддерживают несколько вызовов инструментов за один раз. Некоторые API предоставляют настройку, позволяющую отключить это поведение, когда приложению требуется строго один вызов за раз. Параллельные вызовы безопасны, если они независимы: операции чтения, которые не влияют друг на друга, например поиск нескольких записей или выполнение нескольких поисков. Они опасны, когда один вызов требует вывода другого или когда вызовы имеют взаимодействующие побочные эффекты, такие как две записи в одну и ту же запись или списание средств с последующим возвратом средств. Порядок, в котором модель перечисляет вызовы, не является гарантированным порядком выполнения, и приложение может завершить их в любом порядке. Распространенным заблуждением является то, что модель запускает инструменты параллельно. Это не так; он только запрашивает их. Ответственность за параллелизм, таймауты и повторные попытки лежит на приложении. Еще одно заблуждение состоит в том, что если один вызов завершается неудачей, то весь пакет завершается неудачно. Хорошо построенное приложение возвращает каждый результат индивидуально, включая ошибки, поэтому модель может продолжить работу над тем, что удалось. Для зависимых шагов модель должна вызвать первый инструмент, дождаться его результата, а затем вызвать следующий. Хорошие описания инструментов и системные инструкции помогут определить, когда производить пакетную обработку, а когда — последовательность.
Архитектурные решения влияют на производительность и эксплуатационные расходы на протяжении многих лет.
Техническое образование помогает командам выбрать правильный стек, а не только самый новый.
Лучший инженерный выбор снижает вероятность возникновения проблем с надежностью на производстве.
По мере того, как агенты берутся за более масштабные задачи, использование параллельных инструментов становится рутинным способом сокращения задержек, а модели обучаются распознавать, какие вызовы являются независимыми. В Harnesses также добавляются такие функции, как планирование с учетом зависимостей и блокировка ресурсов, чтобы пакетные запросы могли выполняться безопасно. Оценка модели относительно зависимостей, вероятно, улучшится, но приложение останется ответственным за обеспечение безопасности в отношении побочных эффектов, тайм-аутов и повторных попыток, поскольку они зависят от реальных систем, которые модель не видит.
Помощник по путешествиям, спросивший о погоде в Париже, Риме и Мадриде, выдает три запроса о погоде за один раз, и приложение запускает их одновременно.
Агент панели продаж собирает заказы клиентов, открывает заявки в службу поддержки и заметки по счетам в одном параллельном пакете, прежде чем писать сводку.
Агент, которому предлагается создать папку, а затем записать в нее файл, не должен выполнять оба вызова параллельно, поскольку запись зависит от существования папки.
Исследовательский агент одновременно отправляет пять поисковых запросов; два тайм-аута, и приложение возвращает три результата плюс два явных сообщения об ошибках, поэтому модель может повторить только неудачные попытки.
Оптимизация одного теста может скрыть более широкие недостатки системы.
Затраты на инфраструктуру и техническое обслуживание часто недооцениваются.
Пробелы в безопасности и наблюдаемости могут увеличиваться по мере усложнения систем.
Определите целевые показатели задержки, качества и стоимости перед внедрением.
Тестирование при реалистичной нагрузке и условиях данных.
Мониторинг прибора на наличие ошибок, дрейфа и влияния пользователя.
Перед масштабированием подготовьте пути отката и реагирования на инциденты.
Free newsletter
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Параллельный вызов функций — это когда языковая модель запрашивает несколько вызовов инструментов в одном ответе, поэтому приложение может запускать их одновременно и возвращать все результаты вместе. Это важно, поскольку сокращает количество циклов обработки и задержку для независимых поисков, но безопасно только тогда, когда вызовы не зависят друг от друга и когда приложение правильно обрабатывает порядок, побочные эффекты и частичные сбои.
Модель отправляет несколько запросов на вызов инструментов за один ход, которые приложение может выполнять вместе.
Модель только запрашивает звонки; параллелизм, тайм-ауты и повторные попытки — это работа приложения.
Запись файла зависит от существующей папки, поэтому вызовы должны выполняться последовательно.
Параллельные вызовы завершаются в непредсказуемом порядке, поэтому идентификатор является надежным каналом связи.
Возврат каждого результата по отдельности, включая ошибки, позволяет модели продолжать работу и выборочно повторять попытки.
Продолжайте учиться
Другие руководства, выбранные по этой теме
ДалееСледующее руководство
Функции влияния для атрибуции обучающих данных
Технический