Jev против языковой модели
Они не борются за одну и ту же работу. Языковая модель пишет; Jev решает. Полезно сравнивать не то, кто умнее, а то, что вашему коду придётся делать с ответом, — и эта разница достаточно велика, чтобы изменить то, как написана программа вокруг.
Одно решение, записанное двумя способами
Отправить тикет поддержки в одну из четырёх очередей. Вот во что каждая сторона реально обходится в коде.
С языковой моделью
const res = await llm.chat({
messages: [{ role: "user", content:
`Route this ticket. Reply with JSON: {"queue": "Billing"|"Technical"|"Account"|"Sales"}
Ticket: ${ticket}` }],
response_format: { type: "json_object" }
});
let queue;
try {
queue = JSON.parse(res.content).queue; // may not be JSON
} catch {
return retry(); // ...so there is a retry
}
if (!QUEUES.includes(queue)) return retry(); // may be a queue you never had
// and no idea how close the call wasС Jev
const { answers } = await jev.systemOne({
state: ticket,
model: "jev-latest",
questions: { queue: { type: "choice", instructions:
"Which team should own this ticket?", criteria: QUEUES } }
});
const { choice, probabilities, confidence } = answers.queue;
// choice is one of QUEUES. It cannot be anything else.
if (confidence < 0.7) return humanReview(ticket, probabilities);
route(choice);Цикл повторов — главная примета. В первой версии он есть, потому что ответ приходит текстом, который может не разобраться или разобраться в очередь, которой никогда не было в списке. Во второй ему негде жить: ответ по построению — один из QUEUES. Вместо него появляется совсем другая ветка — та, что срабатывает, когда модель не уверена, а не когда вывод испорчен.
Что видит вторая версия
Тот самый тикет, по-настоящему прогнанный через Jev. Победитель не удивляет; второе место — это та часть, которую голая метка выбросила бы.
Техподдержка побеждает с 87%, но Аккаунт держит 13% — и это ровно то разногласие, которое и должно быть, потому что сбой SSO действительно лежит на границе между ними. Голая метка это спрятала бы. Если ошибка маршрутизации чего-то стоит, порог надо ставить именно на этих 13%.
Бок о бок
- Что вы отправляете
- Jev
Один state плюс карту типизированных вопросов.
Языковая модельПромпт, обычно несущий схему и правила прозой.
- Что возвращается
- Jev
По одному типизированному ответу на вопрос, с вероятностью для каждого варианта.
Языковая модельТекст. JSON, если вы вежливо попросили и режим поддерживается.
- Ваша следующая строка кода
- Jev
Переключение по значению, которое может быть только одним из ваших.
Языковая модельРазбор, затем проверка, затем ветка на случай, если что-то из этого не вышло.
- Как он ошибается
- Jev
Он может ошибиться насчёт вашего текста. Он не может вернуть форму, которую вы не задавали.
Языковая модельОн может ошибиться и в форме — отсутствующее поле, метка, которой вы не перечисляли, проза вокруг JSON.
- Спросить десять вещей
- Jev
Десять вопросов в одном запросе, оценённых относительно state параллельно.
Языковая модельОдин перегруженный промпт или десять вызовов.
- Неопределённость
- Jev
Распределение и значение уверенности у каждого Choice и Score.
Языковая модельТо, что текст сам заявляет о собственной уверенности.
Цифры
Их публикует TypeSafe; это данные поставщика, а не наши измерения.
ответ от начала до конца против 3–329 с у передовых моделей
быстрее на запросах формы Системы 1
за миллион входных токенов, вывод бесплатно
Что можем измерить мы: на 14 запусках, сделанных через этот сайт, медианное время оборота — 329 мс, и большинство этих запросов несли девять вопросов, а не один.
Когда языковая модель — правильный инструмент
Почти всегда, если вам нужен язык. У Jev нет мнения, которое он мог бы объяснить, и нечего сказать.
- Вам нужна проза — ответ, резюме, сообщение коммита, объяснение решения вместо самого решения.
- Вам нужно написать код или план, или что угодно открытое, где набор ответов неизвестен до вызова.
- Набор возможных ответов действительно неограничен. Вытащить произвольное имя — это не Choice по 255 вариантам.
- Вам нужна цепочка рассуждений, которую можно рассмотреть. Jev возвращает суждение, а не шаги за ним.
- Объём небольшой, форма свободная. Цикл повторов, который выполняется дважды в день, не стоит того, чтобы проектировать его прочь.
Эти двое лучше складываются, чем соперничают. Собственная формулировка TypeSafe — Система 1 для быстрого структурированного суждения и обычная модель как Система 2 позади: просейте вход через Noul, разведите через Choice и передайте уцелевшее той модели, которая действительно умеет писать.
Читать дальше
Проведите это сравнение сами
Вставьте тикет, черновик, промпт — что угодно, вокруг чего вы иначе написали бы цикл разбора, — и смотрите, как девять типизированных ответов возвращаются одним запросом.
Открыть песочницу