Рубрика "мои кенты -...
Posted on Mon 05 December 2022 • Tagged with from_telegram, in_russian
Рубрика "мои кенты - мое богатство". 👬
Я обещал написать про быстрый инференс, и вот подвернулся случай. У меня есть два предпочтения, которым я предпочитаю следовать в дизайне инференс-сервисов:
- никаких динамических графов, все должно быть сконвертировано в ONNX, даже легкие scikit-learn модели, и потом гоняться в ONNXRuntime. Это и минимизирует ошибки с одной стороны, и позволяет дешево сменить core model, да и запускать можно одинаково хоть локально, хоть на сервере, только бэкенд подмени;
- если можно что-то вынести на serverless (например, в AWS Lambda), надо выносить - это простой способ сглаживать нагрузку.
У лямбд есть несколько проблем:
- неидеальное масштабирование (с нуля до многих тысяч параллельных запусков мгновенно не вырастешь, что бы там ни говорили маркетинговые описания);
- медленный cold start (в эту сторону есть подвижки);
- нет GPU, и потому инференс жирных моделей скорее затруднителен, да и экономически не очень выгоден.
Так вот, мои старые кореша Андрей и Игорь решили починить одну из этих проблем и пилят платформу everinfer.ai, которая прям соответствует моим представлениям о прекрасном:
```from everinfer import Client
client = Client('my_secret_key') pipeline = client.register_pipeline('my_model_name', ['onnx/model.onnx']) runner = client.create_engine(pipeline['uuid']) preds = runner.predict([inputs])
```Внутри ONNXRuntime, Rust 🦀, ScyllaDB и прочие модные технологии, благодаря чему инференс получается довольно быстрым. Слегка потестировал, получилось чуть быстрее локального запуска ONNXRuntime на CPU, даже с учетом сетевых издержек.
Платформа только-только открывается для внешних пользователей и предлагает первым тестерам бесплатное железо для инференса и помощь в запуске (хотя API простой как табуретка, вряд ли понадобится много помощи). Можете писать сразу @andrey_kiselev и просить доступ.