Рубрика "мои кенты -...

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 и просить доступ.

source