эмбеддинги.

Пять слоёв памяти ИИ-ассистента: что реально работает в проде, а что осталось в библиотеке

Мы делаем ИИ-ассистента, который живёт сразу в трёх мессенджерах: Telegram, MAX и ВКонтакте, и пользуются им около 1200 человек. Про мост в MAX я уже писал, а сегодня расскажу о том, что лежит под ним, то есть о памяти.

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

От учителя к студенту: путь к изотропным эмбеддингам в 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')"

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

Позиционные эмбеддинги, или Почему 3 + 5 не всегда 8

Привет, Хабр! 👋Меня зовут Настя, я Data Scientist и TeamLead. Сегодня хочу рассказать про вредную занозу, которая засела у меня в голове и далее я не могла это игнорировать.Сейчас я читаю книгу Себастьяна Рашки «Строим LLM с нуля». Читаю по-взрослому: глава за главой, с открытым Jupyter рядом и кружкой кофе (не первой). И на разделе 2.8 про позиционные эмбеддинги я встала. Прямо как вкопанная.

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

Anthropic заблокировала меня и я потерял подписку за $100, но сохранил год работы и собрал личную RAG-базу

Привет, Хабр!Доброго утра!

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

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

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

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

RAG-бот по материалам эксперта: как я мерил качество поиска и почему гибрид оказался хуже чистого вектора

Эксперт попросил бота, который отвечает его голосом и только по его собственным материалам: курсам в PDF, расшифровкам видео и записям занятий. Если ответа в материалах нет, бот должен честно отправить человека к живому эксперту и ничего не придумывать. Я собрал такого бота на Python и Telegram, рассчитывая повозиться с промптами, но на первых же живых вопросах выяснилось, что бот просто не находит нужный материал, и почти всё время ушло на поиск.

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

123456...10...10