Pull to refresh
2
0
Агапов Владимир Николаевич@VNAg

Бэкенд разработчик, инженер электронных устройств

Send message

Протестировал модель GigaChat3-10B-A1.8B. Квантованная до q4 работает с приемлемой для домашнего использования скоростью (60 т/c) на ускорителе CMP 50HX (соответственно чего-то подобного или лучше можно ожидать от 2080). Для сравнения YandexGPT-5-Lite-8B квантованная тоже до q4 даёт примерно 20 т/c на том же ускорителе.
Модель по умолчанию не редко даёт ответы на английском. Но если в промпте явно указать насчёт русского языка, тогда всегда на русском. В ответах есть характерные для Qwen и Deepseek маркеры "**" и "##". Но китайские коллеги иногда в русских словах допускают ошибки и неточности, а в этой модели, на тестах этого не выявлено. Я думаю для создания чат-ботов и вопросно-ответных систем, а также агентов с разными моделями, эта разработка Сбера может быть полезной прежде всего по этим причинам - хороший уровень русского языка из коробки и небольшие требования к вычислительной мощности.

Вот как выглядит пример выдачи данной модели:
https://disk.yandex.ru/i/KM0wu4mqW7Nm2g


Есть ещё квантованная версия вот здесь:
https://huggingface.co/bartowski/ai-sage_GigaChat3-10B-A1.8B-GGUF/tree/main
Я скачал для теста "ai-sage_GigaChat3-10B-A1.8B-Q4_K_M.gguf". Свежий koboldcpp нормально с ней работает без каких-либо дополнительных действий.

Я запускал на двух машинах (одна с NVIDIA 1080, другая с cmp50hx) скрипт для обучения небольшой gpt2 модели.
Для cmp50hx:
scaler = torch.amp.GradScaler('cuda')
...
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
optimizer.zero_grad()

Для NVIDIA 1080
optimizer = optim.AdamW(model.parameters(), lr=1e-5)

loss = outputs.loss
loss.backward()
optimizer.step()
optimizer.zero_grad()

Сравнение производительности NVIDIA 1080 и cmp50hx в машинном обучении
Сравнение производительности NVIDIA 1080 и cmp50hx в машинном обучении

По расчётному времени на обучение я определил, что cmp50hx 1.5 раза быстрее.
Сейчас перепроверил. Разница получилась не такой значительной cmp50hx быстрее считает всего в 1.17 раза (причём в FP16, тогда как 1080 - в FP32). Моя ошибка видимо в том, что 1080 у меня перегревается и в первый раз она была ограничена до 90 Вт вместо штатных 180 Вт, а сейчас я и там и там сделал сопоставимое ограничение (-10 Вт от максимума).

Скрипт для обучения, который я использовал:
https://disk.yandex.ru/d/L2uttqXoVc3GXQ

Ну, эти 13% скорее всего люди, любящие немного приукрашивать свой потенциал, просто потому что им нравится так себя видеть со стороны, или с расчётом что-то материально от этого выгадать. Но 1.5-2 раза рост производительности, мне кажется достичь за счёт ИИ реально. Только это может оказаться отложенными на потом проблемами. Т.к. имея такой мощный "процессор заклинаний" снижается стимул напрягаться самому чтобы что-то эдакое соорудить. А нет напряжения, нет и новых связей между нейронами - всё ведь получается итак с меньшими затратами энергии на мозг. Ещё одна проблема на будущее - разрыв в цепочке передачи опыта, т.к. под нож идут прежде всего новички, которые могли бы вырасти на решении реальных задач по мере роста их сложности и перенимая опыт у старших. Но в новой реальности старшим дали ИИ вместо джунов, и эта эстафета прерывается.

На мой взгляд в таком режиме работать не комфортно. Потому что не решённые задачи в "бэкграунде" словно гири на шее. Пока с ними не порешать, они частично отвлекают от текущей работы. А если таких задач больше двух и это становится постоянным режимом работы, думаю будет ускоренное выгорание.

Мне кажется было бы полезно сопоставить с прибылью компаний. Быть может там есть какой-нибудь значительный рост? Тогда ожидания связанные с ростом продуктивности от технологий ИИ по-видимому насчёт именно прибыли, а не чего-либо другого. Если один программист с ИИ ассистентом может делать столько же, сколько два без него, то одного можно уволить, половину его зарплаты оставить себе, а половину отдать оставшемуся программисту. Отсюда же и объяснение почему нет никакого прироста конечной продукции - это и не нужно, перенасыщать рынок. Нужно (владельцам бизнеса) максимизировать прибыль.
Если же повышения продуктивности программистов действительно нет, то сокращение штата должно привести к падению темпов выпуска новой продукции и падению прибыли.

Если использовать AMP (Automatic Mixed Precision) в Pytorch, который значительную часть работы переводит в FP16, то обучение модели на CMP 50HX получается примерно в 1.5 раза быстрее чем на NVIDIA RTX 1080 в режиме FP32 (8 часов на датасет в 2 Гб против 12 часов).

