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
👍25❤8🔥3🥰1
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
👍3❤1
🎲 Задача со стажировки ШАД по вероятности: сколько участников добежит до вершины?
Представим забег 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
🔥17👍13❤6
Это полезный ресурс для улучшения работы с моделью.
В руководство включен подробный "агентный промпт" (Agentic Prompt).
Именно этот промпт OpenAI использовала для достижения рекордно высокого балла в сложном бенчмарке по разработке ПО SWE-bench Verified.
Что представляет собой этот агентный промпт?
Это, по сути, детальная инструкция для GPT-4, нацеленная на автономное решение задач по исправлению кода в репозиториях. Ключевые принципы, заложенные в нем:
- Глубокое понимание: Сначала тщательно изучить проблему.
- Исследование: Проанализировать кодовую базу.
- Планирование: Разработать четкий пошаговый план.
- Тестирование: Часто запускать тесты после каждого шага.
- Итерация: Повторять процесс до полного решения проблемы.
- Строгая верификация: Убедиться в корректности и надежности решения
- Автономность: Работать с предоставленными проектами без доступа к интернету и не завершать работу до полного решения.
Этот подход демонстрирует, как структурированные, пошаговые инструкции с акцентом на тестирование и итерацию могут значительно повысить эффективность ИИ в сложных задачах программирования.
📚 Руководство
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5❤3👎1💊1
❓ Что выведет следующий код на 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')
👍14🔥4❤2
Forwarded from Hi, AI | Новости технологий
У разработчиков и аналитиков свои игрушки 👾
Конечно, с ИИ-уклоном и те, которые им помогают в работе. Когда дело доходит до вайб-кодинга, многие обращаются к инструментам вроде Copilot. На бумаге — это волшебная палочка, которая должна разгружать спецов. А как на деле? 🪄
Коллеги из Т1 отвечают на этот вопрос — упаковали ответы в карточки. И их самих тоже — конечно же, с помощью искусственного интеллекта.
Больше про ИИ узнаем 16 и 17 апреля в Москве на конференции Data Fusion. Здесь спикеры от Т1 примут участие в сессиях, где обсудят:
Конечно, с ИИ-уклоном и те, которые им помогают в работе. Когда дело доходит до вайб-кодинга, многие обращаются к инструментам вроде Copilot. На бумаге — это волшебная палочка, которая должна разгружать спецов. А как на деле? 🪄
Коллеги из Т1 отвечают на этот вопрос — упаковали ответы в карточки. И их самих тоже — конечно же, с помощью искусственного интеллекта.
Больше про ИИ узнаем 16 и 17 апреля в Москве на конференции Data Fusion. Здесь спикеры от Т1 примут участие в сессиях, где обсудят:
🔘 выход российских компаний на зарубежные рынки;🔘 человекоцентричный транспорт;🔘 нейросети;🔘 AI-native банки;🔘 тренды в бизнесе;🔘 инженеров нового поколения.
Генеральный директор ИТ-холдинга Т1 Алексей Фетисов также наградит победителей соревнования Data Fusion Contest.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🤡1👀1
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
❤17👍4🔥4
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
👍11❤2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Что сложнее: пройти собеседование в MANGA или поступить в ШАД?
В новом выпуске MLinside — Алексей Толстиков, кандидат физико-математических наук, руководитель Школы анализа данных Яндекса (ШАДа) и эксперт в олимпиадах по программированию рассказывает:
▪️Как устроен отбор в Школу и зачем нужен сложный экзамен
▪️Как готовиться к интервью и почему важна честность
▪️ Насколько важен нетворк и коммьюнити
Переходите к выпуску
По сути, это готовый мануал к поступлению и если вы сейчас выбираете трек развития в машинном обучении — обязательно к прослушиванию.
В новом выпуске MLinside — Алексей Толстиков, кандидат физико-математических наук, руководитель Школы анализа данных Яндекса (ШАДа) и эксперт в олимпиадах по программированию рассказывает:
▪️Как устроен отбор в Школу и зачем нужен сложный экзамен
▪️Как готовиться к интервью и почему важна честность
▪️ Насколько важен нетворк и коммьюнити
Переходите к выпуску
По сути, это готовый мануал к поступлению и если вы сейчас выбираете трек развития в машинном обучении — обязательно к прослушиванию.
🤡11❤5👍3🔥3
🧪 DeepEval — open-source фреймворк для оценки работы языковых моделей, вдохновленный принципами Pytest. Проект решает ключевую проблему LLM-разработки: как объективно измерить качество ответов ChatGPT, RAG-пайплайнов или AI-агентов без ручных проверок.
В отличие от разрозненных метрик вроде RAGAS или G-Eval, DeepEval объединяет 20+ критериев оценки от релевантности контекста до токсичности и SQL-инъекций в промптах. Инструмент также имеет встроенную облачную платформу для сравнения разных версий LLM — она визуализирует, как изменения влияют на accuracy и безопасность.
🤖 GitHub
@machinelearning_interview
В отличие от разрозненных метрик вроде RAGAS или G-Eval, DeepEval объединяет 20+ критериев оценки от релевантности контекста до токсичности и SQL-инъекций в промптах. Инструмент также имеет встроенную облачную платформу для сравнения разных версий LLM — она визуализирует, как изменения влияют на accuracy и безопасность.
🤖 GitHub
@machinelearning_interview
❤17👍2🔥2