Forwarded from Machinelearning
Python уже несколько лет уверенно лидирует среди языков программирования, а теперь стал ещё ближе к железу. На GTC 2025 NVIDIA объявила о полноценной интеграции Python в свой CUDA-стек.
Это значит, что писать код для GPU можно будет напрямую на Python — без погружения в C++ или Fortran. Как подчеркнул Стивен Джонс, архитектор CUDA, цель — сделать инструмент естественным для Python-разработчиков: «Это не перевод синтаксиса C на Python. Все должно работать так, как привыкли разработчики».
Раньше CUDA требовала глубокого понимания низкоуровневых языков и это здорово ограничивало аудиторию. Сейчас, когда Python стал стандартом в ML и DS, NVIDIA открывает двери для миллионов программистов. По данным The Futurum Group, в 2023 году CUDA использовали 4 миллиона человек — теперь их число может резко вырасти.
Техническая часть такая же обширная, как и ожидания этого события профессиональным сообществом.
cuPyNumeric
— аналог NumPy
, который переносит вычисления с CPU на GPU буквально заменой импорта.Но главное — новый подход к параллельным вычислениям. Вместо ручного управления потоками, как в C++, NVIDIA предлагает модель CuTile, которая оперирует массивами, а не отдельными элементами. Это упрощает отладку и делает код читаемым, не жертвуя скоростью. По сути, разработчики получают высокоуровневую абстракцию, скрывающую сложности железа, но сохраняющую гибкость.
Пока CuTile доступен только для Python, но в планах — расширение для C++. Это часть стратегии NVIDIA по поддержке новых языков: Rust и Julia уже на походе.
Python-сообщество уже может экспериментировать — например, интегрировать CUDA-ядра в PyTorch или вызывать привычные библиотеки. Теперь даже те, кто никогда не писал на C++, смогут использовать всю мощь GPU — осталось проверить, как это скажется на скорости создания прекрасных LLM светлого будущего.
@ai_machinelearning_big_data
#AI #ML #Python #CUDA #NVIDIA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
MLечный путь: митап, коммьюнити, знания
В программе:
- подбор инфраструктуры для ML под запрос бизнеса,
- деплой инференса в рентген-вагоне,
- развертывание Edge-AI в буквально (!) полевых условиях.
А ещё — активное участие вместо пассивного слушания: питчи, нетворкинг и мерч за лучшие идеи.
23 апреля в 18:00 приходите в офис Selectel в Санкт-Петербурге и подключайтесь онлайн.
Регистрация и детали по ссылке: https://slc.tl/tgb6o
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqwdfLKT
В программе:
- подбор инфраструктуры для ML под запрос бизнеса,
- деплой инференса в рентген-вагоне,
- развертывание Edge-AI в буквально (!) полевых условиях.
А ещё — активное участие вместо пассивного слушания: питчи, нетворкинг и мерч за лучшие идеи.
23 апреля в 18:00 приходите в офис Selectel в Санкт-Петербурге и подключайтесь онлайн.
Регистрация и детали по ссылке: https://slc.tl/tgb6o
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqwdfLKT
🎲 Задача со стажировки ШАД по вероятности: сколько участников добежит до вершины?
Представим забег 100 человек по узкому скользкому эскалатору. У каждого есть шанс поскользнуться и упасть — тогда он и все, кто бежал за ним, соскальзывают вниз. Добираются до вершины только те, кто был впереди последнего упавшего.
Мы можем настраивать вероятность падения p. Вопрос: какое значение `p` нужно выбрать, чтобы в среднем до вершины добегало ровно 20 человек из 100?
Обозначения:
N = 100: общее количество участников.
K = 20: желаемое среднее количество участников, достигших вершины.
p: вероятность того, что один участник поскользнется и упадет (эту величину нужно найти).
q = 1 - p: вероятность того, что один участник не упадет.
X: случайная величина, равная количеству участников, достигших вершины. Мы хотим, чтобы E[X] = 20.
Логика процесса:
Участник i (где i от 1 до 100) доберется до вершины тогда и только тогда, когда ни один из участников перед ним (включая его самого) не упадет.
То есть, участники 1, 2, ..., i должны успешно пройти свой путь.
Вероятность того, что участник 1 достигнет вершины = P(участник 1 не упал) = q.
Вероятность того, что участник 2 достигнет вершины = P(участник 1 не упал И участник 2 не упал) = q * q = q^2.
Вероятность того, что участник i достигнет вершины = P(участники 1, ..., i не упали) = q^i.
Математическое ожидание E[X]:
Математическое ожидание количества добравшихся до вершины можно вычислить как сумму вероятностей того, что каждый конкретный участник доберется до вершины. Это связано со свойством линейности математического ожидания и использованием индикаторных переменных (I_i = 1, если i-й участник добрался, 0 иначе; E[X] = E[sum(I_i)] = sum(E[I_i]) = sum(P(I_i=1))).
E[X] = P(участник 1 добрался) + P(участник 2 добрался) + ... + P(участник N добрался)
E[X] = q^1 + q^2 + q^3 + ... + q^N
Это сумма первых N членов геометрической прогрессии с первым членом a = q и знаменателем r = q. Формула суммы:
S_N = a * (1 - r^N) / (1 - r)
Подставляем наши значения:
E[X] = q * (1 - q^N) / (1 - q)
Решение уравнения:
Мы хотим, чтобы E[X] = K = 20, при N = 100.
20 = q * (1 - q^100) / (1 - q)
Вспомним, что q = 1 - p. Значит, 1 - q = p.
20 = (1 - p) * (1 - (1 - p)^100) / p
20p = (1 - p) * (1 - (1 - p)^100)
Это уравнение довольно сложно решить аналитически из-за члена (1 - p)^100. Однако мы можем сделать разумное предположение.
Приближение:
Поскольку мы ожидаем, что только 20 из 100 человек доберутся до вершины, это означает, что падения должны происходить относительно часто, и вероятность того, что все 100 человек не упадут (q^100), должна быть очень мала. То есть, q^100 ≈ 0.
Если q^100 пренебрежимо мало по сравнению с 1, то формула для E[X] упрощается:
E[X] ≈ q * (1 - 0) / (1 - q)
E[X] ≈ q / (1 - q)
Теперь подставим желаемое значение E[X] = 20:
20 ≈ q / (1 - q)
20 * (1 - q) ≈ q
20 - 20q ≈ q
20 ≈ 21q
q ≈ 20 / 21
Теперь найдем p:
p = 1 - q
p ≈ 1 - (20 / 21)
p ≈ 1 / 21
Проверка приближения:
Давайте проверим, насколько мало значение q^100 при q = 20/21:
q^100 = (20/21)^100 ≈ (0.95238)^100
Используя калькулятор, (20/21)^100 ≈ 0.0076. Это действительно мало по сравнению с 1.
Посчитаем E[X] с этим приближением:
E[X] = (20/21) * (1 - (20/21)^100) / (1 - 20/21)
E[X] = (20/21) * (1 - 0.0076) / (1/21)
E[X] = 20 * (1 - 0.0076)
E[X] = 20 * 0.9924
E[X] ≈ 19.848
Это очень близко к целевому значению 20.
Ответ:
Чтобы в среднем вершины достигали 20 ребят из 100, вероятность падения p для каждого участника нужно подобрать примерно равной 1/21 (или около 0.0476).
👇 Пишите свое решение в комментариях
@machinelearning_interview
Представим забег 100 человек по узкому скользкому эскалатору. У каждого есть шанс поскользнуться и упасть — тогда он и все, кто бежал за ним, соскальзывают вниз. Добираются до вершины только те, кто был впереди последнего упавшего.
Мы можем настраивать вероятность падения p. Вопрос: какое значение `p` нужно выбрать, чтобы в среднем до вершины добегало ровно 20 человек из 100?
Обозначения:
N = 100: общее количество участников.
K = 20: желаемое среднее количество участников, достигших вершины.
p: вероятность того, что один участник поскользнется и упадет (эту величину нужно найти).
q = 1 - p: вероятность того, что один участник не упадет.
X: случайная величина, равная количеству участников, достигших вершины. Мы хотим, чтобы E[X] = 20.
Логика процесса:
Участник i (где i от 1 до 100) доберется до вершины тогда и только тогда, когда ни один из участников перед ним (включая его самого) не упадет.
То есть, участники 1, 2, ..., i должны успешно пройти свой путь.
Вероятность того, что участник 1 достигнет вершины = P(участник 1 не упал) = q.
Вероятность того, что участник 2 достигнет вершины = P(участник 1 не упал И участник 2 не упал) = q * q = q^2.
Вероятность того, что участник i достигнет вершины = P(участники 1, ..., i не упали) = q^i.
Математическое ожидание E[X]:
Математическое ожидание количества добравшихся до вершины можно вычислить как сумму вероятностей того, что каждый конкретный участник доберется до вершины. Это связано со свойством линейности математического ожидания и использованием индикаторных переменных (I_i = 1, если i-й участник добрался, 0 иначе; E[X] = E[sum(I_i)] = sum(E[I_i]) = sum(P(I_i=1))).
E[X] = P(участник 1 добрался) + P(участник 2 добрался) + ... + P(участник N добрался)
E[X] = q^1 + q^2 + q^3 + ... + q^N
Это сумма первых N членов геометрической прогрессии с первым членом a = q и знаменателем r = q. Формула суммы:
S_N = a * (1 - r^N) / (1 - r)
Подставляем наши значения:
E[X] = q * (1 - q^N) / (1 - q)
Решение уравнения:
Мы хотим, чтобы E[X] = K = 20, при N = 100.
20 = q * (1 - q^100) / (1 - q)
Вспомним, что q = 1 - p. Значит, 1 - q = p.
20 = (1 - p) * (1 - (1 - p)^100) / p
20p = (1 - p) * (1 - (1 - p)^100)
Это уравнение довольно сложно решить аналитически из-за члена (1 - p)^100. Однако мы можем сделать разумное предположение.
Приближение:
Поскольку мы ожидаем, что только 20 из 100 человек доберутся до вершины, это означает, что падения должны происходить относительно часто, и вероятность того, что все 100 человек не упадут (q^100), должна быть очень мала. То есть, q^100 ≈ 0.
Если q^100 пренебрежимо мало по сравнению с 1, то формула для E[X] упрощается:
E[X] ≈ q * (1 - 0) / (1 - q)
E[X] ≈ q / (1 - q)
Теперь подставим желаемое значение E[X] = 20:
20 ≈ q / (1 - q)
20 * (1 - q) ≈ q
20 - 20q ≈ q
20 ≈ 21q
q ≈ 20 / 21
Теперь найдем p:
p = 1 - q
p ≈ 1 - (20 / 21)
p ≈ 1 / 21
Проверка приближения:
Давайте проверим, насколько мало значение q^100 при q = 20/21:
q^100 = (20/21)^100 ≈ (0.95238)^100
Используя калькулятор, (20/21)^100 ≈ 0.0076. Это действительно мало по сравнению с 1.
Посчитаем E[X] с этим приближением:
E[X] = (20/21) * (1 - (20/21)^100) / (1 - 20/21)
E[X] = (20/21) * (1 - 0.0076) / (1/21)
E[X] = 20 * (1 - 0.0076)
E[X] = 20 * 0.9924
E[X] ≈ 19.848
Это очень близко к целевому значению 20.
Ответ:
Чтобы в среднем вершины достигали 20 ребят из 100, вероятность падения p для каждого участника нужно подобрать примерно равной 1/21 (или около 0.0476).
👇 Пишите свое решение в комментариях
@machinelearning_interview
Это полезный ресурс для улучшения работы с моделью.
В руководство включен подробный "агентный промпт" (Agentic Prompt).
Именно этот промпт OpenAI использовала для достижения рекордно высокого балла в сложном бенчмарке по разработке ПО SWE-bench Verified.
Что представляет собой этот агентный промпт?
Это, по сути, детальная инструкция для GPT-4, нацеленная на автономное решение задач по исправлению кода в репозиториях. Ключевые принципы, заложенные в нем:
- Глубокое понимание: Сначала тщательно изучить проблему.
- Исследование: Проанализировать кодовую базу.
- Планирование: Разработать четкий пошаговый план.
- Тестирование: Часто запускать тесты после каждого шага.
- Итерация: Повторять процесс до полного решения проблемы.
- Строгая верификация: Убедиться в корректности и надежности решения
- Автономность: Работать с предоставленными проектами без доступа к интернету и не завершать работу до полного решения.
Этот подход демонстрирует, как структурированные, пошаговые инструкции с акцентом на тестирование и итерацию могут значительно повысить эффективность ИИ в сложных задачах программирования.
📚 Руководство
Please open Telegram to view this post
VIEW IN TELEGRAM
❓ Алгоритмическая торговля и количественный анализ: успех зависит от точного тестирования. Как избежать убытков и ошибок в логике торговых стратегий?
На открытом уроке 28 апреля в 20:00 мск научим вас, как правильно тестировать торговые стратегии с помощью самых популярных инструментов. Применение таких инструментов, как pandas, backtrader и backtesting, поможет вам избежать переобучения и непредсказуемых рыночных условий.
Используя полученные знания, вы сможете точно оценивать эффективность своих стратегий, настраивать метрики, такие как доходность и Sharpe ratio, и улучшать результаты с минимальными рисками.
➡️ Присоединяйтесь к открытому уроку и получите скидку на большое обучение «ML для финансового анализа»: https://otus.pw/R9kR/?erid=2W5zFHw5cK2
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
На открытом уроке 28 апреля в 20:00 мск научим вас, как правильно тестировать торговые стратегии с помощью самых популярных инструментов. Применение таких инструментов, как pandas, backtrader и backtesting, поможет вам избежать переобучения и непредсказуемых рыночных условий.
Используя полученные знания, вы сможете точно оценивать эффективность своих стратегий, настраивать метрики, такие как доходность и Sharpe ratio, и улучшать результаты с минимальными рисками.
➡️ Присоединяйтесь к открытому уроку и получите скидку на большое обучение «ML для финансового анализа»: https://otus.pw/R9kR/?erid=2W5zFHw5cK2
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
❓ Что выведет следующий код на Python (модуль statistics)?
🔢 Варианты ответа:
A)
B)
C)ValueError: nan is not a valid number
D)
✅ Правильный ответ: C
💡 Почему?
- Модуль не умеет работать с .
- и вызовут или .
- В отличие от , здесь всё падает.
📌 Подвох — в в списке.
import statistics as stats
import math
data = [1, 2, 2, float('nan'), 3, 4]
print("Mean:", stats.mean(data))
print("Median:", stats.median(data))
print("Mode:", stats.mode(data))
🔢 Варианты ответа:
A)
Median: 2.5
Mode: 2
B)
Median: 2.5
Mode: 2
C)ValueError: nan is not a valid number
D)
Median: nan
Mode: 2
✅ Правильный ответ:
💡 Почему?
- Модуль
statistics
NaN
-
stats.mean()
stats.median()
StatisticsError
ValueError
- В отличие от
numpy.nanmean
📌 Подвох — в
float('nan')
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
Модель намеренно поощряется за настойчивость — если она делает retry и улучшает результат, это считается успехом.
Использует синтетические поисковые движки, которые заставляют модель перезапрашивать и улучшать свои ответы.
Обучается с помощью усиленного обучения (RL) — формируя привычку "не сдаваться".
@ai_machinelearning_big_data
#LLM #Search #RL #AI #Meta #ReZero #NeverGiveUp #Llama3
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️Хотите стать востребованным экспертом в области рекомендательных систем?
Курс OTUS «Рекомендательные системы» — это практические занятия, живые лекции от ведущих DS/ML-специалистов и актуальные инструменты, которые используют крупнейшие компании. Вы научитесь создавать персонализированные рекомендации, внедрять системы под задачи e-commerce и стриминговых сервисов, эффективно сегментировать пользователей и проводить A/B-тесты.
После курса вы сможете реализовывать решения, которые принесут пользу бизнесу.
👉Оставьте заявку и получите скидку на обучение: https://otus.pw/BAE8/?erid=2W5zFHU8PEp
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Курс OTUS «Рекомендательные системы» — это практические занятия, живые лекции от ведущих DS/ML-специалистов и актуальные инструменты, которые используют крупнейшие компании. Вы научитесь создавать персонализированные рекомендации, внедрять системы под задачи e-commerce и стриминговых сервисов, эффективно сегментировать пользователей и проводить A/B-тесты.
После курса вы сможете реализовывать решения, которые принесут пользу бизнесу.
👉Оставьте заявку и получите скидку на обучение: https://otus.pw/BAE8/?erid=2W5zFHU8PEp
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
arxiv‑mcp‑server — это самостоятельный MCP‑сервер¹, который «оборачивает» arXiv.org в набор инструментов, доступных ИИ‑ассистентам (Claude Desktop, ChatGPT‑плагины, собственные агентовые фреймворки).
Благодаря этому ассистент может искать, скачивать и читать научные статьи, а также запускать готовые промпты для глубокого анализа работы, не покидая чата.
¹ MCP (Message Control Protocol) — открытый протокол Anthropic для обмена сообщениями и инструментами между LLM‑клиентом и сервером.
Ключевые возможности
- Поиск статей search_papers — фильтры по запросу, диапазону дат, категориям.
- Загрузка статьи download_paper — хранит PDF/метаданные локально, чтобы не дергать arXiv повторно.
- Список локальных статей list_papers.
- Чтение содержимого read_paper — отдаёт текст постранично.
- Готовые исследовательские промпты — например, deep-paper-analysis, который строит полное ревью (summary, методология, импликации, дальнейшая работа и т.д.).
▪ Github
Please open Telegram to view this post
VIEW IN TELEGRAM