Pull to refresh
1820.44
Timeweb Cloud
То самое облако

GPT-4, Claude 3, Gemini Pro или опенсорс — как выбрать LLM под свою задачу?

Level of difficultyMedium
Reading time10 min
Views17K
image

Несмотря на то, что сейчас из каждого утюга рекламируется доступ к ChatGPT и GPT-4, вообще говоря, в мире существует несколько больше разных поставщиков LLM (больших языковых моделей), и некоторые из которых могут гораааздо более эффективнее решать какие-то конкретные задачи.

Я уже полгода веду проект VseGPT.ru с доступом к разным LLM из России по OpenAI API (ну, и через вебчат). Львиная доля работы — подключение новых нейросетей. Сейчас их уже свыше 60, и каждую я попробовал хотя бы раз, ну, когда подключал.

Правда, сайт LLMExplorer, собирающий данные об опенсорс нейросетях с портала Hugging Face, говорит, что их там уже более 33 000 штук. М-да.

В общем, вероятно, я не знаю о текстовых сетках всё, но определенно знаю кое-что — хотя бы в пределах своего скромного опыта в 60 сеток. Так что кому интересно — прошу под кат.

Небольшие вводные


Коротко для тех, кто не знает: текстовые нейросети делятся на проприетарные и опенсорсные.

Проприетарные предоставляются соответствующими компаниями по API (т.е. веса для них недоступны, запустить их у себя нельзя). Самые известные из них это:

  • OpenAI: ChatGPT, GPT-4, GPT-4-Turbo
  • Claude: 1, 2, 3 Haiku, Sonnet, Opus
  • Google: Palm, Gemini Pro
  • ну и некоторые другие, например Mistral, Perplexity.

Компании эти запускают эти модели на своих серверах (это быстро, это плюс), но под своими условиями доступа к API (это минус, условия бывают очень разные).

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

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

В опенсорсе также есть понятие базовых моделей и дотюненных моделей.

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

Наиболее известные и часто используемые базовые модели сейчас это:

  • Llama2 7B, 13B, 70B от компании Meta* (признана экстремистской и запрещена в России)
  • Mistral 7B, Mixtral 8x7B от французского стартапа Mistral
  • Yi-34B (от китайской компании 01.ai с фокусом на английском и китайских языках)

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

Давайте теперь быстро по общим принципам подбора.

Общие принципы подбора моделей под свои задачи


Больше — лучше, но дороже и медленнее

Как правило, у компаний есть более слабые и более сильные модели (тот же ChatGPT против GPT-4) — и это связано с числом параметром в них.

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

Если вы решаете массово какие-то простые задачи в духе “определи тональность этого текста”, имеет смысл выбрать более дешевые и простые модели.

Выбирайте свежее

Как правило, чем позже была выпущена модель, тем на большем числе данных и с большими известными оптимизациями она тренировалась (например, более поздняя Mistral 7B находится на уровне более крупной Lllama 13B). Также обычно более поздние модели предоставляются дешевле, т.к. для них уже придуманы какие-то оптимизации.

Исключение — OpenAI со своими моделями; более поздние они “затачивают” под какие-то одни задачи (вроде как под то, что нужно пользователям), но иногда происходит ухудшение на каких-то других задачах. Например, более поздняя GPT-4-Turbo на некоторых задачах рассуждения уступает оригинальной GPT-4; но в часто встречающихся задачах кодинга она показывает лучшие результаты.

Не стоит СЛИШКОМ доверять бенчмаркам

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

Вроде надо выбирать лучшее по бенчмаркам, нет?

По моему личному опыту — скорее, нет.

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

Во-вторых, в бенчмарках, задача, как правило, ставится очень узко и конкретно. Конечно, если у вас задача один-в-один повторяет какие-то задачи бенчмарка, то, конечно, имеет смысл его учитывать. Но, к сожалению, я видел ситуации, когда модель хорошо показывает себя на бенчмарках, но при этом плохо себя показывает в реальных условиях (Google Gemma 7B, привет!)

Есть, правда, один рейтинг, который имеют хорошую репутацию в профессиональных кругах — это Arena Leaderboard. Там юзеры сами делают запрос к двум нейросетям, а затем оценивают, какой ответ лучше. Возникает набор оценок “выиграл-проиграл”, на основании которых считается рейтинг ЭЛО — и чем выше рейтинг, тем выше вероятность того, что модель ответит лучше, чем другая модель с более низким рейтингом.

Однако число моделей в этом рейтинге невелико (иначе было бы слишком сложно все это поддерживать), и часто к нему прибегают только, чтобы поспорить о том, какая модель “самая лучшая” (сейчас верхние строки таблицы занимают Claude 3 Opus и GPT-4-Turbo, причем за время написания этой статьи Опус успел обогнать GPT-4, что стало целой новостью в тематических каналах)

image

Ну, а теперь давайте перейдем к конкретным рекомендациям.

Конкретные задачи


В качестве примеров я обычно буду приводить модели, доступные на VseGPT — просто потому, что я с ними сам работал.

Для начала…


Я бы предложил поработать с:

  • Старым добрым ChatGPT
  • Google Gemini Pro (модель у Гугла получилась неплохая и недорогая)
  • Claude 3 Sonnet (последний Claude 3 выдает очень приличные эмоциональные ответы)

Если с нейросетью работает бизнес и нельзя передавать данные зарубеж…


…то надо обратиться к провайдерам, которые держат обработку в России — предполагаю, что сейчас это в основном Яндекс c YaGPT и Сбер с GigaChat.

Либо использовать опенсорсные нейросети с хорошей поддержкой русского. Из того, что знаю:

  • OpenChat 7B (пробовал, очень приличная опенсорс для 7B модели, сравнима с ChatGPT),
  • Starling 7B DPO (не пробовал, но слышал хорошие отзывы),
  • Сайга-Мистраль-7B (имхо, несколько устарела, но делалась нашим разработчиком),
  • Mixtral 8x7B (на удивление неплохо обрабатывает русский)

Если есть требование “не выпускать данные за контур предприятия”, то вообще останутся только указанные выше опенсорсные сети.

Если нужно максимально дешево…


…используйте:

  • Google Gemini Pro
  • Claude 3 Haiku
  • OpenChat 7B (можно дать этой опенсорсной сети шанс)

При работе с этими сетями генерации получаются в 1.5-2 раза дешевле, чем с самым последним ChatGPT (01-25).

Если нужно решать задачи программирования…


…я использую GPT-4-Turbo. Возможно, Opus или опенсорсная сеть типа Codellama 70B Instruct также решила бы мои задачи, но это надо сидеть и экспериментировать — а времени очень не хватает.

Полгода назад я использовал для программирования простой ChatGPT и очень об этом жалею — мне приходилось править мелкие недостатки в коде руками, но тогда я считал это нормальным. GPT-4-Turbo при хорошей постановке задачи сразу пишет весьма хороший объемный код.

Если нужно обработать большие файлы…


…то надо смотреть, какой размер контекста у модели. Чем больше контекст, тем больше данных влезет в модель для обработки.

Но тут эволюция идет очень быстро, имеет смысл следить за изменениями.

Где-то в июне 2023, базовая ChatGPT имела контекст в 4096 токенов, 16к-версия была прилично дороже, а базовая GPT-4 имела контекст в 8000 токенов. Опенсорсные модели же запускались на 2К контекста, и пользователи жаловались, что диалог туда почти не влезает.

Сейчас же базовая ChatGPT имеет контекст на 16К токенов, опенсорс варьируется от 4К до 32К, а GPT-4-Turbo использует контекст в 128К (хотя это дорого).

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

Если же все-таки нужен большой контекст, то рекомендую смотреть в сторону вышедшей в начале марта Claude 3.

Anthropic, компания, выпускающая Claude, пытается конкурировать с OpenAI на поле “у кого больше контекст”.

Сейчас самый большой доступный контекст у серии Claude 3 — 200К токенов, при этом можно выбрать из нескольких моделей:

  • Haiku позволит обработать этот контекст очень дешево (несравнимо с GPT-4), но достаточно тупо.
  • Sonnet — средняя по качеству
  • Opus — самая качественная

В общем, рекомендую.

Также, из альтернатив есть:

  • GPT-4-Turbo на 128К контекста (но выйдет дорого)
  • Google Gemini Pro 1.5 на 1M контекста — де факто, конечно, самый большой контекст у неё. Но она только что вышла, и не очень недоступна в сторонних API, только у самого Гугла (не в России) и вообще там очень жесткие ограничения на число запросов. Но отзывы я слышал хорошие.

Совет: если будете отправлять большой текст в Claude в качестве контекста — обрамляйте его в XML-теги, как рекомендует официальная инструкция. Без этого конкретно модели Claude, по опыту, работают несколько хуже.

Если нужен перевод…


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

Коротко — чем умнее сеть, тем лучше перевод.

Но особенно могу рекомендовать Claude 3 Opus. Сложно сказать, что у Claude с логическим мышлением, но именно с художественностью текста они работают на прекрасном уровне.

По бенчмарку Claude 3 Opus сопоставим с хитрым агрегатором, который выбирал лучшие из переводов Яндекс.Переводчика, DeepL и Claude 2 (добавление в эту тройку Google Translate даже понижало метрики).

Если же вам нужен самый дешевый переводчик — рекомендую взять Google Gemini Pro или Claude 3 Haiku; или даже бесплатный совершенно обычный Google Translate — по моим метрикам он вполне на уровне.

Если нужен сторителлинг (написание художественного текста) или ролеплей (взаимодействие с выдуманным персонажем)…


…то есть два пути.

Официальные модели от больших компании используют фильтры, чтобы не отвечать на некоторые вопросы по “чувствительным” темам.

Например, сейчас запрос про попа в ChatGPT проходит нормально, а раньше вызывал срабатывание фильтра.

image

Если вы уверены, что вы не затронете чувствительные темы в своем диалоге — моя рекомендация — Claude 3 Sonnet или более дорогая Opus.

Я до этого пробовал ролеплеить с ChatGPT и было несколько… механистично. Ролевики посоветовали Claude и, должен сказать, художественный текст у неё получается сильно лучше.

Кроме того, контекст в 200К для больших текстов — это прям конечно очень хорошо. Я в своей практике добирался до 20К в диалоге, и было очень приятно, когда модель помнила что-то из самого начала.

Если же на ваш запрос вы получаете постоянно что-то в духе “Я большая языковая модель, и мне некомфортно говорить на эту тему, давайте о чем-нибудь другом” — имеет смысл обратиться к опенсорсным моделям.

Но тут есть нюанс — как правило, эти модели тренировались на английском языке. И, опять же, возможны несколько вариантов:

  • Взаимодействовать на английском. Качество хорошее, но лично мне несколько некомфортно в качестве развлечения писать и читать на иностранном.
  • Взаимодействовать на русском. Большие модели (70B) это даже потянут, но качество будет просто на порядок хуже, чем на английском.
  • Встроить в середину переводчик — переводить весь вход на английский язык, а генерации модели — на русский. На мой взгляд, этот вариант работает лучше всего.

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

Что из моделей можно посоветовать? (Буду писать только то, что на сервисе, и что я немного пробовал)

  • Toppy M 7B, Mythomist 7B — 7B модели, к сожалению, глуповаты по поводу фактов, но у них большой контекст — 32000 токенов. Квазихудожественный текст генерируют неплохо.
  • Mythalion 13B, Psyfighter 13B — 13B модели, которые тренировались в том числе на фанфиках. Неплохо выдают художественный текст, но хуже следуют инструкциям.
  • Dolphin 2.6 Mixtral 8x7B, Noromaid Mixtral 8x7B Instruct, Nous: Hermes 2 Mixtral 8x7B DPO — 8x7B модели, хорошо следуют инструкциям, но креативность у них, на мой взгляд, не очень.
  • lzlv 70B, Midnight Rose 70B — довольно хорошие 70B модели с балансом между следованию промту и художественности текста. lzlv более склонна к коротким ответам, и тренировалась довольно давно. Midnight Rose склонна к более длинным художественным описаниям, и довольно свежая.

Совет: опенсорс модели более капризные в настройке, чем проприетарные. Я рекомендую при взаимодействии с ними сразу устанавливать температуру меньше 1 — от 0.7 до 0.95, а также задавать штраф за повторы — очень любят повторяться.

Если нужно получать в ответе актуальную информацию…


…используйте модели Perplexity.

Нет, понятно, что если вы работаете руками, можно воспользоваться онлайновым Google Bard или Bing — они тоже по запросу попытаются найти информацию в интернете. Но если нужно сделать в вашем приложении запрос по API и получить ответ на основе актуальной информации — такую фичу предоставляет только Perplexity. (Я слышал, что Сбер хочет выпустить GigaSearch с подобной функцией, но пока он не доступен)

Совет: из всех предложенных Perplexity моделей используйте pplx-70b-online — она лучше всего отвечает на русском языке. Еще у Perplexity есть 7b-модель, а также модели sonar — по моему опыту русские ответы там значительно хуже.

Примеры:

image

Также можно попросить проанализировать ссылку:

image

Интересный факт:

На сайте Peprlexity в своем собственном интерфейсе выдает ответы на вопросы со ссылками на источники — так, что можно проверить, откуда сеть взяла свои факты. Пользователи очень просят добавить возможность получать список источников при вызове по API — но пока, несмотря на все просьбы, этой функциональности нет.

Если нужно решать задачи SEO и копирайтинга…


…я бы рекомендовал попробовать модели с неплохим русским языком, отличные от ChatGPT — например, Google Gemini Pro или Claude 3 Sonnet.

Попробуйте несколько и посмотрите, что вам лучше подойдет.

А что дальше?


В LLM-сообществе ожидаются 2 вещи:

Во-первых, OpenAI не будут мириться с тем, что Anthropic со своим Opus отнимает у них рынок и выкатят GPT-5, которая, вероятно, вновь станет лучшей сеткой. Учитывая, что GPT-4 была выпущена в марте 2023, у них был целый год, чтобы натренировать новую модель — и думаю, характеристики у неё будут высокие.

Во-вторых, LLama3, как новый базис для опенсорсных сетей, обещают в июне-июле. По слухам, для тренировок закупают какие-то тонны GPU, и вычислительных мощностей на новую Ламу потратят чуть ли не больше чем на GPT-4, что положительно скажется на качестве. Как только выпустят, вероятно, большинство энтузиастов возьмут свои собранные датасеты, быстро затюнят новые Ламы и выложат свои модели уже на новой базе — и придется подключать, подключать, подключать…

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

Если есть какие-то вопросы по сетям — задавайте в комментариях, постараюсь по мере своего скромного опыта ответить.



Возможно, захочется почитать и это:


Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+31
Comments28

Articles

Information

Website
timeweb.cloud
Registered
Founded
Employees
201–500 employees
Location
Россия
Representative
Timeweb Cloud