Интересное что-то
517 subscribers
2.72K photos
253 videos
140 files
4.53K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from Tensor Banana
Flux Redux x3 - смешиваем 3 картинки с указанием силы

Если кто не в курсе, Flux Redux - новая модель для создания вариаций картинки.

Базовый воркфлоу для Flux Redux (вариации по одной картинке) слишком негибкий, поэтому я его адаптировал. Я добавил указание силы для каждой картинки и для промпта. Теперь можно четко контролировать силу каждого фактора.

Рекомендации:
- в моем воркфлоу главная картинка всегда третья, у нее всегда почему-то самое большое влияние на результат, ставьте ей силу 1.0 или близкое значение.
- первая картинка по умолчанию выключена. Если вам надо - можете включить, но контролировать 3 картинки + промпт - сложнее, чем 2.
- Redux неплохо работает с лорами. Тестил на лоре на лицо.
- рекомендую выставлять большое конечное разрешение, например, 800x1400. При меньшем разрешении финальные картинки иногда могут не влезать по высоте, и объект будет обрезаться сверху. Предполагаю, что redux тренировали на разрешении 1400x1400.
- сила промпта также может быть задана, путем уменьшения финальной силы всех картинок. По умолчанию она стоит в 0.40. При 1.00 - промпт будет игнорироваться. При 0.00 - картинки будут игнорироваться.
- картинки на белом фоне проще интегрировать друг в друга.
- у меня там 2 лоры встроены с силой 0. выберите любые или удалите эти ноды если у вас вообще нет скачанных лор.

Все ноды доступны по умолчанию (кроме гуфов, но по умолчанию выключены). Ничего дополнительно устанавливать не надо, просто обновите comfyui (update_comfyui.bat) и перетащите воркфлоу.

Для работы Redux скачать, если не качали:
sigclip https://huggingface.co/Comfy-Org/sigclip_vision_384/blob/main/sigclip_vision_patch14_384.safetensors в папку models/clip_vision
FLUX.1-Redux https://huggingface.co/black-forest-labs/FLUX.1-Redux-dev в папку models/style_models

flux dev, clip_l, t5_xxl, vae надеюсь у вас уже скачаны, если нет то: https://comfyanonymous.github.io/ComfyUI_examples/flux/

Redux x3 воркфлоу https://github.com/Mozer/comfy_stuff/blob/main/workflows/workflow_redux_x3_with_strength.png
Затестить онлайн: https://www.runninghub.ai/post/1860773217928441857
Forwarded from rzv Data Engineering
#зачем_нужно

Проблемы и решения в очистке данных 4/4


🔶 Нормализация unicode символов
 
translate(column, 'áéíóúàèìòùãẽĩõũâêîôûäëïöüçñ', 'aeiouaeiouaeiouaeiouaeioucn')

regexp_replace(column, '[^\x00-\x7F]+', '') /* удаление не ASCII символов */

Рассказать в следующем посте про colation настройки БД (или почему иногда сортировка одних и тех же данных может выдавать разный результат) ? :)

🔶 Конвертация часовых поясов
 
select timestampz_column at time zone 'Europe/Moscow'

coalesce(
try_cast(timestamp_column as timestamp with time zone),
timestamp_column::timestamp at time zone 'UTC'
) /* если не всегда указана временная зона */


🔶 Обработка спецсимволов в текстовых полях
 
regexp_replace(column, '[^a-zA-Z0-9\s]', '') /* только буквы, цифры и пробелы */

translate(column, '[]{}()*#$%@!?+=/\|', '') /* удаление конкретных символов */


🔶 Приведение булевых значений к стандартному виду
 
case
when lower(column) in ('1', 'yes', 'true', 'y', 't') then true
when lower(column) in ('0', 'no', 'false', 'n', 'f') then false
else null
end as bool_column


Ну что, как тебе формат? Голосуй реактами и комментами, если хочешь больше такого
Forwarded from Quant Researcher
🧢 Зачем изобретать велосипед, если можно форкнуть мотоцикл

finstruments — библиотека для управления финансовыми инструментами на Python. За счёт модульной архитектуры, можно создавать кастомные инструменты для любых типов активов и сохранять их в JSON для интеграции с API и базами данных.

Что внутри:

- Поддержка популярных инструментов: форварды, опционы, позиции, портфели, пр.
- Возможность расширения и кастомизации.
- Сериализация/десериализация в JSON.
- Функции расчета дат, бизнес-дней, выплат и прочих финансовых операций.

🪂 Пример создания опциона на акцию


from finstruments.instrument.equity import EquityOption, CommonStock
from finstruments.instrument.common.option.enum import OptionType
from finstruments.instrument.common.option.payoff import VanillaPayoff
from finstruments.instrument.common.exercise_style import AmericanExerciseStyle
from datetime import date

equity_option = EquityOption(
underlying=CommonStock(ticker='AAPL'),
payoff=VanillaPayoff(option_type=OptionType.PUT, strike_price=100),
exercise_type=AmericanExerciseStyle(
minimum_exercise_date=date(2022, 1, 3),
expiration_date=date(2025, 1, 3)
)
)


🧘‍♂️ Пакет легковесный, ставится одной командой


pip install finstruments


Идеальный инструмент для новичков, кто хочет подсмотреть, как и с чего начать писать классы для инструментов.


Quant Researcher
Уничтожение LLM System Design 😎

Как отвечать на собеседовании, если вас спросят: «Постройка мне чат-бота с помощью LLM»? Разберем основные шаги на конкретной задаче.

Давайте пойдём по пунктам из этого поста.

1️⃣ Нужно чётко сформулировать цель, задачу, ограничения и ресурсы. Прям пытайте интервьювера, чтобы выдал все исходные данные 🍗

Задача: создать чат-бота, который отвечает на финансовые запросы.

Исходные условия:
- В продакшене уже используется API GigaChat (временное решение).
- Доступен API ChatGPT.
- Есть два ассессора.
- Ответы предоставляются без контекста.

Ограничения:
- Ответ за максимум 2 минуты.
- Аппаратные ресурсы: 4 GPU (80 ГБ каждая, A100).

2️⃣ Теперь нужно определиться с метрик. Обычно в задачах построения дизайна система выделяют три вида метрик

Бизнесовые метрики 💸
- Уровень автоматизации — процент запросов, обработанных ботом без операторов.
- Снижение затрат — экономия на поддержке
- Удержание клиентов — сколько пользователей продолжают пользоваться услугами после общения с ботом. Но эту метрику сложно определить, поэтому для простоты стоит поделить на тех пользовался чат-ботом, а кто не пользовался.

Онлайн-метрики:
- Удовлетворенность клиентов (CSAT) — пользовательская оценка (1–5).

Оффлайн-метрики:
- Loss — насколько хорошо обучена модель.
G-Eval — метод «LLM as Judge», когда одна модель оценивает ответы другой по качеству (например, от 1 до 5).
Оценка ассессоров — реальные люди оценивают ответы по техническому заданию. Это ключевая метрика, с которой можно проверить корреляцию с G-Eval.
Бенчмарки — открытые или специально созданные под задачу бизнеса.

3️⃣ Теперь нужно определиться с данными, откуда и сколько их получить, а также как поделить на Train/Test 🕺

Выделяем ключевые сущности:
У нас есть диалог, а в диалоге:
- Запрос пользователя
- Ответ модели
- Маркер начала диалога
- Идентификаторы запроса, ответа, пользователя и т.д.

Способы получения данных:
➡️ Синтетика — быстро и дешево, но требует проверки (например, через G-Eval).
➡️ Открытые датасеты — бесплатны, но их нужно очищать (GPT или предобученные модели).
➡️ Собственные данные — качественно, но дорого и долго (нужны четкие ТЗ для копирайтеров).

Объем данных: Для обучения LoRA потребуется хотя бы 10 тысяч примеров для тренировки и около 700 для тестирования.
Для упрощения пока исключаем поиск контекста, работу с контекстом распишу в следующей части)

4️⃣ Построение пайплайна обучения 😺

Бейзлайн: предположим, что у нас уже есть метрики для текущего решения (например, на GigaChat).

Входные данные:
X — запрос пользователя.
Y — эталонный ответ.

Модели:
llama3.1 400b. Пробуем сначала запромпить модель и смотрим на результаты бенчмарков.
saiga_llama3.1 70b. Сначала промптим, затем обучаем под конкретную задачу.
Loss: Используем CrossEntropyLoss — простой и надежный метод для обучения LoRA на основе SFT.

Метрики:
На тренировочной выборке оцениваем Loss.
На тестовой — G-Eval, оценки ассессоров (на 500 случайных примерах) и бенчмарки.
Деплой: Для деплоя используем vllm.

5️⃣ Потенциальные улучшения 🐒

- Добавить контекст в ответы для повышения точности модели (реализуем в следующей части).
-Применить ORPO-метод, чтобы модель лучше понимала, какие ответы допустимы, а какие нет.
- Квантизация или дистилляция для того, чтобы уменьшить latency
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
мл конспект.pdf
22.9 MB
Вероятно лучший конспект по reinforcement learning который я видел и неожиданно на русском (!)
Forwarded from Start Career in DS
🥷🏻 ML-System Design: справочник материалов для подготовки

❗️ML System Design - один из важнейших этапов на собеседовании в топовую компанию. Строить грамотные ML-решения хочет каждый, и поэтому мы подготовили для вас общий справочник со всей актуальной информацией по данной теме.

🔥Погнали:

- Пошаговая методичка на GitHub, как правильно дизайнить ML-решения
- Ещё один репозиторий с интересным фреймворком и примерами решений ML System Design кейсов
- Огромная база знаний с описанием +500 реальных ML и LLM кейсов из мировых BigTech компаний, сможете прокачать экспертизу и набраться новых подходов
- Большой набор ТГ-постов от Саши Исакова по каждому этапу DS-собеседований, включая ML System Design
- Курс видеолекций на ODS по ML System Design с нуля
- Научиться писать ML System Design Docs можете тут, а познакомиться с тем, что вообще такое дизайн-документ тут
- Статья на Хабре «Как деплоить и тестировать модели в продакшне» - важный этап в процессе MLSD
- Серия постов для подготовки к DS-собеседованиям, с отдельной частью про System Design, включая большое количество дополнительных материалов и книг
- Статья для новичков «Чтобы я хотел знать про ML System Design раньше»
- Большой плейлист на YouTube с собеседованиями от karpov.courses, включая мок-собеседования по ML System Design с Валерием Бабушкиным

👇🏻Также призываем в комментариях делиться актуальными материалами по данной теме!
Ставьте ❤️ и 🔥 за крутой пост!
До встречи👋
Forwarded from Хитрый Питон
Мигель Гринберг, известный своим мега-туториалом по Flask написал большой пост про обработку ошибок в python. Вопросы "когда и какие эксепшены обрабатывать" и "откуда мне узнать, какие эксепшены тут могут возникнуть" особенно актуальны у новичков, я даже у мидлов видел с этим затруднения. Статья довольно длинная, но я очень рекомендую потратить время и почитать https://blog.miguelgrinberg.com/post/the-ultimate-guide-to-error-handling-in-python

Оказывается, на хабре опубликовали перевод статьи https://habr.com/ru/articles/853056/