Forwarded from эйай ньюз
GLM 4.5 — китайский опенсорс продолжает доминировать
Очередная очень сильная открытая MoE модель от китайцев, с очень хорошими результатами на бенчах. Гибридний ризонер, с упором на тулюз. Доступна по MIT лицензии, 128к контекста, нативный function calling, из коробки работают стриминг и batching, есть FP8‑инференс и совместимость с vLLM/SGLang.
Как и Kimi K2 модельку тренировали с Muon, но в отличие от Kimi авторы использовали QK норму вместо клиппинга — Kimi такой трюк не позволило провернуть использование MLA, из-за чего им пришлось придумывать свою версию оптимайзера. Для спекулятивного декодинга получше модельку тренировали с MTP. Она заметно глубже чем другие открытые китайские MoE — это повышает перформанс, за счёт роста размера KV-кэша. Вместе с этим они используют заметно больше attention heads. Это хоть и не помогает лоссу, но заметно улучшает ризонинг бенчмарки.
Модель идёт в двух размерах — 355B (32B active) и 106B (12B active). Претрейн был на 22 триллионах токенов — 15 триллионов токенов обычных данных, а после них 7 триллионов кода с ризонингом. На мидтрейне в модель запихнули по 500 миллиардов токенов кода и ризонинг данных с контекстом расширенным до 32к, а после этого 100 миллиардов long context и агентных данных при контексте уже в 128к.
Посттрейн двухэтапный — сначала из базовой модели через cold‑start+RL тренируют три эксперта (reasoning модель, agentic модель, и для общих тасков) и сводят их знания в одну модель через self‑distillation. Затем идёт объединённое обучение: общий SFT → Reasoning RL → Agentic RL → General RL.
Для ризонинга применяют одноступенчатый RL на полном 64K‑контексте с curriculum по сложности, динамическими температурами и адаптивным клиппингом. Агентные навыки тренируют на верифицируемых треках — поиск информации и программирование с обратной связью по исполнению. Полученные улучшения помогают и deep search и общему tool‑use. Кстати, их посттрейн фреймворк открытый и лежит на гитхабе.
Веса
Демо
Блогпост
Посттрейн фреймворк
@ai_newz
Очередная очень сильная открытая MoE модель от китайцев, с очень хорошими результатами на бенчах. Гибридний ризонер, с упором на тулюз. Доступна по MIT лицензии, 128к контекста, нативный function calling, из коробки работают стриминг и batching, есть FP8‑инференс и совместимость с vLLM/SGLang.
Как и Kimi K2 модельку тренировали с Muon, но в отличие от Kimi авторы использовали QK норму вместо клиппинга — Kimi такой трюк не позволило провернуть использование MLA, из-за чего им пришлось придумывать свою версию оптимайзера. Для спекулятивного декодинга получше модельку тренировали с MTP. Она заметно глубже чем другие открытые китайские MoE — это повышает перформанс, за счёт роста размера KV-кэша. Вместе с этим они используют заметно больше attention heads. Это хоть и не помогает лоссу, но заметно улучшает ризонинг бенчмарки.
Модель идёт в двух размерах — 355B (32B active) и 106B (12B active). Претрейн был на 22 триллионах токенов — 15 триллионов токенов обычных данных, а после них 7 триллионов кода с ризонингом. На мидтрейне в модель запихнули по 500 миллиардов токенов кода и ризонинг данных с контекстом расширенным до 32к, а после этого 100 миллиардов long context и агентных данных при контексте уже в 128к.
Посттрейн двухэтапный — сначала из базовой модели через cold‑start+RL тренируют три эксперта (reasoning модель, agentic модель, и для общих тасков) и сводят их знания в одну модель через self‑distillation. Затем идёт объединённое обучение: общий SFT → Reasoning RL → Agentic RL → General RL.
Для ризонинга применяют одноступенчатый RL на полном 64K‑контексте с curriculum по сложности, динамическими температурами и адаптивным клиппингом. Агентные навыки тренируют на верифицируемых треках — поиск информации и программирование с обратной связью по исполнению. Полученные улучшения помогают и deep search и общему tool‑use. Кстати, их посттрейн фреймворк открытый и лежит на гитхабе.
Веса
Демо
Блогпост
Посттрейн фреймворк
@ai_newz
Forwarded from Заскуль питона (Data Science)
Раньше в
Сейчас для моих задач Spark - это необходимость, чтобы не падал JupyterHub по оперативной памяти: все вычисления выполняются распределённо на кластере с большим объёмом ресурсов. Но это не волшебная таблетка, т.к. важно следить за тем, как используются ресурсы, грамотно настраивать Spark-приложения и оптимизировать запросы. На самом деле подход к работе с ресурсами здесь другой, и есть ряд ограничений, о которых расскажу в следующих постах
1. Собираю данные из разных источников
В реальных задачах часто нужно объединять сразу несколько источников: выгрузки из разных баз, parquet и тд. Пока всё влезает в pandas - норм, но когда данных слишком много, pandas начинает падать. Spark позволяет легко подтянуть все необходимые источники и собрать их в одну большую таблицу, не заботясь об ограничениях памяти.
2. Выполняю тяжёлые вычисления и агрегации
После того как все данные собраны, начинаются подсчеты метрик по большим объёмам данных. Здесь Spark выигрывает за счёт распределённых вычислений: вся тяжёлая работа идёт на кластере, а не на ноутбуке. Как только нужные агрегаты посчитаны, можно забрать результат и уже дальше анализировать, строить графики и т.д.
from pyspark.sql import SparkSession
from pyspark.sql.functions import avg, count
# запускаем Spark-сессию, тут еще можно закопаться в настройки приложения (если будет много 🐳, выложу)
spark = SparkSession.builder.appName("zasql_python").getOrCreate() # название приложения может быть произвольным
# читаем csv и кучу источников
df_csv = spark.read.csv("file.csv", header=True, inferSchema=True)
df_parquet = spark.read.parquet("file.parquet")
df_json = spark.read.json("file.json")
# джойним таблицы между собой
df_joined = df_csv.join(df_parquet, on="user_id", how="inner")
# фильтруем данные
df_filtered = df_joined.filter(df_joined["is_active"] == 1)
# применяем агрегирующие функции, считаем сумму строчек, среднее значение по заказам
df_grouped = (
df_filtered
.groupBy("country")
.agg(
count("*").alias("users_count"),
avg("order_sum").alias("avg_order_sum")
)
)
df_pandas = df_grouped.toPandas()
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("zasql_python_sql").getOrCreate() # произвольное название приложения, должно быть другим, если запускаем параллельно
df_orders = spark.read.parquet("orders.parquet") # читаем в Spark DataFrame первый источник источник
df_users = spark.read.csv("users.csv", header=True, inferSchema=True) # читаем в Spark DataFrame второй источник
df_orders.createOrReplaceTempView("orders") # создаем темповые таблицы заказов
df_users.createOrReplaceTempView("users") # создаем темповые таблицы юзеров
# теперь читаем тут в sql-формате
query = """
SELECT
u.country,
COUNT(DISTINCT o.user_id) AS active_users,
AVG(o.order_sum) AS avg_order_sum
FROM orders o
JOIN users u ON o.user_id = u.user_id
WHERE o.is_active = 1
GROUP BY u.country
ORDER BY avg_order_sum DESC
"""
result = spark.sql(query) # читаем в spark.sql, результат тот же получаем, но в SQL-формате
result.show() # показать значения, но можно перевести и в pandas, но ресурсов много сожрет
Spark спасает, когда надо соединить и обработать десятки миллионов строк из разных источников, и обычный pandas падает по памяти, ядро умирает.
Ставьте
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Б/У ml (Толик Мастрюков)
Ускорение раннего связывания для моделей ранжирования
База
В двухэтапных рекомендательных системах используются кандидатогенерация (кандген) и ранжирование.
На этапе кандгена простые модели (например, DSSM, двухбашенные архитектуры) отбирают наиболее релевантные айтемы для пользователя. Из-за большого количества айтемов применяется позднее связывание (late interaction) — например, через скалярное произведение векторов пользователя и кандидатов.
На этапе ранжирования более сложные модели (например, CatBoost или нейросети) переупорядочивают кандидатов, учитывая дополнительные фичи, такие как счетчики взаимодействий или контекст пользователя.
Контекст
В последние годы крупные компании (Google, Meta, TikTok, Pinterest ❤️ , LinkedIn, Alibaba ) активно внедряют нейросетевые модели ранжирования, которые учитывают глобальный контекст пользователя.
В статье Amortized Inference предложен метод, улучшающий SOTA-результаты для этой задачи.
Авторы берут за основу две модели с ранним связыванием (early interaction):
BST (Behavior Sequence Transformer) — кандидат добавляется в конец истории пользователя.
TransAct — кандидат конкатенируется к каждому айтему в истории.
Обе модели используют трансформеры, что позволяет оценивать кандидата с учетом всей истории. Однако у них есть ключевая проблема — высокая вычислительная сложность.
Проблема
Для каждого кандидата модель заново обрабатывает историю пользователя.
Сложность:
O(n^2⋅m⋅d+n⋅m⋅d^2)
где:
n — длина истории,
m — число кандидатов,
d — размерность эмбеддингов.
При больших
n и m (например, 1000+ кандидатов) это приводит к высоким задержкам и делает модель непрактичной для прода.
Решение
Авторы предлагают конкатенировать всех кандидатов к истории и прогонять через трансформер один раз, а затем учить модель предсказывать таргет для каждого кандидата отдельно.
Новая сложность:
O((n+m)⋅d^2+(n+m)^2⋅d)
Это дает значительное ускорение, если
m>2 (что почти всегда верно в рекомендательных системах).
Результаты
+0.18% к качеству (A/B-тесты).
+5% к latency (vs. +56% у BST и +52% у TransAct).
Вывод
Метод упрощает инференс, сохраняя качество. Его можно масштабировать с помощью Flash Attention или приближенных вычислений (например, для 3000 кандидатов, как в Авито).
Статья мне понравилась простотой и практичностью — такой подход легче внедрять в продакшене.
База
В двухэтапных рекомендательных системах используются кандидатогенерация (кандген) и ранжирование.
На этапе кандгена простые модели (например, DSSM, двухбашенные архитектуры) отбирают наиболее релевантные айтемы для пользователя. Из-за большого количества айтемов применяется позднее связывание (late interaction) — например, через скалярное произведение векторов пользователя и кандидатов.
На этапе ранжирования более сложные модели (например, CatBoost или нейросети) переупорядочивают кандидатов, учитывая дополнительные фичи, такие как счетчики взаимодействий или контекст пользователя.
Контекст
В последние годы крупные компании (Google, Meta, TikTok, Pinterest ❤️ , LinkedIn, Alibaba ) активно внедряют нейросетевые модели ранжирования, которые учитывают глобальный контекст пользователя.
В статье Amortized Inference предложен метод, улучшающий SOTA-результаты для этой задачи.
Авторы берут за основу две модели с ранним связыванием (early interaction):
BST (Behavior Sequence Transformer) — кандидат добавляется в конец истории пользователя.
TransAct — кандидат конкатенируется к каждому айтему в истории.
Обе модели используют трансформеры, что позволяет оценивать кандидата с учетом всей истории. Однако у них есть ключевая проблема — высокая вычислительная сложность.
Проблема
Для каждого кандидата модель заново обрабатывает историю пользователя.
Сложность:
O(n^2⋅m⋅d+n⋅m⋅d^2)
где:
n — длина истории,
m — число кандидатов,
d — размерность эмбеддингов.
При больших
n и m (например, 1000+ кандидатов) это приводит к высоким задержкам и делает модель непрактичной для прода.
Решение
Авторы предлагают конкатенировать всех кандидатов к истории и прогонять через трансформер один раз, а затем учить модель предсказывать таргет для каждого кандидата отдельно.
Новая сложность:
O((n+m)⋅d^2+(n+m)^2⋅d)
Это дает значительное ускорение, если
m>2 (что почти всегда верно в рекомендательных системах).
Результаты
+0.18% к качеству (A/B-тесты).
+5% к latency (vs. +56% у BST и +52% у TransAct).
Вывод
Метод упрощает инференс, сохраняя качество. Его можно масштабировать с помощью Flash Attention или приближенных вычислений (например, для 3000 кандидатов, как в Авито).
Статья мне понравилась простотой и практичностью — такой подход легче внедрять в продакшене.
Forwarded from Б/У ml (Толик Мастрюков)
Слева BST , справа идея из статьи. Наглядное сравнение почему 1 метод быстрее другого
Forwarded from max.sh
В продолжение поста выше хочу привести ещё несколько интересных, на мой взгляд, нетехнических мыслей из блога Джейсона. Автор рефлексирует над принципами рисерч: как его стоит вести, какой путь выбирать, какие ожидания на сегодняшний от AI-исследователей.
Короткая сводка наиболее откликающихся мыслей в хронологическом порядке изложения автора:
[Research I enjoy]
Автор критически смотрит на свои ранние публикации и находит их слишком специфичными, «заточенными» под одну задачу. Например, применить модель к конкретному сетапу или выбить прирост в пару процентов на конкретном бенчмарке с помощью сложного не обобщаемого метода. Такие работы обычно не находят отклик в сообществе и не двигают прогресс. Поэтому, если тема слишком узкая, то какой бы крутой ни была реализация, импакт всё равно будет незначительным.
Рисерч, который откликается автору и которым он пытается заниматься:
(1) строится вокруг общих, переиспользуемых идей (новая архитектура, новый метод, новый рецепт предобучения),
(2) направлен на достижение AGI,
(3) нацелен задать вектор влияния на сообщество.
Статья про CoT-Prompting является идеальным примером реализации этой мысли.
[Practicing AI Research]
Умение делать рисерч — это тренируемая способность. Автор выделяет четыре ключевых навыка, из которых состоит рисерч:
⚫️ Отбор идей. Вырабатывание собственного «вкуса», проработка концепций и выбор тем, в которые веришь и которые соответствуют твоим принципам. Автор предпочитает обобщённые идеи, без ухода в излишнюю специфику. Как правило, это оказывается «hot topic», над которой и так всё работают, и ты стараешься сделать лучше остальных.
⚫️ Дизайн экспериментов и их реализация. У исследования должен быть чёткий набор Research Questions, на которые в ходе работы будут найдены ответы. Хорошая практика — регулярно обсуждать прогресс с коллегами.
⚫️ Работа над статьей. Простым языком изложить суть работы, ключевые результаты, объяснить, почему эта работа важна для сообщества и как применить идеи на практике.
⚫️ Максимизация импакта. Журналы, конференции, блогпосты, twitter, подкасты — все инструменты хороши, чтобы «прорекламировать» миру свою работу и показать её значимость.
Все эти навыки прокачиваются при должной консистентности. Среда играет огромную роль: работа в сильной научной группе ускоряет процесс, помогая выработать «вкус» к идеям, научиться шейрить результаты и эффективно работать в команде.
[Dopamine cycles in AI research]
AI-исследователи заканчивают свой день (или неделю) либо в хорошем настроении, либо в плохом — всё зависит от того, сработала ли сегодня гипотеза, в которую ты веришь.
Да — супер, допаминовый скачок.
Нет — фрустрация, уходишь в дебаг и допаминовую просадку.
Так или иначе, ресерч создаёт асимметричные по длительности допаминовые циклы, и нужно иметь навыки саморегуляции, чтобы не отлететь.
[AI research is a max-performance domain]
Что значит «max-performance domain»? Для того чтобы быть топ-исследователем, достаточно выдающихся результатов лишь в одном аспекте своей работы. Обучить лучшую модель или создать прорывной алгоритм — и ты уже востребован, в то время как все смежные компетенции (навыки спикера, разработчика, прохождения кодинг-интервью) не имеют значения и прощаются.
И не обязательно делать прорыв каждый год — раз в несколько лет достаточно, потому что метрика исследователя:
Отрасли, где результаты имеют большой импакт на мир сегодня (сейчас AI, в прошлом веке — ядерная и квантовая физика), позволяют исследователям оперировать в таком уникальном режиме.
---
Многие из этих мыслей вдохновлены принципами, озвученными Ричардом Хэммингом в 1986 году. You and Your Research, by Richard Hamming. Рекомендую.
Короткая сводка наиболее откликающихся мыслей в хронологическом порядке изложения автора:
[Research I enjoy]
Автор критически смотрит на свои ранние публикации и находит их слишком специфичными, «заточенными» под одну задачу. Например, применить модель к конкретному сетапу или выбить прирост в пару процентов на конкретном бенчмарке с помощью сложного не обобщаемого метода. Такие работы обычно не находят отклик в сообществе и не двигают прогресс. Поэтому, если тема слишком узкая, то какой бы крутой ни была реализация, импакт всё равно будет незначительным.
Рисерч, который откликается автору и которым он пытается заниматься:
(1) строится вокруг общих, переиспользуемых идей (новая архитектура, новый метод, новый рецепт предобучения),
(2) направлен на достижение AGI,
(3) нацелен задать вектор влияния на сообщество.
Статья про CoT-Prompting является идеальным примером реализации этой мысли.
[Practicing AI Research]
Умение делать рисерч — это тренируемая способность. Автор выделяет четыре ключевых навыка, из которых состоит рисерч:
Все эти навыки прокачиваются при должной консистентности. Среда играет огромную роль: работа в сильной научной группе ускоряет процесс, помогая выработать «вкус» к идеям, научиться шейрить результаты и эффективно работать в команде.
[Dopamine cycles in AI research]
AI-исследователи заканчивают свой день (или неделю) либо в хорошем настроении, либо в плохом — всё зависит от того, сработала ли сегодня гипотеза, в которую ты веришь.
Да — супер, допаминовый скачок.
Нет — фрустрация, уходишь в дебаг и допаминовую просадку.
Так или иначе, ресерч создаёт асимметричные по длительности допаминовые циклы, и нужно иметь навыки саморегуляции, чтобы не отлететь.
[AI research is a max-performance domain]
Что значит «max-performance domain»? Для того чтобы быть топ-исследователем, достаточно выдающихся результатов лишь в одном аспекте своей работы. Обучить лучшую модель или создать прорывной алгоритм — и ты уже востребован, в то время как все смежные компетенции (навыки спикера, разработчика, прохождения кодинг-интервью) не имеют значения и прощаются.
И не обязательно делать прорыв каждый год — раз в несколько лет достаточно, потому что метрика исследователя:
лучшие пять работ (не обязательно научных публикаций) за карьеру, а не средний результат.
Отрасли, где результаты имеют большой импакт на мир сегодня (сейчас AI, в прошлом веке — ядерная и квантовая физика), позволяют исследователям оперировать в таком уникальном режиме.
---
Многие из этих мыслей вдохновлены принципами, озвученными Ричардом Хэммингом в 1986 году. You and Your Research, by Richard Hamming. Рекомендую.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from C++95
#notes_from_underground
Пересматривал видос про коробки от хлопьев любимого блогера детства, решил с ChatGPT сделать свою коробку🍜
Записки из подполья №2✍️
1️⃣ Обзор технических блогов по HFT-конторам 💳
Что пишут в своих блогах компании, которые занимаются HFT + бонус
https://telegra.ph/Obzor-tehnicheskih-blogov-po-HFT-kontoram-06-24
2️⃣ "Нижний интернет" нашей сферы 👨🔬
Обзор треш-стримеров и анонимных площадок
https://telegra.ph/Nizhnij-internet-nashej-sfery-06-25
Пересматривал видос про коробки от хлопьев любимого блогера детства, решил с ChatGPT сделать свою коробку
Записки из подполья №2
Что пишут в своих блогах компании, которые занимаются HFT + бонус
https://telegra.ph/Obzor-tehnicheskih-blogov-po-HFT-kontoram-06-24
Обзор треш-стримеров и анонимных площадок
https://telegra.ph/Nizhnij-internet-nashej-sfery-06-25
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Находки в опенсорсе
minimal vscode: открываем окна
https://www.youtube.com/watch?v=frZkPK_1Ui4
Нет, не от духоты, ее в видео как раз не будет 🌚️️️️
Видео короткое, динамичное, практичное.
Перед тем как учиться пользоваться vscode, необходимо:
1. Её поставить
2. Научиться её открывать
3. Располагать её на рабочем пространстве
В видео поговорили про:
- Brewfile и синхронизацию программ / плагинов
- Hotkey managers на примере https://github.com/koekeishiya/skhd
- Тайловые менеджеры окон: https://github.com/rxhanson/Rectangle
- Красивости вроде https://topnotch.app и https://hazeover.com
Все материалы для всех операционных систем тут: https://github.com/sobolevn/the-best-python-course/blob/main/minimal_vscode/links/1-open-vscode.md
Большое спасибо за такой отклик и поддержку 🧡, видео про отключение лишних панелей навигации уже в работе. Скоро будет!
Обсуждение: какие тайловые менеджеры используете вы?
| Поддержать | YouTube | GitHub | Чат |
https://www.youtube.com/watch?v=frZkPK_1Ui4
Нет, не от духоты, ее в видео как раз не будет 🌚️️️️
Видео короткое, динамичное, практичное.
Перед тем как учиться пользоваться vscode, необходимо:
1. Её поставить
2. Научиться её открывать
3. Располагать её на рабочем пространстве
В видео поговорили про:
- Brewfile и синхронизацию программ / плагинов
- Hotkey managers на примере https://github.com/koekeishiya/skhd
- Тайловые менеджеры окон: https://github.com/rxhanson/Rectangle
- Красивости вроде https://topnotch.app и https://hazeover.com
Все материалы для всех операционных систем тут: https://github.com/sobolevn/the-best-python-course/blob/main/minimal_vscode/links/1-open-vscode.md
Большое спасибо за такой отклик и поддержку 🧡, видео про отключение лишних панелей навигации уже в работе. Скоро будет!
Обсуждение: какие тайловые менеджеры используете вы?
| Поддержать | YouTube | GitHub | Чат |
YouTube
Гайд по кастомизации vscode: тайлы и менеджеры горячих клавиш
Максимальная продуктивность и минимализм в visual studio code!
Ссылки на материалы:
- Все конфиги тут: https://github.com/sobolevn/dotfiles
- Все ссылки из выпуска тут: https://github.com/sobolevn/the-best-python-course/blob/main/minimal_vscode/links/1-open…
Ссылки на материалы:
- Все конфиги тут: https://github.com/sobolevn/dotfiles
- Все ссылки из выпуска тут: https://github.com/sobolevn/the-best-python-course/blob/main/minimal_vscode/links/1-open…
Forwarded from Data Blog
Привет, друзья!
Хорошо, когда на что-то можно посмотреть. Виузальные образы помогают понять объект, но ещё лучше — когда можно с объектом что-то сделать.
С трепетной любовью вообще отношусь к хорошим визуализациям работы моделей, а тут вот появилась очень свежая и очень красивая — InTraVisTo.
Из названия — Inside Transformer Visualisation Tool — посвящена трансформерам.
Визуализация построена следующим образом:
* Декодинг скрытых состояний при помощи Logit Lens (у меня про него есть туториал) и построение Heatmap;
* Построение Sankey-диаграммы — диаграммы потоков, которая показывает распространение информации через блоки внимания и FFN.
! Кроме как посмотреть можно интерактивно делать инъекции.
То есть заменить скрытый вектор в любой позиции и на любой глубине внедрением токена, выбранного из словаря. Глобально — это как пушкой по воробьям, но попробовать поиграть с тем, как вмешательство в конкретный вектор влияет на модель — можно.
Поддерживает разные модели (Mistral, Llama) и режимы декодирования (input/output/смешанный).
Работает в GUI.
Попробовать: GitHub
Попробовать, но не поднимать: демка
Хорошо, когда на что-то можно посмотреть. Виузальные образы помогают понять объект, но ещё лучше — когда можно с объектом что-то сделать.
С трепетной любовью вообще отношусь к хорошим визуализациям работы моделей, а тут вот появилась очень свежая и очень красивая — InTraVisTo.
Из названия — Inside Transformer Visualisation Tool — посвящена трансформерам.
Визуализация построена следующим образом:
* Декодинг скрытых состояний при помощи Logit Lens (у меня про него есть туториал) и построение Heatmap;
* Построение Sankey-диаграммы — диаграммы потоков, которая показывает распространение информации через блоки внимания и FFN.
! Кроме как посмотреть можно интерактивно делать инъекции.
То есть заменить скрытый вектор в любой позиции и на любой глубине внедрением токена, выбранного из словаря. Глобально — это как пушкой по воробьям, но попробовать поиграть с тем, как вмешательство в конкретный вектор влияет на модель — можно.
Поддерживает разные модели (Mistral, Llama) и режимы декодирования (input/output/смешанный).
Работает в GUI.
Попробовать: GitHub
Попробовать, но не поднимать: демка
Forwarded from Data Blog
И если вы тоже фанат, то вот — из других визуализаций ещё есть
1. BertViz
2. Interactive-GPT-2
3. LM Transparency Tool
4. Transformer explainer — очень похожая на InTraVisTo, но у последней больше выбор моделей и есть упомянутая инъекция.
1. BertViz
2. Interactive-GPT-2
3. LM Transparency Tool
4. Transformer explainer — очень похожая на InTraVisTo, но у последней больше выбор моделей и есть упомянутая инъекция.
Forwarded from Data Blog
Друзья, привет!
Коллеги выложили запись нашего вчерашнего подкаста
об интерпретируемости. За час мы обсудили актуальные направления в области интерпретируемости классических моделей и LLM и накидали гипотез.
Гости подкаста:
➡️Максим Костриця – DS Researcher в Raft, магистр ФКН ВШЭ
➡️Тимур Низамов, разработчик @LLAMATOR, магистрант Talent Hub ИТМО
➡️Честер, вроде бы он заходил, и я :)
Тайм-коды:
00:00:00 интро
00:04:21 как развивалась область интерпретируемости?
00:08:23 концептуальные слои
00:16:55 поведенческий и репрезентативный анализ
00:27:09 механистическая интерпретируемость
00:33:22 Sparse Autoencoders и результаты исследования Максима по влиянию на "токсичные" нейроны модели
01:01:10 в чём идея Circuit Tracing?
01:03:20 подведение итогов: есть ли тренд на интерпретируемость и к чему это может привести?
01:11:49 QA
Полезные ссылки по теме, упомянутые в подкасте:
https://habr.com/ru/articles/885076/ — туториал про зонды
https://arxiv.org/pdf/2507.12950 — кейсы XAI в радиологии
https://www.lesswrong.com/posts/jGuXSZgv6qfdhMCuJ/refusal-in-llms-is-mediated-by-a-single-direction
https://www.anthropic.com/news/golden-gate-claude
https://monitor.transluce.org/dashboard/chat
https://www.neuronpedia.org/
https://platform.goodfire.ai/
https://transformer-circuits.pub/
Ссылка на ютуб: https://www.youtube.com/watch?v=M9jVLiFXs04
Коллеги выложили запись нашего вчерашнего подкаста
об интерпретируемости. За час мы обсудили актуальные направления в области интерпретируемости классических моделей и LLM и накидали гипотез.
Гости подкаста:
➡️Максим Костриця – DS Researcher в Raft, магистр ФКН ВШЭ
➡️Тимур Низамов, разработчик @LLAMATOR, магистрант Talent Hub ИТМО
➡️Честер, вроде бы он заходил, и я :)
Тайм-коды:
00:00:00 интро
00:04:21 как развивалась область интерпретируемости?
00:08:23 концептуальные слои
00:16:55 поведенческий и репрезентативный анализ
00:27:09 механистическая интерпретируемость
00:33:22 Sparse Autoencoders и результаты исследования Максима по влиянию на "токсичные" нейроны модели
01:01:10 в чём идея Circuit Tracing?
01:03:20 подведение итогов: есть ли тренд на интерпретируемость и к чему это может привести?
01:11:49 QA
Полезные ссылки по теме, упомянутые в подкасте:
https://habr.com/ru/articles/885076/ — туториал про зонды
https://arxiv.org/pdf/2507.12950 — кейсы XAI в радиологии
https://www.lesswrong.com/posts/jGuXSZgv6qfdhMCuJ/refusal-in-llms-is-mediated-by-a-single-direction
https://www.anthropic.com/news/golden-gate-claude
https://monitor.transluce.org/dashboard/chat
https://www.neuronpedia.org/
https://platform.goodfire.ai/
https://transformer-circuits.pub/
Ссылка на ютуб: https://www.youtube.com/watch?v=M9jVLiFXs04
Forwarded from Поступашки - ШАД, Стажировки и Магистратура
Полный цикл отбора на стажировку в Яндекс (Бэкенд 2025)
Многие выпускник наших курсов по бэкенду в качестве старта карьеры выбрали Яндекс, и уже либо работают там и идут к высоким позициям, либо отбираются летом на стажировку. Наш выпускник согласился дать "интервью" о том, как прошел его полный цикл отбора. Мы слегка отредактировали его и добавили полезные ссылки!
Вступительный контест
Сам контест и в том числе его разбор (видео + код) выложили на курсах по алгоритмам и по бэкенду. Там было 6 задач из которых мне самостоятельно удалось придумать 4, остальные две просто катнул с разбора и попросил ГПТ переписать немного код, чтобы антиплагиат и не задетектил сходства с решениями остальных ребят. В принципе там приглашали на следующий этап и с 4мя задачами даже. Тут кстати важно отметить, что иногда вам попросту по какой-то причине долго могут не присылать приглашение на собес, и если наглости вам не занимать, то можете найти контакты HR и написать ей, бывали кейсы когда это срабатывало.
Алгоритмическая секция
В качестве первой задачи дали простую задачу, написал довольно быстро: проверить на палиндромность строку.
Вторая задача звучала так: дана строка требуется найти максимальную длину подстроки, являющуюся палиндромом. Эта задача встречалась в списке поступашек здесь, но я не помнил как она решается, поэтому пришлось думать на месте. Вначале предложил алгоритм за n^3 (просто полный перебор), чтобы потянуть время и подумать над более эффективным, а не просто молчать. Это сработало, интервьювер даже дал подсказку, намекая на динамическое программирование и я додумал алгоритм за n^2. После того как его реализовали, он предложил, в качестве доп вопроса подумать про то как можно прикрутить хеши к проверке на палиндромность и уже затем вывел на решение за n logn, думаю это просто была его инициатива, т к оставалось свободное время.
Техническое собеседование
На тех собес позвали почти сразу. В качестве первой задания дали, алго задачку на стэк. Задача заключалась в том, чтобы проверить на правильную скобочную последовательность строку, которая состояла из трех видов скобок. Далее интервьюер потребовал реализовать класс стэк на Cи. С этой задачей мне повезло, потому что она встречалась у меня на вузовском курсе. Далее дали задачу на хеш таблицы (требовалось отсортировать элементы по количеству вхождений их копий в массив), а потом поговорили про устройство unordered_map и vector.
Собеседование с командой
Через две недели после технического интервью мне пишет HR и говорит, что она согласовала финальные собеседования с двумя командами.
Собеседование с первой командой прошло в устной форме. Я не написал ни единой строчки кода. По большей части мы разговаривали про вуз, какие там курсы проходили, их тематики, про мой опыт, который, кстати, ограничивался лишь вузовскими курсами и пет проектами курса поступашек. И, соответственно, интервьюер потребовал рассказать про пару пет проектов курса (их я кстати просто скопировал, предварительно разобравшись).
Во второй команде собеседование более формально прошло, большую часть интервью мы писали код. А именно он потребовал сразу сходу реализовать lru cachе из питона аналог в c++. И оставшиеся минут 10 собеседования, лид рассказал про спектр задач, но уточнил что мест нет.
Приглашения пришли через неделю в обе команды, и я сразу решил выбрать первую команду, из-за наличия штатных мест, хотя вторая команда была поинтереснее.
@postypashki_old
Многие выпускник наших курсов по бэкенду в качестве старта карьеры выбрали Яндекс, и уже либо работают там и идут к высоким позициям, либо отбираются летом на стажировку. Наш выпускник согласился дать "интервью" о том, как прошел его полный цикл отбора. Мы слегка отредактировали его и добавили полезные ссылки!
Вступительный контест
Сам контест и в том числе его разбор (видео + код) выложили на курсах по алгоритмам и по бэкенду. Там было 6 задач из которых мне самостоятельно удалось придумать 4, остальные две просто катнул с разбора и попросил ГПТ переписать немного код, чтобы антиплагиат и не задетектил сходства с решениями остальных ребят. В принципе там приглашали на следующий этап и с 4мя задачами даже. Тут кстати важно отметить, что иногда вам попросту по какой-то причине долго могут не присылать приглашение на собес, и если наглости вам не занимать, то можете найти контакты HR и написать ей, бывали кейсы когда это срабатывало.
Алгоритмическая секция
В качестве первой задачи дали простую задачу, написал довольно быстро: проверить на палиндромность строку.
Вторая задача звучала так: дана строка требуется найти максимальную длину подстроки, являющуюся палиндромом. Эта задача встречалась в списке поступашек здесь, но я не помнил как она решается, поэтому пришлось думать на месте. Вначале предложил алгоритм за n^3 (просто полный перебор), чтобы потянуть время и подумать над более эффективным, а не просто молчать. Это сработало, интервьювер даже дал подсказку, намекая на динамическое программирование и я додумал алгоритм за n^2. После того как его реализовали, он предложил, в качестве доп вопроса подумать про то как можно прикрутить хеши к проверке на палиндромность и уже затем вывел на решение за n logn, думаю это просто была его инициатива, т к оставалось свободное время.
Техническое собеседование
На тех собес позвали почти сразу. В качестве первой задания дали, алго задачку на стэк. Задача заключалась в том, чтобы проверить на правильную скобочную последовательность строку, которая состояла из трех видов скобок. Далее интервьюер потребовал реализовать класс стэк на Cи. С этой задачей мне повезло, потому что она встречалась у меня на вузовском курсе. Далее дали задачу на хеш таблицы (требовалось отсортировать элементы по количеству вхождений их копий в массив), а потом поговорили про устройство unordered_map и vector.
Собеседование с командой
Через две недели после технического интервью мне пишет HR и говорит, что она согласовала финальные собеседования с двумя командами.
Собеседование с первой командой прошло в устной форме. Я не написал ни единой строчки кода. По большей части мы разговаривали про вуз, какие там курсы проходили, их тематики, про мой опыт, который, кстати, ограничивался лишь вузовскими курсами и пет проектами курса поступашек. И, соответственно, интервьюер потребовал рассказать про пару пет проектов курса (их я кстати просто скопировал, предварительно разобравшись).
Во второй команде собеседование более формально прошло, большую часть интервью мы писали код. А именно он потребовал сразу сходу реализовать lru cachе из питона аналог в c++. И оставшиеся минут 10 собеседования, лид рассказал про спектр задач, но уточнил что мест нет.
Приглашения пришли через неделю в обе команды, и я сразу решил выбрать первую команду, из-за наличия штатных мест, хотя вторая команда была поинтереснее.
@postypashki_old