Интересное что-то
517 subscribers
2.72K photos
253 videos
138 files
4.52K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from Pavel Zloi
Поднять FRIDA API не просто

Несколько дней пытался поднять ai-forever/FRIDA в формате API сервера через существующие популярные решения для инференса с доступом аля OpenAI-подобное API. По понятным причинам вариант запуска через Ollama не рассматриваю из-за слабых метрик квантованных моделей.

Попробовал первым делом vLLM, но к сожалению модели архитектуры T5 авторы данного проекта уже два года добавляют, всё никак не добавят (подробнее тут, тут и тут), так что увы и ах, едем дальше.

Следующим в моём списке была Text Embedding Inference (TEI) от не абы кого, а самих Hugginп Face, однако, там тоже поддержки T5 пока ещё нет (смотри тут), а самый свежий билд (1.8) говорит при запуске Фриды что:
unknown variant `t5`, expected one of `bert`, `xlm-roberta`, `camembert`, `roberta`, `distilbert`, `nomic_bert`, `mistral`, `gte`, `new`, `qwen2`, `qwen3`, `mpnet`, `modernbert`


Далее пошёл смотреть справится ли Triton Inference Server (TIS) основанный на TensorRT-LLM, там судя по спецификациям эмбеддеры T5 поддерживаются, но запускается это всё с таким большим скрипом, что мне кажется странным, что этот бэкенд называют продакшен-реди. Немного пострадав с этим проектом побрёл искать обёртки, нашёл openai_trtllm, там обнаружил готовый docker-compose.yml, обрадовался, думал смогу всё красиво собрать, но контейнеры падают с ошибкой в процессе сборки.

После этой неудачи, словно Ийон Тихий, пошёл в отрыв и стал искать любой API сервер, который заявляет поддержку T5 эмбеддеров и предоставляет формат работы совместимый с OpenAI API клиентами, перерыл десятки проектов, маленьких и больших, и нашёл одни проект соответствующий всем критериям, называется он Infinity, очень легко настраивается, сам скачивает модели, сам всё запускает, может предоставить доступ сразу к нескольким эмбеддинговым моделям.

Вот мой docker-compose.yml конфиг для запуска FRIDA через Infinity сервер:
x-shared-logs: &shared-logs
logging:
driver: "json-file"
options:
max-size: "100k"

services:
infinity:
image: michaelf34/infinity:0.0.76
restart: unless-stopped
command: >
v2
--model-id ai-forever/FRIDA
--engine torch
--port "7997"
environment:
- HF_HOME=/app/.cache
- HF_HUB_ENABLE_HF_TRANSFER=0
- DO_NOT_TRACK=1
- HF_HUB_DISABLE_TELEMETRY=1
- INFINITY_ANONYMOUS_USAGE_STATS=0
volumes:
- ./infinity_data:/app/.cache
ports:
- "7997:7997"
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: [ '1' ]
capabilities: [ gpu ]
<<: *shared-logs

(учитывая наличие принудительно включенной телеметрии предположу, что возможно в будущем проект станет платным)

Данный сервер поддерживает разные движки (engine) для инференса:
- torch - это полноценная реализация обёртки над sentence-transformers, то есть почти все существующие эмбеддеры в данном режиме будут поддерживаться
- optimum - для запуска ONNX моделей
- ctranslate2 - только для BERT'очек

После запуска на него можно делать HTTP запросы вида:
curl -s http://localhost:7997/embeddings \
-H 'Content-Type: application/json' \
-d '{"input":"Привет! Как дела?"}'

В ответе будет извлеченный из текста вектор, бай зе вей, можно передать массив из строк в input, но это думаю вы все и так знаете.
Forwarded from Pavel Zloi
Ну и само собой Фриду можно попробовать через моё публичное API вот такой командой:
curl https://api.rpa.icu/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer https://t.me/evilfreelancer" \
-d '{
"model": "FRIDA",
"input": "Привет! Как дела?"
}'


И через любой openai клиент, например:
from openai import OpenAI

client = OpenAI(
api_key="https://t.me/evilfreelancer",
base_url="https://api.rpa.icu"
)

response = client.embeddings.create(
model="FRIDA",
input="Привет! Как дела?"
)

print(response)
Forwarded from ML Baldini • Nikita Boyandin (Nikita Boyandin)
Агентские фреймворки для работы

Поскольку вам больше нравятся всякие прикольные штуки с ссылками, чтобы их можно было разобрать, то разберемся сегодня с агентскими фреймворками, сразу с кодом. Трейсхолдом для меня стал гитхаб и 15к звездочек на нем, потому что разработок сейчас очень много.

1️⃣ Llamaindex
Основной фокус этого фреймворка всегда делался на работу с данными и индексацию разнородных источников. Не смотря на популярность, в нем нет нагромождения механизмов управления агентами, в отличие от того же Langchain.
Основные фишки:

- Построение деревьев индексов (TreeIndex) и граф-индексов (GraphIndex).
- Автоматическая сегментация и аннотирование документов перед поиском.
- Встраиваемая система кэширования и переиспользуемых запросов


2️⃣ Langchain
Самый известный и тяжелый фреймворк по количеству инстрментов: цепочки, агенты, память и тулы. Но, к сожалению, это медленно губит этот фреймворк, куча непонятных методов, огромная документация и боль для разработки
Фишечки:

- Построение многошаговых workflows: от простых question–answer до сложных бизнес-процессов.
- Встроенные шаблоны “ConversationChain”, “RetrievalQA”, “AgentExecutor”.
- Модули памяти: chat, vector, SQL, даже Redis.


3️⃣ Haystack
Наиболее продакшн ориентированный фреймворк, который предлагает готовые UI, устойчивые пайплайны, поддержку Elasticsearch/Weaviate в одном пакете. Заточенность на поиск данных и систем RAG.
Фишки:

- “Document Store” (Elasticsearch, FAISS, Weaviate, Milvus).
- Конвейеры с логированием, кэшированием и Fallback-механизмами.
- Встроенная фронт-энд панель (Streamlit/Flask) для проверки качества и аналitika запросов.


4️⃣ Semantic-kernel
Разработочка от Microsoft, в которой вы сначала пишите целевую функцию, а затем разбиваете ее на шаги, применяя плагины. Подходит для тех, кто хочет интреграцию с C#/.NET сервисами, правда смущает множественное использование Azure.
Фишечки:

- Planner API: создаёт план из нескольких вызовов LLM, выбирая их автоматически.
- Поддержка Python и C#, одинаковый SDK-стиль для обеих платформ.


5️⃣ Meta GPT
Наше любимое MCP в полном понимании - у каждого агента своя роль и зона ответственности. Многое работает из коробки - получаешь готовые сценарии генераций требований, кода и тестов.
Фишечки:

- Сценарии коллаборативного генерирования: репорты, доски задач, документация.
- Визуализация этапов работы и hand-off между агентами.


6️⃣ Autogen
Еще одна разработка от ребят, которые очень любят обновлять окна. В целом, это мультиагенсткий фреймворк с гибкой маршрутизацией запросов.
Фишечки:

- Синхронные и асинхронные сценарии – агенты могут разговаривать как в реальном времени, так и по расписанию.
- «Function calling» и кастомные утилиты — легко расширяется внешними API.
- Mock-режим: тренируете взаимодействие агентов без реальных LLM-вызовов.


7️⃣ crewAI
Еще один для разработки мультиагентов, но без обилия зависимостей и сложных пайпланов - идеально, если демо через два часа
Фишечки:

- DSL для описания агентов, их навыков и целей.
- Автоматическое логирование каждого шага и возможность «перемотки» диалога.


8️⃣ Mastra
Очень крутой проект, так как помимо запуска и разрабокти агентов, предлает визуальные панели с метриками, трасировкой и алертами.
Фишечки:

- Дашборд с графиками по latency, throughput, ошибкам агентов.
- Встроенный мониторинг SLA и оповещения через email/Slack.


Как вам такой пост?) Какие фреймворки вы еще используете в разработке?) Обязательно ставьте реакции и пишите комментарии💗
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Зависимость от Nikotin'a Chat
На работе заставляют использовать Langchain + langgraph, плюс спёрли фишки у agno

Вне работы люблю llamaindex)
Привет всем!👋

Держите handbook по поиску фродовых транзакции в финтехе.

Достаточно хорошая выжимка.
В ней вас проводят по полной постановке задачи, от возможных сценариев экспертной классификации фрода, погружая в проблематику, далее вводят метрики, активно используемые для решения задачи, затем погружают в моделью часть, вплоть до моделей Deep Learning.

Материал достаточно структурированный, подойдет как и начинающим, кто хочет начать работать в данном направлении, но не понимает что и как там делается, так и тем, кто уже работает в антифроде.

Из плюсов отмечу, что в каждой главе сначала теоретический минимум, за которым следует практический пример.

#ds_лайфхаки
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DeepSchool
Диффузионные модели: пошаговый план изучения

Диффузионные модели, как и трансформеры, внесли весомый вклад в глубокое обучение и определили современное состояние ИИ. Они лежат в основе генерации изображений (Stable Diffusion, DALL·E), синтеза видео (Sora, Runway ML), дизайна молекул и даже управления роботами (Teslabot, 1X). Сегодня во многих областях от DL-инженеров всё чаще требуется глубинное понимание диффузионных моделей. Чтобы помочь детальнее разобраться в их устройстве, мы подготовили пошаговый план изучения, а также основные ресурсы.

План изучения

1. Основы теории вероятности и статистики


