Как выбрать нейросеть под свои задачи?
(обновлено 21 июня 2024)Большой туториал от создателя VseGPT. Можете прочитать последовательно или сразу перескочить к интересующему вас разделу.
Все модели находятся на странице Модели в меню сайта – далее будут приводится только названия.
Общая информация
Коротко для тех, кто не знает: текстовые нейросети делятся на проприетарные и опенсорсные.
Проприетарные предоставляются соответствующими компаниями по 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, Mixtral 8x22B от французского стартапа Mistral
- Yi-34B (от китайской компании 01.ai с фокусом на английском и китайских языках)
Цифры в конце означают число параметров в модели — чем больше, тем модель в целом умнее в плане следования логике, но тем дороже обходится её дотренировка и запуск. Дотюненные модели обычно сохраняют имена или размеры базовых моделей в своем названии, так что обычно всегда можно понять, на какой базе дотренировывалась модель.
Давайте теперь быстро по общим принципам подбора.
Общие принципы подбора моделей под свои задачи
Больше — лучше, но дороже и медленнее
Как правило, у компаний есть более слабые и более сильные модели (тот же ChatGPT против GPT-4) — и это связано с числом параметром в них.
Если вам нужно максимальное качество, нужно выбирать самую дорогую модель (или модель с большим числом параметров в опенсорсе, и там она обычно тоже будет дорогой — т.к. чем больше модель, тем дороже аренда сервера для её запуска)
Если вы решаете массово какие-то простые задачи в духе “определи тональность этого текста”, имеет смысл выбрать более дешевые и простые модели.
Выбирайте свежее
Как правило, чем позже была выпущена модель, тем на большем числе данных и с большими известными оптимизациями она тренировалась (например, более поздняя Mistral 7B находится на уровне более крупной Lllama 13B). Также обычно более поздние модели предоставляются дешевле, т.к. для них уже придуманы какие-то оптимизации.
Исключение — OpenAI со своими моделями; более поздние они “затачивают” под какие-то одни задачи (вроде как под то, что нужно пользователям), но иногда происходит ухудшение на каких-то других задачах. Например, более поздняя GPT-4-Turbo на некоторых задачах рассуждения уступает оригинальной GPT-4; но в часто встречающихся задачах кодинга она показывает лучшие результаты.
Конкретные задачи
В качестве примеров я обычно буду приводить модели, доступные на VseGPT — просто потому, что я с ними сам работал.
Для начала, если не знаете, что выбрать...
Я бы предложил поработать с:
- Старым добрым ChatGPT
- Google Gemini Pro 1.0 (модель у Гугла получилась неплохая и недорогая)
- Claude 3.5 Sonnet (последний Claude 3 выдает очень приличные эмоциональные ответы, а Sonnet 3.5 вообще по метрикам лучше большинства сетей, в том числе топовых)
Если нужно максимально дешево…
…используйте:
- Google Gemini Pro 1.0
- Claude 3 Haiku
- OpenChat 7B (можно дать этой опенсорсной сети шанс)
- Google Gemini Flash
- DeepSeek-V2-Chat 236B MoE
При работе с этими сетями генерации получаются в 1.5–2 раза дешевле, чем с самым последним ChatGPT (01–25).
Если нужно решать задачи программирования…
…я использую GPT-4-Turbo (а сейчас – GPT-4o). Возможно, Opus или опенсорсная сеть типа Codellama 70B Instruct также решила бы мои задачи, но это надо сидеть и экспериментировать — а времени очень не хватает.
Полгода назад я использовал для программирования простой ChatGPT и очень об этом жалею — мне приходилось править мелкие недостатки в коде руками, но тогда я считал это нормальным. GPT-4-Turbo при хорошей постановке задачи сразу пишет весьма хороший объемный код.
Если же нужно максимально дешево – имеет смысл посмотреть в сторону DeepSeek-Coder-V2 236B MoE – специализированная сеть под программирование, большая, но очень дешевая – правда, провайдер может логировать ваши запросы.
Если нужно обработать большие файлы…
…то надо смотреть, какой размер контекста у модели (есть на странице моделей). Чем больше контекст, тем больше данных влезет в модель для обработки.
Но тут эволюция идет очень быстро, имеет смысл следить за изменениями.
Где-то в июне 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 контекста — де факто, конечно, самый большой контекст у неё. Но она дороговата.
Совет: если будете отправлять большой текст в Claude в качестве контекста — обрамляйте его в XML-теги, как рекомендует официальная инструкция. Без этого конкретно модели Claude, по опыту, работают несколько хуже.
Да, на нашем сайте есть специальный сервис для анализа файлов
Если нужен переводчик…
…то можно ознакомиться с бенчмарком по переводам, который лично я веду в рамках своего опенсорс проекта, и в котором тестирую всё свежевыходящее.
Коротко — чем умнее сеть, тем лучше перевод.
Но особенно могу рекомендовать Claude 3 Opus. Сложно сказать, что у Claude с логическим мышлением, но именно с художественностью текста они работают на прекрасном уровне.
По бенчмарку Claude 3 Opus сопоставим с хитрым агрегатором, который выбирал лучшие из переводов Яндекс.Переводчика, DeepL и Claude 2 (добавление в эту тройку Google Translate даже понижало метрики).
Если же вам нужен самый дешевый переводчик — рекомендую взять Google Gemini Pro или Claude 3 Haiku; или даже бесплатный совершенно обычный Google Translate — по моим метрикам он вполне на уровне.
Если нужен сторителлинг (написание художественного текста) или ролеплей (взаимодействие с выдуманным персонажем)…
…то есть два пути.
Официальные модели от больших компании используют фильтры, чтобы не отвечать на некоторые вопросы по “чувствительным” темам.
Например, сейчас запрос про попа в ChatGPT проходит нормально, а раньше вызывал срабатывание фильтра.
Если вы уверены, что вы не затронете чувствительные темы в своем диалоге — моя рекомендация — Claude 3 Sonnet или более дорогая Opus.
Я до этого пробовал ролеплеить с ChatGPT и было несколько… механистично. Ролевики посоветовали Claude и, должен сказать, художественный текст у неё получается сильно лучше.
Кроме того, контекст в 200К для больших текстов — это прям конечно очень хорошо. Я в своей практике добирался до 20К в диалоге, и было очень приятно, когда модель помнила что-то из самого начала.
Если же на ваш запрос вы получаете постоянно что-то в духе “Я большая языковая модель, и мне некомфортно говорить на эту тему, давайте о чем-нибудь другом” — имеет смысл обратиться к опенсорсным моделям.
Но тут есть нюанс — как правило, эти модели тренировались на английском языке. И, опять же, возможны несколько вариантов:
- Взаимодействовать на английском. Качество хорошее, но лично мне несколько некомфортно в качестве развлечения писать и читать на иностранном.
- Взаимодействовать на русском. Большие модели (70B) это даже потянут, но качество будет просто на порядок хуже, чем на английском.
- Встроить в середину переводчик — переводить весь вход на английский язык, а генерации модели — на русский. На мой взгляд, этот вариант работает лучше всего.
Например, в довольно известной программе для ролеплея Silly Tavern вариант с переводчиком можно включить с помощью плагинов — потому что много пользователей по всему миру просило. У нас на сайте для большинства 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 склонна к более длинным художественным описаниям, и довольно свежая.
- WizardLM-2 8x22B – реально топовая модель, появившаяся только 16 апреля. Очень рекомендую.
- Не рекомендую здесь устанавливать штрафы за повторения – конкретно эта модель этого не любит
- Эта модель очень чувствительна к системному промту, имейте это ввиду
- Из еще более свежих сетей – Lumimaid 8B, Lumimaid 70B или Euryale-v2.1–70B – последняя имеет особо хорошие зарубежные отзывы, сравнимые с WizardLM-2 8x22B. Но они несколько другие в ответах, так что попробуйте, что подойдет вам.
Совет: опенсорс модели более капризные в настройке, чем проприетарные. Я рекомендую при взаимодействии с ними сразу устанавливать температуру меньше 1 — от 0.7 до 0.95, а также задавать штраф за повторы — очень любят повторяться.
Если нужно получать в ответе актуальную информацию, в том числе из Интернета…
…используйте модели Perplexity.
Нет, понятно, что если вы работаете руками, можно воспользоваться онлайновым Google Bard или Bing — они тоже по запросу попытаются найти информацию в интернете. Но если нужно сделать в вашем приложении запрос по API и получить ответ на основе актуальной информации — такую фичу предоставляет только Perplexity. (Я слышал, что Сбер хочет выпустить GigaSearch с подобной функцией, но пока он не доступен)
Совет: из всех предложенных Perplexity моделей используйте pplx-70b-online — она лучше всего отвечает на русском языке. Еще у Perplexity есть 7b-модель, а также модели sonar — по моему опыту русские ответы там значительно хуже.
Примеры:
Также можно попросить проанализировать ссылку:
Интересный факт:
На сайте Peprlexity в своем собственном интерфейсе выдает ответы на вопросы со ссылками на источники — так, что можно проверить, откуда сеть взяла свои факты. Пользователи очень просят добавить возможность получать список источников при вызове по API — но пока, несмотря на все просьбы, этой функциональности нет.
Если нужно решать задачи SEO и копирайтинга…
…я бы рекомендовал попробовать модели с неплохим русским языком, отличные от ChatGPT — например, Google Gemini Pro или Claude 3 Sonnet.
Попробуйте несколько и посмотрите, что вам лучше подойдет.
Автор: Владислав Январев, 19 апреля 2024, обновлен 21 июня 2024
Материал подготовлен при поддержке хостинг-провайдера Timeweb Cloud