Как стать автором
Обновить

Комментарии 41

Не понятно в каком месте тут опенсорс. Может ли яндекс и сбер взять и использовать эту ламу вместо своих унылых алис и гигачадов? Нидумаю.

Крупные компании не могут использовать из за лицензионных ограничений, а маленькие не могут сделать никакого серьезного вклада из за слишком больших размеров/затрат.

Опенсорс - это когда имеешь право взять и редактировать, а не тогда, когда это тебе доступно финансово.

Лицензия, конечно, не очень свободная, но небо и земля по сравнению с ChatGPT.

Ты можешь взять ламу и... редактировать? Дообучать? Ламу 405б, серьезно?

Да, можешь. Где ты возьмёшь железо - это вопрос не к авторам модели, дешевого железа они не предоставляют. Они дают только модель.

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

В итоге ее никто не дорабатывает. Это не опенсорс.

Конечно вы пошли на второй круг. В критериях опенсорса нет правила «слишком большая»/«не слишком большая». Точка, нет смысла идти на третий круг.

Я так понимаю чтобы это стало опенсорсом каждому желающему должны подогнать личный ЦОД с вагоном ускорителей? Не слишком ли жирновато?

Как минимум надо выложить исходники на которых модель обучалась. А так это не опенсорс а то что в линуксах блобом называют.

А для исходного кода надо выкладывать учебники, на которых обучались программисты, которые его писали?

Насчёт автобуса, не все так однозначно. Сначала приходит на ум ответ - "6" или "6 или больше", если предположить, что не дана полная инфа о сидящих. А потом вспоминаешь всякие микроавтобусы, где рядом с водителем может сидеть человек, и тогда, если в "автобусе" всего два ряда - ряд водителя и ряд с пассажирами (ну очень короткий автобус, для тех, у кого ну очень мало денег), то ответ "5 или больше" не кажется уже неправильным. 😎

НЛО прилетело и опубликовало эту надпись здесь

А при чем тут забитым под завязку

Мало того, что у него эн рядов (и эн больше двух), так ещё и ехать стоя можно

И на крыше семеро! И под кузовом три шпиона! И сзади двое мальчишек на бампере!

5 или более. Согласно ГОСТу.

Sonnet проигнорировали водителя

Это нет так. Sonnet сказала:

У нас нет информации о присутствии водителя. [Поэтому] в автобусе как минимум 5 человек.

Т.е. Sonnet совершено верно констатировала о водителе, что он, возможно, есть, но его может и не быть. Не исключено, что он выпрыгнул на ходу, умер за рулём или его изначально не было, т.к. автобус на автопилоте, дистанционном управлении или прицеплен (например, из-за поломки) к другому транспорту, где сидит водитель,

НЛО прилетело и опубликовало эту надпись здесь

Я думаю, если вы кожаных мешков попросите сделать "free form russian address parser" они тоже вам наделают все, что угодно, но не то, что вы хотели. Мне вот не понятно, что вам надо. Парсер адреса написанного в свободной форме? Если да, то что такое адрес написанный в свободной форме? Какие вариации, какие ограничения вам нужны? В каком виде результат нужен? Попробуйте попросить сделать что вам надо как можно подробнее.

Ну и если вы это просили у Llama 3.1, то у нее нет поддержки русского языка. Она в него умеет, но неофициально и, очевидно, сильно хуже, чем в языки, которые официально поддерживаются. Так, что разжевывать все вариации бывающие с русскими адресами надо даже еще более подробно, чем русскому программеру, который с ними сталкивается в жизни.

Можете даже в запросе дать табличку с сотней-другой адресов и какой результат вы хотите получить от каждой записи. И попросить сделать юнит-тест по этим данным. Потом попросить написать метод, который будет уметь парсить подобные данные и проходить юнит-тест.

НЛО прилетело и опубликовало эту надпись здесь

Так что вам надо-то было написать по запросу "free form russian address parser”? Аналог дадаты?

НЛО прилетело и опубликовало эту надпись здесь

Подозрительно, что при подготовке борща в стиле космического аппарата, две модели назвали его "Борщ-1", кто-то у кого-то списывает X-)

У меня когда 4o начинает тупить в коде я переспрашываю у mistral и он может слово в слово, строчка в строчку тоже самое написать. А вот Claude sonnet 3.5 всегда имеет свой стиль.

Её возможно запустить на своём железе? И что нужно минимум за железо?

Зависит от квантования. Но могу примерно предположить, что если для очень сильно ужатой (до q2-q3) Llama 3.1 70b нужна, как минимум, одна видеокарта с 24 гб видеопамяти, то для llama 3.1 405b понадобится минимум 6 таких видеокарт, да ещё и место для контекста (так что скорее даже 7). И даже в этом случае пострадает точность, так что более правильным ответом было бы штук 16 3090))

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

Так что я бы рекомендовал смотреть в сторону более компактных моделей (8b/70b). Для программирования вот отлично подходит codestral 22b. Она не настолько хорошо пишет код, как ChatGPT 4, но все равно неплохо.

Я вот до сих пор нигде не могу найти ответа, ну хорошо, есть у меня 16 штук 4090. Как их в общую память линкуют? NvLink вроде как убрали еще до этих карточек (а то ишь какие, параллелят игровые и проф карты за кучу бабок не покупают)

Я вот до сих пор нигде не могу найти ответа, ну хорошо, есть у меня 16 штук 4090. Как их в общую память линкуют?

Вы выгружаете разные слои модели на разные видяхи. В случае с gguf форматом это работает в паре cpu + gpu или mutli-gpu, в случае с PyTorch Accelerate только с gpu.

