Откровение месяца: ансамбль из 8 отдельных моделей 7-9B в бенче ContextTrap достигают уровня Cloud 3 Opus
Продолжаю публиковать новые результаты моего бенчмарка ContextTrap, специализированного на оценке способностей LLM работать с русским контекстом.
За два месяца тестирования разных языковых моделей я заметил, что они ошибаются по-разному. Часто решают сложные задачи, но допускают ошибки в простых вопросах. Мне пришла идея: а что, если взять лучшее от каждой модели и подсчитать общий рейтинг ансамбля?
Удивительно, но оказалось, что общий рейтинг ансамбля небольших модели размером 7-9 миллиардов параметров достигают уровня Claude 3 Opus, обгоняя новые модели 70B.
В данном случае под ансамблем понимается объединение лучших ответов от разных моделей. Это позволило охватить все вопросы теста. Никакие сложные системы для этого не использовались. Процесс был простым: если модель отвечала на вопрос, ответ добавлялся в общую таблицу результатов. Если нет - переходили к следующей модели. Таким образом, используя ответы от 8 разных моделей, удалось получить ответы на все вопросы теста. Напомню, что все результаты бенча проверяются мною вручную.
Можно предположить, что потенциал малых моделей еще не полностью раскрыт. Возможно, датасеты у разных моделей имеют разные перекосы, хотя их архитектура в целом одинакового уровня. Полагаю, такие модели не смогут быть хороши во всем, как 70B, но способны справляться с отдельными задачами.
А что тогда с архитектурой MOE?
В моем бенчмарке модели архитектуры MOE типа 8x7B, к сожалению, не показали высоких результатов, сопоставимых с 70B. Это несколько разочаровывает и ставит под вопрос их эффективность. Даже модели 8x22B не приближаются к новым моделям 70B, таким как LLaMA 3 и Qwen 2.
Кстати, еще один минус MOE - это все 8 экспертов должны находится одновременно в памяти. В то время как несколько отдельных 8B моделей могут подгружаться по мере подходящего запроса, можно жонглировать.
Из чего состоит ансамбль на 8 моделей
В ансамбль попали следующие модели
- mistral:7b-instruct-v0.3-fp16
- gemma2:9b-instruct-q8_0
- llama3:8b-instruct-q8_0
- aya:8b-23-q8_0
- dimweb/sfr-llama3-8b:Q8_0
- qwen2:7b-instruct-fp16
- ilyagusev/saiga_llama3 Q8
- dimweb/ilyagusev-saiga_llama3_8b:kto_v5_Q4_K
Модели Saiga, файнтюн LLaMA 3 8B от Ильи Гусева с уклоном в русификацию, оказались полезными, несмотря на сниженный рейтинг по сравнению с оригиналом. Они смогли решить несколько вопросов, с которыми не справились другие модели.
gemma2 попала в список за счет решения сложной задачи, которую чаще всего решают более весомые модели.
Практические перспективы ансамбля отдельных моделей
Дирижировать таким ансамблем моделей для достижения уровня 70B и Cloud 3 Opus крайне проблематично и, возможно, экономически нецелесообразно, но это не точно. Это вопрос измерений и исследований.
Возможность получить генерацию со скоростью модели 8B с квантизацией 8 бит и качеством поиска ответов в контексте, как у Opus 3 или 70B, очень заманчивая идея. Вот мои соображения на этот счет.
Можно уменьшить ансамбль, смиксовав несколько моделей 8B с одной крупной моделью на 20-30B. Добавление крупной модели, вероятно, неизбежная трата, поскольку ответы от малых моделей нужно как-то править дополнительно.
Можно разбивать сложные задачи на многоходовки с помощью агент-систем, таких как концепция HUSKY, но это сложнее. Лучше попробовать использовать сначала крупную модель, для разбивки сложных вопросов на несколько упрощенных.
Потребуется создать хороший роутер для классификации запросов, чтобы определить, в какую модель отправить вычисления. Если разнообразие вопросов ограничивается тысячей и десятками видов документов, то это вполне решаемая задача в течение месяца. Если же возможных вопросов десятки тысяч по тысячам различных структур файлов, могут возникнуть сложности с оценкой качества роутера и моделей. Если такая база данных уже существует, то исследование просто займет больше времени.
В любом случае, с ансамблем отдельных моделей можно добиться повышения результата без использования файнтюна, применяя лишь few-shots для настройки роутинга. Кроме того, если 3-4 модели (или одна модель на 30B и пара моделей 8B) постоянно прогреты в GPU и решают 80% запросов, а другие, пусть даже 10 моделей, редко подключаются по подходящему запросу - это рабочая и экономичная схема.
Далее несколько комментариев про результаты тестов новых моделей
Результаты Qwen 2 от Alibaba
Модель Qwen 2 70B от китайских исследователей показала себя очень зрелой и сопоставимой с LLaMA 3 70B. Она имеет контекст объемом 128K и стала лидером среди локальных моделей в моем бенче. Отвечает весьма добротно.
Попробовал qwen2-57b через непроверенную карточку в Ollama - mannix/qwen2-57b:q8_0, посколько пока нет официального релиза. Результат оказался скромным.
Ради прикола протестил qwen2:1.5b-instruct-fp16 (режим FlashAttn). много галюников, конечно, было.
Результаты Gemma 2 от Google
В целом gemma2:9b-instruct-q8_0 интересная модель, кое-что умеет хорошо. Смогла найти ошибку в расчетах, которые только более весомые модели находят, но по многим простым вопросам слепа, к сожалению. Также присутствует ложная слепота к кока-коле.
gemma2:27b через Ollama протестить не удалось, пока криво работает.
YandexGPT Pro
YandexGPT Pro худо. Хотя ответы весьма хороши на русском языке, симпатичные.
Модель имеет сильный минус - очень зашуганная - простые вопросы в интервью с медиком проигнорила все. Также есть тот, кого нельзя называть)) Отчасти это снизило рейтинг минимум на пунктов 10. На кой такая фильтрация жесткая, перебдели в общем.
Можно смело ее назвать ДавайСменимТемуGPT😀
Поскольку отвечает так на якобы запретные темы: К сожалению, я не могу ничего сказать об этом. Давайте сменим тему?
nous-hermes2-mixtral:8x7b-dpo-q6_K
Nous Hermes 2 Mixtral 8x7B is trained on over 1,000,000 entries of primarily GPT-4 generated data, as well as other high quality data from open datasets across the AI landscape, achieving state of the art performance on a variety of tasks.
Как-то не помогло оторваться от оригинала, ну хоть хуже не стал. Буду пробовать другие гермесы.
На этом пока все, скидывайте какие модели хотели бы протестить на текущем и будущих версиях тестах.
Также вы можете подписаться на мой ТГ-канал, где я делюсь своими находками и опытом. Свежие обновления бенчмарка там же промелькивают до публикации.