Machine learning Interview
23.7K subscribers
967 photos
58 videos
12 files
640 links
Разбираем вопросы с собеседований по Machine Learning, Data Science, Deep Learning и Нейронным сетям, Python.

Вопросы - @notxxx1


@itchannels_telegram -🔥лучшие it каналы

РКН: clck.ru/3FmwRz
加入频道
Forwarded from Machinelearning
🌟 NVIDIA добавила нативную поддержку Python в CUDA.

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 буквально заменой импорта.

🟢Во-вторых, CUDA Core переосмыслен для Python: здесь сделан упор на JIT-компиляцию и минимизацию зависимостей.

🟢В-третьих, добавлены инструменты для профилирования и анализа кода, а ускоренные C++-библиотеки теперь доступны из Python без потерь в производительности.

Но главное — новый подход к параллельным вычислениям. Вместо ручного управления потоками, как в C++, NVIDIA предлагает модель CuTile, которая оперирует массивами, а не отдельными элементами. Это упрощает отладку и делает код читаемым, не жертвуя скоростью. По сути, разработчики получают высокоуровневую абстракцию, скрывающую сложности железа, но сохраняющую гибкость.

Пока CuTile доступен только для Python, но в планах — расширение для C++. Это часть стратегии NVIDIA по поддержке новых языков: Rust и Julia уже на походе.

Python-сообщество уже может экспериментировать — например, интегрировать CUDA-ядра в PyTorch или вызывать привычные библиотеки. Теперь даже те, кто никогда не писал на C++, смогут использовать всю мощь GPU — осталось проверить, как это скажется на скорости создания прекрасных LLM светлого будущего.

🔜 Посмотреть полную презентацию на GTC 2025


@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
🎲 Задача со стажировки ШАД по вероятности: сколько участников добежит до вершины?

Представим забег 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
🖥 OpenAI опубликовала новое руководство по промптингу для GPT-4.1.

Это полезный ресурс для улучшения работы с моделью.

В руководство включен подробный "агентный промпт" (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.
Что выведет следующий код на Python (модуль statistics)?


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


Правильный ответ: C

💡 Почему?
- Модуль
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
🔥 ReZero — маленькая модель, которая никогда не сдаётся

🧠 ReZero — это LLM на базе Llama 3.2B, обученная не просто находить ответы, а упорно искать лучший.

🔁 Вместо того чтобы оптимизировать на скорость или recall, ReZero обучается пробовать снова и снова, пока не найдёт правильный ответ.

Модель намеренно поощряется за настойчивость — если она делает retry и улучшает результат, это считается успехом.

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

Обучается с помощью усиленного обучения (RL) — формируя привычку "не сдаваться".


🔜Github
🔜 Модель

@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.
🔥 ArXiv MCP Server

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