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

Пользователь

Отправить сообщение

Вообще интересны лучшие практики для случая, когда из основного датасета приходится делать еще и дополнительные и основной датасет итеративно приращивается, то есть когда задача решается не одной моделью, а пайплайном моделей, как к примеру распознание номерных знаков, когда есть модель детекции и модель распознающая номер, которая обучается на кропах номерных знаков с основного изображения. Как лучше такое размечать все вместе или лучше вначале разметить для детекции, потом получить кропы и уже размечать номерные знаки? Как лучше приращивать и размечать, когда для одной модели в принципе уже и хватило данных, а для другой нет? Пример номерных знаков условный, пайплайн моделей может быть и более сложным и многоэтапным.

А еще бывают кейсы, когда какая-то доля неоднозначности вообще неустранима и всегда есть некоторая неопределенность из-за субъективности, из-за чего приходится прибегать к всяким вещам вроде разметки по консенсусу.

Господи как же задолбал маркетинг нвидии с fp4. Во первых это формат для квантизированного инференса, а не тренировки моделей, во вторых даже среди 4 битовых квантизаций он все еще весьма нишевый. Говорите про fp16/bf16 как нормальные люди.

А если еще полезть в оригинальную статью, то вселенская грусть за AMD берет. Мне больше всего понравилось вот это:

The only reason we have been able to get AMD performance within 75% of H100/H200 performance is because we have been supported by multiple teams at AMD in fixing numerous AMD software bugs. To get AMD to a usable state with somewhat reasonable performance, a giant ~60 command Dockerfile that builds dependencies from source, hand crafted by an AMD principal engineer, was specifically provided for us, since the Pytorch Nightly and public PyTorch AMD images functioned poorly and had version differences. This docker image requires ~5 hours to build from source and installs dependencies and sub-dependencies (hipBLASLt, Triton, PyTorch, TransformerEngine), a huge difference compared to Nvidia, which offers a pre-built, out of the box experience and takes but a single line of code.

Или вот это:

Note that the H100/H200 performance we present in this report reflects an out of the box performance without any hand-crafted tuning from Nvidia engineers, while the results for the MI300X comes after many months of tuning and bug fixes from AMD’s engineers. We did not run into any Nvidia-specific bugs compared to AMD training, which was comparatively bug-filled. Five months ago, many models couldn’t run at more than 150 TFLOP/s on the AMD MI300X due to an AMD software bug in attention backwards and torch compile, which forced the user to manually mark a region of the model as non-compliable instead of having a full graph compile.

А какие еще в планах? Кроме нумерованных до 10 версии, есть еще pp-yoloe, pp-yoloe-v2, yolox, еще один интересный образчик yoloworld который детектит на базе текстовых промтов. Есть еще очень родственная rtmdet.

С видео непонятно, в прес релизе заявлены текст, аудио и изображения, то есть она теперь их может как понимать, так и генерировать. Про видео не говорится. Но в одном из примеров была показана генережка 3D объекта. Так что диапазон модальностей там возможно больше. Эмпирически пока не проверить, выкатили пока только возможности с текстом и принятием изображений, остальное пока тестят на безопасность.

Из интересного еще хотелось бы почитать про AWQ и квантизацию реализованную в llama.cpp. И если AWQ еще можно полезть в оригинальную статью, то насколько я понимаю описание того как реализована квантизация в llama.cpp существует только в коммитах репы.

GPTQ и GGUF от TheBloke уже есть, но они конечно работают пока не в основных ветках библиотек.

Гугли механизм kv -кэша. Это стандартный способ ускорения работы трансформерных llm-ок, засчет некоторого оверхеда по памяти, позволяющий при инференсе сделать вычислительную сложность атеншена линейной, а не квадратичной от количества токенов при авторегресивной генерации. По сути это сохранения результатов после k, v линейных слоев в память, что бы их каждый раз не пересчитывать. Это также позволяет считать атеншн только по последнему токену, а не по всем. Но вот только это работает, когда уже что-то закешировано. Когда же к нам приходит начальный набор токенов, что бы запустить генерацию для них нужно все посчитать все честно по старинке, что бы закешировать весь этот набор присланных начальных токенов.

Ну мало делают это смотря где. Если embedded разработка и нужно что бы работало на какой-нибудь платке да еще и в реальном времени, то делают часто.
Опенсурсные энтузиасты LLM-ок тоже активно юзают и фактически развивают сейчас это направление. Ибо модели огромные и всем охота поиграться на домашних видеокартах, а не лезть в облака за A100 какой-нибудь. И тут весь цвет общества применяется. 16 бит для весов это уже стандарт, 8 бит и 4 бита легко. Плюс всякие GPTQ и AWQ методы.
Другое дело что это у энтузиастов и всяких ребят решивших срубить денег как хостинги для опенсусрных моделей. Применяют ли все это большие ребята типа OpenAI или Anthropic в продакшене, черт его знает.

4 бита еще не самая большая наркомания в машинном обучении. Как вам 3 и даже 2 бита? Правда тут конечно уже не плавающая точка. И квантизация не везде проходит до 2 битов, но тем нем менее. Причем активно используется, когда дело касается опенсурсных LLM. Поддерживается библиотекой transformers.

Он наверное имел ввиду что Гедель под конец жизни стал параноиком с психическим расстройством личности. Наверное думает что платонизм его до такого довел, ну или что платонизм следствие этих проблем.

Поэтому большинство таких моделей обучают на порно/эротике для улучшения понимания анатомии, ну и соответственно при денойзе без гайданса (промпта) она склоняется к тому, на чём её обучали.

Скорее потому что на это есть большой спрос и первые люди которые дообучали обнаженку неплохо так с патреона денег собирали.

Тут

https://arxiv.org/pdf/2203.15556.pdf

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

Ну можешь глянуть тут.

https://arxiv.org/abs/2303.18223

Но не от больших корпораций сеток немного BLOOM, gpt-j и т.д. Просто потому что языковые модели самые большие монстры в плане требований на компьютерные вычисления при обучении. И если не можешь себе позволить пару сотен a100 на несколько месяцев, то с нуля ты ничего не сделаешь. Поэтому языковыми моделями в основном занимаются только большие ребята.

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

Ну кстати. Если прямо запрашивать портрет, то результат обычно заметно лучше.

Надписи на изображениях это бич dall-e2. Но в гугловских imagen и parti это вроде как нормально работает.

А в более общем смысле, это что-то вроде ассоциативных связей между понятиями, получается?

Ну что-то вроде того.

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

Не, порядок в сетках трансформерах там вполне себе задается, через positional encoding который кодирует порядковую информацию о расположении по отношению друг к другу токенов подслов и эта информация добавляется к самим эмбедингам токенов. Кодироваться может явно через определенный алгоритм, либо да, можно сделать так, что бы это тоже выучивалось. Обычно для NLP берется первый вариант.

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

1

Информация

В рейтинге
5 670-й
Зарегистрирован
Активность

Специализация

Дата-сайентист
Middle
Python
Git
OOP
SQL