bugs ans letters – Telegram
bugs ans letters
18 subscribers
34 photos
3 videos
3 files
135 links
Мой канал для себя про NLP. В основном – помойка из ссылок.
Download Telegram
Горький урок ABBYY: как лингвисты проиграли последнюю битву за NLP 

Недавно СМИ облетела новость об увольнении всех российских программистов из компании ABBYY (тоже в прошлом российской, а теперь уже совсем нет). Теперь, когда страсти вокруг обсуждения дискриминации сотрудников по паспорту улеглись, хочется поговорить о более глубокой истории. Закат ABBYY — это фиксация проигрыша последней битвы лингвистов за автоматическую обработку языка. Мир Data Science победил. Главный редактор «Системного Блока» Даниил Скоринкин, работавший ABBYY в 2013–2017, подводит итоги и пытается сформулировать уроки из этой истории.

Что за ABBYY и при чем тут лингвисты и NLP?

История ABBYY началась в 1989 году, когда студент МФТИ Давид Ян решил сделать электронный словарь для подготовки к экзамену. Так появились Lingvo, а затем — система распознавания символов FineReader. Продукты ABBYY развивались, и компания стала глобальным лидером оптического распознавания в 1990-е и 2000-е. Затем ABBYY двинулась покорять машинный перевод. 
На вооружение они взяли идеи известных лингвистов — в первую очередь Модели «Смысл ⇔ Текст» (прочитать о ней можно в нашем интервью с И. А. Мельчуком). Амбиция была в том, чтобы разобрать человеческие языки как формальные структуры на базе семантической иерархии. Но естественный язык устроен противоречиво и постоянно изменяется, подход оказался негибким и немасштабируемым

Что пошло не так?

В 2006-м появилась первая версия Google Translate. Она была несовершенной, но главное, что в ней был другой — статистический — подход. И масштабируемость. Для её улучшения не нужны были сотни лингвистов, только еще больше примеров перевода. В 2010-х стало ясно, что никаких шансов тягаться с Google Translate у ABBYY не было. С перевода ABBYY переключилась на задачи информационного поиска и извлечения информации из текста, но и там столкнулась с теми же проблемами: описания языка на базе лингвистической теории оказались немасштабируемыми, а решения уступали подходам на основе чистого машинного обучения. 

C новой проблемой компания столкнулась весной 2022 – им пришлось выехать из России, чтобы сохранить зарубежных клиентов. Следующим ударом стали большие языковые модели, который научились лучше и быстрее выполнять те же задачи, что и классические системы распознавания от ABBYY. Сейчас от компании осталась только вывеска, действующие продукты и небольшое количество менеджеров и специалистов по продажам.

Какие уроки мы извлекаем?


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

И всё-таки ABBYY успела сделать много важного: открывала кафедры на Физтехе и в РГГУ, оцифровывала наследия Льва Толстого и архива Большого театра. А еще благодаря ей появился «Системный Блокъ», ведь сооснователи издания познакомились именно там. И именно там вы сможете прочитать полную версию поста с мемами и более детальным описанием цифровой «Вавилонской башни», которую пыталась строить ABBYY.

🤖 «Системный Блокъ» @sysblok
Please open Telegram to view this post
VIEW IN TELEGRAM
3
#ml #infrastructure Хорошая большая статья про обучение действительно больших моделей на большой инфраструктуре.
При всём при том оставляет некоторое ощущение – "а к чему это всё"?
Даже удивительно, что популярная статья читается как научная статья старой школы, когда проблемы поставлены, а решений толком не предвидится, типа живите с этим.
Возможно, все уже давно прочли, но пусть будет для заметки.
Alibaba успешно обучила относительно небольшую (32 миллиарда параметров в самом крупном варианте) модель (Qwen-2.5-Coder).
Заметна тенденция, как и с Министрелями, делать относительно небольшие специализированные модели; также заметно желание умещаться в лимит видеопамяти популярных объёмов (24-40-48-80 Gb), и при этом заметен рост числа параметров в каждой категории.
Интересно, что в основном постере сравнения идут с очень свежими моделями: что было год назад, то давно прошло.
#ml #code #davinci github
В продолжении наших экспериментов с адаптацией Qwen-2.5 моделей мы выпускаем RuadaptQwen-2.5-32B-Instruct (v1)! Вероятно самая большая открытая модель на данный момент, адаптированная на русский язык (в частности у нее один из наилучших токенайзеров среди открытых моделей для русского языка).

Модель была оценена на бенчмарке MERA (см. картинку).
Некоторая особенность сабмита на MERA в том, что в нем был использован кастомный промпт (есть в карточке сабмита), но для честного сравнения мы также добавили сабмит с исходной версией модели с таким же промптом.