Также в CMP 50HX получается запихнуть в 1.5 больше батчей за раз и она меньше греется (67 градусов против 83 градусов у 1080). Создаётся впечатление, что NVIDIA в драйверах ограничивает загрузку этой карты, снижая частоты или отключая часть вычислительных ядер. Потому что при TDP карты 250 ВТ, nvidia-smi показывает нагрузку не выше 167 Вт. Для RTX 1080 та же задача легко грузит карту по её заводской максимум - 180 Вт.

Проверял на p104-100. С помощью штатной утилиты nvidia-smi можно ограничить мощность этой видеокарты. При лимите 130 Вт ожидаемая потеря производительности 20%, что увеличит время выполнения задачи и в итоге существенной экономии не получится. Это имеет смысл делать для снижения температуры при длительных высоких нагрузках. Например Pytroch в задаче машинного обучения прогревает эту видеокарту до 73 градусов. За сутки прогона выше температура не поднималась. Минимальное значение, которое можно установить - 90 Вт. А без ограничений она может слега переваливать за 83 градуса.

Уже базовый школный курс даёт некоторые основы, позволяющие выстраивать картину мира крупными блоками без магии. А потребность, связанная с профессиональной деятельностью и доступность информации позволяют любой из этих блоков детализировать настолько, насколько человек способен. Пример со смартфоном: устройство связи, предназначенное для работы в сотовых сетях, состоящее из интерфейса пользователя (сенсорный экран, микрофон, динамик, датчики ускорения и поворота), модема для приёмо-передачи сообщений, устройства хранения, центрального процессора, осуществляющего скоординированную работу всех частей по заданной программе - это позволяет как-то ориентироваться, выбирать модель, выполнять какие-то осмысленные действия с ней. Другой пример - автомобилист. Ему для вождения вовсе не обязательно знать устройство автомобиля во всех деталях, но крупными мазками он знает как оно устроено, зачем руль, педали, коробка передач, аккумулятор, двигатель внутреннего сгорания. Если надо - может сделать некоторый ремонт, например заменить колесо. Это не чёрный ящик для него и он вполне осознаёт, что едет не на синей магии уходящей в трубу, а за счёт сжигания бензина.

Большая LLM с сотнями миллиардов параметров работает точно также, как и малая на несколько сотен миллионов параметров, если у них аналогичная архитектура. Поэтому, изучение изменения весов, распределения внимания, применение методов понижения размерностей типа PCA или t-SNE, создание проекций с помощью UMAP, дают возможность из отдельных частей складывать представление о том, что происходит с данными, попадающими в модель, какую "форму" (топологию) они принимают (кластеров, циклов, мостов, связностей и т.д.) Это в перспективе может привести нас к новому уровню, на котором мы будем проектировать и работать с моделями не как чёрным ящиком, а полностью спроектированными нами до последнего винтика "думающими машинами", с такими параметрами и свойствами, которые требуются для выполнения конкретной задачи.

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

Конкретно к теме вашей статьи. Нам нужны технические знания в том числе чтобы делать более совершенные модели ИИ, потому что текущий уровень - не вершина эволюции. И любой другой нами достигнутый не будет вершиной. А будет только приближением. И процесс этого приближения (к разуму человека, сверхразуму) может быть устремлён к бесконечности. Вряд-ли удастся достигнуть предела, когда можно будет сказать - лучше уже не может быть.

Ну это, как мне кажется, человеческие цивилизации уже много раз проходили. На примере Древнего Египта. Где-то читал, что на позднем этапе жрецы уже не понимали что за наследие им оставили в древних свитках, но учили как определённые ритуалы повторять некоторую последовательность действий. Итог всем известен. От этой древней цивилизации остался только след в истории, а эстафету прогресса приняли другие.
Человек должен понимать, что он делает, а не надеяться на чудо из коробки. Для этого нужны фундаментальные технические знания. Без этого не обойтись.

У меня есть предположение, что очень большой размер модели может быть на самом деле не нужен для хорошей точности. Сейчас большие модели для качественной генерации вынуждены получать именно из-за того, что необходимые данные для обучения - плохо структурированные, разрозненные человеческие тексты. Чтобы извлечь из них необходимые паттерны и построить модель, нужно очень много параметров и очень много переборов вариантов как их оптимально сложить друг с другом. Если же использовать правильную синтетику, можно добиться сходимости за значительно (на порядки) меньшее число итераций и получить точность в какой-то специальной области при также на порядки меньшем числе параметров модели.

Спасибо за такой развёрнутый ответ. Мне кажется это довольно интересная затея и я ближе к сентябрю/октябрю, наверное, начну с этим экспериментировать. Как раз должны освободиться вычислительные мощности. Сейчас у меня на завершающем этапе создание русско-английской языковой модели с чистого листа по классической схеме. Вот она-то, думаю, и послужит подопытным, в силу своего простого устройства и уже кое-каких усвоенных закономерностей. Для начала хотя бы надо будет попробовать воспроизвести вручную то, что описано в статьях насчёт SAE для анализа активаций и получения признаков. А если получится - уже можно будет перейти и к изменению базовой архитектуры модели. Ещё предстоит придумать, какую задачу будет решать эта новая модель, чтобы можно было проконтролировать её прогресс. Текущая модель предназначена для написания текстов по описанию пользователя и ответу на вопросы по тексту, а также переводу. Но в новой наверное нужно будет что-то, требующее рассуждений.

