Друзья, я не пропал!
Последнее время работа меня плотно засосала, и писать сюда удаётся не так часто, как хотелось бы. Но! Это не значит, что мне нечем с вами поделиться. Наоборот — за этот период накопилось столько интересных инсайтов, что скоро будем разбирать их вместе!
Спасибо, что остаетесь здесь. Скоро вернусь с крутым контентом! 🚀🔥
Последнее время работа меня плотно засосала, и писать сюда удаётся не так часто, как хотелось бы. Но! Это не значит, что мне нечем с вами поделиться. Наоборот — за этот период накопилось столько интересных инсайтов, что скоро будем разбирать их вместе!
Спасибо, что остаетесь здесь. Скоро вернусь с крутым контентом! 🚀🔥
👍6
Реранкер, или кто такие би-энкодер и кросс-энкодер? 🤔🚀
Решил не откладывать в долгий ящик новую информацию, которой готов поделиться. Итак, первый инсайт за последнее время! Сейчас плотно занимаюсь задачей создания и поиска по базе знаний, и — с пылу с жару — хочу рассказать про реранкер и как он помогает в задачах RAG (Retrieval-Augmented Generation).
А теперь обо всём по порядку…
Знали ли вы, что в мире поиска информации есть два таинственных «персонажа», которые помогают быстро докопаться до сути? Представляем:
🤝 Би-энкодер: Спид-дэйтинг с текстами
Представьте, что ваш запрос и документы ходят на быстрые свидания. Встреча длится пару секунд (прогнали текст через модель) — бац, у каждого свой вектор-профиль!
- Би-энкодер отдельно «снимает мерки» (эмбеддинги) запроса и документов.
- Затем они сравниваются по «уровню совместимости» (косинусная близость, евклидово расстояние — кому что нравится).
- Результат: модель мгновенно предлагает список возможных «кандидатов», которые могут вам подойти.
🤔 Кросс-энкодер: Строгий финальный судья
Когда из толпы претендентов отобраны «возможные фавориты», в дело вступает кросс-энкодер — такой себе строгий критик с лупой:
- Он одновременно читает и запрос, и документ, высматривает малейшие детали и выдаёт оценку релевантности.
- Работает медленнее, зато справедливее — идеально подходит для «реранкинга» и расстановки финальных приоритетов. 🤓
Как помогает в задачах RAG?
RAG (Retrieval-Augmented Generation) — подход, когда система (например, ChatGPT) берёт контекст из векторной базы и на его основе генерирует ответ. Чем точнее «подтягивается» этот контекст, тем более релевантной получается генерация.
- Быстрый отбор: Би-энкодер выуживает из большой базы подходящие документы — своего рода «черновой» отбор.
- Снайперская точность: Кросс-энкодер дорабатывает список, убирая нерелевантные фрагменты и расставляя всё по местам.
- Итог: Генеративная модель получает наиболее подходящие данные и выдаёт более «умный» ответ.
Если вы хотите, чтобы ваша векторная база знаний работала, как швейцарские часы, и при этом молниеносно и точно отвечала на запросы (а особенно если используете RAG), то комбинация би-энкодера для быстрого поиска и кросс-энкодера для реранкинга — ваш лучший выбор! ⏰✨
А если у вас есть своя метафора про би- и кросс-энкодеры — делитесь в комментах!
#Нейросети #NLP #ML #DataScience #ВекторныеБазы #БиЭнкодер #КроссЭнкодер #Поиск #Реранкер #AI #DeepLearning #SemanticSearch
Решил не откладывать в долгий ящик новую информацию, которой готов поделиться. Итак, первый инсайт за последнее время! Сейчас плотно занимаюсь задачей создания и поиска по базе знаний, и — с пылу с жару — хочу рассказать про реранкер и как он помогает в задачах RAG (Retrieval-Augmented Generation).
А теперь обо всём по порядку…
Знали ли вы, что в мире поиска информации есть два таинственных «персонажа», которые помогают быстро докопаться до сути? Представляем:
🤝 Би-энкодер: Спид-дэйтинг с текстами
Представьте, что ваш запрос и документы ходят на быстрые свидания. Встреча длится пару секунд (прогнали текст через модель) — бац, у каждого свой вектор-профиль!
- Би-энкодер отдельно «снимает мерки» (эмбеддинги) запроса и документов.
- Затем они сравниваются по «уровню совместимости» (косинусная близость, евклидово расстояние — кому что нравится).
- Результат: модель мгновенно предлагает список возможных «кандидатов», которые могут вам подойти.
Шутка дня: «Разошлись как-то би-энкодер с документом» — очень быстро, но всё же успели узнать друг о друге достаточно, чтобы подойти или нет.😎
🤔 Кросс-энкодер: Строгий финальный судья
Когда из толпы претендентов отобраны «возможные фавориты», в дело вступает кросс-энкодер — такой себе строгий критик с лупой:
- Он одновременно читает и запрос, и документ, высматривает малейшие детали и выдаёт оценку релевантности.
- Работает медленнее, зато справедливее — идеально подходит для «реранкинга» и расстановки финальных приоритетов. 🤓
Аналогия: Би-энкодер — это фейс-контроль на входе клуба, а кросс-энкодер — диджей, который расставляет главных звёзд вечеринки по местам.
Как помогает в задачах RAG?
RAG (Retrieval-Augmented Generation) — подход, когда система (например, ChatGPT) берёт контекст из векторной базы и на его основе генерирует ответ. Чем точнее «подтягивается» этот контекст, тем более релевантной получается генерация.
- Быстрый отбор: Би-энкодер выуживает из большой базы подходящие документы — своего рода «черновой» отбор.
- Снайперская точность: Кросс-энкодер дорабатывает список, убирая нерелевантные фрагменты и расставляя всё по местам.
- Итог: Генеративная модель получает наиболее подходящие данные и выдаёт более «умный» ответ.
Если вы хотите, чтобы ваша векторная база знаний работала, как швейцарские часы, и при этом молниеносно и точно отвечала на запросы (а особенно если используете RAG), то комбинация би-энкодера для быстрого поиска и кросс-энкодера для реранкинга — ваш лучший выбор! ⏰✨
А если у вас есть своя метафора про би- и кросс-энкодеры — делитесь в комментах!
#Нейросети #NLP #ML #DataScience #ВекторныеБазы #БиЭнкодер #КроссЭнкодер #Поиск #Реранкер #AI #DeepLearning #SemanticSearch
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2👌2
🔥 Автоматизация создания базы знаний с помощью LLM
Привет, друзья! Сегодня расскажу, как мы автоматизировали процесс создания базы знаний, интегрировав генерацию контента с помощью LLM. Основная идея – взять данные из Confluence, дополнить их сгенерированными описаниями и сохранить в виде структурированных записей. Ниже описаны ключевые моменты нашего подхода:
1. Определение структуры данных
Мы задаём структуру записи базы знаний с помощью TypedDict, чтобы гарантировать единообразие данных. Пример:
2. Генерация краткого описания (summary)
Используем LLM для создания краткого описания каждой страницы. Промт формируется с учетом заголовка, контента и контекста родительской страницы:
Ключевой момент – учитывать родительский контекст, чтобы summary было максимально информативным.
3. Генерация недостающих полей
Для каждой записи мы хотим получить дополнительные данные: вопрос пользователя, подробную инструкцию, ключевые слова, оценку полезности и дату обновления. Для этого составляем детальный промт:
В этом промте мы просим модель сгенерировать нужные данные в виде корректного JSON, что упрощает последующую обработку.
4. Рекурсивное получение родительского summary
Привет, друзья! Сегодня расскажу, как мы автоматизировали процесс создания базы знаний, интегрировав генерацию контента с помощью LLM. Основная идея – взять данные из Confluence, дополнить их сгенерированными описаниями и сохранить в виде структурированных записей. Ниже описаны ключевые моменты нашего подхода:
1. Определение структуры данных
Мы задаём структуру записи базы знаний с помощью TypedDict, чтобы гарантировать единообразие данных. Пример:
from typing import TypedDict
class KnowledgeBaseEntry(TypedDict):
ticket_key: str
title: str
question: str # Пользовательский запрос, сформулированный по содержанию
content: str
instruction_text: str # Подробная инструкция
keywords: str
usefulness_score: float # Оценка полезности (от 0 до 1)
components: str # Компонент, о котором идёт речь
page_link: str # Ссылка на документ в Confluence
updated: str # Дата обновления (например, "YYYY-MM-DD")
2. Генерация краткого описания (summary)
Используем LLM для создания краткого описания каждой страницы. Промт формируется с учетом заголовка, контента и контекста родительской страницы:
def generate_summary_with_llm(title: str, content: str, parent_summary: str = "") -> str:
prompt = f"""
У нас есть страница (или чанк) из Confluence.
- Заголовок: "{title}"
- Содержание (HTML или Markdown):
{content}
Ниже приводится краткое описание родительской страницы (для контекста):
{parent_summary}
Задача: сделай короткое (1-2 предложения) summary для этой страницы,
дополняющее родительский контекст (если нужно).
Верни ТОЛЬКО текст summary.
"""
# Отправляем запрос к LLM и возвращаем сгенерированный текст
Ключевой момент – учитывать родительский контекст, чтобы summary было максимально информативным.
3. Генерация недостающих полей
Для каждой записи мы хотим получить дополнительные данные: вопрос пользователя, подробную инструкцию, ключевые слова, оценку полезности и дату обновления. Для этого составляем детальный промт:
def generate_missing_fields_with_llm(
title: str,
content: str,
components: str,
parent_summary: str = ""
) -> dict:
prompt = f"""
У нас есть информация о статье (или инструкции) из Confluence.
- Заголовок: "{title}"
- Содержание (HTML/Markdown):
{content}
Краткое описание родительской страницы (для контекста):
{parent_summary}
Прошу сгенерировать JSON со следующими полями:
1) "question":
- Формулировка в стиле реального пользовательского запроса,
- Вопрос должен быть сформулирован с учётом компонента "{components}".
2) "instruction_text":
- Подробное и структурированное описание (или пошаговая инструкция).
3) "keywords":
- Ключевые слова (не более 5-7), через запятую, отражающие основную суть.
- Последним элементом добавь {components}.
4) "usefulness_score":
- Число от 0 до 1 (1 — максимально полезно).
5) "updated":
- Реальная дата, если указана, иначе "неизвестно".
Ответ верни в формате JSON без лишнего текста.
"""
# Выполняем запрос к LLM, парсим ответ и возвращаем словарь с полями
В этом промте мы просим модель сгенерировать нужные данные в виде корректного JSON, что упрощает последующую обработку.
4. Рекурсивное получение родительского summary
👍1
Чтобы добавить контекст, мы рекурсивно получаем summary для родительских страниц:
5. Обработка JSON-файлов и сбор итоговой базы
Наконец, мы обрабатываем все исходные JSON-файлы, формируем записи базы знаний и сохраняем промежуточные и финальные результаты.
Такой подход позволяет автоматизировать создание базы знаний и значительно ускорить процесс документирования инструкций и статей. Если у вас есть вопросы – пишите в комментариях!
def get_summary(page_id: str, visited: set = None) -> str:
if not page_id:
return ""
if visited is None:
visited = set()
if page_id in visited:
return ""
visited.add(page_id)
if page_id not in data_map:
return ""
if page_id in summary_map:
return summary_map[page_id]
page_data = data_map[page_id]
payload = page_data.get("payload", {})
parent_id = payload.get("parent_id", "")
parent_summary = get_summary(parent_id, visited)
title = payload.get("title", "")
content = payload.get("content", "")
summary_text = generate_summary_with_llm(title, content, parent_summary)
summary_map[page_id] = summary_text
return summary_text
5. Обработка JSON-файлов и сбор итоговой базы
Наконец, мы обрабатываем все исходные JSON-файлы, формируем записи базы знаний и сохраняем промежуточные и финальные результаты.
Такой подход позволяет автоматизировать создание базы знаний и значительно ускорить процесс документирования инструкций и статей. Если у вас есть вопросы – пишите в комментариях!
🤔 Чем это круче классического подхода при формировании базы в RAG?
- LLM-based подход: Не нужно вручную парсить и аннотировать документы — LLM сделает большую часть работы.
- Богатый контекст: Благодаря рекурсивному получению summary мы получаем не просто набор статей, а целую систему, где каждая запись знает, откуда она пришла и как вписывается в общую картину.
- Готовые запросы: Подготовленные вопросы сразу «знают», что может быть интересно пользователю, что помогает лучше организовать поиск.
- Гибкость: Изменились требования? Легко перенастроить промты, и база данных адаптируется под новые условия.
В общем, я увидел, что интеграция LLM не только ускоряет процесс создания базы знаний, но и делает её более интеллектуальной, релевантной и гибкой по сравнению с классическим RAG, где всё сводится к извлечению эмбеддингов и статичному анализу текста.
Надеюсь, мой опыт будет вам полезен 😎
- LLM-based подход: Не нужно вручную парсить и аннотировать документы — LLM сделает большую часть работы.
- Богатый контекст: Благодаря рекурсивному получению summary мы получаем не просто набор статей, а целую систему, где каждая запись знает, откуда она пришла и как вписывается в общую картину.
- Готовые запросы: Подготовленные вопросы сразу «знают», что может быть интересно пользователю, что помогает лучше организовать поиск.
- Гибкость: Изменились требования? Легко перенастроить промты, и база данных адаптируется под новые условия.
В общем, я увидел, что интеграция LLM не только ускоряет процесс создания базы знаний, но и делает её более интеллектуальной, релевантной и гибкой по сравнению с классическим RAG, где всё сводится к извлечению эмбеддингов и статичному анализу текста.
Надеюсь, мой опыт будет вам полезен 😎
🚀 Сегодня я хочу рассказать вам про Structured Outputs — очень удобную вещь, которая здорово облегчает работу с искусственным интеллектом.
Structured Outputs — это подход, когда модель искусственного интеллекта выдает результаты не просто в виде текста или чисел, а в виде чётко организованных структур данных: JSON, XML, таблицы или даже графы.
Почему это важно лично для меня? Потому что это делает работу с ИИ-проектами намного проще. Например, вместо того, чтобы вручную разбирать текстовые ответы модели, я сразу получаю готовые данные, которые легко интегрировать в другие приложения.
Например, если я спрашиваю у модели:
«Какой прогноз погоды в Москве на завтра?»
То она возвращает мне вот такой структурированный ответ:
Теперь мне не нужно гадать, что именно имелось в виду — информация чётко структурирована и готова к использованию.
Кроме того, Structured Outputs значительно ускоряют аналитику и отчётность. Данные уже разбиты по категориям и готовы к агрегации и визуализации.
Если вы ещё не используете Structured Outputs в своих AI-проектах — советую попробовать.
Это сэкономит вам массу времени и нервов!
#StructuredOutputs #AI #МашинноеОбучение #Автоматизация #AI #JSON #API #DataScience #Интеграция #Технологии
Structured Outputs — это подход, когда модель искусственного интеллекта выдает результаты не просто в виде текста или чисел, а в виде чётко организованных структур данных: JSON, XML, таблицы или даже графы.
Почему это важно лично для меня? Потому что это делает работу с ИИ-проектами намного проще. Например, вместо того, чтобы вручную разбирать текстовые ответы модели, я сразу получаю готовые данные, которые легко интегрировать в другие приложения.
Например, если я спрашиваю у модели:
«Какой прогноз погоды в Москве на завтра?»
То она возвращает мне вот такой структурированный ответ:
{
"intent": "weather_forecast",
"entities": {
"location": "Москва",
"date": "2025-03-08"
}
}Теперь мне не нужно гадать, что именно имелось в виду — информация чётко структурирована и готова к использованию.
Кроме того, Structured Outputs значительно ускоряют аналитику и отчётность. Данные уже разбиты по категориям и готовы к агрегации и визуализации.
Если вы ещё не используете Structured Outputs в своих AI-проектах — советую попробовать.
Это сэкономит вам массу времени и нервов!
#StructuredOutputs #AI #МашинноеОбучение #Автоматизация #AI #JSON #API #DataScience #Интеграция #Технологии
Привет, друзья! Хочу поделиться с вами новыми возможностями @summ_youtube_bot бота 🚀.
Теперь бот умеет преобразовывать YouTube видео в адаптивные образовательные материалы с учетом современных педагогических принципов 🎓.
Вот что нового:
Образовательное видео.
Бот создает структурированные учебные материалы, включающие:
- Учебные цели 📌 — что вы узнаете из материала
- Ключевые концепции 📚 — основные идеи с подробными объяснениями
- Концептуальная карта 🗺 — визуальное представление связей между идеями
- Подробный разбор 🔍 — организованное объяснение содержания
- Резюме 📝 — краткий обзор важнейших моментов
- Применение ⚙️ — как использовать знания на практике
- Самооценка ✅ — вопросы для проверки понимания
Подписывайтесь и используйте бота: https://t.iss.one/summ_youtube_bot
Теперь бот умеет преобразовывать YouTube видео в адаптивные образовательные материалы с учетом современных педагогических принципов 🎓.
Вот что нового:
Образовательное видео.
Бот создает структурированные учебные материалы, включающие:
- Учебные цели 📌 — что вы узнаете из материала
- Ключевые концепции 📚 — основные идеи с подробными объяснениями
- Концептуальная карта 🗺 — визуальное представление связей между идеями
- Подробный разбор 🔍 — организованное объяснение содержания
- Резюме 📝 — краткий обзор важнейших моментов
- Применение ⚙️ — как использовать знания на практике
- Самооценка ✅ — вопросы для проверки понимания
Подписывайтесь и используйте бота: https://t.iss.one/summ_youtube_bot
Telegram
YouTube Bot - Полный доступ к YouTube без ограничений
Помогает искать, просматривать и скачивать видео или аудио напрямую в Telegram ❤️
🔥2
🤖 Давно не делился новыми статьями в блоге – пора исправляться! 📢
За последнее время появилось много полезных материалов для всех, кто интересуется машинным обучением и анализом данных.
Делюсь:
📌 Что такое Structured Outputs?
Как модели машинного обучения могут выдавать не просто числа, а сложные структурированные данные? Разбираем этот важный концепт!
🔗 Читать →
📌 Pandas за 10 минут
Если вам нужно быстро освежить в памяти основы Pandas или освоить его с нуля – этот краткий гайд поможет вам разобраться!
🔗 Читать →
📌 Подготовка к собеседованию на позицию ML-инженера
Какие темы стоит повторить? Какие задачи вас могут ждать?
Вопросы и ответы по теме.
🔗 Читать →
📌 SMOTE: объяснение алгоритма с примерами на Python
Боремся с несбалансированными данными в ML: разбираем алгоритм SMOTE и показываем, как применять его на практике.
🔗 Читать →
📚 Надеюсь, эти статьи окажутся полезными!
Пишите, какие темы вас интересуют – будем разбирать их в следующих статьях. 🚀
За последнее время появилось много полезных материалов для всех, кто интересуется машинным обучением и анализом данных.
Делюсь:
📌 Что такое Structured Outputs?
Как модели машинного обучения могут выдавать не просто числа, а сложные структурированные данные? Разбираем этот важный концепт!
🔗 Читать →
📌 Pandas за 10 минут
Если вам нужно быстро освежить в памяти основы Pandas или освоить его с нуля – этот краткий гайд поможет вам разобраться!
🔗 Читать →
📌 Подготовка к собеседованию на позицию ML-инженера
Какие темы стоит повторить? Какие задачи вас могут ждать?
Вопросы и ответы по теме.
🔗 Читать →
📌 SMOTE: объяснение алгоритма с примерами на Python
Боремся с несбалансированными данными в ML: разбираем алгоритм SMOTE и показываем, как применять его на практике.
🔗 Читать →
📚 Надеюсь, эти статьи окажутся полезными!
Пишите, какие темы вас интересуют – будем разбирать их в следующих статьях. 🚀
🤖 LLM-агенты: хайп или новая реальность? 📦
В этом году вокруг LLM-агентов особенно много хайпа. Все говорят, что вот-вот автономные агенты на базе GPT и других моделей заменят целые команды людей. Но на самом деле мы пока далеки от полноценного «коробочного» решения, которое можно просто поставить и забыть.
Да, агенты умеют решать узкие задачи: анализировать документы, отвечать на вопросы, генерировать тексты и даже выполнять простые действия в приложениях. Но пока это скорее инструменты, расширяющие возможности человека, а не полноценная замена сотрудников.
Основная сложность в том, что любой агент, даже на самом мощном LLM, всё ещё требует настройки, понимания контекста и непрерывного контроля. Чем сложнее и многограннее задача, тем выше вероятность ошибок и непредсказуемого поведения.
Поэтому мой прогноз: ближайший год-два мы будем активно экспериментировать с агентами, выявлять их ограничения и накапливать опыт. Но до массового появления готовых «агентов в коробке», которые заменят сотрудников на сложных задачах, ещё далеко.
А что думаете вы? 🚀 Верите ли в скорое появление автономных коробочных решений или считаете, что это очередной технологический хайп без реального продолжения?
В этом году вокруг LLM-агентов особенно много хайпа. Все говорят, что вот-вот автономные агенты на базе GPT и других моделей заменят целые команды людей. Но на самом деле мы пока далеки от полноценного «коробочного» решения, которое можно просто поставить и забыть.
Да, агенты умеют решать узкие задачи: анализировать документы, отвечать на вопросы, генерировать тексты и даже выполнять простые действия в приложениях. Но пока это скорее инструменты, расширяющие возможности человека, а не полноценная замена сотрудников.
Основная сложность в том, что любой агент, даже на самом мощном LLM, всё ещё требует настройки, понимания контекста и непрерывного контроля. Чем сложнее и многограннее задача, тем выше вероятность ошибок и непредсказуемого поведения.
Поэтому мой прогноз: ближайший год-два мы будем активно экспериментировать с агентами, выявлять их ограничения и накапливать опыт. Но до массового появления готовых «агентов в коробке», которые заменят сотрудников на сложных задачах, ещё далеко.
А что думаете вы? 🚀 Верите ли в скорое появление автономных коробочных решений или считаете, что это очередной технологический хайп без реального продолжения?
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2
AI на дровах 🪵
🤖 LLM-агенты: хайп или новая реальность? 📦 В этом году вокруг LLM-агентов особенно много хайпа. Все говорят, что вот-вот автономные агенты на базе GPT и других моделей заменят целые команды людей. Но на самом деле мы пока далеки от полноценного «коробочного»…
This media is not supported in your browser
VIEW IN TELEGRAM
❤1👍1🔥1
💡 Ян Лекун: AGI — это миф. Встречайте AMI
Ян Лекун — лауреат премии Тьюринга, один из отцов глубокого обучения и главный ИИ-учёный вMeta — считает, что термин AGI (Artificial General Intelligence) пора отправить в архив.
🧠 Почему? AGI предполагает создание интеллекта, который справляется с любыми задачами не хуже (или лучше) человека. Но Лекун указывает: человеческий интеллект сам по себе вовсе не "general". Он состоит из набора специализированных механизмов, наточенных эволюцией под конкретные типы задач. Мы не универсальны — мы просто хорошо приспособлены к определённому контексту.
⚙️ Вместо AGI, Лекун и его команда продвигают другой термин — AMI: Advanced Machine Intelligence. Это направление сфокусировано на создании систем, которые будут по-своему интеллектуальны — способные к обучению, планированию, восприятию и действию — но не обязаны повторять или копировать человеческий ум.
📌 Смысл в том, чтобы создавать интеллект, который дополняет человека, а не имитирует его.
🤖 Возможно, AMI — это и есть реальное будущее ИИ, без мифов и футуристических фантомов.
Ян Лекун — лауреат премии Тьюринга, один из отцов глубокого обучения и главный ИИ-учёный в
🧠 Почему? AGI предполагает создание интеллекта, который справляется с любыми задачами не хуже (или лучше) человека. Но Лекун указывает: человеческий интеллект сам по себе вовсе не "general". Он состоит из набора специализированных механизмов, наточенных эволюцией под конкретные типы задач. Мы не универсальны — мы просто хорошо приспособлены к определённому контексту.
⚙️ Вместо AGI, Лекун и его команда продвигают другой термин — AMI: Advanced Machine Intelligence. Это направление сфокусировано на создании систем, которые будут по-своему интеллектуальны — способные к обучению, планированию, восприятию и действию — но не обязаны повторять или копировать человеческий ум.
📌 Смысл в том, чтобы создавать интеллект, который дополняет человека, а не имитирует его.
🤖 Возможно, AMI — это и есть реальное будущее ИИ, без мифов и футуристических фантомов.
👍3
Бесплатный дизайн-проект 👌
Продолжаю исследовать возможности генерации картинок через llm. В этот раз загрузил фото участка и попросил GPT4.5 придумать вариант благоустройства.
Дальше было предложено нарисовать план схему и подготовить список необходимых материалов.
В какое интересное время живем, не правда ли? ☀️
Продолжаю исследовать возможности генерации картинок через llm. В этот раз загрузил фото участка и попросил GPT4.5 придумать вариант благоустройства.
Дальше было предложено нарисовать план схему и подготовить список необходимых материалов.
В какое интересное время живем, не правда ли? ☀️
🔥8👍4❤1
Тут в соседнем канале запостили про https://tv.garden решил поделиться, сам тв не смотрю, но тут исследовательский интерес 🙃
Можно "попутешествовать" по телеканалам разных (похоже всех) стран и посмотреть, что сейчас показывают, например в Индии 🇮🇳
Можно "попутешествовать" по телеканалам разных (похоже всех) стран и посмотреть, что сейчас показывают, например в Индии 🇮🇳
👍2🔥1
Почти всё последнее время варюсь в задаче мультиклассовой классификации тестовых данных.
Хочу поделиться инсайтом (хотя, может, для кого-то это и очевидно).
🔑 Самое важное в любой ML-задаче — это данные. Чем лучше вы подготовите исходный датасет, тем лучше и стабильнее будет обучаться модель. Очистка — это только первый шаг. Тут важно учитывать особенности самой модели: cased/uncased, максимальная длина токенов, распределение классов и прочие нюансы.
Но один из самых недооценённых этапов — оптимизация датасета. Особенно, если у вас не 10к строк, а, скажем, как у меня — почти 200к.
💡 Что я сделал: применил кластеризацию KMeans на эмбеддингах, чтобы "сжать" датасет и отобрать наиболее репрезентативные примеры. Конкретно:
- Разбил данные на кластеры по эмбеддингам;
- Для каждого класса взял по 5000 наиболее типичных примеров (ближайших к центру кластера);
- Ввёл score threshold = 0.5, чтобы отсеять шумные и нетипичные точки.
📈 В итоге получил компактный, чистый и сбалансированный датасет, который реально помог модели лучше обобщать и ускорил обучение.
Если кто-то использует похожие подходы — делитесь, интересно будет сравнить идеи 👇
Хочу поделиться инсайтом (хотя, может, для кого-то это и очевидно).
🔑 Самое важное в любой ML-задаче — это данные. Чем лучше вы подготовите исходный датасет, тем лучше и стабильнее будет обучаться модель. Очистка — это только первый шаг. Тут важно учитывать особенности самой модели: cased/uncased, максимальная длина токенов, распределение классов и прочие нюансы.
Но один из самых недооценённых этапов — оптимизация датасета. Особенно, если у вас не 10к строк, а, скажем, как у меня — почти 200к.
💡 Что я сделал: применил кластеризацию KMeans на эмбеддингах, чтобы "сжать" датасет и отобрать наиболее репрезентативные примеры. Конкретно:
- Разбил данные на кластеры по эмбеддингам;
- Для каждого класса взял по 5000 наиболее типичных примеров (ближайших к центру кластера);
- Ввёл score threshold = 0.5, чтобы отсеять шумные и нетипичные точки.
📈 В итоге получил компактный, чистый и сбалансированный датасет, который реально помог модели лучше обобщать и ускорил обучение.
Если кто-то использует похожие подходы — делитесь, интересно будет сравнить идеи 👇
👍2
🛠 Как я организовал оркестрацию данных с помощью Airflow
Недавно собрал пайплайн на Apache Airflow для автоматизации обработки батчей данных. Вот как это устроено:
📦 Каждый батч (например, 2025_01, 2024_12 и т.д.) проходит через три стадии:
- Extract — тянем данные
- Preprocess — подготавливаем к сохранению
- Save — сохраняем в хранилище
⚙️ После завершения всех батчей запускаются финальные таски:
- optimize_clickhouse_table — оптимизация таблицы в ClickHouse
- cleanup_tmp_files — очистка временных файлов
Airflow отлично справляется с зависимостями и параллелизмом — как видно на скрине, задачи исполняются по мере готовности данных.
Теперь мониторинг и управление всем пайплайном занимает минуты, а не часы. Люблю, когда система работает за тебя! 💻⚡️
📲 Все алерты по фейлам летят мне в Telegram через кастомный callback + Telegram API. Уведомления чёткие — сразу вижу, на каком таске упало и с каким exception.
#DataEngineering #Airflow #ClickHouse #ETL #Automation
Недавно собрал пайплайн на Apache Airflow для автоматизации обработки батчей данных. Вот как это устроено:
📦 Каждый батч (например, 2025_01, 2024_12 и т.д.) проходит через три стадии:
- Extract — тянем данные
- Preprocess — подготавливаем к сохранению
- Save — сохраняем в хранилище
⚙️ После завершения всех батчей запускаются финальные таски:
- optimize_clickhouse_table — оптимизация таблицы в ClickHouse
- cleanup_tmp_files — очистка временных файлов
Airflow отлично справляется с зависимостями и параллелизмом — как видно на скрине, задачи исполняются по мере готовности данных.
Теперь мониторинг и управление всем пайплайном занимает минуты, а не часы. Люблю, когда система работает за тебя! 💻⚡️
#DataEngineering #Airflow #ClickHouse #ETL #Automation
🔥5👍2
🔥 Метод HIGGS теперь доступен для квантования больших языковых моделей!
Исследователи из Яндекса, НИУ ВШЭ, MIT, KAUST и ISTA представили новый алгоритм квантования больших языковых моделей (LLM) — HIGGS (Hadamard-Input Gram-Gauss-Seidel).
Что важно знать:
⚡️ Zero-shot подход — метод не требует дополнительного обучения модели после квантования.
🚀 Позволяет эффективно запускать мощные LLM прямо на смартфонах и ноутбуках без потери точности.
🎯 Уже поддерживаются модели Llama 3 (70B, 405B) и Gemma 2 (8B, 27B).
Метод доступен разработчикам и исследователям на:
🤖 Hugging Face
💻 GitHub
📚 arXiv
Это важный шаг для широкого применения нейросетей, снижая требования к вычислительным ресурсам без ущерба качеству.
Подробнее о разработке на сайте НИУ ВШЭ: https://www.hse.ru/news/science/1034477704.html
#HIGGS #ИИ #LLM #НИУВШЭ #Яндекс #AI #HuggingFace #GitHub
Исследователи из Яндекса, НИУ ВШЭ, MIT, KAUST и ISTA представили новый алгоритм квантования больших языковых моделей (LLM) — HIGGS (Hadamard-Input Gram-Gauss-Seidel).
Что важно знать:
⚡️ Zero-shot подход — метод не требует дополнительного обучения модели после квантования.
🚀 Позволяет эффективно запускать мощные LLM прямо на смартфонах и ноутбуках без потери точности.
🎯 Уже поддерживаются модели Llama 3 (70B, 405B) и Gemma 2 (8B, 27B).
Метод доступен разработчикам и исследователям на:
🤖 Hugging Face
💻 GitHub
📚 arXiv
Это важный шаг для широкого применения нейросетей, снижая требования к вычислительным ресурсам без ущерба качеству.
Подробнее о разработке на сайте НИУ ВШЭ: https://www.hse.ru/news/science/1034477704.html
#HIGGS #ИИ #LLM #НИУВШЭ #Яндекс #AI #HuggingFace #GitHub
www.hse.ru
Большие языковые модели теперь не требуют мощных серверов
Ученые «Яндекса», НИУ ВШЭ, MIT, KAUST и ISTA совершили прорыв в оптимизации LLM. Лаборатория исследований искусственного интеллекта Yandex Research совместно с ведущими научно-технологическими…
👍2
AI на дровах 🪵
Почти всё последнее время варюсь в задаче мультиклассовой классификации тестовых данных. Хочу поделиться инсайтом (хотя, может, для кого-то это и очевидно). 🔑 Самое важное в любой ML-задаче — это данные. Чем лучше вы подготовите исходный датасет, тем лучше…
Всем привет! 🖖
Давно не писал, решил немного рассказать, как дела)
Работаю над проектом, где с помощью ML помогаем техподдержке — и вот что неожиданно оказалось самым непростым:
Обучить модель — это ещё полбеды. Куда сложнее сделать так, чтобы она сама дообучалась без участия человека.
Подумав-подумав, выбрал такой стек:
- MinIO — храним датасеты и обученные модели.
- Airflow — управляет пайплайнами и следит за процессами.
- MLflow — метрики, версии моделей, история экспериментов.
- FastAPI — API для дообучения на GPU.
- Grafana — мониторим модели и инфраструктуру.
🔍 Как определяем лучшую модель?
Каждое обучение завершается валидацией на данных, которых модель не видела. Считаем метрики (точность, F1, recall), сохраняем их в MLflow.
Ночью скрипт проверяет все модели, выбирает лучшую по метрикам, забирает путь из MLflow и подтягивает её из MinIO. В проде всегда работает самая точная версия.
🤖 Что делает модель?
Она автоматически классифицирует обращения, а также помогает правильно маршрутизировать тикеты. Это снижает нагрузку на операторов и ускоряет ответы.
🗂 Откуда берутся данные?
Каждую ночь подтягиваются свежие тикеты, проходят предобработку и при необходимости попадают в дообучение. Так модель остаётся актуальной и не теряет качество.
Отдельно хочу выделить Airflow.
Откровенно говоря, Airflow в этом проекте раскрылся с новой стороны. Я знал, что он удобный, но не думал, что настолько мощный.
Можно настроить запуск пайплайна не просто по расписанию, а, например, когда создаётся новый датасет. То есть если данные изменились — это триггерит дообучение модели.
Если всё хорошо — новая модель уходит в прод. Логи пайплайнов и ошибок отправляются в Telegram, плюс часть мониторинга реализована через Grafana.
🧠 Какая модель используется?
В основе — кастомный классификатор на базе pretrained BERT. Перед этим модель была дообучена на задаче masked language modeling (MLM), чтобы лучше понимать специфичный язык и стиль обращений из нашей предметной области. Затем мы дообучаем её под категории тикетов и типичные формулировки пользователей, дообучаем под специфические категории и стиль обращений. Используем transfer learning, чтобы быстрее адаптироваться к новым данным.
🛡 Как не допустить плохую модель в прод?
Если метрики хотя бы на немного хуже — модель остаётся в тесте. Только стабильно лучшие проходят дальше. Дополнительно есть защита от случайного деплоя через ручную валидацию ключевых изменений.
Автоматизация оказалась не самой простой задачей, но теперь всё крутится почти само.
💬 Если среди подписчиков есть коллеги с ML-пайплайнами — поделитесь своим подходом. Будет интересно сравнить!
#machinelearning #mlops #airflow #mlflow #bert #techsupport #automation #fastapi #grafana #minio #deeplearning #mlpipeline
Давно не писал, решил немного рассказать, как дела)
Работаю над проектом, где с помощью ML помогаем техподдержке — и вот что неожиданно оказалось самым непростым:
Обучить модель — это ещё полбеды. Куда сложнее сделать так, чтобы она сама дообучалась без участия человека.
Подумав-подумав, выбрал такой стек:
- MinIO — храним датасеты и обученные модели.
- Airflow — управляет пайплайнами и следит за процессами.
- MLflow — метрики, версии моделей, история экспериментов.
- FastAPI — API для дообучения на GPU.
- Grafana — мониторим модели и инфраструктуру.
🔍 Как определяем лучшую модель?
Каждое обучение завершается валидацией на данных, которых модель не видела. Считаем метрики (точность, F1, recall), сохраняем их в MLflow.
Ночью скрипт проверяет все модели, выбирает лучшую по метрикам, забирает путь из MLflow и подтягивает её из MinIO. В проде всегда работает самая точная версия.
🤖 Что делает модель?
Она автоматически классифицирует обращения, а также помогает правильно маршрутизировать тикеты. Это снижает нагрузку на операторов и ускоряет ответы.
🗂 Откуда берутся данные?
Каждую ночь подтягиваются свежие тикеты, проходят предобработку и при необходимости попадают в дообучение. Так модель остаётся актуальной и не теряет качество.
Отдельно хочу выделить Airflow.
Откровенно говоря, Airflow в этом проекте раскрылся с новой стороны. Я знал, что он удобный, но не думал, что настолько мощный.
Можно настроить запуск пайплайна не просто по расписанию, а, например, когда создаётся новый датасет. То есть если данные изменились — это триггерит дообучение модели.
Если всё хорошо — новая модель уходит в прод. Логи пайплайнов и ошибок отправляются в Telegram, плюс часть мониторинга реализована через Grafana.
🧠 Какая модель используется?
В основе — кастомный классификатор на базе pretrained BERT. Перед этим модель была дообучена на задаче masked language modeling (MLM), чтобы лучше понимать специфичный язык и стиль обращений из нашей предметной области. Затем мы дообучаем её под категории тикетов и типичные формулировки пользователей, дообучаем под специфические категории и стиль обращений. Используем transfer learning, чтобы быстрее адаптироваться к новым данным.
🛡 Как не допустить плохую модель в прод?
Если метрики хотя бы на немного хуже — модель остаётся в тесте. Только стабильно лучшие проходят дальше. Дополнительно есть защита от случайного деплоя через ручную валидацию ключевых изменений.
Автоматизация оказалась не самой простой задачей, но теперь всё крутится почти само.
💬 Если среди подписчиков есть коллеги с ML-пайплайнами — поделитесь своим подходом. Будет интересно сравнить!
#machinelearning #mlops #airflow #mlflow #bert #techsupport #automation #fastapi #grafana #minio #deeplearning #mlpipeline
🔥5