Ссылка на модель:
https://huggingface.co/msu-rcc-lair/RuadaptQwen-32B-instruct

GGUF версия:
https://huggingface.co/msu-rcc-lair/RuadaptQwen2.5-32B-instruct-GGUF

Попробовать можно тут:
https://huggingface.co/spaces/RefalMachine/RuadaptQwen2.5

Будем рады фидбеку по достоинствам и недостатком модели.
#database #architecture Картинка шибко простенькая, но пусть будет
Forwarded from Градиентное погружение (Максим Герасимов)
🔥TensorRT-LLM

👉Ваш любимый нейронный ускоритель получил расширение!

TensorRT - движок, который применяет оптимизации для эффективного использования NVIDIA-GPU в Deep Learning.

Что интересного?

💡Интеграция с NVIDIA Triton Inference Server
💡Поддержка Multiple GPU
💡Python API (очень напоминает API HF)
💡Есть поддержка 17 моделей (с примерами): Blib2, LLaMa 1/2, GPT-like, StarCoder, Bert, etc
💡Поддержка квантизации: FP32, FP16, BF16, FP8, INT8, INT4
💡Beam-search & Greedy-search
... и многое другое!

Multi-head Attention (MHA), Multi-query Attention (MQA), Group-query Attention (GQA), In-flight Batching, Paged KV Cache for the Attention, Tensor Parallelism, Pipeline Parallelism, INT4/INT8 Weight-Only Quantization (W4A16 & W8A16), SmoothQuant, GPTQ, AWQ, RoPE

@gradientdip

Конечно, сейчас проект сыроват, но все впереди

Github
Performance (не нашел сравнения с обычным TensorRT)
Документация
🔥1
Forwarded from Плотва
взрыв градиента
за авторством stepan
(❣️)
Уверен, что многих интересует как вот там реализуются методы распределенного трейна, может кто-то хотел бы сам реализовать (а это очень полезно).
Ребята из HF 🤗 начали проект по учебной реализации таких методов (dataparallel, tensorparallel, pipelineparallel, contextparallel) :
https://github.com/huggingface/picotron
https://github.com/huggingface/picotron_tutorial

Вместе с проектом идут лекции на ютубе.

Это как проект nanoGPT по учебной реализации гптшки 2, чтобы разобраться, но он прям уже круто разросся и народ там уже наоптимизировал всякого, мб и тут крутое что-то будет
kurs_algebry.pdf
3.3 MB
#вышмат Очень неплохой базовый учебник алгебры нашёлся в ответ на запрос человека "а как поботать математику" без конкретизации, что именно ему не хватает.
Ещё в ту же степь Brilliant и Elevate. Последний, конечно, лучше сделан в части "английский для сдачи GRE", но математика тоже сойдёт
Forwarded from Voice stuff
Test Driven LLM Development

Я в какой-то момент пришёл к тому что LLM не имеют нормальной обратной связи при написании кода, поэтому разработка через тестирование - это хороший способ организации кода.

Мой опыт такой:

Я как-то искал ошибки в том, что ЛЛМка написала и нашёл что чаще всего проблема в недопонимании задачи. Если просить модель писать docstring, для каждого класса и функции и сверять что она там задумала, то получается отловить много ошибок.

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

Какие у вас есть трюки при разработке в 2025? Используете курсор? Пишете тесты? Пишете что “You are an experienced Python Engineer who makes no mistakes in code” в промпте? Рассказывайте ваши секреты.

https://blog.yfzhou.fyi/posts/tdd-llm/ - для вдохновения.
Forwarded from Ivan Kotov
Если тебе выключить создание .DS_Store то это можно настройками поправить
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
В рамках консолидации знаний про трансформеры – длинное, но отличное видео от Карпатого про построение и обучение трансформера с нуля (детали архитектуры прилагаются, умение читать документацию по torch.nn предполагается, но там действительно не сложно). К нему прилагается репа с кодом. Для ленивых – архитектура в двух видео.
#transformers #school #ml #llm
Forwarded from Igor Prokofyev
внезапно понадобилось однократно но массово конвертнуть фотки из heic в jpg, решил что скрипт это проще и быстрее чем качать мутный софт, вот код кому тоже вдруг пригодится

from pathlib import Path
from PIL import Image
import pillow_heif

input_folder = Path("")
output_folder = Path("")

output_folder.mkdir(parents=True, exist_ok=True)

for file in input_folder.iterdir():
if file.suffix.lower() == ".heic":
heif_image = pillow_heif.open_heif(file)
img = Image.frombytes(heif_image.mode, heif_image.size, heif_image.data)
output_path = output_folder / file.with_suffix(".jpg").name
img.save(output_path, "JPEG")
print(f"Converted: {file.name} → {output_path}")