Интересно, нельзя ли имитировать рефлексию в трансформерных моделях за счёт дополнения механизма внимания разрежёнными автокодировщиками (Sparse Autoencoders, SAE). Например, обучить SAE на выходах промежуточных слоев трансформера (активациях FFN). Затем использовать его выходы как дополнительный вход для декодера. Этот механизм по идее создаёт дополнительный источники признаков для декодера и служит "бутылочным горлышком" для сжатия контекста, отключая большую часть активаций скрытых нейронов и учась находить в них главное (может быть получится что-то вроде семантических понятий?).

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

Мне кажется упущено что-то существенное. Перечисленные: дискретизация, рекурсия, рефлексия в машине - это уже запущенные по какой-то внешней причине процессы. Они не нужны самой машине до запуска. Покрутившись некоторое число итераций и достигнув первоначально поставленной цели - они не нужны ей и после.
Возможно, условие, которое лежит в основе возникновения сознания - потребности, присущие живой материи, например клеткам мозга. Они так устроены, что им нужно искать друг с другом связи. А сигналы от всех органов тела вносят коррективы, каким связям закрепляться, а каким распадаться. Дальше всё зависит от среды. Если организму для достижения своих потребностей требуется разрешение сложных противоречий среды и есть время для приобретения опыта от взаимодействия с ней - в мозгу формируются сложные связи. И уже на каком-то уровне их сложности появляются эти паттерны, организм приобретает способность действовать осознанно.

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

Я тоже с этим экспериментирую - пытаюсь обучить небольшую русско-английскую модель с нуля для написания длинных текстов по аннотации, названию, теме, плану, списку вопросов и т.д. Для этого учителями работают три модели: TinyLLaMA 1B и QWEN05B которые генерируют основной текст и YandexGPT Lite 8B которая формирует сжатую информацию (тема текста, ключевой вопрос и т.д.) для имитации вопросов пользователя. Русско-английский перевод делает моя модель-переводчик (https://huggingface.co/Vladniag/Requestor).
Обучается чистый декодер на 8 млн. параметров (размер модели в формате FP32 всего 26 Мб). На 436 эпохе обучения на одной NVIDIA 1080 пока что генерации получаются вот такими: https://disk.yandex.ru/i/Wx5k0rpgb_ryNQ

Сколько нейронов у современных моделей сложно сказать сходу, потому что в искусственных нейронных сетях это абстракция, а работа ведётся с матрицами весов, отражающих связи между слоями. Условно аналогами "нейронов" в них можно считать активации (выходы слоёв), например векторы в скрытых слоях модели. А число параметров, которыми характеризуют сложность модели - это приблизительный аналог связей между нейронами в биологическом мозгу.
Чтобы понимать разницу чисто количественно и приблизительно:
- число параметров самых современных и крупных моделей ИИ составляет 1-2 трлн.
- в мозгу среднестатистического человека таких связей порядка 100 трлн. Причём они постоянно обновляются в процессе приобретения жизненного опыта. А в модели ИИ - "застывают" после завершения цикла обучения, который очень затратен и по этой причине не может быть непрерывным.

Мне кажется проблему "галлюцинаций" моделей можно значительно уменьшить сочетая их работу с базой знаний. Что-то полезное в этом направлении можно, наверное, почерпнуть из предложенной Microsoft концепции внешних знаний KBLaM. В ней набор фактов структурирован как тройки, состоящие из сущности, свойства и значения. Сначала с помощью небольшой модели сырые данные преобразуются такие структуры в JSON формате. Затем они кластеризуются. И каждой тройке сопоставляются вектора ключ-значение. Вектор ключа, полученный из имени, сущности и свойства кодирует "индексную информацию", в то время как вектор значения фиксирует соответствующее значения свойства. Эти пары ключ-значение (токены знаний) дополняются в уровнях внимания модели с помощью специализированной прямоугольной структуры внимания. Языковые токены (например, из вопроса пользователя) относятся ко всем токенам знаний. Однако токены знаний не относятся друг к другу и не относятся к языковым токенам. Такая избирательность шаблона внимания значительно снижает вычислительные затраты, сохраняя при этом способность модели эффективно включать внешние знания.

Qwen05B 2.5 в одном из вариантов ответов говорила, что она создана "Антропой". Хотя всем известно, что у неё другой создатель. Так что верить на слово моделям - это немного рискованно. Могут наврать с три короба.

Ну, Cerebras это очень специфическая и дорогая вещь, как мне кажется, доступная единицам. А насчёт очков, думаю именно такой прицел и имеет Марк Цукерберг. Однако это тоже уже получается не общедоступно. Например в России и ряде других стран (в зависимости от политики СЩА или этих стран).

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

1

Information

Rating
6,601-st
Location
Симферополь, Республика Крым, Россия
Date of birth
Registered
Activity

Specialization

Бэкенд разработчик, ML разработчик
Стажёр
From 100,000 ₽
Python
Linux
MySQL
Bash