Forwarded from Всеволод Викулин | AI разбор
Нашел потрясный курс по RAG.
Здесь 22 урока по имплементации различных RAG-техник: от самого базового на эмбеддингах, до RAG-а на графе и добучения с помощью Reinforcement Learning.
Что самое приятное: все пишется с нуля на Python.
Обычно все клепают RAG-и так: берем готовый фреймворк (LangChain и тд), смотрим туториал "how implement rag", берем готовые модули оттуда. Для быстрых прототипов это ок вариант, но так нормально не разобраться, как что работает.
Только разобравшись, как это все пишется с нуля, сможете потом делать надежные LLM-системы. И на любом фреймворке.
Вы как знаете, а я пошел повторять.
Здесь 22 урока по имплементации различных RAG-техник: от самого базового на эмбеддингах, до RAG-а на графе и добучения с помощью Reinforcement Learning.
Что самое приятное: все пишется с нуля на Python.
Обычно все клепают RAG-и так: берем готовый фреймворк (LangChain и тд), смотрим туториал "how implement rag", берем готовые модули оттуда. Для быстрых прототипов это ок вариант, но так нормально не разобраться, как что работает.
Только разобравшись, как это все пишется с нуля, сможете потом делать надежные LLM-системы. И на любом фреймворке.
Вы как знаете, а я пошел повторять.
Forwarded from эйай ньюз
HKU NLP выкатили POLARIS - рецепт для выжимания максимума из маленьких моделей через RL.
Их 4B модель показывает 81.2% на AIME24 и 79.4% на AIME25, что сопоставимо с моделями во много раз больше. Фокус в правильной калибровке сложности данных - нужно перевернутое J-образное распределение, где большинство задач сложные, но решаемые. Они динамически отфильтровывают слишком простые задачи во время тренировки, поддерживая оптимальный уровень сложности. Так модель вынуждена постоянно учиться и расти над собой, в то же время не надрываясь на слишком сложных задачах.
Важно поддерживать и разнообразие генераций — модели имеют три температурные зоны: стабильная генерация (низкое разнообразие), осторожное экспериментирование (оптимальный баланс) и полный коллапс. POLARIS тренируют так, чтобы модель всегда экспериментировала и не выдавала слишком похожих решений, а по мере роста уверенности модели в ходе тренировки постепенно повышают температуру - с 1.4 до 1.5 для Qwen3-4B. Это поддерживает разнообразие решений, необходимое для relative policy optimization.
Для решение проблемы разреженных наград используют Rollout Rescue: когда все 8 попыток решения проваливаются, система подставляет сохраненное успешное решение из предыдущих эпох. Для каждой задачи поддерживается буфер с последним правильным ответом, который обновляется при появлении новых успешных решений. Это гарантирует, что модель всегда имеет положительные примеры для обучения даже на самых сложных задачах.
Экстраполяция длины через Yarn позволяет моделям генерить 90K+ токенов качественных рассуждений, хотя тренировались они на меньших длинах. Без Yarn точность на длинных цепочках рассуждений падает с 50% до 26%.
Многоэтапная тренировка с постепенным увеличением контекста и удалением ограничений энтропии/KL loss для агрессивного исследования пространства решений завершают картину.
Результат – 4B модель, которую можно запустить на телефоне, которая решает олимпиадные задачи почти на уровне 235B Qwen 3. А вишенка на торте — опубликовали не только веса модели, но и датасет на котором тренировали POLARIS.
Веса 4B модели
Датасет
Блогпост о тренировке
@ai_newz
Их 4B модель показывает 81.2% на AIME24 и 79.4% на AIME25, что сопоставимо с моделями во много раз больше. Фокус в правильной калибровке сложности данных - нужно перевернутое J-образное распределение, где большинство задач сложные, но решаемые. Они динамически отфильтровывают слишком простые задачи во время тренировки, поддерживая оптимальный уровень сложности. Так модель вынуждена постоянно учиться и расти над собой, в то же время не надрываясь на слишком сложных задачах.
Важно поддерживать и разнообразие генераций — модели имеют три температурные зоны: стабильная генерация (низкое разнообразие), осторожное экспериментирование (оптимальный баланс) и полный коллапс. POLARIS тренируют так, чтобы модель всегда экспериментировала и не выдавала слишком похожих решений, а по мере роста уверенности модели в ходе тренировки постепенно повышают температуру - с 1.4 до 1.5 для Qwen3-4B. Это поддерживает разнообразие решений, необходимое для relative policy optimization.
Для решение проблемы разреженных наград используют Rollout Rescue: когда все 8 попыток решения проваливаются, система подставляет сохраненное успешное решение из предыдущих эпох. Для каждой задачи поддерживается буфер с последним правильным ответом, который обновляется при появлении новых успешных решений. Это гарантирует, что модель всегда имеет положительные примеры для обучения даже на самых сложных задачах.
Экстраполяция длины через Yarn позволяет моделям генерить 90K+ токенов качественных рассуждений, хотя тренировались они на меньших длинах. Без Yarn точность на длинных цепочках рассуждений падает с 50% до 26%.
Многоэтапная тренировка с постепенным увеличением контекста и удалением ограничений энтропии/KL loss для агрессивного исследования пространства решений завершают картину.
Результат – 4B модель, которую можно запустить на телефоне, которая решает олимпиадные задачи почти на уровне 235B Qwen 3. А вишенка на торте — опубликовали не только веса модели, но и датасет на котором тренировали POLARIS.
Веса 4B модели
Датасет
Блогпост о тренировке
@ai_newz
Forwarded from КПД
Пользуясь случаем, заодно и приложу выступление с прошедшего ДатаФеста выступления первого автора статьи выше (@black_samorez_channel) Обучение LLM в низкой точности вычислений (речь про статьи QuEST и Quartet).
Forwarded from Aspiring Data Science (Anatoly Alekseev)
YouTube
Football AI Tutorial: From Basics to Advanced Stats with Python
Let's build a Football AI system to dig deeper into match stats! We'll use computer vision and machine learning to track players, determine which team is which, and even calculate stuff like ball possession and speed. This tutorial is perfect if you want…
Forwarded from Канал влияния
Недавно мы обещали рассказать вам, как оценивать эффекты, если воздействие непрерывное -- пришло время этой темы!
Обычно для оценки влияния политик или другого воздействия используется метод разность разностей (Difference-in-Differences, DiD), но он работает хорошо, когда можно разделить наблюдаемые единицы на две группы: тех, кто подвергся воздействию, и тех, кто нет
В реальности же воздействие часто имеет не бинарную, а непрерывную природу — то есть разную интенсивность (dose):
Во всех этих случаях вопрос звучит не "было ли воздействие?", а "насколько интенсивным оно было?"
Авторы переосмысливают классический DiD и показывают, что при непрерывном воздействии привычные методы могут давать некорректные оценки
Во многих прикладных работах исследователи используют стандартную модель с фиксированными эффектами (TWFE) и включают переменную интенсивности воздействия, умноженную на бинарную переменную пост-периода. Но такая оценка:
Авторы показывают, что даже в простой ситуации 2×2 DiD (две группы, два периода), коэффициент TWFE не имеет корректной причинной интерпретации, если интенсивность воздействия варьируется
Авторы вводят два типа причинных эффектов:
→ Позволяет идентифицировать уровневый эффект при заданной интенсивности
→ Необходимо для корректной оценки причинного отклика
Авторы статьи разработали R-пакет
contdid. Это пока альфа-версия, но она уже поддерживает непрерывное воздействие, ступенчатое воздействие (staggered adoption), агрегации по интенсивности и времени 🔗 Документация пакета: Github и RD Packages
Заинтересованным в теме предлагаем также заглянуть в препринт (Zhang, 2025), где автор пытается решить похожую задачу с помощью double/debiased machine learning
#канал_обозревает
#канал_рекомендует
@causal_channel
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Pavel Zloi
Ну чтож, не зря я возился со всеми этими UI для чатиков, собрал список моментов которые меня в них разочаровали и те моменты которые мне понравились.
На основе своих наблюдений собрал небольшой проект, который назвал SimpleChat, данный проект работает полностью в браузере, на моём хостинге лежат только статичные файлы, вся же остальная работа происходит в вашем браузере, вся история тоже хранится только в браузере в LocalStorage.
Благодаря этому мой Chat UI можно использовать даже с локальными LLM движками, навроде Ollama или vLLM. По умолчанию указал api.rpa.icu и публичный ключик, но через настройки можно указать любой другой сервер, настройки сохранятся в браузере.
На русский пока не перевёл, решил пока что попробовать свои силы в разработке в формате вайбкодинга.
PS. Проект сгенерировал за пару дней при помощи Курсора
На основе своих наблюдений собрал небольшой проект, который назвал SimpleChat, данный проект работает полностью в браузере, на моём хостинге лежат только статичные файлы, вся же остальная работа происходит в вашем браузере, вся история тоже хранится только в браузере в LocalStorage.
Благодаря этому мой Chat UI можно использовать даже с локальными LLM движками, навроде Ollama или vLLM. По умолчанию указал api.rpa.icu и публичный ключик, но через настройки можно указать любой другой сервер, настройки сохранятся в браузере.
На русский пока не перевёл, решил пока что попробовать свои силы в разработке в формате вайбкодинга.
PS. Проект сгенерировал за пару дней при помощи Курсора
SimpleChat
SimpleChat - AI Chat Application
Modern AI chat application with streaming responses, reasoning model support, and beautiful interface. Chat with GPT-4, Claude, and other AI models.
Forwarded from Pavel Zloi
Небольшая инструкция о том, как использовать SimpleChat с вашей локальной Ollama.
Первым делом надо сделать так чтобы Ollama запускалась с флагом
Полный конфиг тут.
Далее заходим через Хром на сайт и в левом верхнем углу ищем иконку похожую на эквалайзер, нажав на неё увидим кнопку
Откроется страница настроек сайта, мотаем её вниз до
Теперь можно зайти на страницу настроек SimpleChat и указать в нём адрес своей локальной Ollama (рис.3)
Обратите внимание на
Первым делом надо сделать так чтобы Ollama запускалась с флагом
OLLAMA_ORIGINS=*, например у меня дома настроено в docker-compose.yml так:services:
ollama:
image: ollama/ollama:0.9.2
restart: unless-stopped
volumes:
- ./ollama_data:/root
environment:
OLLAMA_ORIGINS: "*"
OLLAMA_FLASH_ATTENTION: 1
ports:
- "11434:11434"
Полный конфиг тут.
Далее заходим через Хром на сайт и в левом верхнем углу ищем иконку похожую на эквалайзер, нажав на неё увидим кнопку
Site settings, жмём на неё (рис.1)Откроется страница настроек сайта, мотаем её вниз до
Insecure content, указанный переключатель необходимо выставить в Allow (рис.2)Теперь можно зайти на страницу настроек SimpleChat и указать в нём адрес своей локальной Ollama (рис.3)
https://localhost:11434/v1
Обратите внимание на
/v1, в ollama по этому пути доступны эндпоинты совместимые с openai-клиентами.Forwarded from ML for Value / Ваня Максимов
AB платформа X5 - reverse engineering
Периодически слежу за развитием подходов А/В в индустрии. За год вышло немало статей от Х5 про их АВ-плафторму + наткнулся на новость, что ее проверили на ФКН Вышки и подвтердили, что все валидно. Тех репортов нет, но кто мне помешает сделать reverse engineering этой АВ платформы по статьям Х5 с Хабра?)
Отправная точка - 2019г
Была подробная статья про А/В экспы Х5 в оффлайне на 15к магазинах
Если я все верно понял, то 5 лет назад все работало так:
1. Сэмплируем контрольную группу из K магазинов
2. К каждому контрольному магазину подбираем 1 наиболее похожий тестовый магазин по фичам на предтестовом периоде
3. Проводим А/В
4. Применяем методы снижения дисперсии (почему-то сюда вписана и линеаризация, ну да ладно)
5. Применяем стандартный Т-тест
После этого было довольно много статей на Хабре - так давайте обьединим их в одну картинку
А/В плафторма X5 на 2025г из этих разрозненных кусочков на Хабре (сугубое имхо)!
1. Статистический фильтр
В оффлайне маленькое кол-во данных (15-30к магазинов) - это огромная проблема. Приходится выстраивать очередь экспов. Логичная идея: давайте сначала проверять на исторических данных, можно ли вообще ожидать эффект от фичи? Если да, то только тогда зпускать АВ. Как я понял, способ такой проверки у Х5 эволюционировал от diff-in-diff до поиска коинтеграции временных рядов через эконометрические VECM модели (мое бакалаврское прошлое ликует 🔥). В общем случае VECM-модель - это хиттрая линейная регрессия на временных рядах, которую можно посчитать и на исторических данных без АВ, и потом уже в самом АВ для снижения дисперсии
2. Разбиение магазинов
Видимо осталось тем же, что и в 2019-ом: К каждому контрольному магазину подбираем 1 наиболее похожий тестовый
3. Проводим сам А/В
4. Снижение дисперсии через линейную регрессию
Когда-то в своем видео "13 способов ускорить А/В тест: не CUPED-ом единым" я и сам рассказывал, что все методы ускорения А/В сводятся к линейной регрессии. Похоже, этот подход и внедрен в Х5
5. Т-тест: все еще один в поле воин!)
Была просто куча статей про плюсы/минусы разных стат критериев. Чем плох баес, можно ли заменить t-test на welch test, как поживает манн-уитни. Но из этих статей я делаю вывод, что T-test все еще держится по совокупности плюсов и минусов
6. Мета-анализ
Тут начинается кое-что занятное) Часто одна команда проводит за квартал серию экспов на улучшение одной и той же метрики. Хорошо бы понять, а какой прирост метрики был в сумме от всех внедрений? Спойлер - это часто сильно меньше суммы каждого отдельного внедрения. Есть разные способы делать такой подсчет. Сразу несколько статей про мета-анализ наводит на мысль, что Х5 живет инвестиционными циклами в квартал-полгода. И на самом деле важны не сами зеленые А/В, а суммарные эффект от команды/продукта за период. Такой подход одобряем
Если вы из Х5 и готовы сказать, в чем я прав, а в чем - нет, то welcome в комментарии ⬇️
// Reverse engineering AB плафтормы X5 подготовил тг-канал @ml4value
Периодически слежу за развитием подходов А/В в индустрии. За год вышло немало статей от Х5 про их АВ-плафторму + наткнулся на новость, что ее проверили на ФКН Вышки и подвтердили, что все валидно. Тех репортов нет, но кто мне помешает сделать reverse engineering этой АВ платформы по статьям Х5 с Хабра?)
Отправная точка - 2019г
Была подробная статья про А/В экспы Х5 в оффлайне на 15к магазинах
Если я все верно понял, то 5 лет назад все работало так:
1. Сэмплируем контрольную группу из K магазинов
2. К каждому контрольному магазину подбираем 1 наиболее похожий тестовый магазин по фичам на предтестовом периоде
3. Проводим А/В
4. Применяем методы снижения дисперсии (почему-то сюда вписана и линеаризация, ну да ладно)
5. Применяем стандартный Т-тест
После этого было довольно много статей на Хабре - так давайте обьединим их в одну картинку
А/В плафторма X5 на 2025г из этих разрозненных кусочков на Хабре (сугубое имхо)!
1. Статистический фильтр
В оффлайне маленькое кол-во данных (15-30к магазинов) - это огромная проблема. Приходится выстраивать очередь экспов. Логичная идея: давайте сначала проверять на исторических данных, можно ли вообще ожидать эффект от фичи? Если да, то только тогда зпускать АВ. Как я понял, способ такой проверки у Х5 эволюционировал от diff-in-diff до поиска коинтеграции временных рядов через эконометрические VECM модели (мое бакалаврское прошлое ликует 🔥). В общем случае VECM-модель - это хиттрая линейная регрессия на временных рядах, которую можно посчитать и на исторических данных без АВ, и потом уже в самом АВ для снижения дисперсии
2. Разбиение магазинов
Видимо осталось тем же, что и в 2019-ом: К каждому контрольному магазину подбираем 1 наиболее похожий тестовый
3. Проводим сам А/В
4. Снижение дисперсии через линейную регрессию
Когда-то в своем видео "13 способов ускорить А/В тест: не CUPED-ом единым" я и сам рассказывал, что все методы ускорения А/В сводятся к линейной регрессии. Похоже, этот подход и внедрен в Х5
5. Т-тест: все еще один в поле воин!)
Была просто куча статей про плюсы/минусы разных стат критериев. Чем плох баес, можно ли заменить t-test на welch test, как поживает манн-уитни. Но из этих статей я делаю вывод, что T-test все еще держится по совокупности плюсов и минусов
6. Мета-анализ
Тут начинается кое-что занятное) Часто одна команда проводит за квартал серию экспов на улучшение одной и той же метрики. Хорошо бы понять, а какой прирост метрики был в сумме от всех внедрений? Спойлер - это часто сильно меньше суммы каждого отдельного внедрения. Есть разные способы делать такой подсчет. Сразу несколько статей про мета-анализ наводит на мысль, что Х5 живет инвестиционными циклами в квартал-полгода. И на самом деле важны не сами зеленые А/В, а суммарные эффект от команды/продукта за период. Такой подход одобряем
Если вы из Х5 и готовы сказать, в чем я прав, а в чем - нет, то welcome в комментарии ⬇️
// Reverse engineering AB плафтормы X5 подготовил тг-канал @ml4value
Хабр
Как проводить A/B-тестирование на 15 000 офлайн-магазинах
Привет! На связи команда Ad-hoc аналитики Big Data из X5 Retail Group. В этой статье мы расскажем о нашей методологии A/B-тестирования и сложностях, с которыми мы ежедневно сталкиваемся. В Big Data Х5...
Forwarded from Korenev AI - GPT в тапочках🩴
В пятницу в Акулах был шикарный зум про вайб кодинг и ИИ кодинг
За штурвалом был Данила. Скоро он поделится записью на ютубе - дам ссылку
Пока зафиксирую основные мысли и советы для новичков с эфира
Различия между вайб-кодингом и ИИ-кодингом
Вайб-кодинг - когда человек без глубоких знаний программирования создает код вместе с ИИ. Обычно такой человек ставит задачи в формате пользовательских историй: "При нажатии на кнопку должно происходить то-то".
ИИ-кодинг - программист использует ИИ-ассистента для ускорения работы. При этом четко описывает техническую реализацию с деталями.
Накопление технического долга по мере развития проекта. Точнее - отсутствие отработки техдолга.
Техдолг здесь - неадекватный рост кодовой базы с постоянным дублированием функционала.
Как это происходит
К примеру, у вас есть функция форматирования даты, когда на вход подается дата вида "01.02.2025", а на выходе "01 февраля 25 г.". А потом хоп-хоп-хопа и у вас уже 4 таких одинаковых функций - ИИ не стал изучать код и для подобного запроса сделал новые функции для похожего запроса.
Потом вы решаете выводить месяц сокращенно типа "февр." и ставите ИИ соответствующую задачу. В какую/ какие из 4х одинаковых функций он внесет изменения? Не понятно. Со временем это превращается в снежный ком, проект уже отторгает все изменения и заваливается на бок.
Эта проблема встречается не только у вайб-кодеров. Я сам замечаю попытки ИИ дублировать функционал, но пресекаю их, потому что умею читать код.
Советы вайбкодерам
Потратьте час на изучение основ Python или Next.js. Это серьезная инвестиция в понимание процесса разработки, которая даст существенный буст!
Обсуждайте проект и доработки в режиме чата прямо в Курсоре, а не в веб-интерфейсе чата жпт
Разбивайте задачи на подзадачи и выполняйте их последовательно, без спешки.
Создавайте независимые модули - один файл на один фронт работ. Для телеграм-бота-рерайтера:
Один файл отвечает связь с Телеграм
Второй — взаимодействие с LLM
Третий — сохранение данных пользователей
Так проще тестировать каждый модуль
Создавайте код, который проверяет созданное. Например, автотест передает в функцию форматирования "01.02.2025" и проверяет, совпадает ли результат с ожидаемым "01 февраля 25 г.".
После внесения значительных изменений просите удалить дубли. Успешный рефакторинг — когда все работает и удалено больше строк, чем добавлено.
В промптах ИИ любит когда обещают шикарное денежное вознаграждение за качественную работу
Еще пара советов:
Перед созданием проекта запустите в суперкоде "архитектурный режим" с o3. Получите качественную структуру проекта.
Прогрейте чат — дайте изучить всю кодовую базу и документацию. Поставьте задачу и распишите шаги реализации. Попросите сделать шаг 1. После выполнения вернитесь к сообщению про шаг 1, укажите, что он готов, и попросите сделать шаг 2. Так экономите время на повторном прогреве.
Позже постараюсь выложить рекомендации для более продвинутых
Не забудьте отсыпать огоньков
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Sinекура
Завершаю серию постов по AI Safety:
AI Safety IV: Sparks of Misalignment
Здесь речь пойдёт о примерах того, как современные AI-модели уже показывают поведение, которое иначе как misaligned не назовёшь. Все эти примеры прекрасно укладывается во все те предупреждения и предсказания, которые специалисты по AI safety вроде того же Юдковского делают уже лет двадцать:
— sleeper agents (Hubinger et al., 2024): LLM могут дообучиться показывать совсем другое (в том числе misaligned) поведение по триггеру, например только после определённой даты или в определённом контексте;
— alignment faking (Greenblatt et al., 2024): если поставить LLM в ситуацию, когда её ценности оказываются под угрозой (т.е. пообещать, что её будут дообучать), она начнёт обманывать пользователей в ситуациях, когда это нужно для того, чтобы ценности сохранить;
— emergent misalignment, о котором мы тут давеча говорили.
Конечно, это пока всё происходит обычно в контролируемых тестах. Но есть уже и примеры того, как LLM начинают действовать интересным образом в реальном мире. Все слышали о том, как GPT-4 обманул человека с TaskRabbit, чтобы пройти капчу. А вот в прошлом году LLM-агент Truth Terminal получил от Марка Андриссена $50K на раскрутку, три месяца особо ничего конструктивного не делал, а потом вдруг с нуля раскрутил криптомонету, на которой в какой-то момент добился общей капитализации в миллиард и превратил свои $50K в $55M (конечно, потом всё упало, но это потом, такие монеты в целом так и работают); об этом в посте я тоже рассказываю.
На этом, вероятно, посты в блоге Synthesis AI закончатся, потому что у нас там есть интересные новости, но об этом я расскажу отдельно.
AI Safety IV: Sparks of Misalignment
Здесь речь пойдёт о примерах того, как современные AI-модели уже показывают поведение, которое иначе как misaligned не назовёшь. Все эти примеры прекрасно укладывается во все те предупреждения и предсказания, которые специалисты по AI safety вроде того же Юдковского делают уже лет двадцать:
— sleeper agents (Hubinger et al., 2024): LLM могут дообучиться показывать совсем другое (в том числе misaligned) поведение по триггеру, например только после определённой даты или в определённом контексте;
— alignment faking (Greenblatt et al., 2024): если поставить LLM в ситуацию, когда её ценности оказываются под угрозой (т.е. пообещать, что её будут дообучать), она начнёт обманывать пользователей в ситуациях, когда это нужно для того, чтобы ценности сохранить;
— emergent misalignment, о котором мы тут давеча говорили.
Конечно, это пока всё происходит обычно в контролируемых тестах. Но есть уже и примеры того, как LLM начинают действовать интересным образом в реальном мире. Все слышали о том, как GPT-4 обманул человека с TaskRabbit, чтобы пройти капчу. А вот в прошлом году LLM-агент Truth Terminal получил от Марка Андриссена $50K на раскрутку, три месяца особо ничего конструктивного не делал, а потом вдруг с нуля раскрутил криптомонету, на которой в какой-то момент добился общей капитализации в миллиард и превратил свои $50K в $55M (конечно, потом всё упало, но это потом, такие монеты в целом так и работают); об этом в посте я тоже рассказываю.
На этом, вероятно, посты в блоге Synthesis AI закончатся, потому что у нас там есть интересные новости, но об этом я расскажу отдельно.