Forwarded from Reliable ML
Карта типов CDO
К обзору книги Carruthers, Jackson - The Chief Data Officer's Playbook
Хочется дополнить наш недавний обзор книги про CDO моей любимой картой архетипов дата лидеров.
Оригинальная статья была опубликована около 5 лет назад компанией Informatica, хотя недавно ее почему-то удалили. Однако у меня ходы остались записаны! Хочу поделиться с вами)
По концепту все Chief Data Officers делятся на 4 категории - по их самым сильным сторонам.
- Digital Innovators. Ключевые навыки дата лидера - в знании data science/ML/AI технологий. Такой CDO сможет затащить поиск перспективных идей, быстрые эксперименты и исследования, внедрение новых решений. Как правило, эти лидеры вырастают из дата саентистов.
- Analytics Champions. Фокус - на построении процессов для надежной отчетности: развитие BI-инструментов и дашбордов, настройка качественных end2end пайплайнов, включая оптимизацию работы отчетов в рамках BI и витрин данных под ними. Чтобы все работало четко, быстро, не ломалось - давало бизнесу возможность прозрачно видеть нужные данные по процессам и принимать решения. Такой тип лидера обычно вырастает из дата аналитика.
- Governance Circus. Ключевые скиллы и фокус внимания - на качестве данных, системном развитии архитектуры данных, процессов и инструментов управления ими и обеспечении их безопасности. Этот тип дата лидера вырастает из дата архитекторов, системных аналитиков, реже - из дата инженеров.
- Operational Optimizers. Основной бекграунд - в развитии инфраструктуры и технических процессов работы с данными. Это гуру в развитии платформенных сервисов и автоматизации всех этапов работы с данными: от сбора и интеграций, до деплоя отчетности и ML-моделей. Такой тип обычно вырастает из дата инженеров.
Верхнеуровнево, два правых квадранта - больше про монетизацию данных, а два левых - про их подготовку для того, чтобы их можно было использовать. В разные моменты времени, для разных отраслей и этапов развития компании - ей могут требоваться различные типы CDO.
По моему опыту, у всех CDO сильной группой навыков будет один, максимум два квадранта. Остальное может быть также закрыто, но уже как вторичная группа - с разной степенью погруженности и возможности управлять процессом.
Об этой картинке рекомендую задумываться, и когда принимаете решение о найме и думаете о профиле нужного вам специалиста, и если вы CDO/дата-лид, и собираете свою команду.
Ваш @Reliable ML
#business #cdo
К обзору книги Carruthers, Jackson - The Chief Data Officer's Playbook
Хочется дополнить наш недавний обзор книги про CDO моей любимой картой архетипов дата лидеров.
Оригинальная статья была опубликована около 5 лет назад компанией Informatica, хотя недавно ее почему-то удалили. Однако у меня ходы остались записаны! Хочу поделиться с вами)
По концепту все Chief Data Officers делятся на 4 категории - по их самым сильным сторонам.
- Digital Innovators. Ключевые навыки дата лидера - в знании data science/ML/AI технологий. Такой CDO сможет затащить поиск перспективных идей, быстрые эксперименты и исследования, внедрение новых решений. Как правило, эти лидеры вырастают из дата саентистов.
- Analytics Champions. Фокус - на построении процессов для надежной отчетности: развитие BI-инструментов и дашбордов, настройка качественных end2end пайплайнов, включая оптимизацию работы отчетов в рамках BI и витрин данных под ними. Чтобы все работало четко, быстро, не ломалось - давало бизнесу возможность прозрачно видеть нужные данные по процессам и принимать решения. Такой тип лидера обычно вырастает из дата аналитика.
- Governance Circus. Ключевые скиллы и фокус внимания - на качестве данных, системном развитии архитектуры данных, процессов и инструментов управления ими и обеспечении их безопасности. Этот тип дата лидера вырастает из дата архитекторов, системных аналитиков, реже - из дата инженеров.
- Operational Optimizers. Основной бекграунд - в развитии инфраструктуры и технических процессов работы с данными. Это гуру в развитии платформенных сервисов и автоматизации всех этапов работы с данными: от сбора и интеграций, до деплоя отчетности и ML-моделей. Такой тип обычно вырастает из дата инженеров.
Верхнеуровнево, два правых квадранта - больше про монетизацию данных, а два левых - про их подготовку для того, чтобы их можно было использовать. В разные моменты времени, для разных отраслей и этапов развития компании - ей могут требоваться различные типы CDO.
По моему опыту, у всех CDO сильной группой навыков будет один, максимум два квадранта. Остальное может быть также закрыто, но уже как вторичная группа - с разной степенью погруженности и возможности управлять процессом.
Об этой картинке рекомендую задумываться, и когда принимаете решение о найме и думаете о профиле нужного вам специалиста, и если вы CDO/дата-лид, и собираете свою команду.
Ваш @Reliable ML
#business #cdo
Forwarded from DeepSchool
CRAFT
Препарируем динозавра, чтобы лучше понять устройство актуальных моделей.
CRAFT — U-net подобная модель 2019 года, с VGG-16 внутри, которая призвана была решить проблему распознавания «in the wild» текста. В реальной жизни текст может состоять из символов разного шрифта, цвета, ориентации, с разными фонами и искажениями. Поэтому логично пробовать детектировать не целое слово за раз, а отдельные символы и промежутки между ними. Именно эту задачу и решает CRAFT.
Но как получить разметку для таких данных в большом количестве? Какие недостатки у такой модели и почему она не работает в одиночку? На эти и другие вопросы мы ответили в новой статье: https://deepschool-pro.notion.site/CRAFT-afe83ca8925041cea46c287fd3611e7d?pvs=4
Препарируем динозавра, чтобы лучше понять устройство актуальных моделей.
CRAFT — U-net подобная модель 2019 года, с VGG-16 внутри, которая призвана была решить проблему распознавания «in the wild» текста. В реальной жизни текст может состоять из символов разного шрифта, цвета, ориентации, с разными фонами и искажениями. Поэтому логично пробовать детектировать не целое слово за раз, а отдельные символы и промежутки между ними. Именно эту задачу и решает CRAFT.
Но как получить разметку для таких данных в большом количестве? Какие недостатки у такой модели и почему она не работает в одиночку? На эти и другие вопросы мы ответили в новой статье: https://deepschool-pro.notion.site/CRAFT-afe83ca8925041cea46c287fd3611e7d?pvs=4
deepschool-pro on Notion
CRAFT | Notion
Автор: Герман Петров
#courses #math #statistics #ml #dl
Тут оказывается у CSC есть сайт, в котором собраны все курсы
Вот ссылка например за 2019 учебный год: https://compscicenter.ru/courses/?academic_year=2019&branch=spb&terms=autumn,spring
Тут оказывается у CSC есть сайт, в котором собраны все курсы
Вот ссылка например за 2019 учебный год: https://compscicenter.ru/courses/?academic_year=2019&branch=spb&terms=autumn,spring
compscicenter.ru
Курсы Computer Science Center
Computer Science Center — объединённая инициатива Школы анализа данных, Computer Science клуба и JetBrains.
Forwarded from Norgey Bilinskiy
YouTube
How To Become Quant - Ultimate Roadmap
Are you ready to start your journey as a Quantitative Researcher? In this video, we look at the Ultimate Roadmap to Becoming a Quant. Here is link to downloadable very high quality image that contains all contents that where shown in this video - https:…
Forwarded from ИИгорь R&D
#учимпитон
Какой же кайф найти в старой репе готовую функцию, которую хочешь написать. Удобно для экспериментов делать структурированные вложенные конфиги, но W&B кривовато работает с многоуровневыми конфинами, поэтому для логгирования надо их расплющивать. И вот такую штуку нашел в репе с дипломом, забирайте, кому надо:
Какой же кайф найти в старой репе готовую функцию, которую хочешь написать. Удобно для экспериментов делать структурированные вложенные конфиги, но W&B кривовато работает с многоуровневыми конфинами, поэтому для логгирования надо их расплющивать. И вот такую штуку нашел в репе с дипломом, забирайте, кому надо:
from typing import Any
from collections.abc import Mapping
from collections import defaultdict
def flatten_dict(d: Mapping[str, Any], sep=".") -> dict[str, Any]:
res = {}
for k, v in d.items():
assert isinstance(k, str)
assert sep not in k
if isinstance(v, Mapping):
res.update({
sep.join((k, k_in)): v_in
for k_in, v_in in flatten_dict(v).items()
})
else:
res.update({k: v})
return res
def unflatten_dict(d: Mapping[str, Any], sep=".") -> dict[str, Any]:
def nest_default_dict():
return defaultdict(nest_default_dict)
res = defaultdict(nest_default_dict)
for k, v in d.items():
cur = res
parts = k.split(sep)
for part in parts[:-1]:
cur = cur[part]
cur[parts[-1]] = v
def dictify(d):
res = {}
for k, v in d.items():
if isinstance(v, defaultdict):
res[k] = dictify(v)
else:
res[k] = v
return res
return dictify(res)
Forwarded from Renat
Forwarded from Renat
Reproducing_OpenAI's_o1_A_Reinforcement_Learning_Roadmap.wav
56.7 MB
подкаст по статье, кому лень читать как и мне)
Forwarded from Data Secrets
Известный мировой тех.подкаст про AI Latent.Space в честь Нового Года выложили 2025 AI Engineering Reading List
Это огромный список актуальных мастридов для ML/AI инженеров. В нем нет базовой базы, а только те статьи, которые непосредственно относятся к современным развивающимся методам и технологиям.
Охвачены 10 самых важных на сегодняшний день областей: файнтюнинг, агенты, диффузия, голос, вижн модели, генерация кода, RAG, цепочки рассуждений, бенчмарки и эвал, и frontier LLMs.
Список получился у ребят действительно очень крутой и насущный, так что обязательно забирайте себе в бэклог или в ридинг-клабы.
Это огромный список актуальных мастридов для ML/AI инженеров. В нем нет базовой базы, а только те статьи, которые непосредственно относятся к современным развивающимся методам и технологиям.
Охвачены 10 самых важных на сегодняшний день областей: файнтюнинг, агенты, диффузия, голос, вижн модели, генерация кода, RAG, цепочки рассуждений, бенчмарки и эвал, и frontier LLMs.
Список получился у ребят действительно очень крутой и насущный, так что обязательно забирайте себе в бэклог или в ридинг-клабы.
Forwarded from ML physicist (Алексей Маметьев)
После появления LLM ок текстовые энкодеры стали часто использовать для задач RAG.
Они позволяют превратить текст в осмысленный вектор, эмбединг, по которому можно искать релевантные куски в условной базе знаний нужную информацию, и подсовывать в контекст ллмки.
Однако следует понимать что тут есть одна идейная проблема - мы хотим что бы "вектора смысла" у
> Помогите не могу зайти в электронную почту, пишет учетка заблокирована за большое число неверных попыток, что делать?
> В случае ввода пароля более 10 раз неверно, аккаунт блокируется. Для разблокировки необходимо создать заявку в хелпдеск
смысл этих предложений немного разный, блин, одно из них вообще вопрос, а второе - утвердительное предложение. Из за чего механизм с векторным поиском может давать много сбоев.
Чуть чуть помогает исправить ситуацию - reranker-ы. Они работают чуть по другому, принимая на вход 2 куска текста - вопрос и элемент базы знаний - анализируют их вместе и возвращают число - релевантность чанка по отношению к вопросу. Можно представить что это 2 LLM -ки, с перемешанными последними слоями и Value Head-ом на конце.
Такой подход позволяет более глубоко анализировать семантику языка, но и дороже в компьюте (для проверки N чанков потребуется O(N^2) вызовов модели, когда как с векторынми механизмами O(N)), так что его имеет смысл ставить на втором этапе работы вашего RAG-а для переранжирования уже более менее релевантных кусков найденых векторным поиском
Для обучения таких штук обычно берут претреинед модельки, после чего поверх учат метриклернингом
Ну и в подарок небольшой гайд как выбрать reranker под вашу задачу, в коментариях в полном качестве
Они позволяют превратить текст в осмысленный вектор, эмбединг, по которому можно искать релевантные куски в условной базе знаний нужную информацию, и подсовывать в контекст ллмки.
Однако следует понимать что тут есть одна идейная проблема - мы хотим что бы "вектора смысла" у
> Помогите не могу зайти в электронную почту, пишет учетка заблокирована за большое число неверных попыток, что делать?
> В случае ввода пароля более 10 раз неверно, аккаунт блокируется. Для разблокировки необходимо создать заявку в хелпдеск
смысл этих предложений немного разный, блин, одно из них вообще вопрос, а второе - утвердительное предложение. Из за чего механизм с векторным поиском может давать много сбоев.
Чуть чуть помогает исправить ситуацию - reranker-ы. Они работают чуть по другому, принимая на вход 2 куска текста - вопрос и элемент базы знаний - анализируют их вместе и возвращают число - релевантность чанка по отношению к вопросу. Можно представить что это 2 LLM -ки, с перемешанными последними слоями и Value Head-ом на конце.
Такой подход позволяет более глубоко анализировать семантику языка, но и дороже в компьюте (для проверки N чанков потребуется O(N^2) вызовов модели, когда как с векторынми механизмами O(N)), так что его имеет смысл ставить на втором этапе работы вашего RAG-а для переранжирования уже более менее релевантных кусков найденых векторным поиском
Для обучения таких штук обычно берут претреинед модельки, после чего поверх учат метриклернингом
Ну и в подарок небольшой гайд как выбрать reranker под вашу задачу, в коментариях в полном качестве
Forwarded from Старший Авгур
На HF довольно давно появился пост, который я как-то пропустил, но который хорошо и кратко описывает основные оптимизации при обучении языковых моделей. Пост: ссылка
Есть ещё старый пост на ту же тему от Eleuther: ссылка
А пост ниже — это короткая выжимка от меня, именно по экономии памяти на одной карточке.
🔹Числа с плавающей точкой (IEEE 754) — основной тип для вычислений в языковых моделях, у них есть знак, экспонента и мантисса. Экспонента контролирует диапазон значений, мантисса — точность в рамках этого диапазона. Также напомню, что есть приколы с представлением чисел около нуля (aka денормализованные числа). Есть куча реализаций разной битности:
— float: 32 бита, E8M23
— tf32: 19 бит, E8M10 (специфичный для Nvidia формат, отсюда все странности)
— fp16: 16 бит, E5M10
— bf16: 16 бит, E8M7 (экспонента и диапазон как у float)
— fp8: 8 бит, E4M3 или E5M2
🔹На что тратится память:
W: Сами веса модели
A: Активации (промежуточные состояния, результат вычисления функции от входа и весов)
G: Градиенты (обновления весов модели при обучении)
O: Состояние оптимизатора (моменты и дисперсия)
При инференсе есть только W и часть A, при обучении есть все 4 категории. Далее у каждого метода стоят буквы, которые обозначают, что именно экономится.
🔹Методы экономии памяти при инференсе:
— Квантование модели (WA): ужимаем тип данных для весов и активаций. В большинстве статьей так и написано: W4A16, что означает, что веса в 4 битах, активации в 16 битах.
— Flash Attention (A): оптимизируем вычисление внимания поблочными вычислениями в кэше GPU, попутно уменьшая сложность по памяти с квадратичной по длине последовательности до линейной.
🔹Дополнительные методы экономии памяти при обучении на одной карточке:
— Смешанная точность (A): имеем рабочую копию в 16 битах (bf16 или fp16), а также мастер-копию в 32 битах. Все операции делаем с рабочей копией и потом обновления весов вливаем в мастер-копию. Вы спросите: а где профит? А профит в том, что активации в 16 битах, а активации — это дофига памяти.
— Квантование оптимизатора (O): ужимаем тип данных для состояний оптимизатора. Чаще всего в 8 бит, перед собственно применением градиентов расквантовываем.
— Аккумуляция градиентов (AG): если мы хотим батч из больше чем одного примера, то A и G тоже раздуются. Но нам совсем не обязательно считать градиенты параллельно, поэтому мы можем считать их последовательно, суммировать, и только потом применять. Если это правильно😁 отмасштабировать, то это теоретически эквивалентно обучению на всём батче.
— Чекпоинты активаций (A): при обучении нам по-хорошему нужны активации на всех слоях, чтобы потом считать по ним градиенты. Но нам сначала нужно дойти до лосса, поэтому мы выкидываем часть промежуточных активаций и пересчитываем их заново на основе оставшихся чекпоинтов тогда, когда они нам реально понадобятся для подсчёта градиентов.
— Адаптеры (GO): основную модель вообще не трогаем, учим только новый маленький набор весов. Градиенты считаем только по нему, и на этом сильно экономим.
На практике используется буквально всё, везде и сразу🤯
Типичный конфиг:
Есть ещё старый пост на ту же тему от Eleuther: ссылка
А пост ниже — это короткая выжимка от меня, именно по экономии памяти на одной карточке.
🔹Числа с плавающей точкой (IEEE 754) — основной тип для вычислений в языковых моделях, у них есть знак, экспонента и мантисса. Экспонента контролирует диапазон значений, мантисса — точность в рамках этого диапазона. Также напомню, что есть приколы с представлением чисел около нуля (aka денормализованные числа). Есть куча реализаций разной битности:
— float: 32 бита, E8M23
— tf32: 19 бит, E8M10 (специфичный для Nvidia формат, отсюда все странности)
— fp16: 16 бит, E5M10
— bf16: 16 бит, E8M7 (экспонента и диапазон как у float)
— fp8: 8 бит, E4M3 или E5M2
🔹На что тратится память:
W: Сами веса модели
A: Активации (промежуточные состояния, результат вычисления функции от входа и весов)
G: Градиенты (обновления весов модели при обучении)
O: Состояние оптимизатора (моменты и дисперсия)
При инференсе есть только W и часть A, при обучении есть все 4 категории. Далее у каждого метода стоят буквы, которые обозначают, что именно экономится.
🔹Методы экономии памяти при инференсе:
— Квантование модели (WA): ужимаем тип данных для весов и активаций. В большинстве статьей так и написано: W4A16, что означает, что веса в 4 битах, активации в 16 битах.
— Flash Attention (A): оптимизируем вычисление внимания поблочными вычислениями в кэше GPU, попутно уменьшая сложность по памяти с квадратичной по длине последовательности до линейной.
🔹Дополнительные методы экономии памяти при обучении на одной карточке:
— Смешанная точность (A): имеем рабочую копию в 16 битах (bf16 или fp16), а также мастер-копию в 32 битах. Все операции делаем с рабочей копией и потом обновления весов вливаем в мастер-копию. Вы спросите: а где профит? А профит в том, что активации в 16 битах, а активации — это дофига памяти.
— Квантование оптимизатора (O): ужимаем тип данных для состояний оптимизатора. Чаще всего в 8 бит, перед собственно применением градиентов расквантовываем.
— Аккумуляция градиентов (AG): если мы хотим батч из больше чем одного примера, то A и G тоже раздуются. Но нам совсем не обязательно считать градиенты параллельно, поэтому мы можем считать их последовательно, суммировать, и только потом применять. Если это правильно
— Чекпоинты активаций (A): при обучении нам по-хорошему нужны активации на всех слоях, чтобы потом считать по ним градиенты. Но нам сначала нужно дойти до лосса, поэтому мы выкидываем часть промежуточных активаций и пересчитываем их заново на основе оставшихся чекпоинтов тогда, когда они нам реально понадобятся для подсчёта градиентов.
— Адаптеры (GO): основную модель вообще не трогаем, учим только новый маленький набор весов. Градиенты считаем только по нему, и на этом сильно экономим.
На практике используется буквально всё, везде и сразу
Типичный конфиг:
"model": {
"attn_implementation": "flash_attention_2", // вы поняли
"load_in_4bit": true, // квантование модели
...
},
"trainer": {
"gradient_accumulation_steps": 32, // аккумуляция градиентов
"bf16": true, // смешанная точность
"optim": "adamw_8bit", // квантование оптимизатора
"gradient_checkpointing": true, // чекпоинты активаций
...
},
"lora": {...} // адаптерыPlease open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Katser
Я уже писал про библиотеку TSAD (Time Series Analysis for Simulation of Technological Processes) в канале, но отстраненно, как автор канала. Дам пару комментариев как соавтор и один из контрибьюторов проекта.
· Проект начинался как time series anomaly detection (поэтому TSAD), но потом разросся до time series analysis for diagnostics, и, наконец, решили не ограничиваться диагностикой, а пойти во все задачи промышленности (прогнозирование, оптимизация)
· Идея появилась, потому что просто не было open-source промышленных библиотек, а проблемы с предварительной обработкой данных, EDA, оценкой алгоритмов были
· Текущая цель библиотеки — сделать набор пайплайнов для AutoML в промышленности
· Функционала не достает, но есть несколько супер полезных функций/модулей, уже хорошо проработанных и реализованных:
1️⃣ наборы данных для разных задач промышленности (RUL, CPD, outlier detection и др.)
2️⃣ проработанная архитектура пайплайнов (самих пайплайнов бы побольше), что позволяет контрибьютить и разрабатывать сами пайплайны решения задач
3️⃣ реализованные сложные метрики оценки типа NAB scoring algorithm, вот описание в документации. Их уже несколько лет активно используем в своих реальных проектах
Можно выдергивать и пользоваться этим функционалом в своих проектах.
· Проект начинался как time series anomaly detection (поэтому TSAD), но потом разросся до time series analysis for diagnostics, и, наконец, решили не ограничиваться диагностикой, а пойти во все задачи промышленности (прогнозирование, оптимизация)
· Идея появилась, потому что просто не было open-source промышленных библиотек, а проблемы с предварительной обработкой данных, EDA, оценкой алгоритмов были
· Текущая цель библиотеки — сделать набор пайплайнов для AutoML в промышленности
· Функционала не достает, но есть несколько супер полезных функций/модулей, уже хорошо проработанных и реализованных:
Можно выдергивать и пользоваться этим функционалом в своих проектах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Kali Novskaya
🌸Подборка NeurIPS: LLM-статьи 🌸
#nlp #про_nlp #nlp_papers
Вот и прошёл NeurIPS 2024, самая большая конференция по машинному обучению. Ниже — небольшая подборка статей, которые мне показались наиболее интересными. Про некоторые точно стоит сделать отдельный обзор.
Агенты
🟣 StreamBench: Towards Benchmarking Continuous Improvement of Language Agents arxiv
🟣 SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering arxiv
🟣 AgentBoard: An Analytical Evaluation Board of Multi-turn LLM Agents arxiv
🟣 DiscoveryWorld: A Virtual Environment for Developing and Evaluating Automated Scientific Discovery Agents arxiv
Бенчмарки
🟣 DevBench: A multimodal developmental benchmark for language learning arxiv
🟣 CVQA: Culturally-diverse Multilingual Visual Question Answering Benchmark arxiv
🟣 LINGOLY: A Benchmark of Olympiad-Level Linguistic Reasoning Puzzles in Low-Resource and Extinct Languages arxiv
🟣 CLUE - Cross-Linked Unified Embedding for cross-modality representation learning arxiv
🟣 EmoBench: Evaluating the Emotional Intelligence of Large Language Models arxiv
LLM
🟣 The PRISM Alignment dataset: What Participatory, Representative and Individualised Human Feedback Reveals About the Subjective and Multicultural Alignment of Large Language Models arxiv
🟣 UniGen: A Unified Framework for Textual Dataset Generation via Large Language Models arxiv
🟣 A Watermark for Black-Box Language Models arxiv
#nlp #про_nlp #nlp_papers
Вот и прошёл NeurIPS 2024, самая большая конференция по машинному обучению. Ниже — небольшая подборка статей, которые мне показались наиболее интересными. Про некоторые точно стоит сделать отдельный обзор.
Агенты
Бенчмарки
LLM
Please open Telegram to view this post
VIEW IN TELEGRAM
arXiv.org
StreamBench: Towards Benchmarking Continuous Improvement of Language Agents
Recent works have shown that large language model (LLM) agents are able to improve themselves from experience, which is an important ability for continuous enhancement post-deployment. However,...