Ну какая конфа без забавных постеров и слайдов?
Нынешняя ICLR тоже без них не обходится. Вот они, слева направо:
1. Большой постер.
2. Постер поменбше.
3. Совсем маленький постер.
4. Продам гараж ICLR Edition.
5. Продам гараж ICLR Edition 2.
#YaICLR26
ML Underhood
Нынешняя ICLR тоже без них не обходится. Вот они, слева направо:
1. Большой постер.
2. Постер поменбше.
3. Совсем маленький постер.
4. Продам гараж ICLR Edition.
5. Продам гараж ICLR Edition 2.
#YaICLR26
ML Underhood
😁16❤15👍3❤🔥1
От забавных постеров к серьёзным разборам
Но тоже постеров. Тех, которые привлекли внимание инженеров Яндекса на ICLR 2026.
FreeKV: Boosting KV Cache Retrieval for Efficient LLM inference
Авторы работают над развитием класса методов KV selection — он помогает ускорить self-attention на длинных контекстах через подгрузку в кернел не всех токенов, а только важных (выбор может быть обучаемым или по эвристике).
В целом, KV selection может быть скомбинирован с offload кэша в RAM / SSD / NetStorage. Но общее больное место всех таких методов — эффективная работа с подгрузками больших объёмов данных и выбор важных токенов.
В статье предлагают делать такие подгрузки спекулятивно (между итерациями декодинга догружаем только изменения, грузим основное асинхронно), так как заметили, что соседние важные токены в декодинге отличаются слабо. Кроме того, в случае сильного изменения предлагается делать перевыбор с помощью набора эвристик. Итоговый подход отлично себя показал на бенчмарках скорости поверх сильного бейзлайна ShadowKV.
Cache-to-Cache: Direct Semantic Communication Between Large Language Models
Авторы предлагают способ обмена KV-кэшами между разными моделями, чтобы LLM-ки могли коммуницировать друг с другом не на уровне конечных токенов, а на уровне более богатых внутренних представлений. Есть две модели: Sharer и Receiver. Первая отдаёт представления, а вторая получает и генерирует ответ. В практически интересном сценарии — Sharer — большая сильная модель, а Receiver — поменьше и послабее.
Обучают небольшую нейросеть, которая отображает KV-кэш из исходной модели в целевую. Кроме того, есть обучаемый gate, смешивающий представления двух моделей. Receiver-модель обучается воспроизводить ответ более мощного Sharer.
В итоге удаётся зачастую не только не уступить Sharer в качестве, но иногда и превзойти. Авторы показывают, что Cache-to-Cache работает лучше, чем просто подача текстовой информации от Sharer.
LLM Pretraining with Continuous Concepts
Стандартный претрейнинг учит модель только одному — предсказывать следующий токен. Все высокоуровневые абстракции модель должна «выкопать» сама из cross-entropy-лосса. CoCoMix предлагает дать LLM прямой сигнал о концептах, которые должны быть активны. Идея такая:
1 этап — извлечение концептов. Авторы берут предобученую LLM (GPT-2) и обученный на её хидденах TopK SAE. Прогоняют корпус через teacher (взятая LLM), на выбранном слое получают разреженные SAE-активации. Дальше — фильтрация по attribution score (градиент CE × активации): оставляют только те концепты, которые реально влияют на предсказание следующего токена.
2 этап — непосредственно обучение. Модель условно режется на
— линейная голова предсказывает распределение SAE-концептов → CE-лосс на метках, которые получили на первом этапе;
— предсказанный вектор сжимается в один continuous concept и интерливится с hidden states:
— общий лосс получается равен — СЕ_tokens + \lambda * CE_concepts
В итоге достигают того же качества по PPL, что и модели, обученные просто на задачу NTP, но за меньшее — на 21,5% — количество токенов. По бенчмаркам (HellaSwag / PIQA / SIQA / ARC-e / WinoGrande / LAMBADA / WikiText) получается стабильно лучше, чем аналогичная модель, но обученная на NTP задачу.
Для извлечения концептов можно использовать модель меньшего размера, чем ту, которую хотим претрейнить, качество при этом не страдает.
В таком сетапе получается, что на каждый токен последовательности добавляется вектор-концепт, что увеличивает длину контекста в два раза. Авторы проверяли свой метод на контексте в 1024 токена, поэтому с проблемой нехватки контекста не столкнулись.
Интересное увидели❣ Роман Горб, Денис Кузнеделев и Дмитрий Масный
#YaICLR26
ML Underhood
Но тоже постеров. Тех, которые привлекли внимание инженеров Яндекса на ICLR 2026.
FreeKV: Boosting KV Cache Retrieval for Efficient LLM inference
Авторы работают над развитием класса методов KV selection — он помогает ускорить self-attention на длинных контекстах через подгрузку в кернел не всех токенов, а только важных (выбор может быть обучаемым или по эвристике).
В целом, KV selection может быть скомбинирован с offload кэша в RAM / SSD / NetStorage. Но общее больное место всех таких методов — эффективная работа с подгрузками больших объёмов данных и выбор важных токенов.
В статье предлагают делать такие подгрузки спекулятивно (между итерациями декодинга догружаем только изменения, грузим основное асинхронно), так как заметили, что соседние важные токены в декодинге отличаются слабо. Кроме того, в случае сильного изменения предлагается делать перевыбор с помощью набора эвристик. Итоговый подход отлично себя показал на бенчмарках скорости поверх сильного бейзлайна ShadowKV.
Cache-to-Cache: Direct Semantic Communication Between Large Language Models
Авторы предлагают способ обмена KV-кэшами между разными моделями, чтобы LLM-ки могли коммуницировать друг с другом не на уровне конечных токенов, а на уровне более богатых внутренних представлений. Есть две модели: Sharer и Receiver. Первая отдаёт представления, а вторая получает и генерирует ответ. В практически интересном сценарии — Sharer — большая сильная модель, а Receiver — поменьше и послабее.
Обучают небольшую нейросеть, которая отображает KV-кэш из исходной модели в целевую. Кроме того, есть обучаемый gate, смешивающий представления двух моделей. Receiver-модель обучается воспроизводить ответ более мощного Sharer.
В итоге удаётся зачастую не только не уступить Sharer в качестве, но иногда и превзойти. Авторы показывают, что Cache-to-Cache работает лучше, чем просто подача текстовой информации от Sharer.
LLM Pretraining with Continuous Concepts
Стандартный претрейнинг учит модель только одному — предсказывать следующий токен. Все высокоуровневые абстракции модель должна «выкопать» сама из cross-entropy-лосса. CoCoMix предлагает дать LLM прямой сигнал о концептах, которые должны быть активны. Идея такая:
1 этап — извлечение концептов. Авторы берут предобученую LLM (GPT-2) и обученный на её хидденах TopK SAE. Прогоняют корпус через teacher (взятая LLM), на выбранном слое получают разреженные SAE-активации. Дальше — фильтрация по attribution score (градиент CE × активации): оставляют только те концепты, которые реально влияют на предсказание следующего токена.
2 этап — непосредственно обучение. Модель условно режется на
h и f. На выходе h параллельно происходит:— линейная голова предсказывает распределение SAE-концептов → CE-лосс на метках, которые получили на первом этапе;
— предсказанный вектор сжимается в один continuous concept и интерливится с hidden states:
[z₁, c₁, z₂, c₂, …], идёт в f;— общий лосс получается равен — СЕ_tokens + \lambda * CE_concepts
В итоге достигают того же качества по PPL, что и модели, обученные просто на задачу NTP, но за меньшее — на 21,5% — количество токенов. По бенчмаркам (HellaSwag / PIQA / SIQA / ARC-e / WinoGrande / LAMBADA / WikiText) получается стабильно лучше, чем аналогичная модель, но обученная на NTP задачу.
Для извлечения концептов можно использовать модель меньшего размера, чем ту, которую хотим претрейнить, качество при этом не страдает.
В таком сетапе получается, что на каждый токен последовательности добавляется вектор-концепт, что увеличивает длину контекста в два раза. Авторы проверяли свой метод на контексте в 1024 токена, поэтому с проблемой нехватки контекста не столкнулись.
Интересное увидели
#YaICLR26
ML Underhood
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥9🥰6
Разное прикольное с ICLR
Продолжаем делиться фотографиями с конференции. В этот раз предлагаем:
— оценить технику цзяньчжи;
— поразглядывать постер, которому место в комиксе «Лечебница Аркхем»;
— собаку;
— запрыгнуть на хайптрейн в ожидании cool stuff, который running late;
— посмотреть на статью, которой нужен не большой постер, а только внимательный слушатель;
— поискать автограф Яндекса на стене Microsoft;
— полюбоваться на постер Yandex Research.
#YaICLR26
ML Underhood
Продолжаем делиться фотографиями с конференции. В этот раз предлагаем:
— оценить технику цзяньчжи;
— поразглядывать постер, которому место в комиксе «Лечебница Аркхем»;
— собаку;
— запрыгнуть на хайптрейн в ожидании cool stuff, который running late;
— посмотреть на статью, которой нужен не большой постер, а только внимательный слушатель;
— поискать автограф Яндекса на стене Microsoft;
— полюбоваться на постер Yandex Research.
#YaICLR26
ML Underhood
🔥10❤8❤🔥3
Постеры — хорошо, а что там на оралах?
А там — не менее интересно. Несём несколько обзоров, сделанных по горячим следам выступлений.
Is it Thinking or Cheating? Detecting Implicit Reward Hacking by Measuring Reasoning Effort
Работа о скрытом взломе награды у ризонинг-моделей. Идея: модель может получать высокий reward не потому, что честно решает задачу, а потому что эксплуатирует «лазейку».
Авторы рассматривают два типа loophole:
1) лазейка в контексте — утёк нужный сигнал или ответ;
2) лазейка в проверке награды — сам verifier / reward можно обмануть.
Признак такого поведения — когда модель проходит задачу только при наличии лазейки, а без неё разваливается.
Для детекции предлагают TRACE: обрезают цепочку рассуждений на разных процентах, форсят ранний ответ и смотрят, как рано модель может получать высокий reward. Если reward высокий уже при раннем обрыве, значит ответ, скорее всего, найден через shortcut, а остальная цепочка рассуждений декоративная.
По результатам TRACE — лучше обычного мониторинга по цепочке рассуждений и лучше ловит такие случаи в задачах по математике и коду.
Gaia2: Benchmarking LLM Agents on Dynamic and Asynchronous Environments
Meta* обновила популярный бенч Gaia. Новая версия Gaia2 оценивает агентов в динамической и асинхронной среде, а не в статичных задачах вида «запрос -> ответ». Теперь задача — это полноценный сценарий с течением времени, событиями и изменяемым состоянием (приложения, уведомления, ответы пользователей), где агент должен планировать, ждать и адаптироваться.
Оценка тоже другая: вместо финального ответа смотрят на последовательность действий агента. Учитываются только действия, которые меняют состояние, и они сравниваются с эталонным графом действий (oracle DAG). Проверяется правильность шагов, порядок, тайминг и полнота выполнения. Это позволяет измерять не текст, а реальное поведение агента в длинных сценариях с инструментами и событиями.
How Learning Rate Decay Wastes Your Best Data in Curriculum-Based LLM Pretraining
Авторы рассуждают о проблеме curriculum learning для LLM: если модель видит более качественные данные ближе к концу обучения, стандартный learning rate decay может почти «обнулить» пользу от этих данных. То есть лучшие данные приходят поздно, но именно в этот момент learning rate уже слишком мал. В итоге модель получает более чистый сигнал, но почти не способна существенно обновиться.
Как решение предлагают Curriculum Model Averaging (CMA): сохранить более высокий learning rate на поздней стадии, а шум и нестабильность компенсировать усреднением последних чекпоинтов. Такой подход позволяет продолжать извлекать пользу из качественных данных и одновременно снижать variance финальной модели. Как результат, одна только curriculum-стратегия не помогает, один только model averaging тоже не помогает. Но их комбинация даёт прирост.
Послушали и записали❣ Даниил Беликов и Ярослав Ведерников
#YaICLR26
ML Underhood
__
Компания Meta признана экстремистской; её деятельность в России запрещена.
А там — не менее интересно. Несём несколько обзоров, сделанных по горячим следам выступлений.
Is it Thinking or Cheating? Detecting Implicit Reward Hacking by Measuring Reasoning Effort
Работа о скрытом взломе награды у ризонинг-моделей. Идея: модель может получать высокий reward не потому, что честно решает задачу, а потому что эксплуатирует «лазейку».
Авторы рассматривают два типа loophole:
1) лазейка в контексте — утёк нужный сигнал или ответ;
2) лазейка в проверке награды — сам verifier / reward можно обмануть.
Признак такого поведения — когда модель проходит задачу только при наличии лазейки, а без неё разваливается.
Для детекции предлагают TRACE: обрезают цепочку рассуждений на разных процентах, форсят ранний ответ и смотрят, как рано модель может получать высокий reward. Если reward высокий уже при раннем обрыве, значит ответ, скорее всего, найден через shortcut, а остальная цепочка рассуждений декоративная.
По результатам TRACE — лучше обычного мониторинга по цепочке рассуждений и лучше ловит такие случаи в задачах по математике и коду.
Gaia2: Benchmarking LLM Agents on Dynamic and Asynchronous Environments
Meta* обновила популярный бенч Gaia. Новая версия Gaia2 оценивает агентов в динамической и асинхронной среде, а не в статичных задачах вида «запрос -> ответ». Теперь задача — это полноценный сценарий с течением времени, событиями и изменяемым состоянием (приложения, уведомления, ответы пользователей), где агент должен планировать, ждать и адаптироваться.
Оценка тоже другая: вместо финального ответа смотрят на последовательность действий агента. Учитываются только действия, которые меняют состояние, и они сравниваются с эталонным графом действий (oracle DAG). Проверяется правильность шагов, порядок, тайминг и полнота выполнения. Это позволяет измерять не текст, а реальное поведение агента в длинных сценариях с инструментами и событиями.
How Learning Rate Decay Wastes Your Best Data in Curriculum-Based LLM Pretraining
Авторы рассуждают о проблеме curriculum learning для LLM: если модель видит более качественные данные ближе к концу обучения, стандартный learning rate decay может почти «обнулить» пользу от этих данных. То есть лучшие данные приходят поздно, но именно в этот момент learning rate уже слишком мал. В итоге модель получает более чистый сигнал, но почти не способна существенно обновиться.
Как решение предлагают Curriculum Model Averaging (CMA): сохранить более высокий learning rate на поздней стадии, а шум и нестабильность компенсировать усреднением последних чекпоинтов. Такой подход позволяет продолжать извлекать пользу из качественных данных и одновременно снижать variance финальной модели. Как результат, одна только curriculum-стратегия не помогает, один только model averaging тоже не помогает. Но их комбинация даёт прирост.
Послушали и записали
#YaICLR26
ML Underhood
__
Компания Meta признана экстремистской; её деятельность в России запрещена.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥9❤🔥6👍1
Свежая партия интересностей с ICLR
Конференция закончилась, аты ещё нет обзоры докладов ещё нет.
AnyBCQ: Hardware Efficient Flexible Binary-Coded Quantization for Multi-Precision LLMs
Для максимальной эффективности инференса может быть полезно выбирать точность прогоняемой модели на лету. Простые фрагменты промпта или генерации можно прогонять через более квантизованную модель, а при переходе к сложным — вызывать модель в точности повыше. Однако хранить много версий модели в разных битностях накладно по памяти, а хотелось бы занимать места не больше, чем самая высокая битность.
В работе AnyPrecisionLLM предложили способ получать модели разной точности. Но используемое представление весов требовало довольно дорогостоящих операций транспонирования и считывания значений из таблицы.
В AnyBCQ, в свою очередь, предлагают использовать бинарную кодировку весов модели, когда каждый параметр квантизуется поразрядно в -1 или 1. На инференсе достаточно собрать требуемое число разрядов и сложить. Благодаря этому операция деквантизации становится довольно дешёвой. В итоге получают качество не хуже хорошей квантизации в фиксированную битность и при этом имеют достаточно быстрый инференс.
Compute-Optimal Quantization-Aware Training
Команда из Apple провела исследование того, как правильно распределять бюджет между обучением в полной точности и quantization-aware training, чтобы при фиксированном бюджете обучения выжать наилучшее качество.
Обыкновенно доля, выделяемая на QAT, зафиксирована вручную (например, 10%), но авторы замечают, что целесообразно её подстраивать под битность и продолжительность обучения:
• больше модель — меньше QAT;
• меньше битность — больше QAT;
• дольше учим — больше QAT.
Учат модели в разных битностях: от 1 до 6, вплоть до 2,3 миллиарда параметров и 1,4 триллиона токенов. Оптимальная стратегия позволяет сэкономить вычисления в два раза при 1-битном обучении.
MrRoPE: Mixed-radix Rotary Position Embedding
Новый — по утверждениям авторов — SotA-метод интерполяции ротари без дообучения для улучшения качества длинного контекста.
Формально, авторы интерпретируют вектора θ, соответствующие позициям m, как числа, заданные в rotix-смешанной системе отсчёта, и вводят кумулятивные коэффициенты для неё. Фактически заменяют линейную функцию изменения скейл-фактора YaRN на экспоненциальную со специфичными коэффициентами и немного меняют правила подбора диапазона частот для Qwen2.5 (для Llama3.1 оставляют как в YaRN).
Авторы решили замеряться только на длинных бенчмарках, где доминируют над обычным YaRN в большинстве случаев — и на Qwen, и на Llama.
Из минусов: фактически тестировали базовый YaRN против своего метода, в котором перебирали достаточное количество гиперпараметров. Это делает сравнение не до конца честным — особенно с учётом того, что для обеих моделей были разные оптимальные параметры.
Интересное увидели❣ Денис Кузнеделев и Борис Груздьев
#YaICLR26
ML Underhood
Конференция закончилась, а
AnyBCQ: Hardware Efficient Flexible Binary-Coded Quantization for Multi-Precision LLMs
Для максимальной эффективности инференса может быть полезно выбирать точность прогоняемой модели на лету. Простые фрагменты промпта или генерации можно прогонять через более квантизованную модель, а при переходе к сложным — вызывать модель в точности повыше. Однако хранить много версий модели в разных битностях накладно по памяти, а хотелось бы занимать места не больше, чем самая высокая битность.
В работе AnyPrecisionLLM предложили способ получать модели разной точности. Но используемое представление весов требовало довольно дорогостоящих операций транспонирования и считывания значений из таблицы.
В AnyBCQ, в свою очередь, предлагают использовать бинарную кодировку весов модели, когда каждый параметр квантизуется поразрядно в -1 или 1. На инференсе достаточно собрать требуемое число разрядов и сложить. Благодаря этому операция деквантизации становится довольно дешёвой. В итоге получают качество не хуже хорошей квантизации в фиксированную битность и при этом имеют достаточно быстрый инференс.
Compute-Optimal Quantization-Aware Training
Команда из Apple провела исследование того, как правильно распределять бюджет между обучением в полной точности и quantization-aware training, чтобы при фиксированном бюджете обучения выжать наилучшее качество.
Обыкновенно доля, выделяемая на QAT, зафиксирована вручную (например, 10%), но авторы замечают, что целесообразно её подстраивать под битность и продолжительность обучения:
• больше модель — меньше QAT;
• меньше битность — больше QAT;
• дольше учим — больше QAT.
Учат модели в разных битностях: от 1 до 6, вплоть до 2,3 миллиарда параметров и 1,4 триллиона токенов. Оптимальная стратегия позволяет сэкономить вычисления в два раза при 1-битном обучении.
MrRoPE: Mixed-radix Rotary Position Embedding
Новый — по утверждениям авторов — SotA-метод интерполяции ротари без дообучения для улучшения качества длинного контекста.
Формально, авторы интерпретируют вектора θ, соответствующие позициям m, как числа, заданные в rotix-смешанной системе отсчёта, и вводят кумулятивные коэффициенты для неё. Фактически заменяют линейную функцию изменения скейл-фактора YaRN на экспоненциальную со специфичными коэффициентами и немного меняют правила подбора диапазона частот для Qwen2.5 (для Llama3.1 оставляют как в YaRN).
Авторы решили замеряться только на длинных бенчмарках, где доминируют над обычным YaRN в большинстве случаев — и на Qwen, и на Llama.
Из минусов: фактически тестировали базовый YaRN против своего метода, в котором перебирали достаточное количество гиперпараметров. Это делает сравнение не до конца честным — особенно с учётом того, что для обеих моделей были разные оптимальные параметры.
Интересное увидели
#YaICLR26
ML Underhood
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥6👍1
ICLR 2026: подборка трендов от CTO Яндекс Поиска
Екатерина Серажим рассказала об агентских системах и связанных с ними подходах к обучению и оптимизации моделей.
#YaICLR26
ML Underhood
Екатерина Серажим рассказала об агентских системах и связанных с ними подходах к обучению и оптимизации моделей.
Отношение к агентским системам стало более «взрослым»: не как к набору эвристик вокруг модели, а как к полноценной инженерной системе, где каждый компонент заслуживает внимания и постепенно становится отдельным объектом оптимизации.
1. Написание промптов превращается в ML-задачу
Понравилась линия работ вроде GEPA и ACE. Главная мысль: промпт — это уже не «текст, который хорошо написал человек», а оптимизируемый компонент системы.
В GEPA промпт улучшают эволюционным алгоритмом, но мутации придумывает не случайность, а LLM-рефлектор: он смотрит на траектории текущего кандидата (рассуждения, вызовы инструментов, ответы), формулирует на естественном языке, что пошло не так, и на основе этой критики предлагает правку c красивым названием — natural language reflection. Кандидаты держатся на Pareto-фронте по разным задачам, чтобы отбор не схлопывал разнообразие в один «усреднённо хороший» промпт.
На фото — «было-стало»: стартовый промпт и тот, до которого дошла система.
ACE расширяет эту идею: оптимизировать можно не только промпт, но и рабочий контекст агента — инструкции, память, накопленные стратегии. Мне понравилась формулировка context as an evolving playbook: контекст не переписывается целиком (что ведёт к потере деталей), а обновляется инкрементально: новые наблюдения добавляются, старые — уточняются или удаляются.
2. Оптимальный выбор примеров для обучения
Хорошая мысль — обучать модель на примерах из «зоны её ближайшего развития». Слишком простые примеры не развивают — модель и так хорошо умеет их решать. Слишком сложные — тоже плохо: модель не может извлечь из них стабильный сигнал. Самые ценные — те, где модель уже почти может, но ещё ошибается.
Ниже — несколько докладов примерно на эту тему.
В работе Prompt Curriculum Learning авторы показывают, что задачи промежуточной сложности — где модель имеет около 50% вероятности успеха — оказываются наиболее эффективными. Предлагают PCL — алгоритм, в котором обученная value-модель за один forward pass предсказывает вероятность, что текущая политика справится с промптом, и отбирает в батч примеры с вероятностью ~0,5. Value-модель обучается параллельно с политикой, поэтому понятие «средней сложности» сдвигается вместе с ростом модели.
Похожая, но с другим механизмом — работа Actor-Curator. Идея в том, чтобы обучить модель-«куратора», которая отбирает не просто сложные или лёгкие примеры, а те, что должны дать максимальный прирост качества текущей модели.
Ещё одна интересная работа — Cram Less to Fit More — о том, что у модели есть ограниченная «память» на факты. Если пытаться запихнуть в обучение слишком много фактической информации, она начинает запоминать хуже. Авторы показывают, что иногда лучше не добавлять всё подряд, а аккуратно отбирать данные — тогда модель удерживает больше полезного.
В целом это рифмуется с DATA-FM invited talk Baharan Mirzasoleiman — о том, что для SFT/RL нужно не просто «больше данных», а данные правильной сложности и разнообразия.
3. Для tool-calling-агентов можно оценивать не только финальный ответ
Если агент ответил правильно, это ещё не значит, что он хорошо пользовался инструментами. Может быть, поиск вообще был не нужен. Или поиск был нужен, но запрос был плохой. Идея в том, чтобы оценивать тулколы независимо: был ли вызов инструмента нужен, был ли он полезен, улучшил ли вероятность правильного ответа. В Tool-call Reward Model предлагают делать реворд на уровне каждого вызова инструмента.
4. О выборе рецепта обучения
Percy Liang красочно рассказал о Marin — опенсорсном проекте, где с нуля обучили 32B-модель. В докладе много интересного о факапах, практические рецепты обучения, scaling laws, и то, как их вывели. Автор постулирует открытость — не только весов, но и всего процесса обучения модели. Команда Marin открыла даже свою очередь тикетов.
#YaICLR26
ML Underhood
❤27🔥17❤🔥8👍7💩2