Сколько стоит «Спасибо» для Сэма Альтмана

от автора

Недавно в X (Твиттер) один пользователь задался вопросом — сколько денег OpenAI потеряла из-за того, что люди говорят своим LLM спасибо и пожалуйста (не дословно). Сэм Альтман ответил на это: «tens of millions of dollars well spent—you never know«, что можно перевести как: «десятки миллионов долларов были потрачены не зря, никогда не знаешь (вероятно на чем выиграешь), или другой вариант перевода (поправили в комментариях): «десятки миллионов долларов были потрачены как минимум — а так, кто знает«.

Спасибо на миллионы

Спасибо на миллионы

Ссылка в X.

Для тех, кто не в курсе как устроена работа LLM (инференс) кратко замечу: когда мы отправляем модели сообщение, вместе с ним модели передается весь предшествующий диалог. Соответственно, завершающее «Спасибо», казалось бы — одно слово, отправляет LLM целый диалог, включающий все предыдущие сообщения пользователя и все ответы LLM. Этот диалог может быть размером с большую обзорную статью, или даже небольшой рассказ. Например, вот длина контекстного окна некоторых моделей OpenAI (в токенах):

GPT-4o: 128 000.

o4-mini: 200 000.

GPT-4.1: 1 047 576 (1млн).

Получается, все это контекстное окно (точнее его максимум, если заполнено) передается модели при любом «Спасибо», «Ок», «До свидания» и тд.

Сложно судить, как здесь происходит на самом деле. В первую голову пришло, что такие простые завершающие сообщения можно обрабатывать отдельно. Делают ли это OpenAI, Antropic и тд не известно.

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

Итоги тестирования

OpenAI o4-mini. При обсуждении моего вопроса она думала по несколько секунд в каждой итерации, но при завершающем «Спасибо» она ответила очень быстро и ответ был шаблонный. Повторил еще раз — так же.

DeepSeek R1. При обсуждении модель много думала. При завершающем «Спасибо» модель… тоже ушла в короткую рефлексию:

Хорошо, пользователь поблагодарил, и мне нужно завершить диалог. Похоже, он удовлетворён ответами. Надо убедиться, что ответы были полными и точными. Возможно, он больше не нуждается в помощи, но стоит предложить дополнительную поддержку на случай, если у него возникнут ещё вопросы.

Нужно ответить вежливо, кратко и предложить помощь в будущем. Например, стандартное «Всегда рад помочь! Если возникнут ещё вопросы — обращайтесь.» Это подходящий вариант, так как поддерживает дружелюбный тон и открытость для дальнейшего общения.

Всегда рад помочь! Если возникнут ещё вопросы — обращайтесь. 

Вот так вот, бесплатный китайский друг честно отработал в рамках рассуждений.

Claude Sonnet 3.7. В диалоге Клод много думал, детально расписывал ход своих мыслей. На завершающее «Thanks», ответил быстро, немного обдумав:

The user has simply replied with «Thaks» which appears to be a typo for «Thanks». This is a simple acknowledgment that they’re satisfied with my previous answer. There’s no question to answer or task to perform here.

You’re welcome!

Gemini 2.5 Pro. В диалоге модель очень много думала, детально расписывала ход своих мыслей. На завершающее «Спасибо» модель ответила заметно быстрее основного рассуждения, с короткой рефлексией:

The user expressed gratitude. No further action or information is required. A simple acknowledgement is appropriate.

Пожалуйста! Рад был помочь разобраться. Если возникнут еще вопросы — обращайтесь!

Что ж, по-видимому человеческие любезность и эмпатия действительно очень дорого обходятся ИИ-компаниям и обслуживающим их сателлитам (если можно так выразиться).

Отдельно эта проблема для сторонних разработчиков, которые предоставляют своим пользователям прямой или косвенный доступ к LLM. Например, это различные чат-боты, которые работают с LLM через API. Как было сказано выше, при отправке любого сообщения, LLM передается весь предшествующий диалог, любое «Спасибо», «Пока» и тп боту — это оплата всех токенов диалога. То есть, другими словами, «Спасибо» это большие убытки.

Как это можно оптимизировать?

Самый простой вариант — делать предобработку сообщений, и если там односложные предложения без добавленной ценности — обрабатывать их отдельно, например правилами.

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

Модель оценщик также можно «просить» оценивать тональность сообщения пользователя, и отвечать исходя из настроения отправителя. Например, «Спасибо, я все понял» — позитивное простое сообщение, на которое модель может ответить также позитивно: «Пожалуйста, обращайтесь еще, всегда буду рад помочь». Или, сообщение от пользователя «Ты бесполезная железка», тогда ответ LLM-оценщика может быть другим — «Прошу прощения, возможно в следующий раз я смогу помочь». И тд тп. В принципе, здесь может быть достаточно более легких моделей, например BERT или производных, но это уже тема отдельной статьи (возможно позже сделаю).

Поделитесь пожалуйста в комментариях если работали с этим, учитываете ли такие «особенности» LLM и какие решения получилось реализовать. Спасибо за внимание.

PS

Недавно я запустил Tg-канал, куда могу скидывать какие-либо допы к статьям здесь, а вообще планирую писать вокруг ИИ, LLM, RAG, Agents и опыте внедрения различных нейросетей в прикладных задачах. Писать планирую не часто, только реальные опыты и интересные, на мой взгляд, вещи.


ссылка на оригинал статьи https://habr.com/ru/articles/902810/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *