Интересное что-то
517 subscribers
2.72K photos
253 videos
139 files
4.52K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Извините! Я почему вредный был? Потому что у меня cloudpathlib не было! А теперь я сразу добреть начну. И какую-нибудь папку на s3 заведу. Чтоб жить веселее. Ты домой приходишь, и удобно файлы на s3 кладешь… Э-эх!


Вечно спотыкался об интерфейс boto3. Как-то там не по-питоновски всё. А я pathlib.Path люблю.

Вот и попробовал cloudpathlib, который дает интерфейс Path для s3 (а также gs и azure). Понравилось. Теперь и Вам советую

Еще он хорошо комбинируется с тредингом, если надо много файликов загрузить или скачать. Сильно бодрее в моем случае грузил

#tool
Forwarded from Reliable ML
Reasoning vs. Instruct (GPT) models
Перевод: о различиях в применении Reasoning и GPT моделей

Решили сделать краткий перевод недавней статьи от Open.AI про различия в применении reasoning (o-series) и GPT-моделей. Тема горячая, иметь идеи на эту тему в понятном виде под рукой кажется полезным. Если текст наберет много лайков, будем и дальше публиковать подобные посты с тегом "перевод" - на актуальные темы.

Ключевые различия Instruct (GPT) vs. Reasoning LLM

Reasoning (в случае Open.AI - o-series) и привычные нам чат-модели или instruct-модели (в случае Open.AI - GPT) решают разные задачи и требуют разных подходов.

- Reasoning-модели - планировщики. Созданы для сложных задач, требующих глубокого анализа, стратегического планирования и работы с большими объемами неоднозначной информации. Они медленнее, но точнее Instruct LLM. Идеальны для областей, где важны точность и надежность: математика, наука, инженерия, финансы, юриспруденция.

- GPT-модели (и другие instruct-модели) - рабочие лошадки. Оптимизированы для быстрого выполнения четко определенных задач и подходят для случаев, где важны скорость и низкая стоимость. Меньше подходят для сложных, многошаговых задач.

Успешные кейсы использования Reasoning-моделей (на примере o-series)

- Работа с неоднозначными задачами. Модели задают уточняющие вопросы и обрабатывают сложные документы. Hebbia использует o1 для анализа сложных платежных ограничений в кредитных соглашениях.

- Поиск иголки в стоге сена. Модели находят важные детали в огромных объемах неструктурированной информации. Endex использовал o1 значимой информации в документах компании (контракты, договоры аренды, и проч.), которая может повлиять на сделку о ее покупке. Модель выявила важное положение о «смене контроля» в сносках: если бы компания была продана, ей пришлось бы выплатить кредит в размере $75 млн.

- Выявление взаимосвязей и выводов из сложносоставных данных. Модели находят связи между документами и делают выводы на основе контекста. Blue J улучшила производительность в 4 раза, используя o1 для налоговых исследований, когда нужно было прийти к логическим выводам, которые не были очевидны ни в одном отдельном документе. BlueFlame AI применила o1 для анализа влияния фандрайзинга на существующих акционеров - получив в итоге корректную расчетную таблицу на основе множества документов, на создание которых у финаналитиков ушло бы существенно больше времени.

- Многошаговое планирование. O-series выступает как «планировщик», разбивая задачи на шаги и делегируя их GPT для выполнения. Lindy.AI использует o1 для автоматизации рабочих процессов. Модель забирает информацию из календаря или эл. почты, а затем автоматически помогает пользователю планировать встречи, отправлять e-mail-ы, и др. Декомпозиция и планирование задач были полностью переключены на o1.

- Визуальный анализ. O1 лучше GPT-4o справляется с интерпретацией сложных изображений (графики, чертежи). SafetyKit достигла 88% точности в классификации изображений с помощью o1 - в задаче проверки комплаенс-рисков для миллионов товаров в Интернете, включая подделки ювелирных изделий класса люкс, исчезающие виды и контролируемые вещества.

- Рецензирование и улучшение кода. Модели эффективно анализируют код, находя ошибки, которые могут пропустить люди. CodeRabbit увеличил конверсию в 3 раза, перейдя на o-series для ревью кода - во многом за счет того, что o1 способен обнаруживать ошибки и несоответствия между множеством файлов в репозитории. Кроме того, o1 на голову выше GPT при помощи разработчикам в проектировании сложных систем.

- Оценка и бенчмаркинг. O-series используется для проверки качества ответов других моделей. Braintrust улучшила F1-оценку с 0.12 до 0.74, используя o1 для оценки ответов GPT-4o.

Для нас будет очень ценно, если в комментах вы напишете, насколько такой пост полезен.

Ваш @Reliable ML

#tech #business #перевод #reliable_ml #llm
Forwarded from ML Baldini • Nikita Boyandin (Nikita Boyandin)
😚Что такое kaggle и с чем его едят?)

Поскольку много новых людей в канале📈, хочется рассказать о том, чем я периодически живу и почему уйти в хакатоны на 2-3 месяца выглядит нормальным🤑.

🤓Kaggle - это платформа для проведения хакатонов и обучения, с огромным количеством ноутбуков и датасетов, а также огромным комьюнити. Причём каждый на этой платформе может найти свое место относительно уровня подготовки, так как здесь есть огромное множество курсов(все на английском, так что еще и язык прокачаете) и большое количество ноутбуков других людей для постоянного развития своих навыков🍀. И так давайте рассмотрим небольшой roadmap для вхождения на kaggle с максимальной отдачей для вас.

1️⃣Понимание основных библиотек
Чтобы там не было, но без pandas и numpy никуда, так что предлагаю парочку курсов на stepik.
Курс по pandas
Курс по numpy
Что в первом курсе, что во втором, не советую проходить полностью, скорее просто пролистать и поделать задания
Курс kaggle по Pandas

Также было бы славно иметь минимальное понимание по теорверу и матстату, от себя могу посоветовать книжку "Статистика и котики"💪🥺

2️⃣Курсы на kaggle для понимания как работает платформа
1. Intro to Machine Learning
2. Intermediate Machine Learning

3️⃣Далее, когда у вас уже есть некоторое понимание, что такое машинное обучение (если все еще что-то непонятно, то купите эту книжку), самое время переходить к практике. Для этого я всем советую курс Алерона(тимлид Додо и вообще классный чувак) под названием "Введение в соревновательный Data Science"🐱. Куча практики, множество ноутбуков, классные гости и неплохое объяснение материала. Также вы в подарок получаете классное комьюнити и возможность найти команду)))😇

4️⃣Теперь вы прокаченные слоны и дальше у вас есть 2 пути. Первое, это понять машинное обучение более фундаментально, понемногу заходить в глубокое обучение. Для этого можно прочитать хендбук по мл от яндекса или пройти курс по мл от вышки. В любом случае, вам придётся это делать перед собеседованиями и если у вас уже есть какие то пет проекты, то все можно пройти вообще месяца за 4⭐️

Или второй путь, который подойдёт тем, кто пока что хочет учиться, а не работать по 40 часов в неделю-это хакатоны на kaggle с призами💲. Они там на любой вкус и на все тематики. Как самый первый хакатон можно будет взять обучающий, которых на kaggle множество👽)

💗В общем, пишите в комментарии, как вам пост, и что бы вы ещё хотели увидеть в этом канале?)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from ML Baldini • Nikita Boyandin (Nikita Boyandin)
#ХабрНедели💪

В данной подборке будут включены лучшие статьи недели на хабре для нашего профиля(ml и python). Пишите также какие статьи вы еще читали на этой неделе💗

Машинное обучение:
1. Архитектура RAG: полный гайд
2. Архитектура RAG: часть вторая — Advanced RAG
3. Подготовка текста к машинному переводу на разные языки
4. Как мы собираем данные для обучения Kandinsky
5. Учим нейронную сеть генерировать текст

Повестка дня и полезные статьи:
1. Блокировка Docker Hub для России. Без паники разбираемся как работать дальше

Просто интересно почитать:
1. Метаверс ВТБ: как мы развиваем собственную платформу коммуникаций будущего
2. «Он среди нас»: синдром самозванца как один из самых распространенных недугов у айтишников
3. История подростка, взломавшего Twitter и укравшего миллионы
4. Матричный шрифт с анимацией на микроконтроллере

И поставьте реакцию, если дочитали до конца🤑
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from whargarbl
Часть 1. Прыжок веры. Waifu-2b

Итак, в декабре выходит долгожданная Sana. Мы бросаемся ее файнтюнить и понимаем что нас наебали.
- модель натренена в fp16 и банально падает по NaN (не хватает размерности)
- DC AE оказался как говорят американцы - результаты выглядят весьма спорными. По-русски вае курежит не только глаза и роты, но и лица с особымым цинизмом (на фоне чего особенно смешно выглядят комментарии лоуренса что их вае в отличие от остальных вае не деформирует лица)
- генерации выглядят крайне однотипно, даже на разных сидах (мы думали что дело в бедности ембедингов Гемма)
- трейн на квадратах - нельзя понять как хорошо модель адаптирует резолюшен

Стас заводит ишью с предложением перетренить в бф16 для повышение стабильности. Я прошу добавить кеширование и трейн в мультирезолюшен. Мы находим друг друга и объединяем усилия. Паралельно Саша не бросает надежды получить что то адекватное из sd35m (зря-зря)

Мы анализируем недостатки сана и пробуем их исправить:
- Стас пробует трейн на ембедингах сиглип
- Я тестирую разные ВАЕ и выбираю аура дифужен
- Саша разочаровавыется в сд35 и подключается к экспам с трейном сана (в тот момент я верю что нам нужен адафактор для стабилизации трейна, Саша адаптирует его)
- получаем промежуточные успешные результаты - модель тренится удивительно быстро как оказалось только в начале
Тем не менее сиглип ограничен небольшим количеством токенов и мы ищем более лучший ембединг. Как раз выходит МексМа-СигЛип от гугл с размером 512 токенов, с поддержкой 80 языков. Никем не протестированный. Стас помогает адаптировать модель и мы готовы к ретрейну Сана с нуля

Иду к Стену и прошу несколько тысяч долларов на эксп - в тот момент я уверен что их хватит, ориентируясь на скорость трейна модели на начальных этапах

Стен дает нам 2.5к на трейн и мы судорожно дебажим паралельно экспериментируя - стремясь максимально ускорить трейн. В итоге мы арендуем 2 H100 и запускаем трейн на НГ каникулы и уходим с чистой совесть бухать

При этом в качестве самой модели мы оставляем SanaTransformer2d - предполагая что в команде экс пиксарт (их же купил Нвидиа в которой работает Теро Карас!) работают не совсем раздолбаи и они обширно тестировали различные архитектуры перед тем как остановиться на этой (еще один прыжок веры - на этот раз в обрыв)

Через три недели получаем мультиязычную модель сомнительного качества
https://huggingface.co/AiArtLab/waifu-2b

( в карточке модели архитектура и код инференса)

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

Бэд ньюс: модель очень плохо адаптирует анатомию - переходим на трейн на "квадратах" чтобы получить хоть какой то результат - прототип. И понимаем что мы не можем сказать ETA когда модель станет лучше SDXL

Тем временем деньги заканчиваются. Начинаю разбираться как собственно работают эмбединги и понимаю что мы натренили не на мексма-сиглип - а только на мексма, лол. Что неплохо (80 языков из коробки) но можно лучше - достаточно сиглип привести в латентное пространство текста - чтобы получить абилку генерации по картинке нет.

Забавно что мы были чуть ли не первыми кто вообще взял мексма и получилось забавно:

Модель не генерит банан в форме осьминога, но генерит банан в форме octopus

Также например енот на мотоцикле - больше похож на крысу на велосипеде - но тем не менее.

Итого. Сломали стереотипы:

- Протестировали мультиязычность и доказали работоспособность. Получили отличный мультиязычный промпт фолоу - без жирных моделей а ля Т5!
- Затренили модель на 2 миллионах картинок - вместо 2 миллиардов
- Трейн занял примерно 3 недели, и обошелся в $3к

@Stangle - спасибо что поверил в трех дебилов!
@drimeF0 @ssssssssssssssssssssssssps @recoilme

Главное: мы поверили в себя

В следующей серии: проектируем свою архитектуру на этот раз без Сана
Forwarded from Борис_ь с ml
Тренд безопасности AI-агентов
#иб_для_ml

Что есть сейчас, и к чему идет этот тренд? Развивается, но почему?
Захотелось рассказать, что думаю на этот счет, и услышать ваше мнение. Так что ниже будет опрос)

Что такое AI-агенты?
Про AI-агентов говорят очень много, но давайте взглянем в суть вещей. Что это? Есть широчайшие расхождения в данных понятиях, и пространные определения, но сойдемся на главном.
Первое: AI-агент - не GenAI-модель, это код (в обычном его понимании, да), который использует GenAI-модель.
Второе: у AI-агента может и не быть механизмов памяти, планирования, рефлексии и даже в целом какой-то целеустановки (читай, роли).
Третье: что у агента точно должно быть, так это возможность вызвать какие-то функции на основании сгенерированного GenAI-моделью ответа. При чем эти действия не должны в 100% случаев валидироваться людьми, иначе это уже не агент.

В чем риск AI-агентов?
Именно благодаря действиям к двум существующим эфемерным рискам добавится третий, уже далеко не эфемерный.
Первые два - это репутационный ущерб организации, если сервис с LLM торчит наружу, и нарушение бизнес-процессов при нарушении ожидаемой от ответов GenAI-модели логики. И то, и другое, может произойти как вследствие недостаточной AI Safety (модель сама выдала случайно некорректный ответ), так и в следствие недостаточной AI Security (нарушитель вызвал генерацию некорректного ответа).
А вот третий риск, специфичный для AI-агентов - это его возможность совершать действия, которые могут повлечь негативные последствия. И веер угроз тут огромен - от выгрузки за пределы контура конфиденциальной информации до загрузки зараженного файла внутрь этого контура, от случайного удаления файлов до перевода средств не на тот счет и не в том размере.

В заключение
Известно, что GenAI-модели как продукт - убыточная история, история без KPI. Затраты на разработку, дообучение (не говоря уж про претрейн) очень тяжело покрыть с доходов при интеграции модели в какие-то сервисы. Но, с точки зрения имиджа и в надежде на развитие прикладного использования, вложения продолжаются. С появлением же у GenAI-моделей способности влиять на мир вокруг, все изменится. Сначала (в 2025 году) появятся игрушечные агенты, которые будильник по расписанию ставят и товары по ТЗ в браузере находят. А спустя еще год, максимум два - они смогут и покупать найденные товары (и продавать ваши будильники, хехе...), иными словами - смогут манипулировать ограниченными ресурсами. И весь арсенал промпт-атак на GenAI обретет смысл, киллчейн достроится до конца. Тогда и начнется раздолье.
А про то, какие будут промпт-атаки, и почему произойдут первые инциденты в области AI Security, я расскажу в следующем посте)



P. S. Не удержался я все-таки, приведу одно хорошее исчерпывающее определение агента, чтобы было.
ИИ-агент - система на базе GenAI, способная планировать и совершать автономные действия во внешней среде, реагировать на изменения и взаимодействовать с человеком или другими агентами для достижения поставленных целей.

При чем интересно - одна половина определения (про автономность и достижение поставленных целей) - это определение просто агента из мат. моделирования 1970х годов. А другая половина (про планирование, реагирование и взаимодействие) - это уже интеллектуальный агент, концепция которых была развита М. Вулдриджем в 1990х годах.
Forwarded from ИИгорь R&D
Rollin et al. A new look at the Heston characteristic function.

Реально шок, 2 раза открывал статью и закрывал, только на 3 раз не побоялся и попробовал все-таки прочитать. Не зря! Тут есть формула для совместной хар. функции для Хестона. А с ней можно посчитать марковскую проекцию процесса Хестона. А это прям ground truth локальная волатильность, если данные по опционам приходят из модели Хестона. Можно бенчмаркать всякие алгоритмы интерполяции и экстраполяции поверхности волатильности и преводу IV в LV.
Forwarded from Aspiring Data Science (Anatoly Alekseev)
#featureengineering #pysr #symbolicregression

На самом деле, подход символьной регрессии перекликается с моей идеей использования информационно-теоретических метрик.

Читаю сейчас статью pysr, у них интересный подход с генетиком над признаками, отобранными бустингом.

Очень хочу сравнить их результаты со своими на том же игрушечном примере.

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

Ps. ДА! pysr отлично справился с моим примером!

import numpy as np, pandas as pd

n =100_000
a = np.random.rand(n)
b = np.random.rand(n)
c = np.random.rand(n)
d = np.random.rand(n)
e = np.random.rand(n)
f = np.random.rand(n)

y=a**2/b+f/5+np.log(c)*np.sin(d)

df = pd.DataFrame(
{
"a": a,
"b": b,
"c": c,
"d": d,
"e": e,

}
)

from pysr import PySRRegressor

model = PySRRegressor(
maxsize=20,
niterations=40, # < Increase me for better results
binary_operators=["+", "*"],
unary_operators=[
"cos",
"exp",
"log",
"sin",
"inv(x) = 1/x",
# ^ Custom operator (julia syntax)
],
extra_sympy_mappings={"inv": lambda x: 1 / x},
# ^ Define operator for SymPy as well
elementwise_loss="loss(prediction, target) = (prediction - target)^2",
# ^ Custom loss function (julia syntax)
)

model.fit(df, y)

model.get_best()


после ~6 минут работы

complexity 14
loss 0.003329
score 0.947915
sympy_format a**2/b + log(c)*sin(d) + 0.09998281
Forwarded from Aspiring Data Science (Anatoly Alekseev)
#featureengineering #pysr #symbolicregression #todo

Библиотека pysr заслуживает пристального внимания. Она настолько хорошо сделана, глубока и функциональна, что просто загляденье.

Полностью готова к внедрению в бой, поддерживает оптимизации, кластера, логгинг в тензорборд, пре-отбор признаков с помощью ML, сохранение прогресса в файл и тёплый старт.

Зацените функциональность и количество опций:

model = PySRRegressor(
populations=8,
# ^ Assuming we have 4 cores, this means 2 populations per core, so one is always running.
population_size=50,
# ^ Slightly larger populations, for greater diversity.
ncycles_per_iteration=500,
# ^ Generations between migrations.
niterations=10000000, # Run forever
early_stop_condition=(
"stop_if(loss, complexity) = loss < 1e-6 && complexity < 10"
# Stop early if we find a good and simple equation
),
timeout_in_seconds=60 * 60 * 24,
# ^ Alternatively, stop after 24 hours have passed.
maxsize=50,
# ^ Allow greater complexity.
maxdepth=10,
# ^ But, avoid deep nesting.
binary_operators=["*", "+", "-", "/"],
unary_operators=["square", "cube", "exp", "cos2(x)=cos(x)^2"],
constraints={
"/": (-1, 9),
"square": 9,
"cube": 9,
"exp": 9,
},
# ^ Limit the complexity within each argument.
# "inv": (-1, 9) states that the numerator has no constraint,
# but the denominator has a max complexity of 9.
# "exp": 9 simply states that `exp` can only have
# an expression of complexity 9 as input.
nested_constraints={
"square": {"square": 1, "cube": 1, "exp": 0},
"cube": {"square": 1, "cube": 1, "exp": 0},
"exp": {"square": 1, "cube": 1, "exp": 0},
},
# ^ Nesting constraints on operators. For example,
# "square(exp(x))" is not allowed, since "square": {"exp": 0}.
complexity_of_operators={"/": 2, "exp": 3},
# ^ Custom complexity of particular operators.
complexity_of_constants=2,
# ^ Punish constants more than variables
select_k_features=4,
# ^ Train on only the 4 most important features
progress=True,
# ^ Can set to false if printing to a file.
weight_randomize=0.1,
# ^ Randomize the tree much more frequently
cluster_manager=None,
# ^ Can be set to, e.g., "slurm", to run a slurm
# cluster. Just launch one script from the head node.
precision=64,
# ^ Higher precision calculations.
warm_start=True,
# ^ Start from where left off.
turbo=True,
# ^ Faster evaluation (experimental)
extra_sympy_mappings={"cos2": lambda x: sympy.cos(x)**2},
# extra_torch_mappings={sympy.cos: torch.cos},
# ^ Not needed as cos already defined, but this
# is how you define custom torch operators.
# extra_jax_mappings={sympy.cos: "jnp.cos"},
# ^ For JAX, one passes a string.
)


И на её базе, как понимаю, уже сделаны отличные исследования.
Надо изучать доку.

И хорошо бы её потестить для FE, на каких-то разумных настройках глубины/сложности/времени. И датасетах с в т.ч. большим количеством фичей.