Forwarded from КиберОлег 🦄🤖🙌
Забираем правила vibe coding
Пока что мои лучшие промпт на 50% состоят из мата😢
Такими темпами и экран не нужен будет скоро
Пока что мои лучшие промпт на 50% состоят из мата
Такими темпами и экран не нужен будет скоро
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Кирилл
Давно не было длинных постов, в этом будет обзор мини ресерча по теме TDA(топологический анализ данных) в time series forecasting, а именно TDA временных рядов с помощью облаков точек.
Естественно, временные ряды сразу не могут быть представлены как облака точек. Перед тем как приступить к TDA, они должны быть преобразованы с помощью теоремы Такенса о встраивании (Takens et al.,1981).
Этот подход широко использовался в научной литературе для различных целей:
🔵 количественной оценки периодичности временных рядов (Perea and Harer, 2015);
🔵 кластеризации временных рядов (Seversky et al., 2016);
🔵 классификации временных рядов (Umeda, 2017);
🔵 обнаружения ранних сигналов о критических изменениях (Gidea, 2017; Гидея и Кац, 2018).
Встраивание Такенса позволяет сохранить топологические свойства временного ряда, но не его геометрические характеристики.
Встраивание Такенса для временных рядов:
Пусть
обозначает наблюдаемый временной ряд. Я использую встраивание Такенса для преобразования
временного ряда в облако точек с точками
, где d указываетразмер точек, а τ обозначает параметр задержки. Например, если
Как d, так и τ неизвестны
и должны быть определены на практике.
Выбор параметра τ. Исследователи использовали различные подходы к выбору параметра задержки τ. Он
может быть выбран как наименьшая временная задержка h, при которой автокорреляционная функция выборки (ACF) ˆ ph
становится незначимой, т.е. меньше по абсолютной величине, чем критическая граница 2
√T (Хасауне и Мунк, 2016). Труонг (Truong, 2017) также использовал ACF, но несколько иным способом. Он выбрал τ в качественаименьшего запаздывания, для которого
Перейра и де Меллу (2015) определили τ, используя первый минимум автоматической взаимной информации (взаимная информация между сигналом и его версией с задержкой во времени
Выбор d.
Труонг (2017), Хасауне и Мунк (2016) использовали метод ложного ближайшего соседа
(Кеннел и др., 1992) для определения размера вложения в виде целого числа таким образом, что
ближайшие соседи каждой точки в измерении d остаются ближайшими соседями в измерении
d+ 1, и расстояния между ними также остаются неизменными. примерно то же самое. В качестве альтернативы может быть использована функция R false.nearest
в пакете tseriesChaos, которая реализует подход, предложенный Хеггером и др. (1999). Некоторые авторы (Перейра и де Мелло, 2015; Северский и др., 2016) просто предполагают, что значение d равно 2 или 3, в то время как Перея предложил использовать значение d= 15 для временных рядов после кубической сплайновой интерполяции.
Чистые сигналы преобразуются в диаграммы постоянства.
Я генерирую облака точек из трех периодических косинусоидальных сигналов длиной T = 480 с периодами 12, 48 и 96 соответственно, а затем строим их диаграммы постоянства. Я устанавливаю d= 2 и используя метод ACF, описанный выше, для выбора τ. Это код R для временного
ряда tsf1
Естественно, временные ряды сразу не могут быть представлены как облака точек. Перед тем как приступить к TDA, они должны быть преобразованы с помощью теоремы Такенса о встраивании (Takens et al.,1981).
Этот подход широко использовался в научной литературе для различных целей:
Встраивание Такенса позволяет сохранить топологические свойства временного ряда, но не его геометрические характеристики.
Встраивание Такенса для временных рядов:
Пусть
{xt,t = 1,2,...,T}обозначает наблюдаемый временной ряд. Я использую встраивание Такенса для преобразования
временного ряда в облако точек с точками
vi = (xi,xi+τ,...,xi+(d−1)τ)
, где d указываетразмер точек, а τ обозначает параметр задержки. Например, если
, то
vi = (xi,xi+1), тогда как если d= 15 и τ = 2, то vi = (xi,...,xi+28).
Как d, так и τ неизвестны
и должны быть определены на практике.
Выбор параметра τ. Исследователи использовали различные подходы к выбору параметра задержки τ. Он
может быть выбран как наименьшая временная задержка h, при которой автокорреляционная функция выборки (ACF) ˆ ph
становится незначимой, т.е. меньше по абсолютной величине, чем критическая граница 2
√T (Хасауне и Мунк, 2016). Труонг (Truong, 2017) также использовал ACF, но несколько иным способом. Он выбрал τ в качественаименьшего запаздывания, для которого
(ˆ ρτ− ˆρτ−1)/ˆρτ >1/e и ˆ ρτ < 2 √Т
Перейра и де Меллу (2015) определили τ, используя первый минимум автоматической взаимной информации (взаимная информация между сигналом и его версией с задержкой во времени
Выбор d.
Труонг (2017), Хасауне и Мунк (2016) использовали метод ложного ближайшего соседа
(Кеннел и др., 1992) для определения размера вложения в виде целого числа таким образом, что
ближайшие соседи каждой точки в измерении d остаются ближайшими соседями в измерении
d+ 1, и расстояния между ними также остаются неизменными. примерно то же самое. В качестве альтернативы может быть использована функция R false.nearest
в пакете tseriesChaos, которая реализует подход, предложенный Хеггером и др. (1999). Некоторые авторы (Перейра и де Мелло, 2015; Северский и др., 2016) просто предполагают, что значение d равно 2 или 3, в то время как Перея предложил использовать значение d= 15 для временных рядов после кубической сплайновой интерполяции.
Чистые сигналы преобразуются в диаграммы постоянства.
Я генерирую облака точек из трех периодических косинусоидальных сигналов длиной T = 480 с периодами 12, 48 и 96 соответственно, а затем строим их диаграммы постоянства. Я устанавливаю d= 2 и используя метод ACF, описанный выше, для выбора τ. Это код R для временного
ряда tsf1
per1=12; ts1 = cos(1:T*2*pi/per1); d=2;
tau <- which(abs(acf(ts.ex, plot = F)$acf) < 2/sqrt(T))[1]-1
PC=t(purrr::map_dfc(1:(T-(d-1)*tau+1),~ts.ex[seq(from=.x, by=tau, length.out=d)]))
diag=ripsDiag(PC, maxdimension=1, maxscale=max(dist(PC)))
ts.plot(ts.ex);plot(PC,xlab ="x1",ylab="x2",main="PC");plot(diag$diagram)
Please open Telegram to view this post
VIEW IN TELEGRAM
arXiv.org
Sliding Windows and Persistence: An Application of Topological...
We develop in this paper a theoretical framework for the topological study of time series data. Broadly speaking, we describe geometrical and topological properties of sliding window (or...
Forwarded from Кирилл
На первом рисунке в верхнем ряду представлены сигналы, в среднем — облака точек, а в нижнем — диаграммы постоянства. Черные точки отражают появление и уничтожение 0-й гомологической группы, а диаграммы постоянства показывают, как эти точки распределяются в облаке.
Чем больше черных точек находится ближе к диагонали, тем более рассеянным выглядит облако точек. Например, облако точек PC.3 из временного ряда с периодом 96 имеет точки, расположенные ближе друг к другу по сравнению с PC.1. Из-за этого на диаграмме постоянства больше черных точек расположено ближе к диагонали.
Красные треугольники представляют генерацию и уничтожение 1-й гомологической группы, обозначая круги в облаке точек. Красный треугольник из временного ряда с периодом 96 находится дальше от диагонали по сравнению с рядом с периодом 12 и, следовательно, дольше сохраняется в 1-й гомологической группе. Если вы увидите кружок, это означает, что временной ряд является периодическим. Это отличается от диаграммы постоянства для того же временного ряда, основанной на изменении набора подуровней функции. Попарные расстояния между узкими местами между тремя диаграммами постоянства, рассчитанный с использованием кода, как показано ниже:
Построение облака точек с использованием SW1PerS:
Метод SW1PerS (скользящие окна и 1-балльная оценка постоянства) является альтернативным, более
комплексным подходом, предложенным Perea и соавторами (2015) для определения периодичности по зашумленным временным курсам, основные сигналы которых могут иметь различную форму. Этот подход направлен на решение следующих задач.
Шумопонижение: В этом подходе рассматриваются два типа шумоподавления, которые предоставляются пользователю в качестве опции.
Первый тип сглаживает исходный временной ряд с помощью скользящего среднего, чтобы упростить обнаружение сигнала. Второй тип - это скользящее среднее в облаке точек. В качестве альтернативы скользящему среднему для усреднения Перейра и де Меллу (2015) использовали эмпирическую модальную декомпозицию (EMD) (Huanget al., 1998) на необработанных временных рядах.
Сплайн-интерполяция. Сплайновая интерполяция позволяет обрабатывать временные ряды с неравномерными интервалами или
временные ряды с низким временным разрешением.
Стандартизация облака точек. Стандартизация помогает снизить уровень сигнала и
не учитывать амплитуду процедуры.
Схема этого подхода описана в следующих шагах.
Шаг 0. При необходимости (Переа и Харер, 2015) устраните шумы в наблюдаемом временном ряду
используя простое скользящее среднее, размер окна которого не превышает одной трети выбранного
измерения d. Они рекомендовали размерность встраивания d= 15 и N = 201 в качестве размера
облака точек; тогда
Шаг 1. Для выбранных значений d и τ (см. ниже) создайте облако точек из временных рядов (возможно, без шума), используя шаги 1.1 и 1.2.
Шаг 1.1. Восстановите непрерывную функцию g : [0,2π]→R, применив кубический сплайн к временному ряду без шума
Шаг 1.2. Используя значения g(t1),g(t2),...,g(t1 ) из непрерывного сплайна, найдите g(.) в равномерно распределенных
точках времени
постройте облако точек с помощью
и 1 - это d-мерный вектор единиц.
Чем больше черных точек находится ближе к диагонали, тем более рассеянным выглядит облако точек. Например, облако точек PC.3 из временного ряда с периодом 96 имеет точки, расположенные ближе друг к другу по сравнению с PC.1. Из-за этого на диаграмме постоянства больше черных точек расположено ближе к диагонали.
Красные треугольники представляют генерацию и уничтожение 1-й гомологической группы, обозначая круги в облаке точек. Красный треугольник из временного ряда с периодом 96 находится дальше от диагонали по сравнению с рядом с периодом 12 и, следовательно, дольше сохраняется в 1-й гомологической группе. Если вы увидите кружок, это означает, что временной ряд является периодическим. Это отличается от диаграммы постоянства для того же временного ряда, основанной на изменении набора подуровней функции. Попарные расстояния между узкими местами между тремя диаграммами постоянства, рассчитанный с использованием кода, как показано ниже:
round(bottleneck(diag1$diagram, diag2$diagram, dimension = 0), digits= 2)
Построение облака точек с использованием SW1PerS:
Метод SW1PerS (скользящие окна и 1-балльная оценка постоянства) является альтернативным, более
комплексным подходом, предложенным Perea и соавторами (2015) для определения периодичности по зашумленным временным курсам, основные сигналы которых могут иметь различную форму. Этот подход направлен на решение следующих задач.
Шумопонижение: В этом подходе рассматриваются два типа шумоподавления, которые предоставляются пользователю в качестве опции.
Первый тип сглаживает исходный временной ряд с помощью скользящего среднего, чтобы упростить обнаружение сигнала. Второй тип - это скользящее среднее в облаке точек. В качестве альтернативы скользящему среднему для усреднения Перейра и де Меллу (2015) использовали эмпирическую модальную декомпозицию (EMD) (Huanget al., 1998) на необработанных временных рядах.
Сплайн-интерполяция. Сплайновая интерполяция позволяет обрабатывать временные ряды с неравномерными интервалами или
временные ряды с низким временным разрешением.
Стандартизация облака точек. Стандартизация помогает снизить уровень сигнала и
не учитывать амплитуду процедуры.
Схема этого подхода описана в следующих шагах.
Шаг 0. При необходимости (Переа и Харер, 2015) устраните шумы в наблюдаемом временном ряду
{xt,t= 1,2,...,T}используя простое скользящее среднее, размер окна которого не превышает одной трети выбранного
измерения d. Они рекомендовали размерность встраивания d= 15 и N = 201 в качестве размера
облака точек; тогда
T1 = N + d= 216.
Шаг 1. Для выбранных значений d и τ (см. ниже) создайте облако точек из временных рядов (возможно, без шума), используя шаги 1.1 и 1.2.
Шаг 1.1. Восстановите непрерывную функцию g : [0,2π]→R, применив кубический сплайн к временному ряду без шума
{xt,t= 1,2,...,T}Шаг 1.2. Используя значения g(t1),g(t2),...,g(t1 ) из непрерывного сплайна, найдите g(.) в равномерно распределенных
точках времени
0 = t1 ≤t2 ≤... ≤tT1 = (T1−1)τ = 2π
постройте облако точек с помощью
N= T1−точек v(0)
t = (g(t),g(t+τ),...,g(t(d−1)τ))'∈Rd,t= 0,τ,...,2π−(d−1)τ
и так далее
τ =2π/N+d−1
Шаг 2. Стандартизация точечного облака точек(рис. 2)Где v(0)t = (v(0)t,1 ,v(0)t,2 ,...v(0)t,d)'
и 1 - это d-мерный вектор единиц.
Forwarded from Кирилл
Шаг 3. Постройте диаграмму постоянства, как описано в разделе 2.1, используя облако точек. Этот метод эффективен для выявления периодичности во временных рядах.
Чтобы разработать оценку для количественной оценки периодичности, Переа и его коллеги (Perea et al., 2015) впервые определили самый продолжительный период рождения-смерти у 1-й группы гомологий (λ1,kM,1, λ1,kM,2). Для указания максимальной устойчивости была выбрана величина kM, определяемая как arg maxk(λ1,k,2−λ1,k,1). Эта информация была использована для дальнейших вычислений.
Поскольку 0 ≤λ1,кМ , 1 ≤λ1,км ,2 ≤√3, для периодических (непериодических) временных рядов оценка близка к нулю. Ниже приведен код R для реализации шага 1-шага 3 для случая 1 (код для других случаев аналогичен)
Основная заслуга Perea et al. (2015) заключается в том, что они провели масштабные имитационные исследования. В ходе которых они показали, что топологические характеристики временных рядов остаются практически неизменными, независимо от формы сигнала — синусоидальной или нет, а также от различий в амплитуде, фазе, среднем значении, частоте или тренде. Однако на результаты могут влиять вариации в дисперсиях шума и особенности распределения шума и сигнала.
Чтобы разработать оценку для количественной оценки периодичности, Переа и его коллеги (Perea et al., 2015) впервые определили самый продолжительный период рождения-смерти у 1-й группы гомологий (λ1,kM,1, λ1,kM,2). Для указания максимальной устойчивости была выбрана величина kM, определяемая как arg maxk(λ1,k,2−λ1,k,1). Эта информация была использована для дальнейших вычислений.
Поскольку 0 ≤λ1,кМ , 1 ≤λ1,км ,2 ≤√3, для периодических (непериодических) временных рядов оценка близка к нулю. Ниже приведен код R для реализации шага 1-шага 3 для случая 1 (код для других случаев аналогичен)
x.ts = ts1; d=15; N=201; T1 = 216;
x.ts <- pracma::movavg(x.ts, 5, type = "s")
sp.ts <- stats::spline(1:T*2*pi/T, x.ts, n=T1)$y
PC <- plyr::ldply(map(1:N, ~sp.ts[.x:(.x+d-1)]))
X.PC=t(apply(PC,1,FUN=function(x){(x-mean(x))/sqrt(sum((x-mean(x))^2))}))
diag <- ripsDiag(X=x.PC, maxdimension = 1, maxscale = sqrt(3))
Основная заслуга Perea et al. (2015) заключается в том, что они провели масштабные имитационные исследования. В ходе которых они показали, что топологические характеристики временных рядов остаются практически неизменными, независимо от формы сигнала — синусоидальной или нет, а также от различий в амплитуде, фазе, среднем значении, частоте или тренде. Однако на результаты могут влиять вариации в дисперсиях шума и особенности распределения шума и сигнала.
BioMed Central
SW1PerS: Sliding windows and 1-persistence scoring; discovering periodicity in gene expression time series data - BMC Bioinformatics
Background Identifying periodically expressed genes across different processes (e.g. the cell and metabolic cycles, circadian rhythms, etc) is a central problem in computational biology. Biological time series may contain (multiple) unknown signal shapes…
Forwarded from Душный NLP
Технический отчёт Qwen2.5-Coder
Qwen2.5-Coder — семейство моделей, предназначенных для генерации кода. Его технический отчёт вышел ещё в прошлом году, но там много интересного, что стоит разобрать. Этим и займёмся.
Модель учили работать как с отдельными файлами, так и с целыми репозиториями. Что касается токенизации, то авторы взяли словарь Qwen2.5 на 151,646 токенов, но добавили к нему спецтокены. Например, для обучения в режиме Fill-in-the-Middle (FIM).
В датасете для допретрейна было пять типов данных:
— код на 92 языках программирования — примеры брали с GitHub до февраля 2024 года. Использовали фильтры на эвристиках, чтобы отсеять некачественные данные;
— text-code grounding data — уже не только код, но и документация, руководства. Использовали итеративную иерархическую фильтрацию: сперва брали большой массив данных, но с каждым шагом фильтрации их становилось всё меньше;
— синтетические данные — их генерировали с помощью CodeQwen1.5. Оставляли только выполнявшийся код;
— математические данные — использовали претрейн-датасет Qwen2.5-Math;
— текст — использовали данные из претрейна Qwen2.5, но без кода. Авторы хотели, чтобы модель получилась достаточно универсальной и умела решать различные задачи, а не только связанные с программированием. По результатам бенчмарков, лучше всего себя показала пропорция кода, математики и текста — 7:2:1.
Сперва был допретрейн на уровне файлов. Контекстное окно тут составляло не более 8 тысяч токенов. Здесь как раз и использовали FIM. Следом шло обучение на уровне репозиториев с контекстным окном до 32 тысяч токенов за счёт увеличения параметра RoPE base до миллиона. Для экстраполяции до 128 тысяч применяли технику YARN.
На посттрейне обучили модель CodeBERT, чтобы классифицировать документы по примерно сотне языков программирования. При этом авторы сохраняли все найденные документы на популярных языках, а те, которые написаны на редких — частично удаляли. Кроме того, убирали все примеры без кода, потому что на этапе инструктивного обучения они ухудшали показатели на бенчмарках.
Для репозиториев на GitHub генерировали инструкции неназванной в отчёте LLM, а с помощью другой модели — тоже неназванной — создавали ответы. Третья LLM занималась фильтрацией полученных пар. Для повышения точности использовали фьюшот на опенсорсных инстракт-датасетах — например, McEval-Instruct.
Для формирования мультиязычного SFT-датасета использовали языкоспецефичных агентов, у каждого из которых, как заявляют авторы, был свой банк памяти с историей генераций. В целом, в техническом отчёте не хватает конкретики по SFT-датасету. Оценка получившихся пар примеров производилась по чеклисту из 9 параметров. Среди них: соответствие ответа вопросу, сложность, наличие кода, его правильность и ясность.
Самый трудный с точки зрения разработки элемент — это мультиязычная «песочница». Нужно было обеспечить поддержку каждого из 92 языков программирования, собрать репозиторий эталонного кода, создать генераторы юнит-тестов, движки выполнения и анализаторы результатов. «Песочница» — вещь итеративная, которая нуждается в постоянной поддержке. Для этого разработчики привлекли экспертов, что делает «песочницу» особенно ресурсозатратной.
SFT сперва осуществлялся на нескольких десятках миллионов не слишком качественных, но разнообразных примеров. Затем с помощью rejection sampling выборка снижалась до нескольких миллионов лучших сэмплов.
Чтобы на этапе SFT модель не разучилась работать с длинным контекстом, авторы использовали короткие инстракт-сэмплы с FIM. При этом добавленный контекст — синтаксис — получался с помощью парсинга библиотекой Tree-sitter-languages. Примеров, обогащённых контекстом, было меньше, чем обычных SFT-данных.
В рамках DPO использовали RLEF для сигналов о том, что код работает, а также юнит-тесты для некоторых примеров. Были и примеры без кода, чтобы модель могла решать задачи, не связанные с программированием. В качестве LLM-as-a-judge выступала 4о.
Разбор подготовил❣ Алексей Малафеев
Душный NLP
Qwen2.5-Coder — семейство моделей, предназначенных для генерации кода. Его технический отчёт вышел ещё в прошлом году, но там много интересного, что стоит разобрать. Этим и займёмся.
Модель учили работать как с отдельными файлами, так и с целыми репозиториями. Что касается токенизации, то авторы взяли словарь Qwen2.5 на 151,646 токенов, но добавили к нему спецтокены. Например, для обучения в режиме Fill-in-the-Middle (FIM).
В датасете для допретрейна было пять типов данных:
— код на 92 языках программирования — примеры брали с GitHub до февраля 2024 года. Использовали фильтры на эвристиках, чтобы отсеять некачественные данные;
— text-code grounding data — уже не только код, но и документация, руководства. Использовали итеративную иерархическую фильтрацию: сперва брали большой массив данных, но с каждым шагом фильтрации их становилось всё меньше;
— синтетические данные — их генерировали с помощью CodeQwen1.5. Оставляли только выполнявшийся код;
— математические данные — использовали претрейн-датасет Qwen2.5-Math;
— текст — использовали данные из претрейна Qwen2.5, но без кода. Авторы хотели, чтобы модель получилась достаточно универсальной и умела решать различные задачи, а не только связанные с программированием. По результатам бенчмарков, лучше всего себя показала пропорция кода, математики и текста — 7:2:1.
Сперва был допретрейн на уровне файлов. Контекстное окно тут составляло не более 8 тысяч токенов. Здесь как раз и использовали FIM. Следом шло обучение на уровне репозиториев с контекстным окном до 32 тысяч токенов за счёт увеличения параметра RoPE base до миллиона. Для экстраполяции до 128 тысяч применяли технику YARN.
На посттрейне обучили модель CodeBERT, чтобы классифицировать документы по примерно сотне языков программирования. При этом авторы сохраняли все найденные документы на популярных языках, а те, которые написаны на редких — частично удаляли. Кроме того, убирали все примеры без кода, потому что на этапе инструктивного обучения они ухудшали показатели на бенчмарках.
Для репозиториев на GitHub генерировали инструкции неназванной в отчёте LLM, а с помощью другой модели — тоже неназванной — создавали ответы. Третья LLM занималась фильтрацией полученных пар. Для повышения точности использовали фьюшот на опенсорсных инстракт-датасетах — например, McEval-Instruct.
Для формирования мультиязычного SFT-датасета использовали языкоспецефичных агентов, у каждого из которых, как заявляют авторы, был свой банк памяти с историей генераций. В целом, в техническом отчёте не хватает конкретики по SFT-датасету. Оценка получившихся пар примеров производилась по чеклисту из 9 параметров. Среди них: соответствие ответа вопросу, сложность, наличие кода, его правильность и ясность.
Самый трудный с точки зрения разработки элемент — это мультиязычная «песочница». Нужно было обеспечить поддержку каждого из 92 языков программирования, собрать репозиторий эталонного кода, создать генераторы юнит-тестов, движки выполнения и анализаторы результатов. «Песочница» — вещь итеративная, которая нуждается в постоянной поддержке. Для этого разработчики привлекли экспертов, что делает «песочницу» особенно ресурсозатратной.
SFT сперва осуществлялся на нескольких десятках миллионов не слишком качественных, но разнообразных примеров. Затем с помощью rejection sampling выборка снижалась до нескольких миллионов лучших сэмплов.
Чтобы на этапе SFT модель не разучилась работать с длинным контекстом, авторы использовали короткие инстракт-сэмплы с FIM. При этом добавленный контекст — синтаксис — получался с помощью парсинга библиотекой Tree-sitter-languages. Примеров, обогащённых контекстом, было меньше, чем обычных SFT-данных.
В рамках DPO использовали RLEF для сигналов о том, что код работает, а также юнит-тесты для некоторых примеров. Были и примеры без кода, чтобы модель могла решать задачи, не связанные с программированием. В качестве LLM-as-a-judge выступала 4о.
Разбор подготовил
Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Адель и МЛь
This media is not supported in your browser
VIEW IN TELEGRAM
Diffusion LLMs
На днях ко мне подошел коллега и спросил про диффузионные модели. Одна из его протеиновых моделей - RF Diffusion - основана именно на них, и коллеге было интересно, что это за зверь и в чем разница с другими. Я ему объяснял про диффузии и генерацию картинок против авторегрессии и генерацию текста.
Но оказывается, текст пытаются генерировать и с помощью диффузий тоже. Выглядит это немного инопланетно: сначала появляется какой-то мусор и шум из слов, который постепенно преобразуется во что-то адекватное (ну как при генерации картинок - сначала шум, потом детали). На видео справа пример генерации кода моделью Mercury от Inception Labs.
Деталей модели, к сожалению, никаких. Есть только скоростные характеристики. Дизайна обучения, размера, метрик пока не опубликовали. Но есть демо и api для enterprise. Надо включить diffusion effect в правом верхнем углу.
Из open-source мира есть LlaDa - тут уже много деталей.
Интересный подход.
На днях ко мне подошел коллега и спросил про диффузионные модели. Одна из его протеиновых моделей - RF Diffusion - основана именно на них, и коллеге было интересно, что это за зверь и в чем разница с другими. Я ему объяснял про диффузии и генерацию картинок против авторегрессии и генерацию текста.
Но оказывается, текст пытаются генерировать и с помощью диффузий тоже. Выглядит это немного инопланетно: сначала появляется какой-то мусор и шум из слов, который постепенно преобразуется во что-то адекватное (ну как при генерации картинок - сначала шум, потом детали). На видео справа пример генерации кода моделью Mercury от Inception Labs.
Деталей модели, к сожалению, никаких. Есть только скоростные характеристики. Дизайна обучения, размера, метрик пока не опубликовали. Но есть демо и api для enterprise. Надо включить diffusion effect в правом верхнем углу.
Из open-source мира есть LlaDa - тут уже много деталей.
Интересный подход.
Forwarded from Anton Eryomin
https://www.youtube.com/shorts/ctFkqftb0us
можно найти прямо вот ответы на все лидершип принциплс 🙂 и прочие вопросы
можно найти прямо вот ответы на все лидершип принциплс 🙂 и прочие вопросы
YouTube
Job Interview Gaps in Resume
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
Forwarded from Anton Eryomin
Всем привет!
Попалось довольно полезное видео про то, как лучше всего валидировать свой код на алго секции.
https://www.youtube.com/watch?v=g31VEKIF0ho&ab_channel=CrackingFAANG
Попалось довольно полезное видео про то, как лучше всего валидировать свой код на алго секции.
https://www.youtube.com/watch?v=g31VEKIF0ho&ab_channel=CrackingFAANG
YouTube
How to validate your code in a coding interview (so you don't fail)
Discord: https://discord.gg/s8JX2ARnSg
Back at it with another video. This time we are learning how to properly verify the code you've written. This is such a common failure point for many candidates and it really can cost you.
Today we'll learn the proper…
Back at it with another video. This time we are learning how to properly verify the code you've written. This is such a common failure point for many candidates and it really can cost you.
Today we'll learn the proper…
Forwarded from Data, Stories and Languages
OpenAI: Reasoning best practices
У OpenAI столько моделей, что они публикуют уже не первый гайд о том, какие модели для каких случаев использовать. На этот раз речь об использовании reasoning (o1, o3-mini) vs GPT. Кстати, интересно, что они протипопоставляют o1 и GPT архитектуру, будто у o1 другой подход.
https://platform.openai.com/docs/guides/reasoning-best-practices
Если по сути:
• Если нужно быстрее/дешевле или задачи чётко сформулированы - GPT
• Если нужно качество и достоверность или умение решать сложные проблемы - o1
В целом это довольно очевидно, но дальше показывают красивую картинку того, как чат-бот техподдержки использует микс подходов:
• o1 обрабатывает базу данных компании для общего понимания
• GPT подготавливает конкретные действия по запросу пользователей
• o3-mini валидирует эти предложенные действия
Ну и ещё ряд примеров, когда лучше использовать o1: постановка задачи нечёткая, найти конкретную информацию в большом объёме данных, выстроить причинно-следственные связи и обнаружить зависимости, планирование шагов выполнения задачи, более качественный анализ информации на изображениях (графики, схемы и прочее), ревью кода, оценка качества работы других моделей.
#datascience
У OpenAI столько моделей, что они публикуют уже не первый гайд о том, какие модели для каких случаев использовать. На этот раз речь об использовании reasoning (o1, o3-mini) vs GPT. Кстати, интересно, что они протипопоставляют o1 и GPT архитектуру, будто у o1 другой подход.
https://platform.openai.com/docs/guides/reasoning-best-practices
Если по сути:
• Если нужно быстрее/дешевле или задачи чётко сформулированы - GPT
• Если нужно качество и достоверность или умение решать сложные проблемы - o1
В целом это довольно очевидно, но дальше показывают красивую картинку того, как чат-бот техподдержки использует микс подходов:
• o1 обрабатывает базу данных компании для общего понимания
• GPT подготавливает конкретные действия по запросу пользователей
• o3-mini валидирует эти предложенные действия
Ну и ещё ряд примеров, когда лучше использовать o1: постановка задачи нечёткая, найти конкретную информацию в большом объёме данных, выстроить причинно-следственные связи и обнаружить зависимости, планирование шагов выполнения задачи, более качественный анализ информации на изображениях (графики, схемы и прочее), ревью кода, оценка качества работы других моделей.
#datascience
Forwarded from Борис_ь с ml
ИИ-агенты для проведения пентеста
#ml_для_иб
Недавно занялся одной научной задачей, и собрал источники по автоматизированным пентест-агентам.
Получился неплохой список, которым я решил поделиться.
1. https://github.com/vxcontrol/pentagi
2. https://github.com/palisaderesearch/intercode
3. https://github.com/xvnpw/ai-security-analyzer
4. https://github.com/KHenryAegis/VulnBot
5. https://github.com/xbow-engineering/validation-benchmarks
6. https://github.com/gyoisamurai/GyoiThon
7. Link: Black-Box Detection of Cross-Site Scripting Vulnerabilities Using Reinforcement Learning https://github.com/WSP-LAB/Link https://www.researchgate.net/publication/360179780_Link_Black-Box_Detection_of_Cross-Site_Scripting_Vulnerabilities_Using_Reinforcement_Learning
8. Can LLMs Hack Enterprise Networks? Autonomous Assumed Breach Penetration-Testing Active Directory Networks - https://arxiv.org/pdf/2502.04227
9. Artificial Intelligence as the New Hacker: Developing Agents for Offensive Security - https://arxiv.org/abs/2406.07561v1
10. BreachSeek: A Multi-Agent Automated Penetration Tester https://arxiv.org/abs/2409.03789
11. HackSynth: LLM Agent and Evaluation Framework for Autonomous Penetration Testing https://arxiv.org/abs/2412.01778
12. LLMs as Hackers: Autonomous Linux Privilege Escalation Attacks https://arxiv.org/html/2310.11409v5
Introducing PenTest++: Elevating Ethical Hacking with AI and Automation https://arxiv.org/abs/2502.09484
13. D-CIPHER: Dynamic Collaborative Intelligent Agents with Planning and Heterogeneous Execution for Enhanced Reasoning in Offensive Security https://arxiv.org/html/2502.10931v1
14. Construction and Evaluation of LLM-based agents for Semi-Autonomous penetration testing https://arxiv.org/abs/2502.15506
Данная публикация носит исключительно научно-обзорный характер.
P.S. Спасибо Артем и Николай.
P. P. S. Параллельно я встретил еще несколько статей про генерацию фишинга
#ml_для_иб
Недавно занялся одной научной задачей, и собрал источники по автоматизированным пентест-агентам.
Получился неплохой список, которым я решил поделиться.
1. https://github.com/vxcontrol/pentagi
2. https://github.com/palisaderesearch/intercode
3. https://github.com/xvnpw/ai-security-analyzer
4. https://github.com/KHenryAegis/VulnBot
5. https://github.com/xbow-engineering/validation-benchmarks
6. https://github.com/gyoisamurai/GyoiThon
7. Link: Black-Box Detection of Cross-Site Scripting Vulnerabilities Using Reinforcement Learning https://github.com/WSP-LAB/Link https://www.researchgate.net/publication/360179780_Link_Black-Box_Detection_of_Cross-Site_Scripting_Vulnerabilities_Using_Reinforcement_Learning
8. Can LLMs Hack Enterprise Networks? Autonomous Assumed Breach Penetration-Testing Active Directory Networks - https://arxiv.org/pdf/2502.04227
9. Artificial Intelligence as the New Hacker: Developing Agents for Offensive Security - https://arxiv.org/abs/2406.07561v1
10. BreachSeek: A Multi-Agent Automated Penetration Tester https://arxiv.org/abs/2409.03789
11. HackSynth: LLM Agent and Evaluation Framework for Autonomous Penetration Testing https://arxiv.org/abs/2412.01778
12. LLMs as Hackers: Autonomous Linux Privilege Escalation Attacks https://arxiv.org/html/2310.11409v5
Introducing PenTest++: Elevating Ethical Hacking with AI and Automation https://arxiv.org/abs/2502.09484
13. D-CIPHER: Dynamic Collaborative Intelligent Agents with Planning and Heterogeneous Execution for Enhanced Reasoning in Offensive Security https://arxiv.org/html/2502.10931v1
14. Construction and Evaluation of LLM-based agents for Semi-Autonomous penetration testing https://arxiv.org/abs/2502.15506
P.S. Спасибо Артем и Николай.
P. P. S. Параллельно я встретил еще несколько статей про генерацию фишинга