logo
Alauda AI
English
Русский
English
Русский
logo
Alauda AI
Навигация

Обзор

Введение
Быстрый старт
Примечания к выпуску

Установка

Предварительная настройка
Установка Alauda AI Essentials
Установка Alauda AI

Обновление

Обновление с AI 1.3

Удаление

Удаление

Управление инфраструктурой

Управление устройствами

О Alauda Build of Hami
О плагине устройства NVIDIA GPU от Alauda Build

Мультиарендность

Руководства

Управление пространствами имён

Рабочее пространство

Обзор

Введение
Установка
Обновление

Как сделать

Создание WorkspaceKind
Создание Workbench

Развертывание модели и вывод

Обзор

Введение
Features

Сервис вывода

Введение

Руководства

Inference Service

Как сделать

Extend Inference Runtimes
Configure External Access for Inference Services
Configure Scaling for Inference Services

Устранение неполадок

Проблемы с таймаутами сервиса инференса при использовании MLServer Runtime
Служба инференса не переходит в состояние Running

Управление моделями

Введение

Руководства

Model Repository

Мониторинг и операции

Обзор

Введение
Features Overview

Ведение журналов и трассировка

Введение

Руководства

Логирование

Мониторинг ресурсов

Введение

Руководства

Мониторинг ресурсов

Справочник API

Введение

Kubernetes APIs

Inference Service APIs

ClusterServingRuntime [serving.kserve.io/v1alpha1]
InferenceService [serving.kserve.io/v1beta1]

Workbench APIs

Workspace Kind [kubeflow.org/v1beta1]
Workspace [kubeflow.org/v1beta1]

Manage APIs

AmlNamespace [manage.aml.dev/v1alpha1]

Operator APIs

AmlCluster [amlclusters.aml.dev/v1alpha1]
Глоссарий
Предыдущая страницаРуководства
Следующая страницаКак сделать

#Inference Service

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

#Содержание

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

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

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

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

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

Приложение для inference-сервисов

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

Управление шаблонами inference-сервисов

  • Поддержка создания, управления и удаления шаблонов inference-сервисов, что позволяет пользователям быстро развертывать inference-сервисы на основе заранее определённых шаблонов.

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

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

Опыт работы с inference

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

Поддержка inference runtime

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

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

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

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

#Шаг 1: Перейдите в Model Repository

В левой навигационной панели нажмите Model Repository

TIP

Для пользовательской публикации inference-сервиса требуется ручная настройка параметров. Вы также можете создать «шаблон», комбинируя входные параметры для быстрого выпуска inference-сервисов.

#Шаг 2: Инициация публикации inference-сервиса

Нажмите на имя модели, чтобы перейти на страницу деталей модели, и нажмите Publish Inference Service в правом верхнем углу.

#Шаг 3: Настройка метаданных модели (при необходимости)

Если кнопка "Publish Inference Service" неактивна, перейдите на вкладку "File Management", нажмите "Edit Metadata" и выберите "Task Type" и "Framework" согласно фактической информации о модели. (Необходимо редактировать метаданные для ветки по умолчанию, чтобы изменения вступили в силу.)

#Шаг 4: Выбор режима публикации и настройка

Перейдите на страницу выбора режима публикации. AML предлагает варианты Custom Publish и Template Publish.

  1. Template Publish:

    • Выберите модель и нажмите Template Name
    • Откроется форма публикации шаблона, где параметры из шаблона загружены заранее, но могут быть отредактированы вручную
    • Нажмите Publish для развертывания inference-сервиса
  2. Custom Publish:

    • Нажмите Custom Publish
    • Заполните форму пользовательской публикации и настройте параметры
    • Нажмите Publish для развертывания inference-сервиса

#Шаг 5: Мониторинг и управление inference-сервисом

Вы можете просматривать статус, логи и другие детали опубликованного inference-сервиса в разделе Inference Service в левой навигации. Если inference-сервис не запускается или ресурсов недостаточно, возможно, потребуется обновить или перепубликовать сервис, изменив конфигурацию, которая могла вызвать сбой запуска.

Примечание: Inference-сервис автоматически масштабируется между «минимальным» и «максимальным» числом реплик в зависимости от трафика запросов. Если «минимальное число реплик» установлено в 0, сервис автоматически приостанавливается и освобождает ресурсы при отсутствии запросов в течение некоторого времени. При поступлении запроса сервис автоматически запускается и загружает модель, кэшированную в PVC.

AML реализует выпуск и эксплуатацию cloud native inference-сервисов на базе kserve InferenceService CRD. Если вы знакомы с использованием kserve, вы также можете нажать кнопку "YAML" в правом верхнем углу при публикации inference-сервиса напрямую из модели для редактирования YAML-файла и выполнения более продвинутых операций выпуска.

Описание параметров публикации модели

ПараметрыОписание
NameОбязательно, имя API inference.
DescriptionПодробное описание API inference, объясняющее его функциональность и назначение.
ModelОбязательно, имя модели, используемой для inference.
VersionОбязательно, версия модели. Опции включают Branch и Tag.
Inference RuntimesОбязательно, движок, используемый для runtime inference.
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Монтирование существующего Persistent Volume Claim (PVC) Kubernetes в качестве хранилища.
CapacityОбязательно, размер емкости временного хранилища или PVC.
Auto scalingВключение или отключение функции авто-масштабирования.
Number of instancesОбязательно, количество экземпляров, запускающих inference-сервис.
Environment variablesПары ключ-значение, внедряемые в среду выполнения контейнера.
Add parametersПараметры, передаваемые в исполняемый файл контейнера. Массив строк (например, ["--port=8080", "--batch_size=4"]).
Startup commandПереопределяет стандартную инструкцию ENTRYPOINT в образе контейнера. Исполняемый файл + аргументы (например, ["python", "serve.py"]).

#Управление шаблонами inference-сервисов

AML вводит функцию Template Publish для быстрого развертывания inference-сервисов. Вы можете создавать и удалять шаблоны (обновление шаблонов требует создания нового).

#Шаг 1: Создание шаблона

  • В левой навигационной панели нажмите Inference Service > Create Inference Service
  • Нажмите Custom Publish
  • Заполните форму и настройте параметры
  • Нажмите Create Template

#Шаг 2: Создание нового шаблона на основе существующего

  • В левой навигационной панели нажмите Inference Service > Create Inference Service
  • Выберите модель и нажмите Template Name
  • Отредактируйте параметры по необходимости
  • Нажмите Create Template для сохранения как нового шаблона

#Шаг 3: Удаление шаблона

  • В левой навигационной панели нажмите Inference Service > Create Inference Service
  • На карточке шаблона нажмите Actions > Delete
  • Подтвердите удаление

#Обновление inference-сервиса

  1. В левой навигационной панели нажмите Inference Service.
  2. Нажмите на имя inference-сервиса.
  3. На странице деталей inference-сервиса нажмите Actions > Update в правом верхнем углу, чтобы перейти на страницу обновления.
  4. Измените необходимые поля и нажмите Update. Система выполнит rolling update, чтобы избежать прерывания текущих клиентских запросов.

#Вызов опубликованного inference-сервиса

AML предоставляет визуальный метод "Inference Experience" для типовых задач, чтобы обращаться к опубликованному inference-сервису; также можно использовать HTTP API для вызова inference-сервиса.

#Inference Experience

AML поддерживает демонстрацию inference-сервисов для следующих типов задач (тип задачи указывается в метаданных модели):

  • Генерация текста
  • Классификация текста
  • Классификация изображений
  • Текст в изображение

После успешной публикации inference-сервиса для указанных типов задач на странице деталей модели и странице деталей inference-сервиса справа отображается диалоговое окно "Inference Experience". В зависимости от типа задачи ввода и вывода данные могут отличаться. Например, для генерации текста введите текст, и после введённого текста в текстовом поле будет добавлен синий шрифт с текстом, сгенерированным моделью. Опыт inference поддерживает выбор различных inference-сервисов, развернутых в разных кластерах и опубликованных несколько раз одной и той же моделью. После выбора inference-сервиса он будет вызван для возврата результата inference.

#Вызов через HTTP API

После публикации inference-сервиса вы можете вызывать его из приложений или других сервисов. В этом документе приведён пример на Python, показывающий, как вызвать опубликованный inference API.

  1. В левой навигационной панели нажмите Inference Service > Имя Inference Service, чтобы перейти на страницу деталей inference-сервиса.

  2. Перейдите на вкладку Access Method, чтобы получить метод доступа внутри кластера или вне кластера. Метод внутри кластера доступен напрямую из Notebook или других контейнеров в этом кластере K8s. Для доступа извне кластера (например, с локального ноутбука) используйте метод доступа вне кластера.

  3. Нажмите Call Example, чтобы просмотреть пример кода.

    Примечание: код, приведённый в примере вызова, поддерживает только протокол API, используемый inference-сервисом, опубликованным с runtime mlserver (Seldon MLServer). Кроме того, вкладка Swagger поддерживает доступ только к inference-сервисам, опубликованным с runtime mlserver.

#Описание параметров inference

При вызове inference-сервиса вы можете настроить поведение вывода модели, изменяя параметры inference. В интерфейсе Inference Experience предустановлены общие параметры и значения по умолчанию, также можно добавить любые пользовательские параметры.

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

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

#Предустановленные параметры
ПараметрТип данныхОписание
do_sampleboolИспользовать ли сэмплирование; если нет, применяется жадное декодирование.
max_new_tokensintМаксимальное количество генерируемых токенов, игнорируя токены в подсказке.
repetition_penaltyfloatШтраф за повторения для контроля повторяющегося контента в сгенерированном тексте; 1.0 — без штрафа, 0 — полное повторение.
temperaturefloatСлучайность модели при генерации следующего токена; 1.0 — высокая случайность, 0 — низкая.
top_kintПри вычислении распределения вероятностей следующего токена учитываются только top k токенов с наивысшей вероятностью.
top_pfloatКонтролирует кумулятивное распределение вероятностей, учитываемое моделью при выборе следующего токена.
use_cacheboolИспользовать ли промежуточные результаты, вычисленные моделью в процессе генерации.
#Другие параметры
ПараметрТип данныхОписание
max_lengthintМаксимальное количество генерируемых токенов. Соответствует количеству токенов в подсказке + max_new_tokens. Если max_new_tokens задан, его эффект имеет приоритет.
min_lengthintМинимальное количество генерируемых токенов. Соответствует количеству токенов в подсказке + min_new_tokens. Если min_new_tokens задан, его эффект имеет приоритет.
min_new_tokensintМинимальное количество генерируемых токенов, игнорируя токены в подсказке.
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