Интересное что-то
517 subscribers
2.72K photos
253 videos
139 files
4.52K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from Aspiring Data Science (Anatoly Alekseev)
#nlp #pca #dimreducers

Интересный рецепт: блок, дающий разреженные (sparse) признаки, после него PCA, дающий на выходе уже разумное количество плотных (dense) признаков.

https://www.youtube.com/watch?v=x7RX8VprCnE
Forwarded from Yandex for ML
This media is not supported in your browser
VIEW IN TELEGRAM
🤖 Делаем чат-бота на ИИ

Yandex Cloud показал новую среду для внедрения ИИ-инструментов в продукты — AI Studio. Например, в ней можно создать умный поиск по базам данных и встроить его по API в оболочку чат-бота в мессенджере. И это только один пример продуктового применения LLM — всё остальное ограничено только вашим воображением.

🔳 На видео продуктовый архитектор наших ML-сервисов Дмитрий Рыбалко показал, как всё работает. Код для этого телеграм-бота вы можете найти на GitHub.

Подписывайтесь:
💬 @Yandex4ML
📹 @YandexML
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Душный NLP
InfAlign: алайнмент языковых моделей с учётом процедуры инференса

Метод RLHF (Reinforcement Learning from Human Feedback) доказал эффективность в задаче алайнмента языковых моделей. Однако у него есть существенный недостаток: на практике возникает расхождение между процессом обучения и реальным использованием модели.

Например, после RLHF модель обычно старается избегать неверных ответов. Но при использовании стратегии генерации Best-of-N (выбор лучшего из нескольких сгенерированных ответов) такое жёсткое ограничение становится неоптимальным — модель могла бы давать лучшие ответы, разреши мы ей экспериментировать более агрессивно за счёт небольшой доли неверных ответов.

Для решения этого несоответствия авторы статьи разработали метод InfAlign, адаптирующий процесс обучения к конкретным процедурам генерации, используемым на практике.

Рассмотрим проблему детальнее. Классический подход RLHF с учётом KL-регуляризации гарантирует оптимальность модели по средней награде, если ответы генерируются сэмплированием. На практике, однако, нам интересна не столько средняя награда, сколько доля запросов, на которых новая модель лучше старой. И уже для такой метрики (при фиксированной модели, по отношению к которой мы считаем винрейт) RLHF даёт субоптимальные результаты даже для простого сэмплирования — что уж говорить о более продвинутых методах.

К счастью, авторам статьи удалось доказать, что оптимизация винрейта для некоторых процедур генерации, включая Best-of-N, Worst-of-N и сэмплирование, эквивалентна применению RLHF с модифицированной функцией награды.

Предложенный подход состоит из трёх основных этапов.

1. Калибровка награды. На этом этапе исходные награды преобразуются в значения от 0 до 1 таким образом, чтобы распределение наград ответов модели стало равномерным на каждом запросе. Это эквивалентно применению обусловленной на запрос функции распределения награды к самой награде. Забавно, что в первой версии статьи авторы предложили использовать медианную аппроксимацию функции распределения, однако спустя месяц удалили все упоминания об этом методе и перешли к использованию эмпирической функции распределения.

2. Трансформация награды. На следующем этапе откалиброванная награда адаптируется под конкретную процедуру генерации. Например, для стратегии Best-of-N применяется экспоненциальное преобразование, усиливающее различия между отличными и посредственными ответами, а для сэмплирования — логарифм, штрафующий за плохие ответы. Заметим, что на самом деле логарифм и экспонента — это лишь хорошие приближения оптимального преобразования. Но, как показывают эксперименты, погрешностью можно пренебречь ради простоты реализации.

3. Обучение с модифицированной наградой. Модель обучается при помощи классического RLHF, используя модифицированную награду, адаптированную под конкретную процедуру генерации.

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

Отметим, что сейчас метод InfAlign применим к весьма ограниченному набору реально используемых процедур генерации, таких как Best-of-N, Worst-of-N и сэмплирования.

Разбор подготовил Федор Лебедь

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Denis Sexy IT 🤖
Нашел еще один интересный промпт для GPT-4o генерации картинок, который позволяет генерировать спрайты для 2d-игр – фоны как в этих ваших Street Fighter 1

Если вы собираете какой-то простенький 2D-платформер, то теперь вы можете прямо в ChatGPT сгенерировать нужный спрайт, сразу с прозрачностью, и поместить его в игру, вот промпт:

Create a wide image (1792×1024) for a 2D parallax background in a side-scrolling video game. The theme is: [post soviet city in 90s] The image should be divided into 3 horizontal layers, same width, stacked vertically: Top row: This is the background and does not require transparency. Middle row: A midground layer, with less elements than the background, drawn in silhouette with some transparency so it can scroll separately. Bottom row: A foreground layer with a ground and relevant elements, less elements than the midground, also partially transparent for parallax scrolling. All layers should have a consistent art style. Use a transparent background for the middle and bottom layers, and keep visual separation between layers by leaving a small gap or distinct lighting. Do not blend the layers together. Vary the color theme between layers ensuring pleasing visual aesthetic. Output as a single image with three stacked rows. Resolution: 1792×1024 Transparent background: Yes (middle and bottom layers) Style: 2D pixel art / game art Purpose: Parallax background layers for a video game


А еще я собрал небольшую страницу, где можно сразу посмотреть, как будет выглядеть спрайт созданный в ChatGPT:
https://shir-man.com/generate-sprite/

Загружаете картинку туда, размечаете (пример разметки в последней картинке), двигаете ползунки и получаете вашу собственную карту файтинга мечты
Forwarded from Data Blog
АЕ, АЕ, сегодня про AE aka Autoencoders.

Я уверенно, но чуть медленно продолжаю цикл туториалов, посвященных области explainable AI. Так, уже были разобраны метод Logit Lens на примере ViT, зондирование gpt2, CAM на примере Yolo NAS — всё можно найти по статьям в профиле на Хабр.

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

В процессе, вы:

* Изучите или повторите, как работает извлечение признаков в Visual Transformers;
* Построите и примените автокодировщик для сжатия скрытых представлений, выученных моделью ViT в задаче классификации котиков и собачек;
* Сравните Vit и PCA в данной задаче.

🐥 Залетайте читать! AE — конечно, не SAE и в задачах сложнее лучше использовать именно SAE, но туториал позволит пощупать базовую идею применения энкодеров.

В скором времени надеюсь сделать материал и по SAE!

Хорошей весны!
Ваш Дата Автор!
Показал, как я веду базу книг в Obsidian — на этом примере вы научитесь вести базы любых данных в Obsidian, автоматически их анализировать и визуализировать произвольным образом.

Вжух!

YouTube | VK | RuTube | Дзен | Платформа

0:00 Что будем делать
0:47 Коротко об Obsidian
1:19 Метаданные и их использование
2:26 Установка и настройка dataview
3:10 Выборки данных с dataview
6:46 Заведение метаданных
8:57 Использование шаблонов для добавления записей
10:15 Использование метаданных с dataview
13:06 Мякотка — использование dataviewjs
17:10 Произвольная JS-логика в dataviewjs
19:39 Настраиваемая ширина отдельных заметок с CSS
25:08 Пишем свой JS/HTML/CSS для визуализации данных
34:45 Возможности воодушевляют!
36:31 Сложно? Не упарывайтесь, просто пишите заметки!
39:35 Спасибо!
TDA временных рядов с помощью функций частотной области

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

Часть 1

В этом разделе мы рассмотрим топологические свойства временных рядов через их представления в частотной области, такие как спектры второго порядка. Я строю диаграмму постоянства, используя фильтрацию набора подуровней на основе сглаженной конической оценки спектра второго порядка временного ряда {xₜ, t = 1, …, T}. Модифицированный DFT (Stoffer,1991) и соответствующая периодограмма с сужением представлены на рисунке 1, для t= 1,2,...,T, где ht - функция конусности.

Пример: Сглаженная сужающаяся диаграмма спектра второго порядка к устойчивости

Я использую функцию R gridDiag для построения диаграмм постоянства для тех же трех сигналов периодического временного ряда, показанных в предыдущей серии постов. В случае 1 spc.t1 обозначает сглаженную конусообразную периодограмму (конусность = 0.1 по умолчанию в спецификации функции R) и сглаживание с помощью модифицированного окна Даниэля (0.25, 0.5, 0.25) временного ряда ts1.

# Шаг 1: Регрессия и стандартизация
x.1 <- 1:length(ts1)
ts1 <- lm(ts1 ~ x.1)$residuals
ts1 <- ts1 / sd(ts1)

# Шаг 2: Вычисление спектра
spc.t1 <- spec.pgram(ts1, kernel = kernel("modified.daniell", c(1)), plot = FALSE)

# Шаг 3: Построение диаграммы постоянства
PD.t1 <- gridDiag(FUNvalues = spc.t1$spec, location = FALSE, sublevel = TRUE)$diagram


На втором рисунке в верхнем ряду показаны сигналы временных рядов, в среднем ряду — спектры второго порядка, а в нижнем ряду — диаграммы постоянства. Пики в спектрах приходятся на разные частоты и соответствуют вкладам этих частот в общую дисперсию xₜ. Три диаграммы постоянства в нижнем ряду похожи друг на друга, поскольку этот метод нечувствителен к различиям в периодичности временных рядов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Часть 2: Преобразования Уолша-Фурье в диаграммы постоянства

Стоффер предположил, что спектральный анализ Уолша подходит для анализа временных рядов с дискретными и категориальными значениями, а также временных рядов, содержащих резкие разрывы. Построение преобразования Уолша-Фурье использует метод Шанкса для разложения временного ряда {xₜ, t = 1, …, T} на последовательность функций Уолша, каждая из которых представляет собой отличительный бинарный шаблон последовательности.

Если длина временного ряда T не равна 2, пусть T₂ обозначает следующую степень 2. Например, если T = 1440, то T₂ = 2¹¹ = 2048. Я использую заполнение нулем для получения временного ряда длиной T₂, установив значение x(T+1), x(T+2), …, x_(T₂) = 0.

Для j = 0, …, T₂ - 1 пусть λⱼ = j/T₂ обозначает j-ю последовательность. Пусть W(t,j) обозначает t-е значение функции Уолша в последовательности λⱼ. Функции Уолша генерируются итеративно следующим образом (Шанкс, 1969), где [a] обозначает целую часть a. Более подробную информацию о функциях Уолша см. в работе Стоффера (1991).

Преобразование Уолша-Фурье (WFT) временного ряда вычисляется как показано на рисунке 4. Вычислительная сложность равна O(T log(T)) (Шанкс, 1969). В примере я иллюстрирую построение диаграммы постоянства для категориального временного ряда с двумя уровнями.

Пример: Преобразование Уолша-Фурье в диаграмму постоянства

На рисунке 5 в первом столбце показан смоделированный категориальный временной ряд длиной T = 120 с двумя уровнями, 0 или 1. Уровень 1 происходит только в период между t = 21 и t = 100. В среднем столбце показан временной интервал, в то время как в третьем столбце показана диаграмма его постоянства. На диаграмме есть одна точка, удаленная от диагональной линии, которая является важной точкой рождения и смерти 0-й гомологической группы. Ниже показан R-код для моделирования временных рядов и преобразования WFT в диаграмму постоянства.

# Создание временного ряда
x.ts <- c(rep(0, 20), rep(1, 80), rep(0, 20))

# WFT
x.diag <- gridDiag(FUNvalues = x.WFTs, location = FALSE, sublevel = TRUE)$diagram
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM