Forwarded from Анализ данных (Data analysis)
Многие привычные библиотеки (pandas, NumPy, scikit-learn) можно заменить их GPU-версией, сохранив API.
Это даёт прирост скорости в десятки раз.
-
pandas
→ %load_ext cudf.pandas
-
polars
→ .collect(engine="gpu")
-
scikit-learn
→ %load_ext cuml.accel
-
xgboost
→ device="cuda"
-
umap
→ %load_ext cuml.accel
-
hdbscan
→ %load_ext cuml.accel
-
networkx
→ %env NX_CUGRAPH_AUTOCONFIG=True
🚀 Плюсы:
- Минимальные изменения кода (API почти идентичен).
- GPU-ускорение: от 10х до 100х быстрее на больших данных.
- Отлично подходит для ETL, ML и обработки сигналов.
Если ты работаешь с большими данными в Python, достаточно «заменить импорт» и получить колоссальный прирост скорости без боли и переписывания кода.
🚀 Подробнее: developer.nvidia.com/blog/7-drop-in-replacements-to-instantly-speed-up-your-python-data-science-workflows
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍2🔥2
Как сделать помощника, который помнит контекст?
Голосовые ассистенты и LLM-сервисы — это круто, но... они часто не знают контекста. Или забывают, что вы им сказали полминуты назад.
Что, если помощник действительно помнил бы:
— кто вы
— что вы уже спрашивали
— и какие у вас были кейсы в прошлом?
На вебинаре Яндекса расскажут, как это реализовать через RAG + YDB:
🧠 память с помощью эмбеддингов
🔍 векторный поиск с фильтрацией
⚙️ масштабируемое и быстрое решение на SQL
Подходит как для внутренних ИИ-сервисов, так и для клиентских продуктов.
Голосовые ассистенты и LLM-сервисы — это круто, но... они часто не знают контекста. Или забывают, что вы им сказали полминуты назад.
Что, если помощник действительно помнил бы:
— кто вы
— что вы уже спрашивали
— и какие у вас были кейсы в прошлом?
На вебинаре Яндекса расскажут, как это реализовать через RAG + YDB:
🧠 память с помощью эмбеддингов
🔍 векторный поиск с фильтрацией
⚙️ масштабируемое и быстрое решение на SQL
Подходит как для внутренних ИИ-сервисов, так и для клиентских продуктов.
❤3
🔑 Сложная задача для собеседования по Python
Условие:
Рассмотрим следующий фрагмент кода с использованием
Вопрос:
Что будет выведено в консоль и почему?
Варианты ответов:
1)
2)
3)
4)
Правильный ответ:3)
Пояснение:
1️⃣ Проблема в декораторе: обычный -декоратор не совместим с асинхронными функциями. При вызове внутри , декоратор не дожидается выполнения корутины, возвращая .
2️⃣ Почему :
— сохраняет не результат, а корутину ( ).
— При повторном обращении к кешу возвращается эта корутина, но вне декоратора не применяется.
— Фактически, все задачи получают первую сохраненную корутину (для x=0), которая всегда возвращает 0.
3️⃣ Чтобы исправить код нужно использовать и сделать декоратор асинхронным.
Пишите свои варианты решения в комментариях 🔽
@python_job_interview
Условие:
Рассмотрим следующий фрагмент кода с использованием
asyncio
и декораторов:
import asyncio
def cache(func):
cache = {}
async def wrapper(*args):
if args not in cache:
cache[args] = await func(*args)
return cache[args]
return wrapper
@cache
async def expensive_operation(x):
await asyncio.sleep(1)
return x * 2
async def main():
tasks = [expensive_operation(i) for i in range(3)]
results = await asyncio.gather(*tasks)
print(results)
asyncio.run(main())
Вопрос:
Что будет выведено в консоль и почему?
Варианты ответов:
1)
[0, 2, 4]
— вывод корректный, кеширование работает 2)
RuntimeError
— возникает из-за неправильного использования await в декораторе 3)
[0, 0, 0]
— возникает ошибка кеширования 4)
[2, 2, 2]
— декоратор мешает асинхронности Правильный ответ:
Пояснение:
1️⃣ Проблема в декораторе: обычный
def
await func(args)
wrapper
None
2️⃣ Почему
[0, 0, 0]
—
cache[args]
<coroutine object...>
— При повторном обращении к кешу возвращается эта корутина, но
await
— Фактически, все задачи получают первую сохраненную корутину (для x=0), которая всегда возвращает 0.
3️⃣ Чтобы исправить код нужно использовать
functools.wraps
Пишите свои варианты решения в комментариях 🔽
@python_job_interview
❤4👍2🔥1👌1