• Русский
  • Введение в функциональность

    Основное определение функции inference service — это развертывание обученных моделей машинного обучения или глубокого обучения в виде онлайн-сервисов, доступных по протоколам таким как HTTP API или gRPC, что позволяет приложениям использовать возможности модели для предсказания, классификации, генерации и других задач в реальном времени или пакетно. Эта функция в основном решает задачу эффективного, стабильного и удобного развертывания моделей в продуктивной среде после завершения обучения, а также предоставляет масштабируемые онлайн-сервисы.

    Содержание

    Преимущества

    • Упрощает процесс развертывания моделей, снижая сложность внедрения.
    • Обеспечивает высокодоступные, высокопроизводительные онлайн и пакетные inference-сервисы.
    • Поддерживает динамическое обновление моделей и управление версиями.
    • Реализует автоматизированную эксплуатацию, сопровождение и мониторинг inference-сервисов.

    Применимые сценарии

    • Системы рекомендаций в реальном времени: рекомендации товаров или контента на основе поведения пользователя.
    • Распознавание изображений: классификация, детекция или распознавание загруженных изображений.
    • Обработка естественного языка: предоставление сервисов классификации текста, анализа тональности, машинного перевода.
    • Финансовый контроль рисков: оценка кредитного риска пользователя или рисков транзакций в реальном времени.
    • Сервисы больших языковых моделей: предоставление онлайн-вопросов и ответов, генерации текста и других функций.
    • Пакетный inference: обработка больших объемов данных, не требующих реального времени, например, анализ исторических данных и генерация отчетов.

    Приносимая ценность

    • Ускоряет развертывание моделей и сокращает циклы разработки приложений.
    • Повышает эффективность inference моделей и снижает задержки.
    • Снижает затраты на эксплуатацию и сопровождение, улучшая стабильность системы.
    • Поддерживает быструю бизнес-итерацию и инновации.

    Основные возможности

    Прямое развертывание модели для inference-сервисов

    • Позволяет пользователям напрямую выбирать конкретные версии файлов модели из репозитория и указывать образ inference runtime для быстрого развертывания онлайн-сервиса. Система автоматически скачивает, кеширует и загружает модель, запуская inference-сервис. Это упрощает процесс развертывания и снижает порог входа.

    Развертывание inference-сервисов с кастомным образом

    • Поддерживает возможность написания Dockerfile для упаковки модели и зависимостей в кастомный образ, а затем развертывания inference-сервисов через стандартные Kubernetes Deployments. Такой подход обеспечивает большую гибкость, позволяя пользователям настраивать среду inference под свои нужды.

    Пакетные операции с inference-сервисами

    • Поддерживает пакетные операции над несколькими inference-сервисами, такими как массовый запуск, остановка, обновление и удаление.
    • Способен поддерживать создание, мониторинг и экспорт результатов пакетных inference-задач.
    • Обеспечивает пакетное управление ресурсами, позволяя выделять и регулировать ресурсы inference-сервисов массово.

    Опыт работы с inference-сервисом

    • Предоставляет интерактивный интерфейс для удобного тестирования и взаимодействия с inference-сервисами.
    • Поддерживает различные форматы ввода и вывода для удовлетворения потребностей разных сценариев.
    • Предоставляет инструменты оценки производительности модели для помощи в оптимизации развертывания.

    Поддержка inference runtime

    • Интегрирует различные популярные inference-фреймворки, такие как vLLM, Seldon MLServer и др., а также поддерживает пользовательские inference runtime.
    TIP
    • vLLM: Оптимизирован для больших языковых моделей (LLMs) типа DeepSeek/Qwen, характеризуется высокой параллельной обработкой и улучшенной пропускной способностью при превосходной эффективности использования ресурсов.
    • MLServer: Предназначен для традиционных ML-моделей (XGBoost/классификация изображений), обеспечивает совместимость с несколькими фреймворками и упрощенную отладку.

    Методы доступа, логи, Swagger, мониторинг и др.

    • Предоставляет несколько методов доступа, таких как HTTP API и gRPC.
    • Поддерживает детальный сбор и анализ логов для облегчения устранения неполадок.
    • Автоматически генерирует документацию Swagger для упрощения интеграции и вызова inference-сервисов.
    • Обеспечивает мониторинг в реальном времени и функции оповещений для стабильной работы сервиса.

    Преимущества функциональности

    Преимущества по производительности:

    • Поддержка GPU-ускорения для повышения скорости inference моделей.
    • Поддержка пакетного inference для увеличения пропускной способности.
    • Оптимизация inference runtime для снижения задержек.

    Масштабируемость:

    • Построено на Kubernetes с поддержкой эластичного масштабирования.
    • Поддержка горизонтального масштабирования для обработки сценариев с высокой нагрузкой.
    • Поддержка распределенного inference больших моделей.
    • Поддержка параллельной обработки пакетных задач.

    Безопасность:

    • Предоставляет механизмы аутентификации и авторизации для обеспечения безопасности сервиса.
    • Поддержка сетевой изоляции для предотвращения утечек данных.
    • Поддержка безопасного развертывания и обновления моделей.

    Стабильность:

    • Предоставляет проверки здоровья и механизмы автоматического перезапуска для повышения доступности сервиса.
    • Поддержка мониторинга логов и оповещений для своевременного обнаружения и устранения проблем.

    Создание inference-сервиса

    Шаг 1

    Выберите Custom publishing

    TIP

    Публикация inference-сервиса через Custom publishing требует ручной настройки параметров. Также можно создать "шаблон", комбинируя входные параметры для быстрого развертывания inference-сервисов.

    Шаг 2

    Укажите детали inference-сервиса для публикации модели

    ПараметрыОписание
    NameОбязательно, имя inference API.
    DescriptionПодробное описание inference API, объясняющее его функциональность и назначение.
    ModelОбязательно, имя модели, используемой для inference.
    VersionОбязательно, версия модели. Опции включают Branch и Tag.
    Inference RuntimesОбязательно, движок, используемый для inference runtime.
    Requests CPUОбязательно, количество CPU ресурсов, запрашиваемых inference-сервисом.
    Requests MemoryОбязательно, объем памяти, запрашиваемый inference-сервисом.
    Limits CPUОбязательно, максимальное количество CPU ресурсов, которые может использовать inference-сервис.
    Limits MemoryОбязательно, максимальный объем памяти, который может использовать inference-сервис.
    GPU Acceleration TypeТип GPU-ускорения.
    GPU Acceleration ValueЗначение GPU-ускорения.
    Temporary storageВременное пространство хранения, используемое inference-сервисом.
    Mount existing PVCМонтирование существующего Kubernetes Persistent Volume Claim (PVC) в качестве хранилища.
    CapacityОбязательно, размер емкости временного хранилища или PVC.
    Auto scalingВключение или отключение функции авто-масштабирования.
    Number of instancesОбязательно, количество экземпляров, запускающих inference-сервис.
    Environment variablesПары ключ-значение, внедряемые в среду выполнения контейнера.
    Add parametersПараметры, передаваемые в исполняемый файл контейнера. Массив строк (например, ["--port=8080", "--batch_size=4"]).
    Startup commandПереопределяет стандартную инструкцию ENTRYPOINT в образе контейнера. Исполняемый файл + аргументы (например, ["python", "serve.py"])

    Шаг 3

    Нажмите кнопку Publish для создания inference-сервиса.

    Опыт работы

    Шаг 1

    В списке сервисов Inference API нажмите на имя любого сервиса со статусом Running для просмотра его деталей.

    Шаг 2

    Нажмите Experience, чтобы открыть панель справа.

    Шаг 3

    Задайте вопрос

    • System Role

      Определяет назначение, тон и рамки работы ИИ (например, "Вы — полезный ассистент, специализирующийся на медицинской информации").

    • Parameters

      Выберите параметры в зависимости от типа задачи. Подробности см. в описаниях параметров ниже.

    Описание параметров для разных типов задач

    Генерация текста

    Предустановленные параметры

    ПараметрТип данныхОписание
    do_sampleboolИспользовать ли сэмплирование; если нет — применяется жадный декодинг.
    max_new_tokensintМаксимальное количество генерируемых токенов, игнорируя токены в prompt.
    repetition_penaltyfloatШтраф за повторения для контроля повторяющегося контента в сгенерированном тексте; 1.0 — без штрафа, 0 — максимальный.
    temperaturefloatСлучайность модели при генерации следующего токена; 1.0 — высокая случайность, 0 — низкая.
    top_kintПри вычислении распределения вероятностей следующего токена учитываются только top k токенов с наивысшей вероятностью.
    top_pfloatКонтролирует кумулятивное распределение вероятностей, учитываемое моделью при выборе следующего токена.
    use_cacheboolИспользовать ли промежуточные результаты, вычисленные моделью во время генерации.

    Другие параметры

    ПараметрТип данныхОписание
    max_lengthintМаксимальное количество генерируемых токенов. Соответствует количеству токенов в prompt + max_new_tokens. Если задан max_new_tokens, его значение имеет приоритет.
    min_lengthintМинимальное количество генерируемых токенов. Соответствует количеству токенов в prompt + min_new_tokens. Если задан min_new_tokens, его значение имеет приоритет.
    min_new_tokensintМинимальное количество генерируемых токенов, игнорируя токены в prompt.
    early_stopboolКонтролирует условие остановки для методов beam search. True: генерация останавливается, когда появляется num_beams полных кандидатов. False: применяются эвристики для остановки, когда маловероятно найти лучшие кандидаты.
    num_beamsintКоличество лучей для beam search. 1 означает отсутствие beam search.
    max_timeintМаксимальное время выполнения вычислений в секундах.
    num_beam_groupsintДелит num_beams на группы для обеспечения разнообразия между группами лучей.
    diversity_penaltyfloatЭффективен при включенном num_beam_groups. Применяет штраф за разнообразие между группами, чтобы сгенерированный контент каждой группы был максимально различным.
    penalty_alphafloatКонтрастный поиск включается, когда penalty_alpha > 0 и top_k > 1. Чем больше penalty_alpha, тем сильнее контрастный штраф и выше вероятность, что сгенерированный текст соответствует ожиданиям. Слишком большое значение может привести к слишком однообразному тексту.
    typical_pfloatЛокальная типичность измеряет сходство между условной вероятностью предсказания следующего целевого токена и ожидаемой условной вероятностью предсказания следующего случайного токена с учетом уже сгенерированного текста. Если задано число меньше 1, сохраняется минимальный набор локально типичных токенов, сумма вероятностей которых достигает или превышает typical_p.
    epsilon_cutofffloatЕсли задано число строго между 0 и 1, сэмплируются только токены с условной вероятностью выше epsilon_cutoff. Рекомендуемые значения от 3e-4 до 9e-4 в зависимости от размера модели.
    eta_cutofffloatEta sampling — гибрид локального типичного сэмплирования и epsilon-сэмплирования. Если задано число строго между 0 и 1, токен учитывается, если его вероятность больше eta_cutoff или sqrt(eta_cutoff) * exp(-entropy(softmax(next_token_logits))). Рекомендуемые значения от 3e-4 до 2e-3 в зависимости от размера модели.
    repetition_penaltyfloatПараметр штрафа за повторения. 1.0 — без штрафа.

    Для дополнительных параметров смотрите Text Generation Parameter Configuration.

    Текст в изображение

    Предустановленные параметры

    ПараметрТип данныхОписание
    num_inference_stepsintКоличество шагов денойзинга. Большее число шагов обычно дает более качественные изображения, но замедляет inference.
    use_cacheboolИспользовать ли промежуточные результаты, вычисленные моделью во время генерации.

    Другие параметры

    ПараметрТип данныхОписание
    heightintВысота сгенерированного изображения в пикселях.
    widthintШирина сгенерированного изображения в пикселях.
    guidance_scalefloatИспользуется для регулировки баланса между качеством и разнообразием сгенерированного изображения. Большие значения увеличивают разнообразие, но снижают качество; рекомендуемый диапазон 7–8.5.
    negative_promptstr или List[str]Используется для указания контента, который не должен присутствовать при генерации изображения.

    Для дополнительных параметров смотрите Text-to-Image Parameter Configuration.

    Классификация текста

    Предустановленные параметры

    ПараметрТип данныхОписание
    top_kintКоличество меток с наивысшими оценками. Если указано None или число больше количества меток в конфигурации модели, по умолчанию возвращается количество меток.
    use_cacheboolИспользовать ли промежуточные результаты, вычисленные моделью во время генерации.

    Для дополнительных параметров смотрите Text Classification Parameter Configuration

    Дополнительные ссылки

    Image Classification Parameter Configuration

    Conversational Parameter Configuration

    Summarization Parameter Configuration

    Translation Parameter Configuration

    Text2Text Generation Parameter Configuration

    Image-to-Image Parameter Configuration