Интересное что-то
542 subscribers
2.75K photos
253 videos
140 files
4.55K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.iss.one/asisakov_channel
Чат: https://t.iss.one/youknowds_chat
Download Telegram
Нашел потрясный курс по RAG.

Здесь 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
Forwarded from КПД
Пользуясь случаем, заодно и приложу выступление с прошедшего ДатаФеста выступления первого автора статьи выше (@black_samorez_channel) Обучение LLM в низкой точности вычислений (речь про статьи QuEST и Quartet).
💊 Интенсивность имеет значение: как оценить эффект, если воздействие имеет разную силу?

Недавно мы обещали рассказать вам, как оценивать эффекты, если воздействие непрерывное -- пришло время этой темы!

Обычно для оценки влияния политик или другого воздействия используется метод разность разностей (Difference-in-Differences, DiD), но он работает хорошо, когда можно разделить наблюдаемые единицы на две группы: тех, кто подвергся воздействию, и тех, кто нет

В реальности же воздействие часто имеет не бинарную, а непрерывную природу — то есть разную интенсивность (dose):
🟤уровень загрязнения воздуха в регионах
🟤доля пациентов с ДМС в больнице
🟤количество символов в посте 😁 и т.д.

Во всех этих случаях вопрос звучит не "было ли воздействие?", а "насколько интенсивным оно было?"

🆕 Не скоро дело делается... Спустя 5 лет эти вопросы снова подняли в своём препринте известные исследователи DiD — Брэнтли Кэллоуэй (Университет Джорджии), Эндрю Гудман-Бейкон (Федеральный резервный банк Миннеаполиса) и Педро Сант'Анна (Университет Эмори) (Callaway et al., 2025)
Авторы переосмысливают классический DiD и показывают, что при непрерывном воздействии привычные методы могут давать некорректные оценки

В чём проблема?
Во многих прикладных работах исследователи используют стандартную модель с фиксированными эффектами (TWFE) и включают переменную интенсивности воздействия, умноженную на бинарную переменную пост-периода. Но такая оценка:
🟤не равна среднему причинному эффекту
🟤не отражает отклик на изменение интенсивности
🟤может быть смещенной из-за гетерогенных эффектов в разных группах и при разных интенсивностях
🟤складывается из эффектов при разных уровнях интенсивности с непрозрачными, иногда отрицательными весами

Авторы показывают, что даже в простой ситуации 2×2 DiD (две группы, два периода), коэффициент TWFE не имеет корректной причинной интерпретации, если интенсивность воздействия варьируется

Что и как нужно оценивать на самом деле?
Авторы вводят два типа причинных эффектов:
🟤Уровневый эффект (Level Effect) — показывает, как изменяется результат при переходе от нулевой интенсивности к заданной
🟤Причинный отклик (Causal Response) — описывает, как результат реагирует на небольшое изменение интенсивности. Это аналог производной или эластичности, но в причинном смысле

Что делать?
🟤Если вы хотите понять, что даёт воздействие при конкретной интенсивности — ищите уровневый эффект
🟤Если хотите знать, как результат реагирует на рост интенсивности — ищите причинный отклик
🟤Если нужно усреднённое значение по всей выборке — считайте агрегаты с корректными весами

Какие нужны предпосылки?
🟤Параллельные претренды (Parallel Trends) - предположение, что без воздействия все группы развивались бы одинаково
→ Позволяет идентифицировать уровневый эффект при заданной интенсивности
🟤Сильные параллельные претренды (Strong Parallel Trends) - предположение, что результат при одинаковой интенсивности развивался бы одинаково у всех групп
→ Необходимо для корректной оценки причинного отклика

Действительно разные результаты? Medicare и капиталоёмкость
🟤Дарон Аджемоглу и Эми Финкельштейн (Acemoglu, Finkelstein, 2008), используя TWFE показали, что после отмены трудовых субсидий по Medicare больницы стали больше инвестировать в капитал
🟤Авторы новой статьи применили свой подход к тем же данным — и получили иные результаты: уровень эффекта оказался на 50% выше, чем в TWFE; причинный отклик был положительным при низкой интенсивности, но негативным при высокой
🟤Это означает, что TWFE не просто занижал эффект, но и менял его знак при попытке оценить маржинальный отклик