Диффузионные модели, как и все генеративные модели, основаны на принципах теории вероятности. Фундамент для их понимания — условные и маргинальные распределения, правила сложения и произведения, свойства нормального распределения, расстояние Кульбака-Лейблера, неравенство Йенсена.

Ресурсы: MML (главы 6.1-6.5); DLFC (глава 2); UDL (Appendix C), см. далее блок «Основные ресурсы».

2. Вариационные автоэнкодеры (VAE)

Диффузионные модели и VAE — вариационные подходы к генеративному моделированию. Оба используют evidence lower bound (ELBO) для получения обучаемой функции потерь. Поскольку VAE проще для понимания, рекомендуем изучить его перед переходом к диффузионным моделям.

Ресурсы: UDL (глава 17); DLFC (глава 19.2); ЯУМО (глава 8.2); Лекция Дмитрия Ветрова.

3. Denoising Diffusion Probabilistic Models (DDPM)

Переходим к изучению самих диффузионных моделей! Начните с основополагающей работы, которая впервые раскрыла потенциал диффузионных моделей, — DDPM.

Ресурсы: UDL (глава 18); DLFC (главы 20.1-20.3); ЯУМО (глава 8.5); Лекция Дмитрия Ветрова; Разбор статьи с кодом от Hugging Face.

4. Контролируемая генерация

Диффузионные модели выучивают полное распределение данных. Для направленной генерации используют classifier-free guidance и classifier guidance (они не меняют веса на этапе генерации, но требуют обучения модели с поддержкой таких режимов) или методы дообучения, как ControlNet и LoRA.

Ресурсы: DLFC (глава 20.4); ЯУМО (глава 8.5); CS492(D) (лекция 7).

5. Ускорение генерации

Основной недостаток DDPM — низкая скорость генерации. Для решения этой проблемы разработаны более эффективные методы: Denoising Diffusion Implicit Models (DDIM), стохастические диффузионные солверы и дистилляция.

Ресурсы: CS492(D) (лекции 5, 6, 14); Лекция Дмитрия Ветрова; Обзорная статья по быстрым диффузионным моделям.

6. Практическое программирование

Ничто не даёт такого понимания концепта в DL, как программирование. Поэтому для закрепления теории рекомендуем выполнить задания из курса CS492(D) и Diffusion Models Course от Hugging Face.

Основные ресурсы

- Mathematics for Machine Learning (MML)
- Understanding Deep Learning (UDL)
- Deep Learning Foundations and Concepts (DLFC)
- Учебник по машинному обучению от Яндекс (ЯУМО)
- Курс CS492(D): Diffusion Models and Their Applications

Автор: Шамиль Мамедов
Forwarded from Sinекура
Недавно вышла работа о безопасности AI с >40 авторов из OpenAI, Anthropic, DeepMind, METR, Redwood Research, Meta, UK AI Security Institute, Apollo Research... Среди авторов — Йошуа Бенджи, Войцех Заремба, знаменитые "AI-безопасники" Нил Нанда, Анка Драган, Дэн Хендрикс, Виктория Краковна, среди "expert endorsers" — Джеффри Хинтон, Сэм Боумэн, Джон Шульман и Илья Суцкевер... На чём же все они смогли сойтись? Написал об этом пост, сюда выкладываю сокращённую версию:

Не выключайте прослушку: о важности CoT для интерпретируемости

Весь смысл статьи "Chain of Thought Monitorability: A New and Fragile Opportunity for AI Safety" сводится к тому, чтобы сказать разработчикам LLM: не отказывайтесь от простого советского человекочитаемого CoT (chain of thought, "листочек для записей" у рассуждающих моделей)! Почему?

Для AI safety очень важна интерпретируемость; я недавно писал об этом большой пост, а Дарио Амодеи — эссе "The Urgency of Interpretability"; интересующимся рекомендую как минимум второе, но буду рад, если прочитаете и первое. Успехи там есть, но не полные, до понимания того, как большая нейронная сеть принимает решения, нам ещё очень далеко.

И вот появляется CoT, который даёт максимально прямой путь: если модель "думает" на человеческом языке, мы можем буквально читать её мысли! И оказывается, что эти мысли пока что действительно правдивы, и мы действительно видим, что модель думает, даже в тех случаях, когда она потом решает нас обмануть!

Мониторинг CoT — уникальная возможность для обеспечения безопасности AI-систем. Например, Meincke et al. (2024) рассказывают о том, что модели уже способны преследовать скрытые цели, не признаваясь в этом, но CoT всегда всё выдаёт (рис. 2), а Baker et al. (2025) написали целую статью про CoT monitoring, и там тоже постоянно встречаются примеры, когда модель просто честно думает, что собирается делать, даже если в итоге финальные действия выглядят безобидно (рис. 3).

Это прекрасная возможность, но довольно хрупкая. Korbak et al. (2025) предупреждают о нескольких факторах, которые могут её разрушить.

Язык может стать непонятным из-за использования RL. При масштабировании обучения с подкреплением модели могут начать использовать всё менее понятные человеку "языки" для своих рассуждений (Korbak et al., 2022).

Оптимизация CoT, и прямая, и непрямая, портит его. Например, бывают process reward models (модели, оценивающие путь к решению в RL, а не только ответ), которые следят за тем, чтобы LLM не совершали "мыслепреступлений"; результатом этого, разумеется, может стать то, что модели просто не будут думать лишнего в открытом виде. К обфускации CoT может привести даже непрямая оптимизация вроде "давайте покажем CoT людям, которые оценивают результат в RLHF, и это повлияет на их оценки" (Baker et al., 2025).

Рассуждения в латентном пространстве не порождают CoT. Модели, способные проводить рассуждения в латентном пространстве без вербализации, могут полностью обойти необходимость в понятных человеку записях в "блокнотике". Это направление сейчас весьма активно развивается, кстати (Hao et al., 2024; Geiping et al., 2025).

Что же делать? Korbak et al. (2025) рекомендуют разработать эффективные метрики для того, насколько возможно следить за CoT (monitorability), а потом публиковать эти метрики и учитывать их. Кстати, в реальности не нужно, чтобы мониторинг срабатывал в 99% случаев, если его можно перезапускать несколько раз так, чтобы ошибки не слишком коррелировали; см., например, (Bhatt et al., 2025).

В философии сознания есть проблема: можем ли мы доверять тому, что кто-то говорит о своих мыслях? А здесь ещё и сами "мысли" являются результатом оптимизации. Модели могут порождать правдоподобные, но вводящие в заблуждение объяснения — и очень важно, чтобы мы никоим образом не пытались это поощрять. Скорее всего, человеческий язык — удобное, но не идеальное промежуточное представление, и для того, чтобы мониторинг CoT оставался возможным, нам нужно приложить нетривиальные усилия. Это окно в мышление LLM может закрыться быстрее, чем нам бы хотелось.
Forwarded from Sinекура
Хочется наслаждаться летом, но вместо этого постоянно дедлайн форсмажором погоняет. Нынешний форсмажор так и вовсе изрядно подрывает веру в человечество; с другой стороны, в итоге пришлось взять в руки шашки и попрограммировать самостоятельно, чем-то это даже и приятно.

В общем, несмотря ни на что (подобно Гомеру и Борхесу), наслаждаться летом всё равно стараюсь! И в этом направлении даже кое-что получается. :) Но писать много новых постов пока вряд ли буду, давайте вместо этого сегодня продолжим начатый в прошлый раз ностальгический обзор моего блога из Synthesis AI, который сейчас переезжает на мой сайт.

Driving Model Performance with Synthetic Data — большая серия, которая во многом потом вошла в книгу "Synthetic Data for Deep Learning" (естественно, в сильно расширенном виде). Здесь посты уже становятся побольше и посвящены разным вещам, так что перечислю их отдельно; серию я иллюстрировал через Мерилин Монро, но, кажется, в последнем посте что-то пошло не так.)

Part I: Augmentations in Computer Vision — про аугментации, Albumentations и всё такое прочее; самый простой, но и самый полезный на практике вид синтетических данных

Part II: Smart Augmentations — про то, как делать более умные аугментации, а именно о том, как автоматически настраивать лучшие возможные композиции аугментации, и о Mixup; состязательных аугментаций тогда ещё, кажется, не придумали, но они бы тоже попали именно сюда

Part III: Domain Adaptation Overview — какие бывают варианты того, как модель, обученную на одном виде данных, приспособить к другому; пути здесь (в 2021 году было) по сути два: refinement данных или adaptation самой модели

Part IV: Gaze Estimation and GANs — про статью от Apple, которая когда-то была фактически первым успешным примером именно synthetic-to-real data refinement: как GAN'ом перерисовать картинку так, чтобы синтетические картинки стали более реалистичными (и могли потом использоваться для gaze estimation, оценки направления взгляда)

Part V: Synthetic-to-Real Refinement — дальнейшее развитие этой идеи, обзор других подходов, тоже в то время почти неизбежно основанных на GAN'ах (да и сейчас в style transfer, кажется, GAN'ы ещё не умерли, в отличие от text-to-image)

Part VI: Real-to-Synthetic Data — а можно сделать и наоборот, реальные данные сделать более похожими на синтетику, чтобы лучше работала обученная на синтетике модель; этот сюжет, кажется, особого развития потом не получил, но переворот любопытный

Part VII: Model-Based Domain Adaptation — ну и собственно о том, как модель адаптировать; здесь в основном про основополагающую работу Ганина и Лемпицкого, где они обращали градиенты, и о том, как это потом развилось в domain separation networks

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