JEV - Смазка на узлах управления

Многим узлам в цепочке Agent нужна ветка, а не абзац. Jev сидит на узлах управления, а генерация остаётся на том единственном шаге, который должен писать. По опубликованной цене эти узлы больше не покупают выходные token.

JEV - Смазка на узлах управления

Соавтор: folkbench.com (Folkbench — платформа проверяемой оценки и выбора для AI API, модельных сервисов и связанных сайтов. Она опирается на опубликованные сведения об услугах, цены, доступность, задержку и окна доказательств, чтобы помочь сравнить пути и выбрать один.)

Десять текстов в этой серии:

Неумение вести чат — преимущество внутри цепочки Agent. Один запрос пользователя часто проходит через намерение, слоты, поиск, инструменты и проверку. Этим узлам не нужен абзац. Им нужна ветка. Если каждый шаг нанимает модель, которая пишет, P99 и счет растут вместе. Jev сидит на узлах управления как смазка: суждение — это распределение, а предложение остается тому единственному шагу, который действительно должен порождать.

Где трение

Запрос больше не одно чтение базы. Это ориентированный граф: намерение, маршрут, сжатие контекста, инструменты, самопоправка, сводка. Узкое место переезжает с ввода-вывода на задержку и цену вызовов больших моделей. От 10 до 20 нижних вызовов в одной совместной цепочке — обычное дело. Повесь флагманскую модель на все 6 шагов, и хвост легко перевалит за 10 секунд.

[user request]
   │
   ▼
1. Intent and route
   │
   ▼
2. Slots and checks
   │
   ▼
3. Retrieval and rerank
   │
   ▼
4. Tool choice (loop)
   │
   ▼
5. The content that must be written
   │
   ▼
6. Review and format
   │
   ▼
[response]

Задержка складывается

Первый token чат-модели часто уже занимает несколько сотен миллисекунд, и порождение добавляет еще. 6 шагов подряд ждут каждый первый token и каждое порождение. Малого шанса хвоста на каждом шаге хватает, чтобы утянуть P99 всей цепочки за 10 секунд. SLA рвется сначала там.

Узлы управления не тарифицируются как чат

Из этих 6 шагов те, что должны рассуждать открыто и договорить фразу, часто составляют лишь 2 или 3 десятых. Остальное — классификация, проверки и смена состояния. Платить цену вывода флагманской модели за суждение да или нет — значит принимать поток управления за сочинение.

Отделить управление от рассуждения

Смазка не заменяет глубокое рассуждение. Она заменяет частое управление.

  1. Плоскость управления использует Jev. Маршрут, проверки, классификация, легкое суждение. Ей нужен закрытый выход и одновременность, которую можно разложить.
  2. Плоскость рассуждения использует модель, которая умеет говорить. Длинный текст, многошаговые планы, тот отрезок, который надо объяснить человеку. Дороговизна и медленность могут остаться там, потому что этот шаг все равно собирался порождать.
user request
   │
   ▼
[Jev] intent and route
   │
   ├──────────────┐
   ▼              ▼
[Jev] slot check [Jev] intercept
   │              │
   └──────┬───────┘
          ▼
[flagship] only this step generates
          │
          ▼
[Jev] review: out of bounds, or which rung
          │
          ▼
       response

Отсюда следуют три инженерных следствия:

  • Узлы управления больше не растут token за token. Их задержка сидит в опубликованной полосе, примерно от 70 до 500 миллисекунд от края до края, а не в одном полном порождении.
  • Параллельность больше не застревает за «сначала допиши абзац».
  • Узел проверки получает распределение, а не строку JSON, которая может сломаться. Один источник бурь повторов становится меньше.

Один счет

Цены ниже — допущение, чтобы показать форму. Это не прайс этой страницы и не счет. Флагманская чат-модель оценивается в $2.50 за миллион входных token и $10 за миллион выходных token. Jev берет опубликованные цифры: $0.042 за миллион входных token, выход не тарифицируется. Объем — 1 миллион запросов в день.

Допущение

5 шагов на запрос:

  • Намерение: 300 на входе, 50 на выходе
  • Состояние и обрезка: 1000 на входе, 100 на выходе
  • Аргументы инструмента: 800 на входе, 150 на выходе
  • Ядро порождения: 1500 на входе, 800 на выходе
  • Проверка: 1000 на входе, 200 на выходе

Две схемы

  • План A: все 5 шагов — флагманская модель.
  • План B: на флагманской модели остается только ядро порождения. Остальные 4 шага переходят на Jev. Шаги управления не платят за выходные token.

Стоимость

План A двигает в день 4.6 миллиарда входных token и 1.3 миллиарда выходных token. Вход — $11,500, выход — $13,000, вместе $24,500. 30 дней — около $735,000.

План B отправляет 3.1 миллиарда входных token через 4 шага Jev. При $0.042 за миллион token это около $130, и плата за выход равна 0. Ядро порождения по-прежнему $3,750 входа плюс $8,000 выхода, $11,750. Вместе это около $11,880 в день и около $356,000 за 30 дней.

Месячный расход падает примерно наполовину. Падают в основном выходные token, которые узлы управления больше не покупают.

Задержка

Мера План A План B
Четыре узла управления Около 450 ms порождения каждый, около 1.8 s Внутри опубликованной полосы 70–500 ms, четыре вызова около 0.28–2 s
Стоимость API в день $24,500 Около $11,880
Узлы управления порождают token за token Да Нет

На быстром крае накладные расходы управления явно ниже 4 полных порождений. На медленном крае 4 вызова по 500 ms могут приблизиться к одному длинному порождению, поэтому не описывай смазку как гарантированные несколько десятков миллисекунд. Что покупает разрез: выход больше не тарифицируется как чат, и суждение можно отделить от порождения.

Три места, куда его поставить

Сначала маршрут

Прежде чем запрос войдет в ядро рассуждения, попроси у Jev одну закрытую классификацию. Если готовый ответ или кэш могут ответить, код возвращает его. Только ступень со смыслом «это надо развернуть» будит дорогую модель. Jev этот ответ не пишет.

def handle_incoming_request(user_payload):
    route = jev_client.choice(
        state=user_payload.text,
        options=["FAST_ACK", "SIMPLE_QUERY", "DEEP_REASONING"],
    )
    if route.top == "FAST_ACK":
        return canned_ack(user_payload)
    if route.top == "DEEP_REASONING" and route.probability >= 0.8:
        return call_heavy_llm_pipeline(user_payload)
    return canned_ack(user_payload)

Извлечение должно быть жестким

Аргументы инструмента не следует разбирать из абзаца, внутри которого есть комментарии. Пусть Jev отобразит нечеткий текст на поля и перечисления, которые были заданы заранее. Ниже по потоку приходят распределение и верхний вариант, а не разбор JSON, который может провалиться.

Утончить контекст

Десятки тысяч token истории, посланные прямо в главную модель, дороги и легко теряются в середине. Закрытый вопрос посередине отбрасывает не относящиеся к делу ходы и оставляет состояние, которое важно. Главная модель видит тогда более короткий вход. Правило, что отбрасывать, должно быть вопросом, а не «пожалуйста, перескажи это».

Серия