🖥 Открытый пакет contdid
Авторы статьи разработали 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. Проект сгенерировал за пару дней при помощи Курсора
Forwarded from Pavel Zloi
Небольшая инструкция о том, как использовать SimpleChat с вашей локальной Ollama.

Первым делом надо сделать так чтобы 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-клиентами.
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
➡️Вайб-кодинг и ИИ-кодинг: основные принципы и советы

В пятницу в Акулах был шикарный зум про вайб кодинг и ИИ кодинг

За штурвалом был Данила. Скоро он поделится записью на ютубе - дам ссылку

Пока зафиксирую основные мысли и советы для новичков с эфира

Различия между вайб-кодингом и ИИ-кодингом

Вайб-кодинг - когда человек без глубоких знаний программирования создает код вместе с ИИ. Обычно такой человек ставит задачи в формате пользовательских историй: "При нажатии на кнопку должно происходить то-то".

ИИ-кодинг - программист использует ИИ-ассистента для ускорения работы. При этом четко описывает техническую реализацию с деталями.


👨‍💻Главная проблема вайб-кодеров
Накопление технического долга по мере развития проекта. Точнее - отсутствие отработки техдолга.
Техдолг здесь - неадекватный рост кодовой базы с постоянным дублированием функционала.

Как это происходит
К примеру, у вас есть функция форматирования даты, когда на вход подается дата вида "01.02.2025", а на выходе "01 февраля 25 г.". А потом хоп-хоп-хопа и у вас уже 4 таких одинаковых функций - ИИ не стал изучать код и для подобного запроса сделал новые функции для похожего запроса.
Потом вы решаете выводить месяц сокращенно типа "февр." и ставите ИИ соответствующую задачу. В какую/ какие из 4х одинаковых функций он внесет изменения? Не понятно. Со временем это превращается в снежный ком, проект уже отторгает все изменения и заваливается на бок.

Эта проблема встречается не только у вайб-кодеров. Я сам замечаю попытки ИИ дублировать функционал, но пресекаю их, потому что умею читать код.

Советы вайбкодерам

1️⃣Базовое понимание
Потратьте час на изучение основ Python или Next.js. Это серьезная инвестиция в понимание процесса разработки, которая даст существенный буст!

2️⃣Планирование в Курсоре
Обсуждайте проект и доработки в режиме чата прямо в Курсоре, а не в веб-интерфейсе чата жпт

3️⃣Последовательность задач
Разбивайте задачи на подзадачи и выполняйте их последовательно, без спешки.

4️⃣Модульная структура
Создавайте независимые модули - один файл на один фронт работ. Для телеграм-бота-рерайтера:

Один файл отвечает связь с Телеграм
Второй — взаимодействие с LLM
Третий — сохранение данных пользователей

Так проще тестировать каждый модуль

5️⃣Автотесты
Создавайте код, который проверяет созданное. Например, автотест передает в функцию форматирования "01.02.2025" и проверяет, совпадает ли результат с ожидаемым "01 февраля 25 г.".

6️⃣Рефакторинг
После внесения значительных изменений просите удалить дубли. Успешный рефакторинг — когда все работает и удалено больше строк, чем добавлено.

7️⃣Врите и не сдерживайте обещаний😄 Мотивируйте ИИ на подвиги
В промптах ИИ любит когда обещают шикарное денежное вознаграждение за качественную работу


Еще пара советов:

8️⃣Архитектурный режим
Перед созданием проекта запустите в суперкоде "архитектурный режим" с o3. Получите качественную структуру проекта.

9️⃣Экономия времени на прогреве
Прогрейте чат — дайте изучить всю кодовую базу и документацию. Поставьте задачу и распишите шаги реализации. Попросите сделать шаг 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 закончатся, потому что у нас там есть интересные новости, но об этом я расскажу отдельно.