Чему вы научитесь
- Писать базовые алгоритмы поиска по шагам
- Измерять качество поиска, понимая, что скрывается за каждой метрикой.
- Собирать векторный поиск на FAISS.
- Совмещать лексический и семантический поиск и объединять две выдачи через Reciprocal Rank Fusion.
- Нарезать документы на чанки смыслу.
- Собрать RAG-пайплайн без фреймворка и на LangChain/LangGraph
О курсе
Девять уроков, в которых мы пишем поиск своими руками: от инвертированного индекса и TF-IDF до векторного, гибридного поиска и RAG с самокоррекцией.
Для кого этот курс
Для тех, кто уже пишет RAG.
Для тех, кто никогда не писал свой RAG, но хочет написать.
Для тех, кто готовится к собеседованиям по NLP и поиску: TF-IDF, BM25, NDCG, HNSW спрашивают до сих пор.
Начальные требования
- Python на базовом уровне: функции, списки, словари, циклы, работа с файлами. Опыт в ML и знание фреймворков не нужны - все вводится по ходу изложения.
- Немного школьной математики: логарифм и скалярное произведение. Все остальное объясняется в тексте.
- Библиотеки ставятся по ходу курса через pip: numpy, nltk, pymystem3, rank_bm25, scikit-learn, faiss-cpu, langchain.
- Ключ OpenRouter и небольшой баланс - понадобится в уроках 5, 7 и 8, где считаются эмбеддинги и вызывается языковая модель. Расход на весь курс - около пары долларов (используются самые дешевые модели: text-embedding-3-small и gpt-4o-mini). Подойдет и любой другой OpenAI-совместимый провайдер - в коде меняется только
base_url.
Преподаватели курса
Как проходит обучение
Теория чередуется с тестами так, чтобы подводить читателя к очередному повороту мысли. То, о чем догадался сам, запоминается гораздо лучше.
Каждый алгоритм сначала пишется руками на чистом Python - десять-двадцать строк, которые можно запустить, сломать и починить, - и только потом мы смотрим, как то же самое делает готовая библиотека.
Что вы напишете своими руками:
- токенизацию, матрицу «термин - документ» и инвертированный индекс;
- ранжирование по частоте, IDF, TF-IDF;
- векторную модель, евклидово расстояние, а затем косинусную меру и нормировку на длину документа;
- BM25 - сначала формулу с параметрами
k1иb, потом то же самое наrank_bm25; - стеммер Портера для русского языка, потом используем
SnowballStemmerиз nltk и лемматизацию через mystem; - метрики качества поиска: P@k, R@k, F1, Average Precision, MAP, DCG/IDCG/NDCG. Затем сверите свои реализации со
sklearn.metrics.ndcg_scoreиranx; - LSA через SVD на чистом NumPy, затем эмбеддинги через API;
- векторный поиск: k-means и индекс IVF, HNSW, FAISS;
- гибридный поиск и слияние выдач через Reciprocal Rank Fusion;
- собственный чанкер с перехлестом и семантический чанкинг по смысловому ключу;
- полноценный RAG-пайплайн без единого фреймворка;
- и только после этого - то же самое на LangChain (LCEL) и самокорректирующийся RAG на LangGraph.
Сертификат
Успешно завершив курс, вы получите сертификат от платформы Stepik. Уже 4 учеников получили сертификат.