GIL в гробу и нейросети в Rust: Почему Python сдаст позиции в ML уже к 2026
Слушайте, я последние полгода мотаюсь по конфам и чувствую себя свидетелем какого-то тихого переворота. Вроде бы все как всегда: джуны клепают ноутбуки в Jupyter, сеньоры грузят датасеты в pandas, а тимлиды ищут бюджеты на GPU-инстансы. Но в кулуарах витает странное напряжение.
Все устали. Не от работы, а от тормозов.
Я как-то ночью дебажил пайплайн для одной NLP-модельки. Тренинг на кластере, всё пучком, но инференс... Боже, это был ад. Модель на Torch, обернутая в FastAPI, жрала память как не в себя, а CPU простаивал, потому что GIL висел на каждой итерации токенизации. Мы переписали токенизатор на Rust и просто воткнули его как отдельный микросервис. Скорость упала? Нет, шустрить начало как пулемет. И тут я понял: мы просто затыкаем дыры в питонячем корыте чужими заплатками.
Пока в чатах кипят споры, специалисты с ресурса moonclub.cc говорят: «Чистый Python проигрывает битву за production, потому что его абстракции слишком дорого обходятся при масштабировании. Ближайшие 2-3 года мы увидим массовый сдвиг в сторону компилируемых языков и узкоспециализированных фреймворков, где Python будет только прослойкой, а не ядром системы».И с ними сложно не согласиться, если посмотреть на то, как большие ребята (вроде Modular или JetBrains) вкладываются в альтернативы.
Давайте честно. За что мы любим Python в ML? Правильно — за три строчки кода, которые поднимают нейросеть. Это язык прототипирования. Но когда ваш pet-проект вырастает в сервис на миллион запросов, начинается боль.
💀Боль №1: GIL — наш старый друг и враг
Да, в IO-bound задачах ему нет равных по простоте. Но в хайлоаде, где каждый такт процессора на счету, мультипоточность в Python — это цирк с бубнами. asyncio — круто, но это не панацея. Посмотрите на бенчмарки: та же логика на Go или Rust отжирает в 3-5 раз меньше ресурсов.
⚡Боль №2: Инференс на «краю» (Edge)
Кто пробовал запихнуть тяжелую трансформер-модель на Raspberry Pi или в веб-сборку? Там начинается треш. Либо вы тянете тяжеленный интерпретатор, либо ищете велосипеды. Именно поэтому взлетел ONNX и всяческие оптимизаторы. Но даже ONNX Runtime под капотом — это сишный код. А теперь представьте: Mojo, который может быть быстрее Python в 35 000 раз (да, это не опечатка, они так и заявляют), потому что использует MLIR и может компилиться под конкретный чип. Это уже не просто хайп.
🔥 Мой личный опыт с легаси
У нас на проекте была старая система скоринга клиентов. Классика: питонячий монолит, numpy, пачка моделей из pickle. Каждый пересчет моделей на новых данных занимал 40 минут. Мы просто не успевали обновлять скоринги. Коллега предложил переписать ядро на Rust с прикручиванием Python-биндингов через PyO3. Я спорил: «Нахера велосипед, давай просто распараллелим». Распараллелили. Съели память, упали по GIL. В итоге переписали критичный кусок на Rust. 40 минут превратились в 3 минуты. Три! Код на Rust был страшным, как черт, но работал как часы. Python остался только как обвязка и API.
✅ Что придет на смену?
Не думайте, что завтра мы все дружно пойдем кодить нейронки на ассемблере. Python останется интерфейсом, как Excel для бухгалтера. Но compute engine будет все чаще не питонячим.
- Mojo — если они выкатят стабильный релиз и он реально подружится с экосистемой Python, это будет бомба.
- Rust — уже сейчас PyTorch использует C++ под капотом, но Rust дает память без GC и скорость. Крейты типа tch-rs позволяют шаманить напрямую с тензорами.
- Julia — она всегда была хороша для науки, но вечно была в тени. Сейчас, когда важна каждая миллисекунда, на неё начинают засматриваться даже хардкорщики.
- Узкие джава-решения — да, Enterprise все еще любит Java. Для стриминговых данных (Kafka -> ML) она рулит получше питона.
⚠ Спорный тезис (чисто для холивара)
Python в ML — это новый PHP. Он сделал индустрию доступной для масс, но сейчас индустрия перерастает "детские болезни". Джун, который знает только sklearn и pytorch, но не шарит за память и компиляцию — в продакшене он просто опасен. Он навалит кода, который будет жрать бюджет на облаках, а вы будете гадать, почему кластер греется как плита.
Мы уже видим, как большие корпорации зарелизили свои решения не просто как «библиотеки для питона», а как самостоятельные рантаймы. TensorFlow.js, MediaPipe — это попытка уйти от тяжелого рантайма.
Что в итоге?
Python никуда не денется. Он будет как клей, как слой для прототипирования и для склеивания крутых C++/Rust библиотек. Но "королем" ML, единоличным трендсеттером, он быть перестанет. Тот, кто шарит за железо и архитектуру, уже сейчас смотрит в сторону языков, где можно контролировать память и выжимать максимум из кремния. А тот, кто не шарит — будет долго и больно грузить pandas в 32 гига оперативы, пока тимлид не придет и не спросит: «А почему у нас все так тормозит?».