Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
from fastapi.concurrency import run_in_threadpool
async def execute(data: DataRequest) -> DataResponse:
try:
result = await run_in_threadpool(sync_function, data)
return DataResponse(data=result)
except Exception as e:
return DataResponse(
error=str(e),
success=False,
)
В общем работает нормально. Для всех вызовов под капотом используется общий тредпул, всё работает предсказуемо.
Но потребовалось изменить количество запускаемых в пуле потоков (по умолчанию создается 40 воркеров).
Так как дело происходит с FastAPI, делается это через lifespan используя настройки anyio:
import anyio
@asynccontextmanager
async def lifespan(app: FastAPI):
limiter = anyio.to_thread.current_default_thread_limiter()
limiter.total_tokens = 100
yield
# если вдруг нужно вернуть обратно
limiter.total_tokens = 40
Зачем менять количество воркеров?
- уменьшить, если оперативки мало (один тред занимает ~8мб)
- увеличить чтобы выдержать нагрузку
Если есть предложения получше при тех же вводных - предлагайте😉
#async
Обзор соревнований по ML за 2025 год
Есть такая платформа - https://mlcontests.com/, там можно увидеть список актуальных идущих соревнований по ML. Автор выускает ежегодный обзор по соревнованиям. Вот ссылка на мой пост про обзор 2023. 2024 я как-то пропустил, но вот сейчас увидел обзор за 2025: https://mlcontests.com/state-of-machine-learning-competitions-2025/?ref=mlcr25
Из интересного:
• В табличных соревнованиях всё ещё царят бустинги, но нейронки всё активнее используют в блендинге/стакинге
• Некоторые компании (не будем тыкать пальцами, но мы-то знаем) дают своим людям резиновое железо для соревнований. Например, победители одной соревы поделились, поделились тем, что тренировали 48 hours на 512 H100.
• Эпоха BERT в основном прошла, теперь люди активно используют Qwen2.5 и 3
• В соревнованиях по Computer Vision впервые доля решений с транмформерами превзошла долю решений с CNN
• В соревнованиях по аудио в основном используют затюненый Whisper
В отчёте ещё много всего интересного, рекомендую почитать.
#kaggle#datascience
#python#pandas#kaggle
😎
Machine Learning & Data Science with Python, Kaggle & Pandas
Machine Learning A-Z course from zero with Python, Kaggle, Pandas and Numpy for data analysis with hands-on examples
Machine learning is a branch of artificial intelligence (AI) and computer science which focuses on the use of data and algorithms to imitate the way that humans learn, gradually improving its accuracy.
🔗Link
-----
Main channel:@repo_science
Coupons:@freecoupons_reposcience
-----
🎮 Google и Kaggle запустили открытую Game Arena — платформу, где ИИ-системы соревнуются в стратегических играх, чтобы измерить интеллект.
🤖 Зачем это нужно? Старые бенчмарки уже не работают — LLM просто запоминают ответы. Идея в том, что игры — лучший бенчмарк для проверки интеллекта. Они проверяют не факты, а стратегическое мышление, адаптацию и память.
♟️ Первый турнир: шахматы пройдет сегодня. 8 передовых моделей, включая GPT‑4, Claude Opus и Gemini, сразятся друг с другом без использования внешних инструментов.
📊 По итогам матчей формируется открытый рейтинг моделей — кто реально умеет думать, а не просто угадывать.
🧠 Главное отличие от других арен:
✅ Круговая система «каждый играет с каждым».
✅ Позиции меняются каждую секунду
✅ Ошибки наказываются немедленно
✅ Побеждает не та, что знает ответ, а та, что думает
Kaggle собирает рейтинг моделей, который будет обновляться по итогам матчей. В будущем добавят Го, покер и видеоигры.
Стримы первых соревнований пройдут: 5–7 августа на YouTube с Хикару, Леви и Магнусом Карлсеном.
🟠 Подробнее об Арене: https://blog.google/technology/ai/kaggle-game-arena
@ai_machinelearning_big_data
#google#kaggle#arena