print(" Conversion completed!")
Kravchenko ML System Design.epub
14.3 MB
#ml #systemdesign В прошлой редакции эта книга собрала неплохие отзывы, повод сравнить, что изменилось за два года.
Forwarded from Модель для сборки
👾 Я одним из последних прочитал книгу @partially_unsupervised и @cryptovalerii по ML System Design и решил прикрепить все свои заметки, которые я за это время накопил. Их дохера, поэтому не уверен что это сильно надо, но я уже несколько раз натыкался на просьбы рассказать чё там да как. Кстати, после каждой главы есть её summary, что прикольно.

Постарался сделать подробный обзор первых 8ми глав (всего 16). Когда-нибудь я допишу обзор, особенно учитывая что мне дичайше зашла 9я глава.
https://telegra.ph/Zametochki-po-knige-ML-System-Design--ch1-02-17

Имейте в виду, что автор — не повар, и готовить не умеет.


💅🏼 Спаразитирую ещё больше и замучу подробный список промптов для claude по книжке, если наберёте 3000 реакций 💅🏼
Forwarded from k8s (in)security (Дмитрий Евдокимов)
Если вам не хватает хардкора в теме безопасности контейнеров и Kubernetes, то специально для вас у нас в блоге вышла статья "Ломаем ваши видеокарты: распаковка эксплойта для CVE-2024-0132 под NVIDIA Container Toolkit"!

Тема острая, горячая приправленная ML-кластерами, драйверами видеокарт, атакой TOCTOU, проблемой разыменования symlinks ;)

При этом тема очень актуальная ввиду все большего количества систем, работающих с видеокартами.

P.S. Раньше всех о таких материал можно узнать на нашем официальном канале.
Внезапное #сисадминское. И да, #macos.
Сменить имя компьютера в Preferences -> General -> Sharing или через hostname --set работает не очень последовательно. Хочется один и тот же хостнейм видеть сразу в приглашении командной строки, в том, как компьютер объявляет себя через mDNS в сети, ну и в целом не ощущать доменную шизофрению.
В статье описана старая давняя утилита scutil, которая позволяет выставлять параметры (HostName|ComputerName|LocalHostName) для системы. Однако найти/вспомнить этот подход потребовало более одной минуты, посему запись остаётся в заметках здесь.
Forwarded from AI для Всех (Kirill)
Как обучить диффузионную модель с нуля за $1890?


Законы масштабирования в генеративном ИИ повышают производительность, но есть ньюанс: разработка моделей концентрируется среди игроков с большими вычислительными ресурсами.

Поскольку стоимость обучения text-to-image трансформера растет с количеством участков в каждом изображении, исследователи из Sony AI предложили случайным образом маскировать до 75% участков изображения во время обучения.

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

В исследование также включили последние
улучшения в архитектуре трансформеров, такие как использование слоев с mixture of experts (MoE),чтобы улучшить производительность и убедиться в важности использования синтетических изображений для уменьшения затрат на обучение.

Какие результаты?

Используя только 37 млн изображений (22 млн реальных + 15 млн синтетических), была обучена модель типа "sparse transformer" с 1,16 млрд параметров.

На обучение было потрачено всего 1890$ !

Была достигнута производительность 12,7 FID при zero shot learning на наборе данных COCO.

Примечательно, что модель достигает конкурентоспособного FID и высококачественных генераций, при этом требуя в 118 раз меньших затрат, чем стабильные диффузионные модели, и в 14 раз меньших затрат, чем текущий современный подход, который стоит 28400$


🔍 Технические детали:
• Архитектура: sparse DiT-XL/2 трансформер
• Вычисления: 8×H100 GPU на 2,6 дня тренировки
• VAE: использование как SDXL-VAE (4 канала), так и Ostris-VAE (16 каналов)
• Патч-миксер перед трансформером + маскирование 75% патчей
• Обучение: 280K шагов на 256×256, затем 55K шагов на 512×512
• Размер батча: 2048, с применением центрального кропа

📊 Доступные предобученные модели:
1. MicroDiT_XL_2 на 22 млн реальных изображениях (FID 12.72)
2. MicroDiT_XL_2 на 37 млн изображениях (FID 12.66) с SDXL-VAE
3. MicroDiT_XL_2 на 37 млн изображениях (FID 13.04) с Ostris-VAE
4. MicroDiT_XL_2 на 490 млн синтетических изображениях (FID 13.26)

💻 Репозиторий содержит полный код, включая обработку датасетов и тренировочные конфиги для каждого этапа

🔗 Статья

4️⃣ GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM