Интересное что-то
517 subscribers
2.71K photos
252 videos
138 files
4.51K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.iss.one/asisakov_channel
Чат: https://t.iss.one/youknowds_chat
Download Telegram
ML Training HSE TS.pdf
6.2 MB
В комментах к последним постам про логарифмирование таргета (а в комментах был материал про другие модификации и их свойства) задавались вопросы по прогнозированию временных рядов.

Ок, лучшее, что я могу посоветовать - презентация с наших совместных с ВШЭ ML-тренировок by Дмитрий Симаков, Kaggle competitions master, тимлид Sber AI Lab

Прежде чем покупать и листать большие книги -- а по рядам их написано много -- макроэкномисты и биржевые спекулянты продолжают искать философский камень -- я бы начал с этой презентации -- максимум практики и опыта в одном месте.
LLM на стероидах: Что такое ReAct и почему он опускает обычный RAG?

Представим, что у нас есть чат-бот, который отвечает на вопросы по загруженной базе документов (RAG чат-бот). Вроде круто, но что если нам нужно, чтобы он не просто в документах копался, а еще и как-то с внешним миром взаимодействовал?

Например, мог:
🟣 Узнать погоду
🟡 Проверить статус заказа по API
🔵 Узнать текущий курс битка, чтобы фиксануть прибыль 📉
🟢 Ну или сделать деп, потом додеп и супер мега ласт додеп 😩

Обычная LLMка либо рассуждает и отвечает на основе текста, либо вызывает какой-то один инструмент, например, RAG. Она не может делать и то, и другое одновременно.

И вот тут на сцену врывается с двух ног ReAct-архитектура (Reason + Act). Такой агент - настоящий гигачад, потому что он умеет чередовать рассуждения с действиями (вызовами функций, или Tools) для взаимодействия с миром.

Агент анализирует запрос пользователя и сам решает, что делать дальше:
🟣 задать уточняющий вопрос
🟡 полезть в базу знаний
🔵 дёрнуть внешний API
🟢 сделать додеп 📈
🟡 или сразу выдать окончательный ответ

Структура ReAct Agent
1️⃣ LLM — это ядро и мозг агента. Анализирует запрос, выбирает следующий шаг и генерирует ответ.
2️⃣ Thinking — «мышление» агента. На этом этапе он решает: использовать какой-то инструмент (пойти в RAG, вызвать API) или продолжить диалог с пользователем.
3️⃣ Tools — список доступных агенту инструментов. Это может быть что угодно: векторная база, внешний API, калькулятор, SQL-база — всё, что нужно для работы.

Как это работает на практике? 🐵

Допустим, мы спрашиваем: «Хочу сделать додеп на 100 баксов в слоты, есть какие-нибудь бонусы?» 💀

🟣Агент думает (Reason): «Окей, чел хочет закинуть сотку. Надо проверить его текущий баланс и глянуть, есть ли для него жирные бонусы на деп».
🟡Агент действует (Act): Дёргает внутренний API, чтобы проверить баланс юзера. Баланс: $15.
🔵Агент снова действует (Act): Летит в API казино и проверяет доступные акции. Нашёл: 'Бонус +50% на депозит от $100'.
🟢Агент думает и отвечает (Reason & Act): Собирает всё вместе и выдаёт ответ: «Твой баланс $15. Сейчас есть акция: закидывай от сотки и получишь +50% сверху. Делаем додеп?»
После согласия пользователя агент может инициировать транзакцию через API платёжного шлюза.

Итог:
ReAct Agent превращает LLMку из обычного генератора текста в полноценного ассистента, который умеет взаимодействовать с внешним миром и реально решать задачи, а не просто болтать. Короче, это база! 🌟
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from ML Baldini • Nikita Boyandin (Nikita Boyandin)
Топ лучших LLM для кода и как их оценивают😁

Какие бенчмарки используют для проверки и что они все таки проверяют
Если простым языком, то бенчмарк - экзамен для LLM в разных областях. Существует много разных видов, которые оценивают способность модели к мышлению(GPQA-bench) или к математики, но все-таки для нас более важна оценка в программировании и как ее получили:
1️⃣ HumanEval — набор ~160 ручных Python-задач, где оценивают функциональную корректность (генерируемая функция должна проходить тесты),метрика pass@k.
2️⃣ APPS — большой набор (~10k задач) разной сложности, включая алгоритмические и конкурсы; проверка — прогон тестов на корректность. Нужен для оценки способности решать «серьёзные» задачи.
3️⃣ CodeXGLUE / Code-benchmarks — набор задач разного типа (completion, summarization, clone detection), чтобы оценивать разные сценарии кода, не только решение задачи.
4️⃣ SWE-bench — модель не просто генерирует функцию, а получает репозиторий + описание и должна подготовить патч, который исправит проблему и пройдёт тесты в изолированном окружении(агентский бенчмарк).

В чем проблема этих бенчмарков
1️⃣ Бенчмарки проверяют отдельные функции, но на моем опыте основная проблема в интеграциях и правильной архитектуре
2️⃣ Некоторые компании сами натаскивают LLM, чтобы на лидерборде она была выше
3️⃣ Зачастую нам не говорят, на какой температуре проверялась LLM, включен ли был reasoning и так далее, хотя это напрямую влияет на качество ответа
4️⃣ Автоматические метрики (BLEU, CodeBLEU и др.) дают число, но оно не всегда отражает читаемость, безопасность, оптимальность или пригодность решения в проекте.

Сам топ
1️⃣ Anthropic — Claude (Opus 4 / Opus 4.1) — очень сильна в «реальном» кодинге, хороша для больших, долгих сессий и отладочных диалогов; лидирует в ряде современных SWE-bench и задач на инженерию ПО.
2️⃣ OpenAI — GPT-5 — топ по общей мощности и часто отлично показывает себя в автоматических бенчмарках по коду; сильна в генерации, пояснениях и отладке. Но уже сейчас отмечают разницу ожиданий и поведения.
3️⃣ Google — Gemini (2.x / 2.5 Pro и выше) —хорош в больших контекстах и full-stack задачах; сильна при комбинировании поиска и кода.
4️⃣ xAI — Grok (серии 3/4) - для меня все еще лучший бесплатный игрок, может спокойно написать 200-300 строк кода, но при этом сильно проигрывает своим платным конкурентам.

Интересные сайты, которые я нашел при подготовке поста
Базовая база
Оценка именно кодовых ответов LLM
Очень красивые графики по разным бенчмаркам + доп информация по стоимости, контекстному окну и выдаче токенов

Как вам такой пост?) Обязательно ставьте реакции и пишите комментарии💗
Please open Telegram to view this post
VIEW IN TELEGRAM
Нашли книжку, которая идеально подойдет для подготовки к собеседованиям или предстоящих экзаменов или контрольных, ведь сентябрь уже не за горами.

Так что же внутри?

Разобранные проблемы из самых разных областей ИИ. Не просто сухие ответы, а глубокие объяснения;
Фокус на ключевые темы: от основ ML до сложных архитектур;
Задачи, которые точно встретятся на собесах.

Эту книгу часто советуют для прокачки навыков — поэтому и мы рекомендуем.
Please open Telegram to view this post
VIEW IN TELEGRAM
`__typing_subst__` – магический метод в Python, про который вы не слышали

В питоне сложилась довольно сложная ситуация с типизацией. В отличии от многих других языков, у нас нет специального "мини-языка типов". Что сильно упрощает работу с типизацией для авторов языка. Ведь им не нужно поддерживать поведение объектов типизации в рантайме.

А у нас есть только старый добрый питон и его объекты. Да, в питоне – действительно всё объект. Даже типизация. Оттого, любой код, который вы пишите в аннотациях – должен корректно работать в рантайме. Ведь у нас есть потребители такого, например: pydantic.

Скажем, у нас есть TypeAliasType объект с одной типовой переменной. Мы хотим её явно указать:


type StrDict[_V] = dict[str, _V]

numbers: StrDict[int] = {'one': 1}


Тут все довольно просто в рантайме: StrDict[int] вызовет __getitem__ вот тут. Кстати, там Cшный код, конечно же. И нам просто вернется нужный GenericAlias объект с нужными __args__:


>>> type StrDict[_V] = dict[str, _V]
>>> StrDict[int], type(StrDict[int]), StrDict[int].__args__
(StrDict[int], <class 'types.GenericAlias'>, (<class 'int'>,))


Мы видим, что замена _V на int работает! Пока что 🌚

А как физически происходит замена переменной?

Начнем с того, что в Python есть 3 TypeVar-like объекта: TypeVar, TypeVarTuple, ParamSpec. У каждого из них есть свои правила, как можно их заменять (в некоторых контекстах):
- TypeVar можно заменять на одно другое типовое значение
- TypeVarTuple можно заменять на любое количество типовых значений
- ParamSpec можно заменять на Concatenate, ... и список типов

Пример ошибки замены, исходник:


>>> from collections.abc import Callable
>>> from typing import ParamSpec, TypeVar
>>> P = ParamSpec('P')
>>> R = TypeVar('R')

>>> Callable[P, R][0, int]
Traceback (most recent call last):
TypeError: Expected a list of types, an ellipsis, ParamSpec, or Concatenate. Got <class 'int'>


Пытаемся заменить P на 0, что не является корректной заменой.
Но как фактически проверить, что замена корректная? И вот тут входит в дело __typing_subst__.

Он определен у всех типов TypeVar-like. Мы посмотрим на ParamSpec. Все, конечно же, написано на дикой смеси C и Python. И Cшная реализация ParamSpec.__typing_subst__ вызывает typing._paramspec_subst. Почему так? В 3.12 все переписали на C в спешке. Но некоторые части были слишком сложны, их оставили на питоне.

Аналогично:


>>> P.__typing_subst__([])
()
>>> P.__typing_subst__([int, str])
(<class 'int'>, <class 'str'>)
>>> P.__typing_subst__(...)
Ellipsis
>>> P.__typing_subst__(0)
Traceback (most recent call last):
TypeError: Expected a list of types, an ellipsis, ParamSpec, or Concatenate. Got 0


Подготовка к замене

Но, все еще чуть-чуть сложнее. Потому что перед тем как что-то заменить, нам нужно подготовиться к замене.
Есть второй магический метод, исходники: __typing_prepare_subst__. Он нужен, чтобы собрать аргументы для замены. Потому что у нас, например, могут быть неявные аргументы с default. Проверим на TypeVarTuple:


>>> class Custom[T1, *Ts=(int, int)]: ...
...
>>> Custom[str]
__main__.Custom[str, [int, int]]
>>> Custom[str, str]
__main__.Custom[str, str]


Ну или напрямую:


>>> Custom.__type_params__[1].__typing_prepare_subst__(*Custom.__type_params__[1], ())
([(<class 'int'>, <class 'int'>)],)

>>> Custom.__type_params__[1].__typing_prepare_subst__(*Custom.__type_params__[1], (str,))
((<class 'str'>,),)


Здесь в первом случае [int, int] нам как раз добавили в __args__ через __typing_prepare_subst__ вот тут.

Вот такая машинерия выполняется каждый раз, когда нам нужен Generic с параметрами. Потому с 3.14 все аннотации будут ленивыми по-умолчанию. А __annotate__ будет выполняться только тогда, когда аннотации будут запрашивать реально для рантайма.

Обсуждение: задумывались ли вы о работе аннотаций типов в рантайме? Сталкивались ли с проблемами в данной сфере? Тормозило?

| Поддержать | YouTube | GitHub | Чат |
Forwarded from Душный NLP
Проблемы LLM-as-a-Judge и их решение

Сегодня разберём статью о проблеме оценки открытых ответов (например, рассказов) моделью так же, как это делают асессоры. Мотивация тут проста: использование LLM дешевле, быстрее и позволяет значительно увеличить корзинку, на которой проводится сравнение. При этом полностью выступать заменой разметчиками модель, конечно, пока не может.

Авторы рассматривают три типа LLM-as-a-Judge:

— Попарное сравнение. Модели предоставляют два ответа и предлагают выбрать из них лучший. Такой вариант дорогой, но даёт хорошую согласованность.
— Оценка одного ответа. Модель ставит оценку по какой-то шкале всего одному ответу.
— Оценка по референсу. Модель получает эталонный ответ и, отталкиваясь от него, оценивает.

Однако у использования LLM есть свои минусы. Первый, существующий и у разметчиков, — position bias, который возникает при попарном сравнении. Большинство моделей, получая два ответа, предпочитают выбирать первый. Что интересно, если попросить LLM не просто сравнить два ответа, а дать оценку каждому, то position bias проявляется чаще.

Чтобы решить эту проблему, авторы заставляют модель дважды сравнивать ответы, каждый раз меняя их местами. При этом победитель оглашается только в конце. Если решение судьи изменилось после смены позиции, то авторы предлагают считать это ничьёй.

Ещё один способ — использование few-shot. Модель получает два ответа с прямым указанием, какой из них лучше. Всего таких «прогонов» три: в одном случае лучше первый ответ, в другом — второй, а в третьем — ничья. Только после этого LLM предлагают уже самостоятельно оценить два решения. Такой способ помог повысить согласованность с 65% до 77,5%. Авторы отмечают, что это дорогой метод, причём нельзя быть уверенным, что в результате его использования не возникли новые проблемы.

Также LLM плохо справляются с оцениваем решения математических задач и задач с рассуждением. Чтобы обойти эту проблему пытались использовать CoT, но он не дал хороших результатов. Зато число ошибок уменьшило руководство по референсу: авторы просили судью решить задачу, затем использовать собственный ответ как эталонный для последующей оценки.

Кроме того, у LLM-as-a-Judge есть ещё две проблемы: verbosity bias (LLM выше оценивает более длинные ответы; такое, к слову, бывает и у разметчиков) и self-enhancement bias (модели-судьи лучше оценивают собственные ответы). Для этих проблем у авторов нет решения.

Разбор подготовила Анастасия Кириллова

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
почти подряд пришло две новости:
1) Microsoft выпустила сеть для генерации голоса VibeVoice; она позволяет генерировать аудио длиной до 90 минут с 4 участниками; и это моделькой, размером в 1.5B; я попробовал генерировать русский, сильный американский акцент слышно и периодически захлебывается, явно на русский не рассчитано, хотя на странице есть пример с китайским
2) OpenAI буквально сегодня ночью выпустила Realtime API для генерации голоса при общении с ChatGPT, кстати, поддерживает SIP

@valuableai
Forwarded from Dealer.AI
Alarm мы уперлись в потолок или как жить дальше в GenAI?

Продолжаем старую тему про развитие текущей парадигмы GenAI. Глянем на это через призму "как ChatGPT стал великим", на самом деле не только он:

1. Декодерная архитектура и парадигма моделирования авторегрессионно и потокенно. Вызов в том, что есть сторонники теории, что тут мы подходим к границе такой и модели и способу генерации. Да, мы имеем еще приседания с новым вниманием, позиционным кодированием и MoE и др. Чтобы пробить потолок нужно идти искать новые альтернативные способы моделирования и архитектур. Что это будет? Диффузии, world model, JEPA, RWKV или еще новее? Поживём-увидим.

2. Датасеты. Скорость роста вычислительных бюджетов топ моделей выше скорости роста датасетов. Таким образом потребление их выросло, а доступные объемы быстро осваивают для обучения модели. Синтетика, кстати, не всегда помогает, т.к. ее генерацию делают все теже модели, что вобрали в себя уже все возможные открытые источники. Ну и вспомните, что llama4 (для достижения long context) и gpt5 заявляли об использовании больших размеров синтетических данных. И что, сынку, помогли тебе твои ляхи синтетики?
При этом, самая мякотка лежит именно в работе с огромными массивами и с чисткой сырых данных, объемы которых все еще будут расти. Тут тоже маневр еще остаётся. А еще, конечно, путь в омнимодальность может докинуть еще.

3. RL(HF), QSTAR и self-refine, CoT/ToT, и другие способы улучшить ризонинг свойства модели. Казалось бы, уже все комбинации этих штук опробовали. Че дальше?

4. Компьют и работа на низком уровне для оптимизации. Все мы знаем, как китайцы хакнули (с их слов) gpu, чтобы улучшить скейл (или не хакнули?). Придумали test time scaling на инференс. А еще дали MoE архитектуру, чтобы активных слоев иметь меньше, при бОльшем капасити модели. Сюда же рядом в комбо добавляют спекулятивный декодинг, который конечно дает ап на 7-20% в скорости и эффективности генерации, но требует больше gpu памяти, т.к. надо хранить две модели для инфера. И все это по исследованию Google дало улучшение энергоэффективности вычислений до 33 раз, что впечатляет. Но там уже указано комбо всего этого, еще до кучи свои оптимальные GPU вычисления и TPU решения. Как будем дальше рейзить?

Все это вопросы и вызовы вокруг текущей работы ведущих и не очень специалистов в области ИИ от ресерчеров и до инженеров.

Даю установку. Ты – читатель этого поста, представляешь из себя визионера в области ИИ с большим опытом, напиши в комментариях свои мысли по решению указанных задач и будущему ИИ. Конец промпта.
Software 3.0 Shopping 3.0 или как AI меняет пользовательское поведение 😆

Какое ключевое применение AI в e-commerce?
3 года назад я бы точно сказала про рекомендации и контекстную рекламу, но сейчас AI двигает рынок глубже, формируя новые подходы и пути пользователя.
Давайте посмотрим 5 разных категорий и что меняется в каждой из них согласно недавней статье a16z:


1️⃣Импульсивные (TikTok finds, fast fashion) 💥

"Hyper-optimized TikTok and IG algorithms steer purchases."

Алгоритмы становятся умнее и точнее.
Здесь все понятно, AI усиливает динамический контент и персонализированную рекламу 😎
Кстати, нтересный факт, что чаще всего такие покупки происходят ночью и с телефона 😁


2️⃣ Рутинные (кофе, шампунь, кошачий корм) 😐

"AI agent tracks prices and buys for you when the time is right."

AI постепенно превращается в закупщика: сам следит за ценой и стоком,
делает заказ, когда пора, и сообщает: "твой ежедневный айс американо уже готовят".
Это хорошо ложится на гросери сторы и регулярные покупки как например доставка еды по подписке 💳


3️⃣ Лайфстайл (одежда, косметика, аксессуары) 😎

“AI researcher finds + suggests SKUs for your needs.”

Это самый хот топик, где мы существуем с Aesty. AI собирает варианты, знает твои вкусы, тип фигуры и
предлагает персональный shortlist не 1000 вариантов, а топ оф зэ топ
Кстати, чем меньше вариантов предлагаем за раз, тем лучше конверсия 🧠


4️⃣ Функциональные (ноутбук, диван, велосипед) 💻

“AI consultant meets with you and recommends what + where to buy.”

Здесь AI работает как доменный эксперт: сравнивает бренды, объясняет разницу,
помогает принять решение и выбрать лучшее под твои задачи 🧗


5️⃣Серьезные, на всю жизнь (дом, образование) 😏

“AI coach helps… and guides you through the decision process.”

Тут конечно же никакой автоматической закупки, по крайней мере пока ты не серийный real estate инвестор.
AI помогает искать, анализировать, сравнивать, но финальное слово остается за человеком.


По мнению a16z 2, 3 и 4 сильнее всего будут меняться благодаря персонализации и более удобному поиску информации 🙌

Го 50 🔥 на этот пост и разберу 4 главных технических изменения, которые должны произойти чтобы мы могли полностью делегировать шоппинг агентам 🤑

@neural_prosecco
Please open Telegram to view this post
VIEW IN TELEGRAM