Создание больших моделей ИИ требует обучения и требует много времени и ресурсов. До недавнего времени мы думали о весах модели предварительно обученного ИИ как о неоднозначных двумерных массивах десятичных чисел, но что, если бы было нечто большее?
Сегодня мы хотим рассказать, как мы изучаем веса моделей ИИ, но сначала давайте посмотрим, как мы к этому пришли.
Мы читаем эти ключевые документы
Классификация ImageNet с глубокими сверточными нейронными сетями
Внимание — это все, что вам нужно
Выводы/Основные моменты
Ключевые вопросы
Что еще работает с матрицами и данными высокого разрешения с плавающей запятой 32? (изображения в формате TIFF)?
Почему мы не можем повторно использовать аналогичные методы из этих систем, которые имеют большие наборы данных с высоким разрешением, для навигации по «весам» с помощью итератора другого типа? Учитывая текущую производительность Rust и mmap при загрузке файла размером 100 ГБ на диск, кто знает, может быть, этот подход может работать без графического процессора для меньших моделей, ограниченных только процессором.
Какие технические детали отсутствуют/необходимы для начала?
Что
Мы создали прототип для извлечения и, надеюсь, определения того, как веса:
вернуться к исходным исходным данным обучения
смена в течение многих поколений тренировок
представляют собой плотную трехмерную область тренировочных знаний, сохраненную в виде встроенных «весов» (недоказанная, но это наша гипотеза, основанная на методах, которые, по-видимому, работают)
Почему
Мы хотели понять, почему LLM особенные и как гири вписываются в эту инновационную технологию.
Решив потратить время на то, чтобы увидеть, каковы веса LLM, мы считаем, что можем применить хорошо известные методы визуализации для анализа сканирований человеческого мозга, чтобы извлечь, идентифицировать, повторно использовать и проверить, каковы веса.
До того, как большие генеративные веса AI Transformer стали широко доступны, эти типы плотных наборов обучающих данных с высоким разрешением были очень дорогими и нечасто передавались.
Как
Мы создали этот прототип, используя алгоритмы цифровой обработки сигналов (DSP) для объемного анализа данных высокого разрешения, и объединили механизм анализа с Blender (инструментом визуализации с открытым исходным кодом).
Мы откроем исходный код и будем отслеживать, как ИИ учится с нуля, и использовать Blender для экспорта и обмена информацией о том, как выглядят веса по мере продвижения.
Решив использовать Blender для анализа весов модели в трехмерном объеме, мы встроили возможности анимации, которые позволили нам разработать наш первоначальный API версии 1 для захвата набора обучающих данных временных рядов. Этот набор обучающих данных ориентирован на то, чтобы отразить, как базовая модель ИИ обучается на каждом этапе обучения, используя высокопроизводительный анализ веса на объемных данных.
Мы считаем, что нам необходимо рассказать, как выглядят эти модели, чтобы мы могли понять их и обучить ИИ самостоятельно создавать и проверять.
Мы также хотим посмотреть, как выглядят смеси экспертов (загрузите новейшие версии сетки Dolphin 2.5 Mixtral 8x7B STL/glTF ниже).
Этот репозиторий предназначен для профилирования, извлечения, визуализации и повторного использования генеративных весов ИИ для построения более точных моделей ИИ и аудита/сканирования весов в состоянии покоя для выявления областей знаний для риска(ов).
Примечание. Сегодняшняя версия включает только способы профилирования, извлечения и визуализации весов существующих моделей. Теперь, когда мы можем визуализировать, как обучаются модели ИИ, следующим этапом является базовое обучение моделей. Визуализация обучения начнется с обучения новой модели ИИ тому, «как репозиторий bampe-weights интегрировал numpy, pandas и Blender». У нас есть около 190 файлов Python/(задача, подсказка, ответ), которые нужно систематизировать перед публикацией.
В этом репозитории изучаются визуализации обучения модели с течением времени и создаются наборы обучающих данных на основе извлеченных «форм веса» для построения и прогнозирования весов новых моделей ИИ (надеемся, быстрее, чем традиционные методы обучения).
Вот как выглядит Llama 2 7B Chat GPTQ внутри Blender и экспортирован в формате gif с использованием этого репозитория:
Следующие папки на диске Google содержат новый индекс больших языковых моделей glTF и визуализаций STL. Размер файлов варьируется от ~1 МБ до +2 ГБ.
Обращайтесь, если хотите увидеть новую модель/плотность!
Если файл STL достаточно мал, GitHub может автоматически визуализировать трехмерные сетки. Примечание. Просмотр GitHub STL на мобильном устройстве в настоящее время не идеален, но на настольном компьютере вы можете масштабировать слои, используя колесо мыши в обратном направлении, и вращать их с помощью левой/правой кнопок мыши:
Мы стараемся не превышать лимит в 50 МБ и хранить ресурсы в нашем репозитории на GitHub — https://github.com/matlok-ai/gen-ai-datasets-for-bampe-weights/docs/images/blender.
Самостоятельное размещение Blender в контейнере, чтобы увидеть, как выглядят веса генеративного ИИ локально:
Демонстрационный образ контейнера Blender с уже включенными экспортированными файлами STL/GLB.
Образ matlok/blender-ai-demos был создан на основе образа LinuxServer Blender и включает в себя 3D-файлы STL и GLB, которые можно просмотреть в браузере. Извлеченный образ контейнера blender-ai-demos занимает >4,0 ГБ на диске и использует около 3 ГБ оперативной памяти для обработки файлов STL или glTF >40 МБ:
Демонстрационные визуализации находятся в этом каталоге внутри контейнера:
/config/bampe-визуализации
Докер
docker rm blender; docker-compose -f compose/blender-demos.yaml up -d
Подман
podman rm -t 0 -f blender; podman-compose -f compose/blender-demos.yaml up -d
Базовый образ LinuxServer
Запустите образ LinuxServer/docker-blender (lscr.io/linuxserver/blender:latest) и сгенерируйте новые файлы STL/GLB, готовые к просмотру, используя уже смонтированный том между хостом и контейнером Blender (каталог .blender ). Извлеченный образ контейнера docker-blender занимает на диске около 3 ГБ.
Докер
docker rm blender; docker-compose -f compose/blender-demos.yaml up -d
Подман
podman rm -t 0 -f blender; podman-compose -f compose/base.yaml up -d
Примечание. Недавно созданные визуальные артефакты (файлы STL и glTF glb) отображаются только после перезапуска контейнера в этом каталоге внутри контейнера Blender:
/config/бампе
Откройте Blender в браузере
Blender прослушивает этот URL:
http://локальный хост:3000
Загрузите AI-визуализацию 3D Blender вручную
После запуска Blender в браузере вы можете импортировать файлы STL или glTF, щелкнув эти меню:
Файл
Импорт
STL или glTF
Файлы находятся либо в каталоге /config/bampe , либо в каталоге /config/bampe-visualizations в зависимости от версии запущенного контейнера.
Используйте Shift + ` , чтобы включить режим навигации с помощью мыши, и W, A, S, D для движения от первого лица.
Удерживая кнопку Shift, вы также будете двигаться с турбо-скоростью.
Откройте «Редактирование» -> «Настройки» -> «Навигация» -> «Полет и прогулка» -> «Стрелка переключения ходьбы».
Отрегулируйте чувствительность мыши -> 0,1.
Отрегулируйте скорость ходьбы -> 20 м/с.
Этот репозиторий предназначен для исследования альтернативных подходов к созданию ИИ с использованием предварительно обученных весов ИИ. Работа над этим еще продолжается, поэтому, пожалуйста, обратитесь к разделу «Настройка среды разработки», чтобы получить более подробную информацию о запуске из командной строки.
Мы можем делиться и просматривать эти формы с помощью онлайн-инструментов.
Этот репозиторий был протестирован на следующих платформах: