This media is not supported in your browser
VIEW IN TELEGRAM
Традиционный vs. Графовый RAG: понятное объяснение
Представьте, что у вас есть длинный документ, например, биография человека (X), где каждая глава посвящена одному из его достижений.
Например:
↳ Глава 1: Описывает Достижение-1.
↳ Глава 2: Описывает Достижение-2.
...
↳ Глава 10: Описывает Достижение-10.
Теперь внимательно разберём следующий момент
Допустим, вы создали традиционный RAG (Retrieval-Augmented Generation) на основе этого документа и хотите суммировать все достижения X.
Сделать это с помощью традиционного поиска может быть сложно, так как для полноценного ответа нужен весь контекст...
...но при этом вы, скорее всего, извлекаете только топ-k наиболее релевантных фрагментов из векторной базы данных.
Кроме того, традиционные RAG-системы извлекают каждый фрагмент отдельно, и LLM вынужден самостоятельно восстанавливать связи между этими частями (если они вообще были найдены).
— Графовый RAG решает эту проблему
Основная идея заключается в том, чтобы сначала создать граф (сущности и их связи) из документов, а затем выполнять обход этого графа на этапе извлечения информации.
Как Graph RAG устраняет проблемы традиционного подхода:
1. Генерация графа
🔸 LLM анализирует биографию и строит граф, выявляя сущности и связи между ними.
🔸 В результате получается полноценный граф, а его подграф, связанный с достижениями X, будет выглядеть так:
↳ X → <достиг> → Достижение-1.
↳ X → <достиг> → Достижение-2.
...
↳ X → <достиг> → Достижение-N.
2. Поиск по графу
🔸 На этапе извлечения информации система выполняет обход графа, собирая все релевантные данные о достижениях X.
🔸 Полученный контекст передаётся LLM, что позволяет сформировать логичный, полный и связный ответ, в отличие от традиционного RAG.
— Почему Graph RAG так эффективен?
😫 Структурированные данные — LLM лучше работает с четко организованной информацией.
😫 Более полный контекст — система получает всю нужную информацию, а не только разрозненные куски.
😫 Глубокая связь между сущностями — связи между фактами сохраняются и используются при генерации ответа.
👉 @DataSciencegx
Представьте, что у вас есть длинный документ, например, биография человека (X), где каждая глава посвящена одному из его достижений.
Например:
↳ Глава 1: Описывает Достижение-1.
↳ Глава 2: Описывает Достижение-2.
...
↳ Глава 10: Описывает Достижение-10.
Теперь внимательно разберём следующий момент
Допустим, вы создали традиционный RAG (Retrieval-Augmented Generation) на основе этого документа и хотите суммировать все достижения X.
Сделать это с помощью традиционного поиска может быть сложно, так как для полноценного ответа нужен весь контекст...
...но при этом вы, скорее всего, извлекаете только топ-k наиболее релевантных фрагментов из векторной базы данных.
Кроме того, традиционные RAG-системы извлекают каждый фрагмент отдельно, и LLM вынужден самостоятельно восстанавливать связи между этими частями (если они вообще были найдены).
— Графовый RAG решает эту проблему
Основная идея заключается в том, чтобы сначала создать граф (сущности и их связи) из документов, а затем выполнять обход этого графа на этапе извлечения информации.
Как Graph RAG устраняет проблемы традиционного подхода:
1. Генерация графа
↳ X → <достиг> → Достижение-1.
↳ X → <достиг> → Достижение-2.
...
↳ X → <достиг> → Достижение-N.
2. Поиск по графу
— Почему Graph RAG так эффективен?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
В Python можно выполнить директорию проекта как скрипт
🔸 Переименуйте основной файл в main[.]py.
🔸 Запустите "python имя_директории".
Это удобно и позволяет другим легко идентифицировать основной файл
👉 @DataSciencegx
Это удобно и позволяет другим легко идентифицировать основной файл
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Следующая визуализация показывает 5 самых популярных шаблонов проектирования, используемых при создании ИИ-агентов
Давайте их разберём:
1. Шаблон рефлексии
ИИ анализирует свою работу, чтобы выявить ошибки, и повторяет процесс до тех пор, пока не создаст окончательный ответ.
2. Шаблон использования инструментов
Инструменты позволяют LLM собирать дополнительную информацию с помощью:
🔸 Запросов к векторным базам данных
🔸 Выполнения Python-скриптов
🔸 Вызова API и т. д.
Это полезно, поскольку LLM не зависит исключительно от своего внутреннего знания.
3. Шаблон ReAct (Reason and Act):
ReAct сочетает два вышеописанных шаблона.
4. Шаблон планирования:
Вместо того чтобы решать задачу за один раз, ИИ создаёт план действий:
🔸 Разбивает задачи на части
🔸 Формулирует цели
Такое стратегическое мышление позволяет решать задачи более эффективно.
5. Шаблон многократных агентов:
🔸 Мы имеем несколько агентов.
🔸 Каждый агент получает свою роль и задачу.
🔸 Каждый агент может также использовать инструменты.
Все агенты работают вместе, чтобы достичь конечного результата, делегируя задачи другим агентам по мере необходимости.
🔸 Агент может отражать сгенерированные выводы.
🔸 Он может взаимодействовать с миром с помощью инструментов.
Это делает данный шаблон одним из самых мощных, используемых сегодня
👉 @DataSciencegx
Давайте их разберём:
1. Шаблон рефлексии
ИИ анализирует свою работу, чтобы выявить ошибки, и повторяет процесс до тех пор, пока не создаст окончательный ответ.
2. Шаблон использования инструментов
Инструменты позволяют LLM собирать дополнительную информацию с помощью:
Это полезно, поскольку LLM не зависит исключительно от своего внутреннего знания.
3. Шаблон ReAct (Reason and Act):
ReAct сочетает два вышеописанных шаблона.
4. Шаблон планирования:
Вместо того чтобы решать задачу за один раз, ИИ создаёт план действий:
Такое стратегическое мышление позволяет решать задачи более эффективно.
5. Шаблон многократных агентов:
Все агенты работают вместе, чтобы достичь конечного результата, делегируя задачи другим агентам по мере необходимости.
Это делает данный шаблон одним из самых мощных, используемых сегодня
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆5👍3❤1🔥1
Только что наткнулся на отличный разбор трансформеров от Брэндона Роэра и не могу не поделиться
Если вам когда-либо было сложно разобраться, как работают эти модели (и при этом не утонуть в формулах), обязательно прочитайте эту статью.
Автор объясняет всё максимально интуитивно — никаких сложных выкладок, только суть. Визуализации и аналогии помогают действительно понять такие концепции, как механизм внимания.
Если вы работаете с LLM, готовитесь к собеседованию или просто хотите лучше понять, как устроены модели вроде ChatGPT, этот материал — один из лучших, что я встречал
👉 https://www.brandonrohrer.com/transformers
👉 @DataSciencegx | #ресурсы
Если вам когда-либо было сложно разобраться, как работают эти модели (и при этом не утонуть в формулах), обязательно прочитайте эту статью.
Автор объясняет всё максимально интуитивно — никаких сложных выкладок, только суть. Визуализации и аналогии помогают действительно понять такие концепции, как механизм внимания.
Если вы работаете с LLM, готовитесь к собеседованию или просто хотите лучше понять, как устроены модели вроде ChatGPT, этот материал — один из лучших, что я встречал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Нашёл мощную альтернативу Jupyter Notebook (с открытым исходным кодом)
marimo объединяет возможности Jupyter, Streamlit, ipywidgets (и не только) в реактивном интерфейсе.
Он также отображает интерактивные таблицы Pandas, и к ним можно выполнять SQL-запросы.
👉 @DataSciencegx | #ресурсы
marimo объединяет возможности Jupyter, Streamlit, ipywidgets (и не только) в реактивном интерфейсе.
Он также отображает интерактивные таблицы Pandas, и к ним можно выполнять SQL-запросы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Пользователям Jupyter это точно понравится
Stickyland — это инструмент с открытым исходным кодом, который позволяет выйти за рамки линейного представления ноутбука.
🔸 Создавайте плавающие ячейки
🔸 Формируйте дашборды из ячеек
🔸 Автоматически выполняйте ячейки при изменениях
👉 @DataSciencegx | #ресурсы
Stickyland — это инструмент с открытым исходным кодом, который позволяет выйти за рамки линейного представления ноутбука.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3
Используйте box plot с осторожностью. Они могут вводить в заблуждение
В этом примере три разных набора данных дают похожие box plot. Поэтому всегда проверяйте распределение данных с помощью гистограмм, KDE и других методов.
👉 @DataSciencegx
В этом примере три разных набора данных дают похожие box plot. Поэтому всегда проверяйте распределение данных с помощью гистограмм, KDE и других методов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Альтернатива Pandas, работающая в 100 раз быстрее!
(Может даже обойти GPU-библиотеки для работы с DataFrame)
Хотя Pandas — самая популярная библиотека для работы с DataFrame, у нее есть серьезные ограничения:
🔸 Использует только одно ядро процессора
🔸 Часто создает громоздкие DataFrame.
🔸 Немедленное (eager) выполнение мешает глобальной оптимизации.
Представляем FireDucksDev — высокоэффективную замену Pandas, которую можно использовать без изменений кода.
Достаточно просто заменить одну строку:
На видео показано сравнение FireDucks с cuDF — GPU-библиотекой DataFrame.
В этом случае FireDucks оказался даже быстрее cuDF.
Однако в тесте использовались цепочки операций и все столбцы. После ручной оптимизации (работа только с нужными столбцами) время выполнения изменилось:
🔸 Pandas: 14 секунд (было 48 секунд)
🔸 FireDucks: 0,8 секунды (без изменений)
🔸 cuDF: 0,9 секунды (было 2,6 секунды)
Это доказывает, что компилятор FireDucks автоматически выполняет те же оптимизации, которые в cuDF и Pandas пришлось бы настраивать вручную.
Важно отметить, что оптимизация не влияет на конечный результат
👉 Ссылка на Google Colab
👉 @DataSciencegx
(Может даже обойти GPU-библиотеки для работы с DataFrame)
Хотя Pandas — самая популярная библиотека для работы с DataFrame, у нее есть серьезные ограничения:
Представляем FireDucksDev — высокоэффективную замену Pandas, которую можно использовать без изменений кода.
Достаточно просто заменить одну строку:
import fireducks.pandas as pd
На видео показано сравнение FireDucks с cuDF — GPU-библиотекой DataFrame.
В этом случае FireDucks оказался даже быстрее cuDF.
Однако в тесте использовались цепочки операций и все столбцы. После ручной оптимизации (работа только с нужными столбцами) время выполнения изменилось:
Это доказывает, что компилятор FireDucks автоматически выполняет те же оптимизации, которые в cuDF и Pandas пришлось бы настраивать вручную.
Важно отметить, что оптимизация не влияет на конечный результат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤7
Используйте эти репозитории на GitHub, чтобы прокачать свои навыки в Python и ML:
🔸 Homemade Machine Learning — Репозиторий содержит коллекцию алгоритмов машинного обучения, реализованных с нуля на Python, что помогает понять их внутреннюю работу.
🔸 Awesome Machine Learning — Подборка отличных фреймворков, библиотек и программного обеспечения для машинного обучения
🔸 Machine Learning Tutorial — Собрание обучающих материалов, статей и других ресурсов по машинному и глубокому обучению
🔸 Best Of ML With Python — Ранжированный список лучших библиотек Python для машинного обучения, обновляемый еженедельно
🔸 Machine Learning Interview — Репозиторий предоставляет ресурсы для подготовки к интервью по машинному обучению, включая примеры вопросов и советы
👉 @DataSciencegx | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤5🔥1
Сегодня стартовала неделя опенсорса от DeepSeek
На прошлой неделе команда анонсировала, что с 24 по 28 февраля они выложат в открытый доступ пять репозиториев из своей внутренней экосистемы
Сегодня — первый релиз: FlashMLA
🔸 GitHub: FlashMLA
👉 @DataSciencegx
На прошлой неделе команда анонсировала, что с 24 по 28 февраля они выложат в открытый доступ пять репозиториев из своей внутренней экосистемы
Сегодня — первый релиз: FlashMLA
Это эффективный декодирующий кернел для MLA на GPU Hopper, оптимизированный для обработки последовательностей переменной длины.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤7🔥2
Генеративные vs. дискриминативные модели в ML
Генеративные модели:
🔸 Изучают распределение данных, чтобы генерировать новые образцы.
🔸 Обладают дискриминативными свойствами — их можно использовать для классификации.
Дискриминативные модели не обладают генеративными свойствами
👉 @DataSciencegx
Генеративные модели:
Дискриминативные модели не обладают генеративными свойствами
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3
4 способа запустить LLM, такую как DeepSeek-R1, локально на вашем компьютере:
Запуск LLM локально — это как обладание суперспособностью:
🔸 Экономия средств
🔸 Конфиденциальность: ваши данные остаются на вашем компьютере
🔸 К тому же, это безумно интересно
Сегодня мы рассмотрим лучшие способы сделать это. Поехали:
1. Ollama
Самый простой способ — выполнить команду:
А установить Ollama можно одной строкой:
2. LMStudio
Устанавливается как приложение и предоставляет интерфейс, похожий на ChatGPT. Вы можете загружать и выгружать модели, как будто работаете с кассетами в магнитофоне
3. vLLM
Быстрая и удобная библиотека для выполнения и развертывания LLM. Всего несколько строк кода — и вы сможете локально запустить DeepSeek как сервер, совместимый с OpenAI, с поддержкой рассуждений
4. LlamaCPP
Минимальная настройка, топовая производительность. На видео DeepSeek-R1 на Mac Studio
👉 @DataSciencegx
Запуск LLM локально — это как обладание суперспособностью:
Сегодня мы рассмотрим лучшие способы сделать это. Поехали:
1. Ollama
Самый простой способ — выполнить команду:
ollama run deepseek-r1
А установить Ollama можно одной строкой:
curl -fsSL https://ollama.com/install.sh | sh
2. LMStudio
Устанавливается как приложение и предоставляет интерфейс, похожий на ChatGPT. Вы можете загружать и выгружать модели, как будто работаете с кассетами в магнитофоне
3. vLLM
Быстрая и удобная библиотека для выполнения и развертывания LLM. Всего несколько строк кода — и вы сможете локально запустить DeepSeek как сервер, совместимый с OpenAI, с поддержкой рассуждений
4. LlamaCPP
Минимальная настройка, топовая производительность. На видео DeepSeek-R1 на Mac Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3🔥3
Python-библиотека для тонкой настройки Gemma 3
Gemma — это минимальная библиотека для использования и тонкой настройки Gemma. Включает документацию по тонкой настройке, шардингу, LoRA, PEFT, мультимодальности и токенизации в больших языковых моделях (LLMs).
Полностью с открытым исходным кодом.
👉 @DataSciencegx
Gemma — это минимальная библиотека для использования и тонкой настройки Gemma. Включает документацию по тонкой настройке, шардингу, LoRA, PEFT, мультимодальности и токенизации в больших языковых моделях (LLMs).
Полностью с открытым исходным кодом.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Иногда нужно быстро скормить LLM весь репозиторий
Просто меняешь одну букву в URL (
Плюс есть фильтрация по расширениям, настройка максимального количества токенов и поддержка разных форматов вроде YAML
👉 @DataSciencegx
Просто меняешь одну букву в URL (
github.com
→ uithub.com
), и вуаля — получаешь весь репозиторий в виде чистого текста со структурой Плюс есть фильтрация по расширениям, настройка максимального количества токенов и поддержка разных форматов вроде YAML
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤3