Forwarded from Artificial stupidity
#ml
Я на досуге немного поковырялся с оптимизацией 3-D укладки коробок. И решил наработки в open-source выложить, вдруг кому-то будет интересно поиграться с решением.
Сразу предупреждаю, в основном код написан Claude (мой вклад в рост энтропии интернета), но направлял его все-таки я сам (и местами подправлял код).
Что в итоге есть в решении:
- 5 алгоритмов упаковки (Weight-Aware, Extreme Points, LAFF, Corner Points, SFC)
- Проверка физических ограничений и поддержки
- 3D визуализация результатов в реальном времени (на картинке как раз она)
- Расчет эффективности использования пространства
- Анализ распределения веса
- Интерактивный веб-интерфейс на Streamlit
- Загрузка пользовательских коробок и выгрузка результатов
В общем, смотрите, ставьте звездочки и не ругайстесь, коли что не так)
Я на досуге немного поковырялся с оптимизацией 3-D укладки коробок. И решил наработки в open-source выложить, вдруг кому-то будет интересно поиграться с решением.
Сразу предупреждаю, в основном код написан Claude (мой вклад в рост энтропии интернета), но направлял его все-таки я сам (и местами подправлял код).
Что в итоге есть в решении:
- 5 алгоритмов упаковки (Weight-Aware, Extreme Points, LAFF, Corner Points, SFC)
- Проверка физических ограничений и поддержки
- 3D визуализация результатов в реальном времени (на картинке как раз она)
- Расчет эффективности использования пространства
- Анализ распределения веса
- Интерактивный веб-интерфейс на Streamlit
- Загрузка пользовательских коробок и выгрузка результатов
В общем, смотрите, ставьте звездочки и не ругайстесь, коли что не так)
Forwarded from ML Advertising
RAG в LLM
Продолжаем тему языковых моделей. Первый пост был по различию базовых и инструктивных LLM. Сегодня рассмотрем понятие RAG.
RAG (Retrieval Augmented Generation) - это подход, который позволяет использовать Большие языковые модели (LLM) для ответов на вопросы пользователей по приватным источникам информации.
Рассмотрим самый базовый вариант RAG:
▶️ Подготовка данных
- Собираем документы
- Разбиваем весь корпус документов на чанки (небольшие кусочки текста). Разбивать можно разными способами, например по предложениям (по символу-разделителю точке), или более хитро по иерархии на большие чанки и внутри них чанки поменьше (сабчанки)
- Каждый чанк кодируем энкодером в вектор. Это нужно, чтобы сравнивать вектор чанка с вектором вопроса пользователя. В качестве энкодера удобно взять уже обученный HuggingFaceEmbeddings
- Пишем все закодированные чанки в векторную БД. Одна из топовых векторных БД Pinecone, заточена специально под хранение эмбеддингов для LLM приложений
▶️ Ответ на вопрос
- Пользователь формулирует вопрос
- С помощью энкодера из первого пункта кодируем текст вопроса в вектор
- Отбираем из всего списка чанков векторной БД топ-N наиболее близких вектору вопроса. Близость векторов меряем косинусным расстоянием
- Все найиденные N чанков и вопрос (и то, и другое уже в виде текста) передаем в LLM и просим ее, учитывая контекст (из чанков), ответить на вопрос пользователя
Идея о RAG возникла из-за трех ограничений:
- Невозможности впихнуть в LLM весь желаемый контекcт
- LLM ничего не знает об информации, которой не было в обучающих данных. Это касается любой приватной или узко-направленной инфы
- Альтернативой RAG может быть дообучение LLM на своих данных, но это крайне нерационально и дорого
Таким образом легким движением руки мы можем без дообучения LLM и энкодера написать свой простой Q&A сервис или чат-бота под свою доменную область. Дальше можно пробовать улучшать сервис, например тюнингом энкодера, иерархией чанков или правками в промпт
#llm
Продолжаем тему языковых моделей. Первый пост был по различию базовых и инструктивных LLM. Сегодня рассмотрем понятие RAG.
RAG (Retrieval Augmented Generation) - это подход, который позволяет использовать Большие языковые модели (LLM) для ответов на вопросы пользователей по приватным источникам информации.
Рассмотрим самый базовый вариант RAG:
▶️ Подготовка данных
- Собираем документы
- Разбиваем весь корпус документов на чанки (небольшие кусочки текста). Разбивать можно разными способами, например по предложениям (по символу-разделителю точке), или более хитро по иерархии на большие чанки и внутри них чанки поменьше (сабчанки)
- Каждый чанк кодируем энкодером в вектор. Это нужно, чтобы сравнивать вектор чанка с вектором вопроса пользователя. В качестве энкодера удобно взять уже обученный HuggingFaceEmbeddings
- Пишем все закодированные чанки в векторную БД. Одна из топовых векторных БД Pinecone, заточена специально под хранение эмбеддингов для LLM приложений
▶️ Ответ на вопрос
- Пользователь формулирует вопрос
- С помощью энкодера из первого пункта кодируем текст вопроса в вектор
- Отбираем из всего списка чанков векторной БД топ-N наиболее близких вектору вопроса. Близость векторов меряем косинусным расстоянием
- Все найиденные N чанков и вопрос (и то, и другое уже в виде текста) передаем в LLM и просим ее, учитывая контекст (из чанков), ответить на вопрос пользователя
Идея о RAG возникла из-за трех ограничений:
- Невозможности впихнуть в LLM весь желаемый контекcт
- LLM ничего не знает об информации, которой не было в обучающих данных. Это касается любой приватной или узко-направленной инфы
- Альтернативой RAG может быть дообучение LLM на своих данных, но это крайне нерационально и дорого
Таким образом легким движением руки мы можем без дообучения LLM и энкодера написать свой простой Q&A сервис или чат-бота под свою доменную область. Дальше можно пробовать улучшать сервис, например тюнингом энкодера, иерархией чанков или правками в промпт
#llm
Telegram
ML Advertising
У меня наконец дошли руки до LLM. Поэтому по мере их изучения буду делиться заметками по теме.
Сегодня начнем с теории: Что такое базовые (base) и инструктивные (instruct) модели?
▶ Базовые LLM
Эти модели обучаются на больших объемах текстовых данных.…
Сегодня начнем с теории: Что такое базовые (base) и инструктивные (instruct) модели?
▶ Базовые LLM
Эти модели обучаются на больших объемах текстовых данных.…
Forwarded from Варим МЛ
Один из важных итогов года - нормально настроили систему мониторинга. В конце небольшой спойлер к теме следующего поста.
#Жека #mlops
#Жека #mlops
Telegraph
Реформа системы мониторинга
Цельсу уже 6 лет, и за это время мы обросли довольно большим количеством клиентов из разных стран. У каждого клиента есть свои особенности: Тип подключения - по DICOM-протоколу, с помощью десктопного приложения, по API, гибридные схемы География и часовые…
Forwarded from ML Baldini • Nikita Boyandin (Nikita Boyandin)
Поскольку много новых людей в канале
Чтобы там не было, но без pandas и numpy никуда, так что предлагаю парочку курсов на stepik.
Курс по pandas
Курс по numpy
Курс kaggle по Pandas
Также было бы славно иметь минимальное понимание по теорверу и матстату, от себя могу посоветовать книжку "Статистика и котики"💪🥺
1. Intro to Machine Learning
2. Intermediate Machine Learning
Или второй путь, который подойдёт тем, кто пока что хочет учиться, а не работать по 40 часов в неделю-это хакатоны на kaggle с призами
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Инжиниринг Данных (Dmitry)
Модуль 2 курса Getting Started with Analytics and Data Engineering на английском готов:
Введение - по классике из центра Ванкувера.
Урок 1: что такое база данных и какие бывают.
Урок 2: подключаемся к базе данных и SQL (А тут где учить SQL https://dataengineer.ru/hard-skills/2023-06-04-sql.html)
Урок 3: модели данных
Урок 4: базы данных в облаках
Урок 5: про визуализацию запросов, как бы BI на минималках
Урок 6: NoSQL базы данных для нас (аналитиков и инженеров) и про MongoDB + hands on
Урок 7: топчик БД -DuckDB вместе с hands-on
Ссылка на модуль 1 https://t.me/rockyourdata/4739
Ссылка на модуль 0 https://t.me/rockyourdata/4553
Модуль 1 и 0 просто MUST HAVE!
И не забывает читать про карьеру успешную, особенно если вы вот только начинаете https://dataengineer.ru/pages/careertracks/
PS а тут наши проекты: https://github.com/surfalytics/data-projects почти каждую неделю делаем что-то новое
Введение - по классике из центра Ванкувера.
Урок 1: что такое база данных и какие бывают.
Урок 2: подключаемся к базе данных и SQL (А тут где учить SQL https://dataengineer.ru/hard-skills/2023-06-04-sql.html)
Урок 3: модели данных
Урок 4: базы данных в облаках
Урок 5: про визуализацию запросов, как бы BI на минималках
Урок 6: NoSQL базы данных для нас (аналитиков и инженеров) и про MongoDB + hands on
Урок 7: топчик БД -DuckDB вместе с hands-on
Ссылка на модуль 1 https://t.me/rockyourdata/4739
Ссылка на модуль 0 https://t.me/rockyourdata/4553
Модуль 1 и 0 просто MUST HAVE!
И не забывает читать про карьеру успешную, особенно если вы вот только начинаете https://dataengineer.ru/pages/careertracks/
PS а тут наши проекты: https://github.com/surfalytics/data-projects почти каждую неделю делаем что-то новое
Surfalytics
Introduction · Surfalytics
Surfalytics is your online launchpad into data analytics, offering a comprehensive, hands-on curriculum that focuses on the crucial 20% of knowledge that yields 80% of results, effectively preparing you for a rewarding career globally.
Forwarded from что-то на DL-ском
Hugging Face выпустили курс по alignment LLM. Уже есть секции про:
🩰 instruction tuning
🩰 alignment
🩰 PEFT
🩰 валидацию
Ждем выпуска vision LM, синт датасетов и инференса
Го тыкать
Ждем выпуска vision LM, синт датасетов и инференса
Го тыкать
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from что-то на DL-ском
Началось все с директории по LLM reasoning
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Information Retriever
Итоги года на канале.
Где-то чуть больше года назад я в порыве ночных раздумий понял, что пора бы завести канал. Еще помню, как выбирал название: основной вариант был "arxiv weekly" — именно так называлась еженедельная сводка обзоров статей, которую я вёл в Яндексе. Вариант "Information Retriever" с ретривером на аватарке был скорее шуточный, но каким-то образом реализовался. Ни о чем не жалею =)
Началось все с того, что после ухода Миши Ройзнера @WazowskiRecommends я вызвался подхватить организацию научного семинара по рекомендательным системам в Яндексе. Каждую неделю мы разбирали по две статьи. Я искал докладчиков, сам регулярно выступал и помогал подбирать статьи для выступлений. Чтобы было проще искать статьи, стал выпускать в чате семинара дайджест "arxiv weekly": каждую неделю просматривал все статьи, выходящие в секции arxiv cs/IR, отбирал 5-10 штук, писал про них краткие хайлайты в пару строчек. Постепенно ребята, уходящие из Яндекса, убедили меня что было бы круто перенести "arxiv weekly" в публичное пространство.
Еще в какой-то момент на нетворкингах люди стали благодарить за доклады про трансформерную персонализацию. Когда Саша Сидоров подошел и сказал, что в Wildberries смогли на основе этих докладов что-то внедрить, у меня прямо сдвиг парадигмы произошел =) Появилось понимание, что могу рассказывать что-то интересное и полезное для широкой публики, что эти доклады кто-то смотрит.
В совокупности эти два фактора, вероятно, и сподвигли на создание канала. Первые посты были очень корявые; их чтение вызывает те же ощущения, которые в эпоху вконтакте вызывало перечитывание старых переписок :) Тем не менее, постепенно сформировался какой-то свой, «авторский», стиль; о чем и как я пишу. Дальше идут итоги года в постах и выступлениях.
Выступления:
* Про нейросетевое ранжирование на ML party.
* Про индустриальные тренды рексистем на Датафесте.
* Best practices доклад про трансформерную персонализацию на Turbo ML Conf, который я попытался сделать полезнее и информативнее всех прошлых.
* Про кейсы, в которых нам пригодились статьи на практике на рекомендательном митапе от Сбера.
Посты:
* Про (1) проблемы next item prediction, (2) двухбашенные модели и logQ-коррекцию, (3) обучаемые векторы для рексистем. У нас с командой очень сильное желание сделать свой курс по рексистемам: такие посты похожи на то, что хотелось бы покрыть в курсе. Процесс создания хорошего курса долгий и сложный, пока всё на стадии сбора материала: я собираю, "коллекционирую" различные термины, концепты, теории, с которыми сталкиваюсь при работе и в статьях. Этот процесс может занять годы =)
* Про (1) ранжирование в Пинтересте, (2) ранжирование в Ютубе, (3) рекомендации похожих пинов в Пинтересте. Изначально я собирал много system design заметок про то, как устроены рекомендации в разных известных сервисах. Собирал статьи, парсил блоги на медиуме, искал выступления. Пока что это, пожалуй, один из наиболее сложных типов постов для реализации.
* Про рабочие проекты и команду: (1) чтение статей для r&d, (2) графовые нейросети, (3) нейросетевое ранжирование, (4) чем занимается наша команда, (5) трансформер с миллиардом параметров. Писать про команду приятно и просто, здесь я недорабатываю :)
* Серия постов про праздник рекомендательных систем на ACM RecSys 2024: 1, 2, 3, 4, 5, 6, 7.
* "Кулуарные" посты, в которых пытался передать атмосферу нетворкинга и какие-то приватные, но не очень, обсуждения: (1) конфа вышки, (2) датафест, (3) turbo ml conf, (4) pml conf.
* Обзорные посты с кучей ссылок на статьи: (1) NLP образца 2020-го года, (2) what's on google's deepmind, (3) скейлинг в рексистемах, (4) sigir 2024, (5) топ статей про нейросети в рекистемах.
Спасибо, что были со мной этот год! И до встречи в следующем :)
Где-то чуть больше года назад я в порыве ночных раздумий понял, что пора бы завести канал. Еще помню, как выбирал название: основной вариант был "arxiv weekly" — именно так называлась еженедельная сводка обзоров статей, которую я вёл в Яндексе. Вариант "Information Retriever" с ретривером на аватарке был скорее шуточный, но каким-то образом реализовался. Ни о чем не жалею =)
Началось все с того, что после ухода Миши Ройзнера @WazowskiRecommends я вызвался подхватить организацию научного семинара по рекомендательным системам в Яндексе. Каждую неделю мы разбирали по две статьи. Я искал докладчиков, сам регулярно выступал и помогал подбирать статьи для выступлений. Чтобы было проще искать статьи, стал выпускать в чате семинара дайджест "arxiv weekly": каждую неделю просматривал все статьи, выходящие в секции arxiv cs/IR, отбирал 5-10 штук, писал про них краткие хайлайты в пару строчек. Постепенно ребята, уходящие из Яндекса, убедили меня что было бы круто перенести "arxiv weekly" в публичное пространство.
Еще в какой-то момент на нетворкингах люди стали благодарить за доклады про трансформерную персонализацию. Когда Саша Сидоров подошел и сказал, что в Wildberries смогли на основе этих докладов что-то внедрить, у меня прямо сдвиг парадигмы произошел =) Появилось понимание, что могу рассказывать что-то интересное и полезное для широкой публики, что эти доклады кто-то смотрит.
В совокупности эти два фактора, вероятно, и сподвигли на создание канала. Первые посты были очень корявые; их чтение вызывает те же ощущения, которые в эпоху вконтакте вызывало перечитывание старых переписок :) Тем не менее, постепенно сформировался какой-то свой, «авторский», стиль; о чем и как я пишу. Дальше идут итоги года в постах и выступлениях.
Выступления:
* Про нейросетевое ранжирование на ML party.
* Про индустриальные тренды рексистем на Датафесте.
* Best practices доклад про трансформерную персонализацию на Turbo ML Conf, который я попытался сделать полезнее и информативнее всех прошлых.
* Про кейсы, в которых нам пригодились статьи на практике на рекомендательном митапе от Сбера.
Посты:
* Про (1) проблемы next item prediction, (2) двухбашенные модели и logQ-коррекцию, (3) обучаемые векторы для рексистем. У нас с командой очень сильное желание сделать свой курс по рексистемам: такие посты похожи на то, что хотелось бы покрыть в курсе. Процесс создания хорошего курса долгий и сложный, пока всё на стадии сбора материала: я собираю, "коллекционирую" различные термины, концепты, теории, с которыми сталкиваюсь при работе и в статьях. Этот процесс может занять годы =)
* Про (1) ранжирование в Пинтересте, (2) ранжирование в Ютубе, (3) рекомендации похожих пинов в Пинтересте. Изначально я собирал много system design заметок про то, как устроены рекомендации в разных известных сервисах. Собирал статьи, парсил блоги на медиуме, искал выступления. Пока что это, пожалуй, один из наиболее сложных типов постов для реализации.
* Про рабочие проекты и команду: (1) чтение статей для r&d, (2) графовые нейросети, (3) нейросетевое ранжирование, (4) чем занимается наша команда, (5) трансформер с миллиардом параметров. Писать про команду приятно и просто, здесь я недорабатываю :)
* Серия постов про праздник рекомендательных систем на ACM RecSys 2024: 1, 2, 3, 4, 5, 6, 7.
* "Кулуарные" посты, в которых пытался передать атмосферу нетворкинга и какие-то приватные, но не очень, обсуждения: (1) конфа вышки, (2) датафест, (3) turbo ml conf, (4) pml conf.
* Обзорные посты с кучей ссылок на статьи: (1) NLP образца 2020-го года, (2) what's on google's deepmind, (3) скейлинг в рексистемах, (4) sigir 2024, (5) топ статей про нейросети в рекистемах.
Спасибо, что были со мной этот год! И до встречи в следующем :)
Forwarded from Мальцев: Карьера с AI
Ребята, хочу поделиться с вами лайфхаком для работы с AI в 2025 году 🏄
С 2017 я интересуюсь темой AI (с того самого момента, когда бот OpenAI эпично уделал Dendi в Dota 2 — кто бы мог подумать, что это только начало! 😅) и постоянно ищу способы, как использовать нейросети для решения своих рабочих задач.
В конце года захотелось структурировать знания в одну статью-методологию и один промпт, поделиться ими с вами. Перед этим я:
• Прошел курсы по YandexGPT, ChatGPT (особенно понравился Reasoning with GPT от OpenAI) и переосмыслил все свои промпты
• Протестировал последние версии ChatGPT, Gemini, Claude, YandexGPT и обсудил свои мысли с Серегой Юдиным
🎯 Результат: создал универсальный шаблон промпта, который хорошо работает с 80% моих задач в GPT (а ставлю я их по паре штук каждый день). Сохраняйте себе в избранное универсальный шаблон для постановки задачи для GPT в 2025.
Контекст: [Опишите ситуацию для постановки задачи, проблему, цель, целевую аудиторию для кого делаете задачу...]
Роль: Представь что ты [Кто?]. Ты обладаешь глубоким пониманием [ключевых навыков/знаний...] и имеешь опыт в [область, связанная с задачей...]
Задача: [Что делать? Сформулируйте, что нужно сделать. Используйте глаголы действия и укажите, что является конечным результатом...].
Перед ответом на задачу используй логический подход для выполнения задачи и обоснования своих решений.
Подумай, какие шаги или подходы будут наиболее эффективны для выполнения задачи, и приведи аргументы, почему.
Формат: [В каком виде? Опишите желаемый формат результата. Укажите тип, структуру, элементы...].
Укажи несколько примеров по содержанию и оформлению. Объясни, почему именно предложенное решение будет наиболее эффективным.
Объем: [Сколько? Укажите желаемый объем. Используйте измеримые единицы символов, слов, страниц, примеров, пунктов...]
Стиль: [Как? Определите стиль, укажите тональность, настроение, допустимые языковые средства...]. Ответ должен быть [ключевые особенности стиля...]
Критерии качества: Каждое решение должно быть логически обосновано и подкреплено аргументами. [Что еще важно? Перечислите критерии...]
Приоритеты: [Что в фокусе? Расставьте приоритеты для критериев качества. Приоритет 1 - ... Приоритет 2 - ...]
Дополнительная информация: При разработке ответа используй логику, дедукцию и аргументацию. [Что еще важно для решения задачи? Добавьте любую релевантную информацию]
💡 Шаблон уже включает фразы для активации Reasoning и был проверен на ChatGPT, YandexGPT, Gemini, Claude. Например, с его помощью мы создали один из самых конверсионных лендингов для "Нейроредактора" в Яндекс Браузере.
🔍 Подробный разбор трендов AI на 2025, все фишки промпта и реальные кейсы использования — в статье на vc.ru:
• Как один промпт может заменить десятки шаблонов для ChatGPT, YandexGPT и других нейросетей в 2025?
• Как использовать Reasoning, чтобы нейросеть думала как человек?
• Метапромптинг — новый «чит-код» для работы с ИИ или все еще сырой метод для ленивых?
💭 Мечтаю, что шаблон промпта и информация из статьи помогут всем нам выжимать из GPT максимум для своих задач, а кому-то наконец-то преодолеть блок «это всё не для меня, действую по-старинке».
👍 - если пост полезен и поможет вам в работе с GPT в 2025.
Please open Telegram to view this post
VIEW IN TELEGRAM
vc.ru
Универсальный промпт для нейросети: как выжать максимум из ChatGPT, YandexGPT, Gemini, DeepSeek в 2025
Я отвечаю за маркетинг Яндекс Браузера (ex CMO Яндекс Путешествия, Playrix, консультировал League of Legends, Tinkoff, Sber, VK). Буду делиться опытом работы с нейросетями в моей жизни обычного сотрудника, который не сильно разбирается в коде или продвинутом…
Forwarded from Инжиниринг Данных (Dmitry)
Закончил 2ю половину workshop по CI/CD на примере контейнера с DuckDB и 1м SQL файлом.
Во 2й части мы занялись deployment, и в качестве destination выбрали Docker Hub. Посмотрели на GitHub и Docker tags, добавили Release, все через GitHub Actions.
Вы можете самостоятельно все проделать.
Ссылка на инструкции: https://github.com/surfalytics/data-projects/tree/main/dataops-projects/01_git_and_ci_cd
Мое решение: https://github.com/dimoobraznii1986/surfalytics-ci-cd-project
Статьи в тему, которые мы написали с Настей:
- Part 1: How to work with SQL queries as a pro
- Part 2: How to work with SQL queries as a pro
Если не уверены в CLI, IDE, Docker, Git, начните с Модуля 0 (Surfalytics), там может и на английском, но все команды и примеры и так понятны https://www.youtube.com/watch?v=LJIiCLu2gr8&list=PLNCDg7zJiXhP5Z_-TXUdorz2n7sjYHHKE
Понимание, что такое CI/CD, Git, как это работает и как используют другие компании помогает лучше адаптировать DevOps практики для своих аналитических проектов и повышает качество проекта.
Во 2й части мы занялись deployment, и в качестве destination выбрали Docker Hub. Посмотрели на GitHub и Docker tags, добавили Release, все через GitHub Actions.
Вы можете самостоятельно все проделать.
Ссылка на инструкции: https://github.com/surfalytics/data-projects/tree/main/dataops-projects/01_git_and_ci_cd
Мое решение: https://github.com/dimoobraznii1986/surfalytics-ci-cd-project
Статьи в тему, которые мы написали с Настей:
- Part 1: How to work with SQL queries as a pro
- Part 2: How to work with SQL queries as a pro
Если не уверены в CLI, IDE, Docker, Git, начните с Модуля 0 (Surfalytics), там может и на английском, но все команды и примеры и так понятны https://www.youtube.com/watch?v=LJIiCLu2gr8&list=PLNCDg7zJiXhP5Z_-TXUdorz2n7sjYHHKE
Понимание, что такое CI/CD, Git, как это работает и как используют другие компании помогает лучше адаптировать DevOps практики для своих аналитических проектов и повышает качество проекта.