![OpenAI - котики OpenAI - котики](https://habrastorage.org/getpro/habr/upload_files/885/2ae/508/8852ae5087f90ec75827d52835aac06e.png)
Неделю назад я получил уведомление о начале трансляции первой разработческой конференции от OpenAI. Было неудобно смотреть эфир живьём, так что уложил детей спать, и ночью, заварив себе какао, с предвкушением открыл YouTube.
Конечно, я к тому времени не выдержал и посмотрел краткие описания анонсов, так что был готов к тому, что увижу, но скажу честно: не смотря на презентацию в стиле студенческих конференций (на финальный слайд (под катом) вообще без слёз не взглянешь), чем дольше слушал об анонсах, тем больше у меня отвисала челюсть.
Это не просто небольшие улучшения; это действительно скачок вперёд. Я слушаю про увеличение длины контекста до 128К, обновлении данных до апреля текущего года, об интеграции в API интерпретатора, нового "рисователя" DALLE-3, анализ изображений, извлечение данных из массивов, безлимитных "ассистентов" и чуть ли не подпрыгиваю на стуле от оживления: решилось огромное количество проблем, которые до этого требовали человеко-месяцы доработки довольно квалифицированной командой.
Как только презентация подходит к концу, я судорожно открываю беклог и начинаю записывать и редактировать идеи. Уверен, что перед разработчиками открыли действительно большие возможности, которые переопределят способ разработки и восприятия продуктов. И если тема AI вас как минимум интересует и вы ещё и занимаетесь продуктовой разработкой, а перепосченных по 150 раз новостей не хватает понять, что это значит лично для вас и команды, этот обзор будет весьма кстати.
![Тот самый финальный слайд Тот самый финальный слайд](https://habrastorage.org/getpro/habr/upload_files/69d/05c/34d/69d05c34d0665cee888b7cdc44880822.png)
GPT-4-Turbo с контекстом в 128К токенов
Токены - это части текста, с которыми работает модель, для английского текста обычно 1 токен = 4 символа, для русского - 2 символа. Самая большая и дорогущая GPT-4-32k могла обрабатывать контекст длиной 32К токенов, то есть примерно 75 страниц текста, дешевая рабочая модель GPT-3-Turbo-16k - 16K токенов, 37 страниц. Кажется, что это огроменная туча текста, если заставлять GPT травить анекдоты или помогать с домашкой по литературе, но для рабочих многошаговых задач это очень мало. Например, небольшой рабочий проект с основными метаданными занимает порядка 30К токенов и уже после нескольких вопросов и манипуляций начинает задыхаться. Анализ получасового интервью на английском еле-еле вписывался в 16К, а на русском - в 32К. Вопросы-ответы по документации типа большой PDF-ки или справки сразу же требовали всю дребедень с RAG (Retrieval Augmented Generation), векторными базами, разделением на кусочки и так далее, не говоря уже о база знаний или нескольких исследований с результатами. В итоге для некоторых вещей можно было использовать API Claude с 100К контекстом, но получить у них доступ к API в Европе сложно, а лимиты в персональном аккаунте быстро заканчиваются.
![Сравнение количества токенов у топовых моделей (рисовала ChatGPT, немного накосячила с подписями) Сравнение количества токенов у топовых моделей (рисовала ChatGPT, немного накосячила с подписями)](https://habrastorage.org/getpro/habr/upload_files/788/e1b/7f2/788e1b7f2ea9a3143c612e8b71b2dac0.png)
С возможностью обрабатывать до 128 тысяч токенов GPT-4 Turbo открывает двери для создания сложных и детальных текстов, многошаговых агентов, возможность анализировать книги, отчеты, огромную коллекцию данных без необходимости разрезать все на кусочки, сохранять историю переписки, саммаризовать и так далее. По сути вы уже сейчас можете предложить инструмент вопросов-ответов и анализа немаленького размера данных чисто на голом API (только следите за стоимостью и помните, что реально там токенов 70-80 тысяч будет активных). Можете уже сейчас переключиться в API на gpt-4-1106-preview и попробовать.
Обновили данные до апреля 2023 года
Если раньше точка отсечения была в январе 2022, то теперь у моделей есть данные ещё почти за полтора года и OpenAI обещала регулярно "нагонять" свои модели. А это значит меньше ошибок в генерируемом коде, который пишете с помощью современных библиотек, меньше галлюцинаций по актуальным фактам, более точный анализ и генерация идей.
![Снова Code Interpreter от OpenAI Снова Code Interpreter от OpenAI](https://habrastorage.org/getpro/habr/upload_files/017/181/f19/017181f198bb75ac78e4846f6254b730.png)
Улучшенная работа с Functions API
Functions API и раньше был огненным: вы могли описать, что из себя представляет определенное API, а потом попросить перевести человеческий вопрос в правильно сформулированный запрос к этому API. Например "хочу найти билеты в Стамбул из Москвы и обратно в середине следующей недели на 10 дней, чтобы мой чемодан влез и не дороже десяти косарей" и получить в ответ вызов функции flight_search("MOW", "IST", "return", "22 November", "29 November", "baggage=yes", "price<10000") и это уже избавляло от десятка человеко-дней разработки и тестирования, а теперь модель еще более правильно следует инструкции, выдает по вашему запросу всегда валидный json (е-е-е!) и может даже несколько действий в одном запросе выполнять.
![Примеры от OpenAI Примеры от OpenAI](https://habrastorage.org/getpro/habr/upload_files/033/5a7/e7d/0335a7e7daa96517b245858cd3a099f4.png)
Это может существенно улучшить ваш поиск в продукте и всё взаимодействие с интерфейсом, где есть хоть какие-то намётки на API, например "А сделай-ка мне отчет, чтоб показало, на какие соцсети больше денег уходит, и какие сейчас затраты на пользователя по каждой. Да, и диаграмму покажи", и вуаля, нужные элементы отображаются в вашем интерфейсе без единого клика и единого матерного слова пользователей, кто пытается сам в этом разобраться.
Воспроизводимые ответы
Теперь можно генерировать одинаковые результаты при одинаковых входных данных благодаря новому параметру seed. Опять же недетерминированные ответы от языковой модели даже при нулевой температуре путали вообще все карты по тестированию промптов и делали отладку практически невозможной без огромного датасета и дополнительных валидаторов. Теперь же можно получить seed ответа и использовать его для получения одинакового результата при каждом запросе, а значит а) упрощается отладка; б) можно сделать нормальное модульное тестирование, в) можно гарантировать определенный результат, если это требуется при последующих шагах.
Несколько выходных токенов (logprobs)
Скоро будет доступна возможность видеть не 1 выходной токен от модели, а вероятностное распределение до 5 токенов, а значит можно в 2 строчки кода делать автокомплит для ваших редакторов текста или поисковых систем и вмешиваться в ранжирование вариантов, чтобы делать более правдоподобный ответ для вашей предметной области. Плюс ещё и лучше разбираться, как вообще работает модель и надо ли, возможно, настройки выдачи поменять или промпт перписать. Читайте подробнее про параметр logprobs.
![Вот вам картиночка про вероятности от DALL-E-3. Кубики, конечно, странные ) Вот вам картиночка про вероятности от DALL-E-3. Кубики, конечно, странные )](https://habrastorage.org/getpro/habr/upload_files/836/4b9/726/8364b97267b29069ae3e216c2679b1fd.png)
"Более лучшая" GPT-3.5-Turbo
Теперь по умолчанию у вас будет "более лучшая" модель GPT-3.5-Turbo с окном контекста в 16К токенов и которая ещё и будет лучше следовать командам, выдавать чаще валидный JSON, XML, YAML. Только вызывать надо модель gpt-3.5-turbo-1106. GPT-3.5 - это рабочая лошадка: со стоимостью в копейки за вызов, вы можете делать продвинутые системы и практически неограниченную генерацию, а тратить меньше единиц центов на активного пользователя. Если в вашем продукте всё ещё нет генерации, перевода, саммаризации - вы скоро окажетесь не у дел, они уже через полгода будут торчать из каждого утюга.
GPT-4-Turbo + Vision
То, чем недавно восхищались пользователи платной подписки ChatGPT Plus, теперь доступно и в API - gpt-4-vision-preview! По цене в примерно 1 цент за изображение 1024х1024 вы можете делать огромное количество вещей: от распознавания текста (пока еще без почерка врачей :) ) и поиска нужных сущностей до решения задач по математике по картинке и расшифровке графиков и диаграмм, от определения, что это за птица стащила сейчас ваш бутерброд, до определения юзабилити-проблем на вашем сайте. Пробуйте для пользовательских сценариев в своем продукте! Помните только, что модель принимает на вход только png, jpeg, webp и неанимированные gif и на сложных ситуациях начинает выдумывать. Почитать подробнее можно тут: https://platform.openai.com/docs/guides/vision
![Ты что, и мемы за меня будешь объяснять? Ты что, и мемы за меня будешь объяснять?](https://habrastorage.org/getpro/habr/upload_files/623/159/58e/62315958e6b49209666187f4f4666353.png)
Вот вам традиционное баловство - объяснение мема: На изображении видно кресло, которое сильно потрепано и исцарапано, скорее всего, котом, который также присутствует на фото. Текст на русском языке гласит: "Продам дизайнерское кресло. Вместе с дизайнером." Шутка заключается в том, что "дизайнером" испорченного вида кресла является сам кот, который, вероятно, царапал и повредил кресло, оттого и словесная игра, предлагающая кота как часть продажи в шутливой форме. Юмор возникает из неожиданного контраста между использованием слова "дизайнер", которое обычно ассоциируется с преднамеренным и эстетически приятным дизайном, и изношенным состоянием кресла.
А вот более серьезные вещи: распознавание текста и поиск сущностей. И всё чисто по картинке.
![GPT-4-Vision работает, не покладая рук GPT-4-Vision работает, не покладая рук](https://habrastorage.org/getpro/habr/upload_files/f81/9b0/f50/f819b0f50b8d54f6a321e59689d76cce.png)
DALL·E 3
Раньше качественно погенерировать картинки можно было только в платном ChatGPT, теперь же это доступно всем разработчикам через API по цене от 4 центов за картиночку.
Почему DALLE-3 крут? Потому что модель обучена не только на подписях к фото, но и тщательно аннотированных изображениях (кстати не без помощи GPT-4-Vision), плюс ChatGPT сам дописывает ваши корявые промпты, чтобы получился шедевр, так что не надо мучать его как MidJourney всякими секретными "high resolution, HD, natural light, 8K, zeiss, beautiful" и покупать в переходе метро методичку по секретным промптам. Пока, к сожалению, нельзя делать вариации и исправлять часть изображения, но это все подъедет в ближайшем будущем, чего уж там. Если у вас есть работа с маркетинговыми материалами или любым визуальным контентом, – вы знаете, что делать.
![Вот вам, например, сгенерированные пельмешки Вот вам, например, сгенерированные пельмешки](https://habrastorage.org/getpro/habr/upload_files/1f3/7c5/dea/1f37c5dea4c2f8a3763548b871d2a47c.png)
Text-to-speech
OpenAI ещё и отжирает кусок от AI-выручки Google, Microsoft, Amazon TTS 6 мульти-язычными очень человечными голосами, которые теперь тоже доступы через API с ценой в 1.5 цента за 1000 символов (у гугла чуть дороже). Можно озвучивать ролики, общаться в приложении, делать голосовых ассистентов и так далее. Читать здесь.
Speech-to-Text (Whisper v3)
Опять же как здорово видеть, какого прогресса в давно известной задаче могут достичь команды с офигенными разработчиками и деньгами. Whisper даже второй версии мог работать на вашем ноутбуке бесплатно без смс и транскрибировать интервьюшки, видосы, записи звонков с отличным качеством на почти сотне языков бесплатно и с хорошей лицензией. А сейчас на всех языках ещё сильнее улучшили качество.
![Количество ошибок уменьшилось на 10-20% практически по всем языкам Количество ошибок уменьшилось на 10-20% практически по всем языкам](https://habrastorage.org/getpro/habr/upload_files/a80/0fb/b2c/a800fbb2ccd0e6368b4b50250915fa7c.png)
Для автоматического перевода где-нибудь на местной конференции на греческом (я живу на Кипре) я использовал Whisper v2 и он клал на лопатки Google Speech-to-Text просто влёгкую. Whisper v3 еще не тестировал, но по тестам он просто стал лучше. Пока вы можете развернуть его на своих GPU-ках (всего 8GB VRAM нужно для самой большой модели) или использовать HuggingFace, но обещают добавить и в OpenAI API. Если вам нужно понимать речь в своём приложении (для ассистентов, например, перевода в реальном времени и транскрибирования), это выбор № 1.
Дообучение GPT-4
Раньше можно было файнтюнить только GPT-3.5-Turbo и соответственно если вам нужно было что-то помощнее, вы либо шли в опенсорс, либо сосали лапу. Теперь можно дообучать на ваших данных GPT-4 и хостить её у OpenAI. Это ещё один большой шаг вперед. Если базовая GPT-4 лажает на ваших данных и у вас есть хотя бы 1000-10000 строк типа "промпт -> ожидаемый ответ" - вы можете дообучить на них GPT-4 примерно за $500-$5000 и обращаться к ней через API. Во-первых, отвечать модель будет быстрее, потому что вас будут хостить отдельно, во-вторых, поднимать свой кластер с GPU, дообучать что-то опенсорсное и держать для инференса может стоить в десяток или даже сотню раз дороже и потребует полноценную команду на поддержку. Да, вы по сути должны очень доверять OpenAI и желательно работать с ними уже по договору, а не по стандартным условиям использования, но если больших опасений у вас нет – это самый дешёвый и быстрый вариант существенно улучшить выдачу. Единственное, сама OpenAI пишет, что для дообучения GPT-4 потребуется побольше усилий, чем для GPT-3.5, потому что она сама по себе крайне мощная и способная, будьте к этому готовы. Для GPT-3.5 могло хватить и сотни хороших примеров, как они сами пишут в руководстве.
Кастомизация под вас
Если вы большой крутой дядька с непубличным датасетом на 1 миллиард токенов минимум и 2-3 миллионами долларов, вы можете теперь прийти в OpenAI и попросить их сделать всю работу для вас, от дообучения до создания моделей с нуля. Не знаю, скольким на хабре такое может понадобится, но а вдруг.
Снижение цен и увеличение скорости
Прикол, что весь этот банкет ещё и будет стоить дешевле. Скорее всего GPT-4-Turbo слегка подрезали и оптимизировали, чтобы кушало меньше компьюта, но чаще всего вы и не заметите. GPT-4-Turbo теперь стоит в 3 раза дешевле за вход и в 2 раза за выход, а если брать большой контекст в 32к аж в 6 и 4 раза дешевле соответственно.
GPT-3.5-Turbo стала в 1.5 раза дешевле за вход даже для прошлой маленькой модели, а для 16K - в 3 и 2 раза дешевле соответственно. Срочно переключайте модель в ваших апишках на gpt-3.5-turbo-0613.
Ну и вызовы к улучшенной GPT-3.5-Turbo теперь в 4 и 2.5 раза дешевле соответственно.
Ещё и удвоили количество токенов в минуту для всех платных подписчиков и установили пороги для автоматического повышения. Про цены - тут.
![Изменение цен на OpenAI API Изменение цен на OpenAI API](https://habrastorage.org/getpro/habr/upload_files/d63/969/1e4/d639691e4f088c656316b509ea2fc43b.png)
Consistency Decoder
2 строчки анонса, а в итоге существенное улучшение работы Stable Diffusion в генерации изображений, особенно того, что касается лиц, прямых линий, текста. Всё в опен-сорсе и с хорошей лицензией. Если используете Stable Diffusion в своей работе – обновляйте.
![Сравнение старого и нового декодера Сравнение старого и нового декодера](https://habrastorage.org/getpro/habr/upload_files/e85/046/70d/e8504670d554e248c6bd2ff069a393e5.png)
Copyright shield
Юристов и безопасников тоже немного порадовали. Теперь если на вас подадут в суд из-за нарушения авторских прав, OpenAI будет оплачивать все расходы и вступится за вас в суде. Речь конечно же про API и Enterprise-версию. Это конечно лишь небольшая часть претензий крупных компаний, кто больше боится утечки данных, но уже лучше, чем раньше.
И наконец к сладкому – Assistants API
На этой неделе Wrike представил много интересного по AI для рабочих задач на своей конференции Collaborate, к чему приложил руку, и ассистент (или второй пилот) там не смотря на название - на одной из первых ролей.
![Анонсы с Wrike Collaborate Анонсы с Wrike Collaborate](https://habrastorage.org/getpro/habr/upload_files/165/cb7/055/165cb7055429bc08c76579346bbbcd82.png)
Я считаю это будущим практически любого продукта, особенно сложного или со множеством вариантов использования. Попросить человеческим языком могущественного всезнайку сделать работу за вас, а потом увидеть результат даже в сложном софте вместо кликов и переключалок – это то, что точно заставит ваших пользователей радоваться жизни и пользоваться продуктом без боли и терзания техподдержки. OpenAI же выводит разработку таких фичей на невероятно простой уровень даже для команды без Data Scientists. Что они предлагают:
Возможность создавать ассистентов для ваших продуктов, которые хранят в себе специфические промпты, наборы данных (например, руководство пользователя или лог ваших действий), а также могут вызывать нужные апишечки для своей работы. Теперь вместо написания тонны кода и инструкций, хранения этого всего на бэкенде, поддержки векторных баз для извлечения информации, у вас всё есть из коробки.
Хранимые и бесконечные треды! Я не знаю, как они это будут поддерживать при выходе за пределы окна контекста, но это огонь! Больше не надо разбивать на кусочки, суммаризировать, пилить свою краткосрочную и долгосрочную память, просто закидываешь новый запрос от пользователя в тред и он "вспоминает" всю историю взаимодействия. Офигеть!
Встроенный интерпретатор кода. Я бы сказал, что это jupyter notebook, в котором вы можете человеческим языком попросить написать за вас код на Python. Соответственно, всё, с чем так сложно было справиться ChatGPT, от математики и обработки данных до рисования графиков, теперь может выполняться вообще без кода на вашей стороне. Конечно, тестировать придется тщательно, плюс это 3 цента за запрос, но оно того стоит.
Извлечение информации (Retrieval). Опять же делает за вас огромную работу по хранению и извлечению подходящих данных из ваших баз: больших массивов, PDF-ок, CSV-таблиц, списков. Не надо вычислять эмбеддинги, не надо резать на куски и поиск векторный делать - всё на стороне OpenAI и на топовом уровне (они, например, недавно описывали, как в разы подняли качество извлечения данных, чего, возможно, не сможет ваша команда сделать). Красота!
И все это становится доступно практически любому человеку, без написания кода, так что можно будет размещать в "OpenAI GPT Store" и даже продавать! И да, можно не отправлять данные для обучения в OpenAI, если выбрать соответствующую настройку.
![Песочница ассистентов. Как видите, есть промпт, выбор модели, вызов функций, интерпретатор кода, извлечение данных из ваших файлов. Песочница ассистентов. Как видите, есть промпт, выбор модели, вызов функций, интерпретатор кода, извлечение данных из ваших файлов.](https://habrastorage.org/getpro/habr/upload_files/a4e/2ec/c67/a4e2ecc677046771302c92eb2db76a9b.png)
Хорошая документация - тут.
GPTs
Возможность создавать "свою GPT" не просто без инженеров, но и без разработчиков в том числе. Просто общаясь с OpenAI и помогая ей понять, чего же вам хочется-то вообще.
Я таким образом на выходных сделал аж 3 бота (вам нужна платная GPT Plus, чтобы попробовать):
Ассистент для стартапов на базе информации из Y Combinator Startup School
Чат-бот с Полом Грэмом на базе 200+ его эссе (а там 1.5 миллиона токенов)
Вот как она переделала переделала Сэма Альтмана с конференции :)
![Сэм - супер-герой Сэм - супер-герой](https://habrastorage.org/getpro/habr/upload_files/878/dd9/601/878dd960180946cc6d77f68ffe0aed26.png)
Если будут желающие – напишу статью, как это сделать.
Вывод
В общем, очень много контекста, свежие данные, работа с изображениями и голосом, дообучение, ассистенты без кода, быстрее и дешевле. Честно говоря ребята очень порадовали! Если вы пока ещё не тестировали OpenAI API, то сейчас - самое время. Вполне возможно конкуренты делают это прямо сейчас. Ну и заходите на огонёк в телеграм-канал, буду рассказывать про продуктовую AI-экспертизу и анонсы.
P.S. Дополнительные видео тоже выложили вчера ночью. Сделал обзор.