Сколько стоит Chat GPT?

от автора

А вы знаете, сколько стоит один запрос API Chat GPT? Что скрывается за этим непонятным словом Tokens (токены)? И как сделать запрос дешевле?

Сегодня мы разберём тему формирования цены на запросы API Chat GPT, а так же узнаем, как посчитать стоимость вашего запроса.

Начнём с цены и откуда она берётся

Все актуальные цены мы можем узнать на официальном сайте OpenAI (у меня без VPN не открывается).

Давайте разберём на примере мой любимый GPT-3.5 Turbo.

Вот его цена:

Model

Input

Output

4K context

$0.0015 / 1K tokens

$0.002 / 1K tokens

16K context

$0.003 / 1K tokens

$0.004 / 1K tokens

А теперь по порядку.

Что за разные Модели (Model)?
Названия «4K context» и «16K context» обозначают, сколько символов может обработать на входе нейросеть.
«4K context» — может обработать 4 тысячи токенов
«16K context» — может обработать 16 тысяч токенов
* что такое токены я расскажу ниже
4 тысяч или 16 тысяч это довольно большая разница!
А цена увеличивается всего в 2 раза.

Input — цена за входящий запрос
Output — цена за исходящий ответ
Что они обозначают, мы поймём позже

И вот они, цены:
«$0.003 / 1K tokens» 
Что такое $0.003 мы понимаем, но что такое 1K tokens, может быть совсем непонятным!
Я изначально думал, что один Токен, это один запрос. (Как же я был наивен!)

Что такое токены?

Яндексим (ищем в интернете)

Токен — это цифровой актив (сертификат), который представляет определенную стоимость, функционирует на основе блокчейна или другой децентрализованной сети и гарантирует обязательства компании перед его владельцем.

Сложно и непонятно.

Спрашиваем Chat GPT

В контексте нейросетей, термин «tokens» (токены) обычно относится к минимальным единицам, на которые разбивается входной текст или последовательность символов перед подачей на обработку модели. Токеном может быть одна буква, одно слово или даже целая фраза, в зависимости от типа и задачи модели.

В итоге мы понимаем, что Токен, это какая-то плавающая единица измерения для нейросети.

Но как так, я ведь плачу за каждую эту единицу свои деньги! Почему я не могу быть точно уверенным в объёме.

OpenAI продумали этот момент и предоставили нам инструмент для вычисления количества токенов в нашем запросе. (тоже открывается только с VPN)

скриншот с сайта https://platform.openai.com/tokenizer

скриншот с сайта https://platform.openai.com/tokenizer

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

? Заметил, что число токенов на русском языке не соответствует реальному запросу. На английском языке расчёт точный.

Но мы же но будем каждый раз переходить на сайт, вставлять наш запрос и подсчитывать, сколько же он стоит!

И не надо!)
Точный расчёт затраченных токенов нам придёт в ответе от Chat GPT.

? Сейчас будет много непонятного для обычного пользователя, и чтобы не нагружать вас терминами, я скрою блоки с кодом, формулами и вычислениями.

СЧИТАЕМ ТОКЕНЫ В ЗАПРОСЕ

СЧИТАЕМ ТОКЕНЫ В ЗАПРОСЕ

Давайте разберём это на конкретном примере.

Сейчас я задам боту такой контекст:
«Я Бот Роман.
Очень неразговорчив!
Говорю не больше 5 слов.
Не люблю людей, особенно тебя.
Груб и неопрятен.»

И напишу в. запросе:
«Привет) как дела?»

Мой код на Python будет выглядеть так:

message_list = [     { "role": "system", "content" : "Я Бот Роман. Очень неразговорчив! …» }     { "role": "user", "content" :  "Привет) как дела?" } ] completion = openai.ChatCompletion.create(     model=”gpt-3.5-turbo-16k",     messages=message_list ) chat_response = completion.choices[0].message.content completion_usage = completion.usage

chat_responseЭто ответ Chat GPT на наш вопрос, он мне ответил: «Привет. Дела нормально, спасибо.»

completion_usageэто как раз расчёты, сколько токенов было затрачено! 
Выглядит completion_usage так:

{   "prompt_tokens": 76,   "completion_tokens": 18,   "total_tokens": 94 }

Теперь вспомним про Input и Output в начале статьи.
prompt_tokens — это число токенов затраченное на входные данные Input
completion_tokens
— это число токенов затраченное на выходные данные Output
total_tokens
— всего затрачено токенов, нам это не нужно.
Таким образом мы можем узнать, сколько токенов было потрачено на наш запрос.

РАССЧИТАЕМ СТОИМОСТЬ ЗАПРОСА

РАССЧИТАЕМ СТОИМОСТЬ ЗАПРОСА

Что ж, мы узнали сколько токенов было затрачено на наш запрос, теперь рассчитаем, сколько он стоил.

Формула выглядит так:
-------->
(p / 1000) * mi + (c / 1000) * mo = d
p
—  (prompt_tokens) затраченное число токинов на вход
с — (completion_tokens) затраченное число токенов на выходе
*делим мы их на 1000, так как цена за 1000
mi — цена за 1000 токенов указанная в прайсе Input
mo
— цена указанная в прайсе  Output
d
— цена в долларах

(p / 1000) * mi + (c / 1000) * mo = d

Давайте рассчитаем по нашей формуле стоимость составленного запроса, используя gpt-3.5-turbo-16k:

Model

Input

Output

16K context

$0.003 / 1K tokens

$0.004 / 1K tokens

РАСЧËТ:
(76 / 1000) * 0,003 + (18 / 1000) * 0,004 = 0,0003 доллара

На текущий момент доллар стоит 91 рубль
0,0003 * 91 = 0,0273 рубля
Итого: 0,0273 рубля

Округляем и получаем 3 копейки.

Немного, согласен, не жалко.

При этом символов в описании было 109 + 17 (в вопросе) = 126 символов на вход.
Бот с такой настройкой будет иметь мало пользы.

Давайте рассчитаем стоимость более реального запроса, когда Chat GPT имеет приличное описание преднастройки.

Число символов в описании 6453 + 16 (в вопросе) = 6469

В ответе получаем такое количество токенов:
«prompt_tokens»: 2968
«completion_tokens»: 104

Рассчитаем по формуле:
(2968 / 1000) * 0,003 + (104 / 1000) * 0,004 = 0,00932 долларов
0,00932 * 91 = 0,84812

Вот это уже нормальная сумма, 84 копейки за запрос.

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

ИТОГО, почти рубль за один неплохой запрос.

А теперь представим, что на каждый вопрос в 20 символов, бот будет нам отвечать в 230 символов, и в итоге каждый вопрос будет увеличивать число на 250 символов.

И приблизительно посчитаем, сколько будет стоить диалог в 10 вопросов боту.
Применим формулу для расчёта:
--------> (x * 10 + y * (n * (n+1) / 2) ) * (z / x) = r
x
— число символов в описание 
y — на сколько будет увеличиваться число символов за один вопрос 
n — число сообщений
z — цена полученная при вычислении первого запроса (у нас 0,00932)
r — цена за переписку в 10 сообщений

(x * 10 + y * (n * (n+1) / 2) ) * (z / x) = r

РЕШАЕМ:
(6453 * 10 + 250 * (10 * (10 + 1) / 2) ) * (0,00932 / 6453)  ≈ 0,118076 долларов
0,118076 * 91 ≈ 10.752116 рублей

Не хило так, одна переписка на 10 вопросов нам обходится в 10 рублей и 75 копеек.

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

Ещё надо учесть, что этот расчёт сделан по текущему курсу, вы скорее всего заплатите больше, покупая доллары.

? Прошу заметить, что за 10 сообщений, это очень примерный расчёт! Реальную сумму мы сможем получить, только прогнав вопросы и получив на выходе число затраченных токенов.

КАК СЭКОНОМИТЬ ТОКЕНОВ В ЗАПРОСЕ

КАК СЭКОНОМИТЬ ТОКЕНОВ В ЗАПРОСЕ

Недавно узнал, что Chat GPT тратит намного меньше токенов, если говорить с ним на Английском языке!

Давайте же проверим это)
Просто переведём в Яндекс переводчике наше первое описание про Рому.
Получаем:
«I'm a Bot Novel.
Very taciturn!
I say no more than 5 words.
I don't like people, especially you.
Rude and untidy.»

Вопрос можем задать так же на русском и ответ получим на русском:
«Привет) как дела?»

Получаем такие затраты токенов:
«prompt_tokens»: 55
«completion_tokens»:  13

Давайте сравним:

Название

Число Токенов на Рус

Число Токенов на Англ

prompt_tokens

76

55

completion_tokens

18

13

Уменьшение стоимости вышло примерно на 18%
Уже не плохо!

Но реальная экономия начинается, когда мы делаем большие запросы!:

Название

Число Токенов на Рус

Число Токенов на Англ

prompt_tokens

2968

1568

completion_tokens

104

133

Хоть и число на формирование ответа подросло, мы получаем экономию почти в 2 раза!!!
При этом, сами вопросы мы оставляем на русском.

Итоги

Я подробно описал, как рассчитать стоимость одного запроса API Chat GPT в скрытом блоке РАССЧИТАЕМ СТОИМОСТЬ ЗАПРОСА.

Если обобщить весь блок и сказать очень примерную цифру.
То за 3000 русских символов в запросе мы заплатим 81 копейку с курсом в 91 рубль за доллар.
И очень грубо говоря: 3000 / 81 = 0,027 копеек за одни символ.
Для точных расчётов ознакомьтесь с блоком расчёта цены!

А за один хороший запрос, примерно в 5000 символов, стоимость будет в районе
1 рубля.
По этому, любой сервис написанный на Chat GPT, будет стоить около 1 — 2 рублей за запрос.

По итогу, стоимость Chat GPT не такая уж и маленькая, особенно, когда мы хотим добиться от неё вразумительных для нас результатов.

Большая это цена или маленькая, решать вам. 

Для какого-то бизнеса подобные затраты будут копейками, а в каких-то проектах, это поставит крест на идее внедрить себе Chat GPT.

Если вам было интересно, буду рад вашему отклику и фидбеку?

Я и дальше продолжу изучать этот сложный мир нейросетей и делиться с вами своими открытиями!

Автор: Жданов Роман


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