PyTorch.

PVAD: как научить ИИ слышать нужного человека в шумной комнате

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

продолжить чтение

Побеждаем OOM в PyTorch: как обучать гигантские графы на обычной видеокарте

Если вы обучаете графные нейросети или Knowledge Graph Embeddings на миллионы узлов, вы наверняка сталкивались с тем, что стандартный torch.optim.SparseAdam моментально забивает всю оперативную память или видеопамять.Я разработал маленький пакет Disk Sparse Adam (DSA) — Out-of-Core оптимизатор для PyTorch, который выносит состояния моментов (

продолжить чтение

Kazry — новая кусочно‑заданная активация

Привет, Хабр, в этой статье я хочу представить новую функцию активации для нейронных сетей под названием Kazry, которая по результатам тестов обогнала SiLU. Сразу перейдем к делу.Индустрия повсеместно использует активации типа SiLU из‑за их бесконечной дифференцируемости, но за это приходится платить высокую цену, в виде производной, которая глушит сигнал. Взглянем на график одной из самых популярных активаций — SiLU:

продолжить чтение

Подводные камни ИИ-инфраструктуры: что узнаёт заказчик через полгода после запуска (и как мы предусмотрели это в ПАК)

продолжить чтение

От ANN к честному KNN на GPU: как мы пересобрали отбор кандидатов в рекомендациях Ozon

продолжить чтение

Своя GPT‑like LLM по WH40K с нуля. Часть 5: Интеграция с Hugging Face

Привет, Хабр! Меня зовут Владимир, и это пятая часть цикла статей по написанию и обучению небольшой decoder‑only LLM с нуля. В прошлых частях мы собрали и обучили модель LinguaLaboratoriumMechanicus — миниатюрную GPT‑like LLM во вселенной Warhammer 40K. В этой части упакуем её в формат Hugging Face: сделаем конфиг и обёртку под transformers, сохраним и зальём модель на Hub.Содержание циклаПодготовка и токенизация данныхТрансформерСборка и обучение LLM

продолжить чтение

Своя GPT-like LLM по WH40K с нуля. Часть 4: Дообучение на вопрос–ответ (SFT)

Привет, Хабр! Меня зовут Владимир, и это четвёртая часть цикла статей по написанию и обучению небольшой decoder-only LLM с нуля. В третьей части мы собрали LinguaLaboratoriumMechanicus, обучили base-модель на корпусе данных по Warhammer 40K и получили модель, которая умеет продолжать текст. Данная статья целиком посвящена этапу SFT - дообучению на датасете “вопрос - ответ”, чтобы модель могла вести диалог с пользователем, а не просто дописывать за него фразы.Содержание циклаПодготовка и токенизация данныхТрансформер

продолжить чтение

Python: как один из самых медленных языков стал королем нейросетей

Python. IT-курсы разрекламировали его как один из самых легких языков для входа в разработку, любители ИИ создают на нем свои первые нейросети, а некоторые сеньоры Java и C++ по-прежнему смотрят на него свысока, считая недостаточно строгим и производительным для «серьезной» разработки. В любом случае сегодня о Python знают все.Поскольку заметный рост его популярности пришелся на 2010-е годы, многие считают, что язык появился сравнительно недавно. Но это неверно: Python старше большинства современных веб- и ML-фреймворков, массовой мобильной разработки и нынешнего AI-бума.

продолжить чтение

Своя GPT-like LLM по WH40K с нуля. Часть 3: pre-train LLM

Привет, Хабр! Меня зовут Владимир, и это третья часть цикла статей по написании и обучению небольшой decoder-only LLM с нуля. В первой части мы обучили токенизатор и собрали pretrain-датасет, во второй части реализовали класс Трансформер-блока. В этой части будем собирать и предобучать нашу LLM.Содержание циклаПодготовка и токенизация данныхТрансформерСборка и обучение LLM (вы находитесь здесь)SFT этап (дообучение на Вопрос-Ответ)

продолжить чтение

Почему «чем проще, тем лучше» не работает на ИИ-классификаторе

Micro F1 = 0.9358. Число, с которым можно спокойно закрывать задачу в трекере — если не разбираться дальше. Но стоило посмотреть на precision и recall по каждому из 15 классов отдельно, как выяснилось: качество части классов тестовый набор фактически не проверяет — для одного из них в test split вообще не было положительных примеров.Это разбор конкретного случая: как агрегированная метрика может скрывать классификатор, бесполезный именно там, где он важнее всего. И почему принцип KISS, на который я обычно опираюсь, в multi-label задачах работает не так прямолинейно, как кажется.Контекст: зачем вообще классификатор

продолжить чтение

123456...9