дистилляция.

NER для юристов, у которых нет A100: как мы догнали Ministral 14B моделью почти в 10 раз меньше

Юристы не могут отправлять материалы дел во внешние API, а держать A100 ради одного лишь разбора документов дорого. Мы обучили Qwen2.5-1.5B извлекать сущности из судебных документов на уровне Ministral 3 14B: макро-F1 0.70 против 0.71 на 145 реальных документах. На A5000 она работает в 2.2 раза быстрее, чем Ministral на A100. Рассказываем, почему балансировка классов синтетикой не сработала и что сработало вместо неё.Всем привет! Меня зовут Даниил Шеремет, я AI-инженер в Agentic Lab. В компании делаем Агату — ИИ-ассистента и рабочую среду для юристов.

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

От учителя к студенту: путь к изотропным эмбеддингам в 29M модели. Часть 5-10

Часть 5. Базовая линия: с чего стартуемВажное предупреждение: Весь код по моей методологии написан нейросетью DeepSeek, сам бы не осилил (я не программист). За мной лишь отладка, исправление неточностей и ошибок.5.1. Что и зачемПрежде чем что-то обучать, нужен "снимок до". Иначе после Phase A мы не поймём: cos 0.92 к учителю — это хорошо или "а должно было быть 0.98"? retrieval 0.98 — это выросло относительно старта или упало?Поэтому в этом разделе — два коротких замера, до всякого обучения:Retrieval на hnp_val

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

От учителя к студенту: путь к изотропным эмбеддингам в 29M модели. Часть 4-10

Часть 4. Создание ученикаВажное предупреждение: Весь код по моей методологии написан нейросетью DeepSeek, сам бы не осилил (я не программист). За мной лишь отладка, исправление неточностей и ошибок.4.1. Архитектура StudentTinyТри компонента:Input: input_ids , attention_mask ↓ ↓ hidden ↓ pooled ↓ projected | ┌── projected=False → → 312-dim (продакшен) └── projected=True → → → 768-dim (дистилляция)Ключевая идея — два режима через один метод:

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

От учителя к студенту: путь к изотропным эмбеддингам в 29M модели. Часть 3-10

Часть 3. Датасет contrastiveВажное предупреждение: Весь код по моей методологии написан нейросетью DeepSeek, сам бы не осилил (я не программист). За мной лишь отладка, исправление неточностей и ошибок.3.1. Выбор датасета для contrastivedeepvk/ru-HNP — русский датасет hard negatives, сгенерированный с помощью ChatGPT (см. карточку deepvk/ru-HNP). Отлично подходит для нашей задачи, потому что даёт готовую разметку без необходимости что-то придумывать самостоятельно.Структура данных для одного запроса:1 query — исходное предложение.

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

От учителя к студенту: путь к изотропным эмбеддингам в 29M модели. Часть 2-10

Часть 2. Данные: Вики и доменВажное предупреждение: Весь код по моей методологии написан нейросетью DeepSeek, сам бы не осилил (я не программист). За мной лишь отладка, исправление неточностей и ошибок.2.1. Зачем нужен общий корпусДля дистилляции нам нужны два вида данных:Общий корпус — чтобы студент выучил широкий семантический охват. Без него модель переобучится под узкий домен и будет плохо работать на произвольных текстах.Доменный корпус

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

От учителя к студенту: путь к изотропным эмбеддингам в 29M модели. Часть 1-10

Часть 1. Окружение, разведка моделейВажное предупреждение:Весь код по моей методологии написан нейросетью DeepSeek, сам бы не осилил (я не программист).За мной лишь отладка, исправление неточностей и ошибок.1.1. Создание окружения# путь условный, замените на свой mkdir -p ~/work/..../rubert-tiny2-distill cd ~/work/..../rubert-tiny2-distill python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip # PyTorch CPU pip install torch --index-url https://download.pytorch.org/whl/cpu # Основные библиотеки pip install transformers sentence-transformers datasets numpy scikit-learn tqdm huggingface_hubПроверка:python -c "import torch, transformers, sentence_transformers; print('OK')"

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

От учителя к студенту: путь к изотропным эмбеддингам в 29M модели. Часть 0-10

Часть 0. ВведениеВажное предупреждение:Весь код в последующих частях по моей методологии написан нейросетью DeepSeek, сам бы не осилил (я не программист). За мной лишь отладка, исправление неточностей и ошибок.Тексты этих статей собраны из "заметок на полях" во время реализации, потому возможны некоторые шероховатости в аргументации и стилистике.Если вас это устроит, желаю приятного чтения.0.1. Проблема и постановка задачиУчитель — DeepPavlov/rubert-base-cased-sentence

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

Почему softmax теряет градиенты — и как школьная алгебра 7-го класса помогает их сохранить

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

Терминал, которого нет: я научил модель на 360M параметров изображать bash, vim и tmux

Коротко: я дообучил языковую модель на 360 млн параметров работать терминалом. Никакого шелла и файловой системы за ней нет: на вход идёт каждое нажатие клавиши, а модель предсказывает, как изменится экран. Она умеет создавать файлы, запускать vim и tmux, играть в змейку и обычно помнит, что вы написали несколько команд назад. Больше всего дали два приёма: научить модель исправлять собственные ошибки и декодировать строки экрана параллельно. Попробуйте в браузере (208 МБ) и наберите pythoon, чтобы убедиться, что это не настоящий шелл.

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

Однобитная Bonsai по весам: что видно при сравнении с Qwen и как получить такую модель дистилляцией

Хотели бы вы запустить большую языковую модель на видеокарте с небольшим объёмом памяти? Модель с 27 миллиардами параметров, упакованными в 16 бит, занимает около 54 ГБ. Если хранить каждый вес одним битом и один общий масштаб на группу из 128 весов, те же параметры уместятся примерно в 4 ГБ (не считая таблицы словаря).

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

123