При загрузке модели вы выбираете сколько слоев хотите выгрузить на GPU (если GPU несколько, то будет несколько полей сколько на какую, если видяхи разный объем видеопамяти имеют):

После этого, в консоли у вас будет отображено сколько слоев всего и сколько из них выгружено на GPU, сколько памяти занято в GPU и тому подобное:

Чем больше вы укажите размер контекста тем больше памяти потребуется сверх самих весов модели. Например, у Mistal Large2 123b (главный конкурент llama 405b, только с лучшей поддержкой русского языка и размером в 3 раза меньше, а по тестам часто превосходящий 405b) максимальный размер контекста 128k, но можно явно указать 8k, тогда потребуется меньше памяти и можно больше слоев выгрузить на GPU.

В итоге разные слои модели вычисляются параллельно на разных видяхах, что дает ускорение без создания какой-то общей памяти. И используя gguf вам не нужно много VRAM, можно использовать и обычную RAM в паре с видеокартами, но будет не очень быстро, тут вот примерные расчеты.

А подскажите, у вас на скрине в роли GUI, что работает? Вроде на родной llama.cpp не похоже, или я пропустил где-то его обновление

Я прочитал про 16 канал, скорости впечатляющие, но дадут ли эпики такую производительность как GPU? У GPU тысячи ядер, которые распараллеливаются, а у этих процов даже не 24 потока как у зионов. (Я что-то тоже захотел себе такой серверочек без GPU совсем)

Тут не так важны ядра, так как не особо нужно много мощности для преумножения матриц, на первое место выходит пропускная способность считывания этих матриц. Кто-то пишет 24-32 ядра это максимум, дальше показатели только ухудшаются, но цифр не приводит.

А по поводу сервера, то в двух-процессорной конфигурации могут быть потери из-за NUMA, так как каждый процессор работает со своими банками памяти, и если вычисления попали на cpu1, а веса модели в других банках памяти, то это станет узким местом. Для исправления этого добавили опцию --numa, которая должна лучше распределять блоки по процам. И гиперпоточность советуют тоже отключить.

И в целом речь про очень небольшую скорость уровня 1-2 t/s для гигантских моделей (меньше чем пол слова в секунду). И не особо грандиозные 4 t/s для средне-больших моделей 123B.
Но тут даже 10 RTX 3090 не спасают ситуацию. Для больших скоростей нужна HBM память со скоростью 3.9 Тб/с (карта H100), и наличие тысячи ядер тут не так важно.

Вот тут кто-то собрал 10x3090
У него скорость на llama 70b без квантования составила 4.5 t/s, там же цифрами делится тот, кто собрал на Epyc Genoa 9374F (это 32 ядра с ddr5 в 12 канале на скорости 460 гб/с против 935 гб/с на 3090), у него скорость 2.3 t/s.

Запуск на Epyc Genoa модели Llama 3.1 405B квантованная Q5_K_M, скорость около 1 t/s.

Видео в реальном времени (чтобы оценить что такое 1 t/s, на русском будет дольше из-за токенизатора):

Скорость работы 405B с более сильным квантованием Q3_K_M на AM5 7950x + 192gb двухканал ddr5 CL30 6000 составляет 0.34 t/s.

Почему размеры моделей всегда такие карявые? Есть же определенные размеры видеопамяти, так и делайте под них модели. 16, 24, 32... ГБ. Куда засунуть 70б?

Так это не вес модели а её размер, соответственно привязки к 2^n нету, ибо смысла в этом тоже нету

Возможно, тут еще приколы из 90 аукаются, когда производители накопителей приняли килобайт за 1000 байтов. И вот сейчас покупаем мы SSD на 512gb, открываем его на компе и что же мы видим? А кто сьел гигабайты?

Главная беда подобных тестов это то, что модели задаётся всего один вопрос и оценивается всего один ответ. В принципе с этим сейчас +- справляются даже 8B модели, особенно с учётом что их в последнее время дополнительно тренируют на подобных тестах.

На деле же часто приходится что-то дополнять и уточнять в своем запросе чтобы добиться от модели нужных тебе результатов, и именно тогда всплывает главный бич Лламы 405B - она уходит в бесконечные лупы (повторение речевых конструкций, либо полное повторение предыдущих сообщений) практически со 2-3 ответа. Настройки семплеров не помогают, тем более что крупные модели к ним не особо чувствительны. По факту, в юзабильности она проигрывает даже некоторым 72В моделям.

Если уж что и сравнивать с закрытыми моделями вроде GPT и Cloude, так это Mistral Large - на данный момент лучшая открыта ЛЛМ, хоть в ней и поменьше параметров.

Протестировал эти запросы на моделях 8 и 70b. На 70 ответила примерно тоже самое с небольшими изменениями, но точность не пострадала. Ответ про автобус только был другой, там она сообщила, что недостаточно данных, но минимум 5 (примерно, как у claude). Ну а 8b модель лажала во всех трёх заданиях: код делает вообще не то, кирпич 1,5 кило, людей в автобусе 8, хотя по рассуждениям сумма другая, а в рецепте просто заменила слово "приготовление" на "сборка" и рецепт это был не борща ))

В общем, модель на 70B справилась не хуже с этими задачами. Но в целом, после некоторого опыта использования могу сказать, что она значительно хуже Chat GPT 4o. Модель на 400B как следует проверить не удалось - запускал пару раз на hugging face chat, но там проблема с доступностью модели. Но ответы были на уровне Chat GPT 4o.

Также все модели Llama 3.1 "понимают" восемь языков: английский, немецкий, французский, итальянский, португальский, хинди, испанский и тайский.

Русского в списке нет, но он все-таки поддерживается, судя по статье?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий