Forwarded from ИИгорь R&D
Rollin et al. A new look at the Heston characteristic function.
Реально шок, 2 раза открывал статью и закрывал, только на 3 раз не побоялся и попробовал все-таки прочитать. Не зря! Тут есть формула для совместной хар. функции для Хестона. А с ней можно посчитать марковскую проекцию процесса Хестона. А это прям ground truth локальная волатильность, если данные по опционам приходят из модели Хестона. Можно бенчмаркать всякие алгоритмы интерполяции и экстраполяции поверхности волатильности и преводу IV в LV.
Реально шок, 2 раза открывал статью и закрывал, только на 3 раз не побоялся и попробовал все-таки прочитать. Не зря! Тут есть формула для совместной хар. функции для Хестона. А с ней можно посчитать марковскую проекцию процесса Хестона. А это прям ground truth локальная волатильность, если данные по опционам приходят из модели Хестона. Можно бенчмаркать всякие алгоритмы интерполяции и экстраполяции поверхности волатильности и преводу IV в LV.
Forwarded from Data notes
Сделал обзор на различные методы биннинга
Medium
Binning techniques overview
Binning techniques remain one of the most underrated approaches either in feature engineering or machine learning models regularisation…
Forwarded from Aspiring Data Science (Anatoly Alekseev)
#featureengineering #pysr #symbolicregression
На самом деле, подход символьной регрессии перекликается с моей идеей использования информационно-теоретических метрик.
Читаю сейчас статью pysr, у них интересный подход с генетиком над признаками, отобранными бустингом.
Очень хочу сравнить их результаты со своими на том же игрушечном примере.
Для естественных наук приложение прямое, для машинного обучения, естественно, приложение может быть в создании новых хороших признаков.
Ps. ДА! pysr отлично справился с моим примером!
после ~6 минут работы
На самом деле, подход символьной регрессии перекликается с моей идеей использования информационно-теоретических метрик.
Читаю сейчас статью 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
Telegram
Aspiring Data Science
#featureengineering #featureselection #diogenes
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(
{
…
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(
{
…
Forwarded from Aspiring Data Science (Anatoly Alekseev)
#featureengineering #pysr #symbolicregression #todo
Библиотека pysr заслуживает пристального внимания. Она настолько хорошо сделана, глубока и функциональна, что просто загляденье.
Полностью готова к внедрению в бой, поддерживает оптимизации, кластера, логгинг в тензорборд, пре-отбор признаков с помощью ML, сохранение прогресса в файл и тёплый старт.
Зацените функциональность и количество опций:
И на её базе, как понимаю, уже сделаны отличные исследования.
Надо изучать доку.
И хорошо бы её потестить для FE, на каких-то разумных настройках глубины/сложности/времени. И датасетах с в т.ч. большим количеством фичей.
Библиотека 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, на каких-то разумных настройках глубины/сложности/времени. И датасетах с в т.ч. большим количеством фичей.
Forwarded from Дмитрий Масякин
Выжимка по каждой лекции https://miro.com/app/board/uXjVIdbackI=/?share_link_id=992426564760
miro.com
Graphs
Forwarded from Artem Ryblov’s Data Science Weekly
Machine Learning in Production by Carnegie Mellon University
This is a course for those who want to build software products with machine learning, not just models and demos. We assume that you can train a model or build prompts to make predictions, but what does it take to turn the model into a product and actually deploy it, have confidence in its quality, and successfully operate and maintain it at scale?
The course is designed to establish a working relationship between software engineers and data scientists: both contribute to building ML-enabled systems but have different expertise and focuses. To work together they need a mutual understanding of their roles, tasks, concerns, and goals and build a working relationship. This course is aimed at software engineers who want to build robust and responsible products meeting the specific challenges of working with ML components and at data scientists who want to understand the requirements of the model for production use and want to facilitate getting a prototype model into production; it facilitates communication and collaboration between both roles. The course is a good fit for student looking at a career as an ML engineer. The course focuses on all the steps needed to turn a model into a production system in a responsible and reliable manner.
It covers topics such as:
- How to design for wrong predictions the model may make?
How to assure safety and security despite possible mistakes? How to design the user interface and the entire system to operate in the real world?
- How to reliably deploy and update models in production?
How can we test the entire machine learning pipeline? How can MLOps tools help to automate and scale the deployment process? How can we experiment in production (A/B testing, canary releases)? How do we detect data quality issues, concept drift, and feedback loops in production?
- How to scale production ML systems?
How do we design a system to process huge amounts of training data, telemetry data, and user requests? Should we use stream processing, batch processing, lambda architecture, or data lakes?
- How to test and debug production ML systems?
How can we evaluate the quality of a model’s predictions in production? How can we test the entire ML-enabled system, not just the model? What lessons can we learn from software testing, automated test case generation, simulation, and continuous integration for testing for production machine learning?
- Which qualities matter beyond a model’s prediction accuracy?
How can we identify and measure important quality requirements, including learning and inference latency, operating cost, scalability, explainablity, fairness, privacy, robustness, and safety? Does the application need to be able to operate offline and how often do we need to update the models? How do we identify what’s important in a ML-enabled product in a production setting for a business? How do we resolve conflicts and tradeoffs?
How to work effectively in interdisciplinary teams?
How can we bring data scientists, software engineers, UI designers, managers, domain experts, big data specialists, operators, legal council, and other roles together and develop a shared understanding and team culture?
Link: Course
Navigational hashtags: #armcourses
General hashtags: #ml #dl #machinelearning #deeplearning #mlsystemdesign #mlops #mlsysdes
@data_science_weekly
This is a course for those who want to build software products with machine learning, not just models and demos. We assume that you can train a model or build prompts to make predictions, but what does it take to turn the model into a product and actually deploy it, have confidence in its quality, and successfully operate and maintain it at scale?
The course is designed to establish a working relationship between software engineers and data scientists: both contribute to building ML-enabled systems but have different expertise and focuses. To work together they need a mutual understanding of their roles, tasks, concerns, and goals and build a working relationship. This course is aimed at software engineers who want to build robust and responsible products meeting the specific challenges of working with ML components and at data scientists who want to understand the requirements of the model for production use and want to facilitate getting a prototype model into production; it facilitates communication and collaboration between both roles. The course is a good fit for student looking at a career as an ML engineer. The course focuses on all the steps needed to turn a model into a production system in a responsible and reliable manner.
It covers topics such as:
- How to design for wrong predictions the model may make?
How to assure safety and security despite possible mistakes? How to design the user interface and the entire system to operate in the real world?
- How to reliably deploy and update models in production?
How can we test the entire machine learning pipeline? How can MLOps tools help to automate and scale the deployment process? How can we experiment in production (A/B testing, canary releases)? How do we detect data quality issues, concept drift, and feedback loops in production?
- How to scale production ML systems?
How do we design a system to process huge amounts of training data, telemetry data, and user requests? Should we use stream processing, batch processing, lambda architecture, or data lakes?
- How to test and debug production ML systems?
How can we evaluate the quality of a model’s predictions in production? How can we test the entire ML-enabled system, not just the model? What lessons can we learn from software testing, automated test case generation, simulation, and continuous integration for testing for production machine learning?
- Which qualities matter beyond a model’s prediction accuracy?
How can we identify and measure important quality requirements, including learning and inference latency, operating cost, scalability, explainablity, fairness, privacy, robustness, and safety? Does the application need to be able to operate offline and how often do we need to update the models? How do we identify what’s important in a ML-enabled product in a production setting for a business? How do we resolve conflicts and tradeoffs?
How to work effectively in interdisciplinary teams?
How can we bring data scientists, software engineers, UI designers, managers, domain experts, big data specialists, operators, legal council, and other roles together and develop a shared understanding and team culture?
Link: Course
Navigational hashtags: #armcourses
General hashtags: #ml #dl #machinelearning #deeplearning #mlsystemdesign #mlops #mlsysdes
@data_science_weekly
Forwarded from Valuable AI / Валентин Малых
я думаю, многие знают про кнопку Google Академии, если в двух словах, то это плагин для Chrome, который ускоряет поиск статей, если у вас есть текстовая библиографическая ссылка (как на первой картинке); я им пользуюсь уже много лет, он делает поиск статей гораздо более удобным
а недавно коллега рассказал мне про новую фичу: Google Scholar PDF Reader, этот плагин подменяет стандартный просмотрщик PDF и автоматизирует поиск статей - достаточно нажать на ссылку прямо в тексте, и плагин уже найдет ссылку в Scholar (вторая картинка); это прям сильно удобнее, чем предыдущий плагин, это как использовать приложение для вызова такси вместо того, чтобы звонить по телефону; в общем, всем рекомендую
а недавно коллега рассказал мне про новую фичу: Google Scholar PDF Reader, этот плагин подменяет стандартный просмотрщик PDF и автоматизирует поиск статей - достаточно нажать на ссылку прямо в тексте, и плагин уже найдет ссылку в Scholar (вторая картинка); это прям сильно удобнее, чем предыдущий плагин, это как использовать приложение для вызова такси вместо того, чтобы звонить по телефону; в общем, всем рекомендую
Forwarded from Александра Сытник
ML Training HSE TS.pdf
6.2 MB
добрый день!
материалы публикуются на сайте: https://cs.hse.ru/olymp/ml
презентацию со вчерашнего занятия также прикладываю
материалы публикуются на сайте: https://cs.hse.ru/olymp/ml
презентацию со вчерашнего занятия также прикладываю
Forwarded from Душный NLP
Сбалансированный метод семплирования Min-p
Min-p — метод семплирования, который, по словам его создателей, позволяет найти баланс между креативностью и связностью ответов. Сегодня разберём статью с описанием этого подхода.
При использовании отсекающего семплирования вроде top-p или top-k, на каждом шаге генерации после отсечения может всё ещё оставаться ненужный нам «хвост» из маловероятных токенов. Это приводит к тому, что вероятность допустить ошибку на следующем шаге генерации — не нулевая. А токен — не воробей, вылетит — не поймаешь. Из-за этого может пострадать весь ответ.
Это происходит потому что top-p и top-k предполагают применение жёсткого порога отсечения, который никак не зависит от шага генерации и уверенности модели в следующем токене. А подобрать универсальный порог на все случаи жизни невозможно.
Метод Min-p пытается решить эту проблему с помощью динамической настройки порога в зависимости от токена с самой высокой вероятностью. Если модель уверена в токене, то порог обрезки будет высокий. Если сомневается — то из распределения возьмётся больше токенов.
Как это работает:
1. выбирается токен с наибольшей вероятностью — Pmax;
2. гиперпараметр метода — базовый порог вероятности, Pbase (авторы рекомендуют выбирать между 0,05 и 0,1) — умножается на Pmax, и получается порог отсечки — Pscaled. По нему отсекаются токены, всё, что ниже, выкидывается;
3.формируется пул для семплирования из оставшихся токенов;
4. вероятности нормализуются.
Получается, что на каждом шаге генерации порог отсечки может меняться. При этом ресурсозатраты метода не намного выше, чем у Top-p.
Преимущество Min-p в том, что этот метод подходит для разных температур — даже при высоком значении в 3-5. Важный момент: температура должна применяться после Min-p. Авторы не рекомендуют использовать Min-p с другими методами семплирования, хотя они и могут сочетаться.
Авторы тестировали метод на Mistral 7B в трёх бенчмарках: GPQA Main, GSM8K CoT — которые проверяют конкретные знания — и AlpacaEval Creative Writing. На первых двух бенчмарках Min-p может показывать результаты чуть хуже, чем Top-p при низких температурах. Зато в AlpacaEval Creative Writing, где осуществляется SbS-сравнение на креативных задачах, он строго лучше.
Разбор подготовил❣ Алексей Малафеев
Душный NLP
Min-p — метод семплирования, который, по словам его создателей, позволяет найти баланс между креативностью и связностью ответов. Сегодня разберём статью с описанием этого подхода.
При использовании отсекающего семплирования вроде top-p или top-k, на каждом шаге генерации после отсечения может всё ещё оставаться ненужный нам «хвост» из маловероятных токенов. Это приводит к тому, что вероятность допустить ошибку на следующем шаге генерации — не нулевая. А токен — не воробей, вылетит — не поймаешь. Из-за этого может пострадать весь ответ.
Это происходит потому что top-p и top-k предполагают применение жёсткого порога отсечения, который никак не зависит от шага генерации и уверенности модели в следующем токене. А подобрать универсальный порог на все случаи жизни невозможно.
Метод Min-p пытается решить эту проблему с помощью динамической настройки порога в зависимости от токена с самой высокой вероятностью. Если модель уверена в токене, то порог обрезки будет высокий. Если сомневается — то из распределения возьмётся больше токенов.
Как это работает:
1. выбирается токен с наибольшей вероятностью — Pmax;
2. гиперпараметр метода — базовый порог вероятности, Pbase (авторы рекомендуют выбирать между 0,05 и 0,1) — умножается на Pmax, и получается порог отсечки — Pscaled. По нему отсекаются токены, всё, что ниже, выкидывается;
3.формируется пул для семплирования из оставшихся токенов;
4. вероятности нормализуются.
Получается, что на каждом шаге генерации порог отсечки может меняться. При этом ресурсозатраты метода не намного выше, чем у Top-p.
Преимущество Min-p в том, что этот метод подходит для разных температур — даже при высоком значении в 3-5. Важный момент: температура должна применяться после Min-p. Авторы не рекомендуют использовать Min-p с другими методами семплирования, хотя они и могут сочетаться.
Авторы тестировали метод на Mistral 7B в трёх бенчмарках: GPQA Main, GSM8K CoT — которые проверяют конкретные знания — и AlpacaEval Creative Writing. На первых двух бенчмарках Min-p может показывать результаты чуть хуже, чем Top-p при низких температурах. Зато в AlpacaEval Creative Writing, где осуществляется SbS-сравнение на креативных задачах, он строго лучше.
Разбор подготовил
Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM