diff --git a/packages/backend.ai-webui-docs/src/en/images/auto_scaling_rules_v2.png b/packages/backend.ai-webui-docs/src/en/images/auto_scaling_rules_v2.png index b6faffbceb..adb9954d12 100644 Binary files a/packages/backend.ai-webui-docs/src/en/images/auto_scaling_rules_v2.png and b/packages/backend.ai-webui-docs/src/en/images/auto_scaling_rules_v2.png differ diff --git a/packages/backend.ai-webui-docs/src/en/images/endpoint_preparing_alert.png b/packages/backend.ai-webui-docs/src/en/images/endpoint_preparing_alert.png new file mode 100644 index 0000000000..897ef38e6e Binary files /dev/null and b/packages/backend.ai-webui-docs/src/en/images/endpoint_preparing_alert.png differ diff --git a/packages/backend.ai-webui-docs/src/en/images/route_error_json_viewer.png b/packages/backend.ai-webui-docs/src/en/images/route_error_json_viewer.png new file mode 100644 index 0000000000..993456f809 Binary files /dev/null and b/packages/backend.ai-webui-docs/src/en/images/route_error_json_viewer.png differ diff --git a/packages/backend.ai-webui-docs/src/en/images/service_launcher_runtime_variant.png b/packages/backend.ai-webui-docs/src/en/images/service_launcher_runtime_variant.png index f1e99e9a1c..074f82d005 100644 Binary files a/packages/backend.ai-webui-docs/src/en/images/service_launcher_runtime_variant.png and b/packages/backend.ai-webui-docs/src/en/images/service_launcher_runtime_variant.png differ diff --git a/packages/backend.ai-webui-docs/src/en/model_serving/model_serving.md b/packages/backend.ai-webui-docs/src/en/model_serving/model_serving.md index 8306778f9f..d4e38c883a 100644 --- a/packages/backend.ai-webui-docs/src/en/model_serving/model_serving.md +++ b/packages/backend.ai-webui-docs/src/en/model_serving/model_serving.md @@ -72,7 +72,7 @@ To use the Model Service, you need to follow the steps below: :::tip As an alternative workflow, you can browse pre-configured models in the [Model Store](#model-store) and deploy them with a single click using the -`Run this model` button (renamed `Deploy` on version 26.4.0 and later). +`Deploy` button. ::: @@ -293,10 +293,10 @@ please refer to the [Explore Folder](#explore-folder) section. The service definition file (`service-definition.toml`) allows administrators to pre-configure the resources, environment, and runtime settings required for a model service. When this file is present in a model folder, the system uses these settings as default values when creating a service. Both `model-definition.yaml` and `service-definition.toml` must be present in the -model folder to enable the `Run this model` button (`Deploy` on version 26.4.0 and -later) on the Model Store page. These two files work together: the model definition -specifies the model and inference server configuration, while the service definition -specifies the runtime environment, resource allocation, and environment variables. +model folder to enable the `Deploy` button on the Model Store page. These two files +work together: the model definition specifies the model and inference server +configuration, while the service definition specifies the runtime environment, +resource allocation, and environment variables. The service definition file follows the TOML format with sections organized by runtime variant. Each section configures a specific aspect of the service: @@ -340,10 +340,10 @@ selected runtime variant when creating the service. ::: :::note -When a service is created from the Model Store using the `Run this model` button -(`Deploy` on version 26.4.0 and later), the settings from `service-definition.toml` -are applied automatically. If you later need to adjust the resource allocation, you -can modify the service through the Model Serving page. +When a service is created from the Model Store using the `Deploy` button, the +settings from `service-definition.toml` are applied automatically. If you later +need to adjust the resource allocation, you can modify the service through the +Model Serving page. ::: ## Serving Page Overview @@ -568,7 +568,6 @@ The Endpoint Detail Page displays contextual alert banners at the top, depending - **Preparing your service**: Shown while the service is being deployed or transitioning between states. Indicates the service is not yet ready to handle requests. ![](../images/endpoint_preparing_alert.png) - - **Service is ready**: Shown when the service is `HEALTHY`. Includes a **Start Chat** button as a shortcut to the LLM Chat Test interface. @@ -628,57 +627,7 @@ Model definition and runtime parameters are distinct concepts stored separately ### Auto Scaling Rules -You can configure auto scaling rules for the model service. -Based on the defined rules, the number of replicas is automatically reduced during low usage to conserve resources, -and increased during high usage to prevent request delays or failures. - -![](../images/auto_scaling_rules.png) - -Click the `Add Rules` button to add a new rule. When you click the button, a modal appears -where you can add a rule. Each field in the modal is described below: - -- **Type**: Define the rule. Select either `Scale Out` or `Scale In` based on the scope of the rule. - -- **Metric Source**: Inference Framework or kernel. - - - Inference Framework: Average value taken from every replica. Supported only if AppProxy reports the inference metrics. - - Kernel: Average value taken from every kernel backing the endpoint. - -- **Condition**: Set the condition under which the auto scaling rule will be applied. - - - **Metric Name**: The name of the metric to be compared. You can freely input any metric supported by the runtime environment. - - **Comparator**: Method to compare live metrics with threshold value. - - - LESS_THAN: Rule triggered when current metric value goes below the threshold defined - - LESS_THAN_OR_EQUAL: Rule triggered when current metric value goes below or equals the threshold defined - - GREATER_THAN: Rule triggered when current metric value goes above the threshold defined - - GREATER_THAN_OR_EQUAL: Rule triggered when current metric value goes above or equals the threshold defined - - - **Threshold**: A reference value to determine whether the scaling condition is met. - -- **Step Size**: Size of step of the replica count to be changed when rule is triggered. - Can be represented as both positive and negative value. - When defined as negative, the rule will decrease number of replicas. - -- **Max/Min Replicas**: Sets a maximum/minimum value for the replica count of the endpoint. - Rule will not be triggered if the potential replica count gets above/below this value. - -- **CoolDown Seconds**: Duration in seconds to skip reapplying the rule right after rule is first triggered. - -![](../images/auto_scaling_rules_modal.png) - -:::note -From Backend.AI version **26.4.0** onwards, Auto Scaling Rules have been redesigned with -Prometheus preset support and a new condition model. If you are on an older version, the -description above still applies. Otherwise, refer to -[Auto Scaling Rules (version 26.4.0 and later)](#auto-scaling-rules-version-26-4-0-and-later) below. -::: - - - -#### Auto Scaling Rules (version 26.4.0 and later) - -On Backend.AI version 26.4.0 and later, Auto Scaling Rules are redesigned with a Prometheus metric source, a segmented condition control, and a richer rule list. +Auto Scaling Rules automatically increase or decrease the number of replicas for a model service based on live metrics. This conserves resources during low usage and prevents request delays or failures during high usage. ![](../images/auto_scaling_rules_v2.png) @@ -699,7 +648,12 @@ Click the `Add Rules` button to open the **Add Auto Scaling Rule** editor. To mo - **Single**: Defines a single comparison `Metric Threshold`, where `` is either `>` or `<`. - **Range**: Defines a range `Min Threshold < Metric < Max Threshold`. Both thresholds are required; the minimum must be less than the maximum. -- **Step Size**: A positive integer specifying how many replicas to add or remove per scaling event. The direction (add or remove) is derived automatically from which threshold is configured, so you only specify the magnitude. +- **Step Size**: A positive integer specifying how many replicas to add or remove per scaling event. The direction (add or remove) is derived automatically from which threshold is configured: + + - Only a minimum threshold is set → `[metric] < [minThreshold]`. Replicas are scaled **in** when the metric falls below the threshold. + - Only a maximum threshold is set → `[maxThreshold] < [metric]`. Replicas are scaled **out** when the metric rises above the threshold. + - Both thresholds are set → `[metric] < [minThreshold]` or `[maxThreshold] < [metric]`. Replicas are scaled in or out depending on which boundary the metric crosses. + - **Time Window**: The time window, in seconds, over which the metric is aggregated and evaluated for scaling. This replaces the legacy `CoolDown Seconds` field and has a different meaning. - **Min Replicas** and **Max Replicas**: The lower and upper bounds that auto-scaling enforces on the replica count. Auto-scaling will not reduce the number of replicas below **Min Replicas** or increase it above **Max Replicas**. @@ -752,11 +706,10 @@ Click on a route node to open the session detail drawer, where you can view indi If a route has encountered an error, clicking the error indicator on the route row opens a JSON viewer modal that displays the raw error data for that route. This is useful for diagnosing issues with individual route nodes. ![](../images/route_error_json_viewer.png) - ### Modifying a Service -Click the `Edit` button on the endpoint detail page to modify a model service. The service launcher opens with previously entered fields already filled in. You can optionally modify only the fields you wish to change. After modifying the fields, click `Confirm` to apply the changes. +Click the `Edit` button on the endpoint detail page to modify a model service. The service launcher opens with previously entered fields already filled in. You can optionally modify only the fields you wish to change. After modifying the fields, click the `Update` button to apply the changes. ![](../images/edit_model_service.png) @@ -833,63 +786,10 @@ To use the model, you will need the following information: The Model Store provides a card-based gallery of pre-configured models that you can browse, search, and deploy. You can access the Model Store from the sidebar menu. -![](../images/model_store_page.png) +![](../images/model_store_page_v2.png) ### Browsing and Searching Models -You can search for models by name, description, task, category, or label using the search bar at the top of the page. Additionally, you can use the filter dropdowns to narrow results: - -- **Category**: Filter by model category (e.g., LLM). -- **Task**: Filter by task type (e.g., text-generation). -- **Label**: Filter by model labels. - -### Model Card Details - -Click on a model card to view its details in a modal. The model card modal displays: - -- **Title**, **Author**, and **Version** -- **Description** and **README** -- **Task**, **Category**, and **Architecture** -- **Framework** and **Labels** -- **License** -- **Minimum Resources** required to run the model -- A link to the model storage folder - -![](../images/model_card_detail_modal.png) - -### Cloning a Model - -Click the `Clone to a folder` button on the model card to clone the model folder to your own storage. A confirmation dialog will appear where you can specify the destination folder name. - -![](../images/model_clone_dialog.png) - -### Running a Model from Model Store - -Click the `Run this model` button on the model card to deploy the model as a service. This requires both `model-definition.yaml` and `service-definition.toml` to be present in the model folder. - -- If only one runtime variant is configured in the service definition, the service is launched automatically with the pre-configured settings. -- If multiple runtime variants are available, you are redirected to the service launcher page to select one. - -:::note -When a service is created from the Model Store, the settings from -`service-definition.toml` are applied automatically. You can modify the -service later through the Serving page. -::: - -:::note -From Backend.AI version **26.4.0** onwards, the Model Store has been redesigned. If you are on -an older version, the description above still applies. Otherwise, refer to -[Model Store (version 26.4.0 and later)](#model-store-version-26-4-0-and-later) below. -::: - - - -### Model Store (version 26.4.0 and later) - -On Backend.AI version 26.4.0 and later, the Model Store is redesigned with a simplified browsing experience, a card-detail drawer, and a streamlined deploy flow that replaces the legacy browse/detail/run workflow. - -![](../images/model_store_page_v2.png) - The page uses a search and sort layout at the top: - **Search Models**: Use the **Filter By Name** property filter to search model cards by name. @@ -902,6 +802,8 @@ If the `MODEL_STORE` project is not set up on the server, the page shows a *Mode The list is paginated at the bottom. You can change the page size between `10`, `20`, and `50` entries. +### Model Card Details + Click a card to open the model card drawer on the right side of the page. The drawer shows the model title and description at the top, followed by the task, category, labels, and license tags, and then a details list with the following items: - **Author** @@ -916,7 +818,11 @@ If the model card includes a README, it is rendered as a `README.md` card at the ![](../images/model_card_detail_drawer.png) -To clone a model folder in version 26.4.0 and later, use the [Data](../vfolder/vfolder.md) page directly, since the Model Store drawer no longer provides a dedicated Clone button. +### Cloning a Model + +To clone a model folder, use the [Data](../vfolder/vfolder.md) page directly. The Model Store drawer does not provide a dedicated Clone button. + +### Deploying a Model Click the **Deploy** button in the drawer header to deploy the model as a service. The deploy flow behaves in one of two ways: @@ -950,9 +856,24 @@ The Admin Serving page has two tabs: ### Admin Model Store Management -Superadmins can manage model cards through the **Model Store Management** tab on the Admin Serving page. This tab provides a table view of all model cards with the following columns: **Name**, **Title**, **Task**, **Category**, **Labels**, **Created At**, and **Controls**. +Superadmins can manage model cards through the **Model Store Management** tab on the Admin Serving page. -![](../images/admin_model_card_list.png) +![](../images/admin_model_card_list_v2.png) + +The list provides the following columns: + +- **Name**: The unique identifier of the model card. +- **Title**: The human-readable display name. +- **Category**: The model category (e.g., LLM). +- **Task**: The inference task type (e.g., text-generation). +- **Access Level**: Shows a green `Public` tag when the model card is publicly accessible, or a default `Private` tag otherwise. +- **Domain**: The domain that owns the model card. +- **Project**: The project that owns the model card. +- **Created At**: The timestamp when the model card was created. + +You can filter the list by **Name** using the property filter bar at the top. Edit and delete action icons are shown directly in the **Name** cell of each row. + +To delete multiple model cards at once, select the rows you want to remove using the checkboxes and click the red trash-bin button next to the selection count. A confirmation dialog appears before the cards are deleted. #### Creating a Model Card @@ -973,56 +894,16 @@ Click the `Create Model Card` button to open the creation modal. Fill in the fol - **Domain**: The domain to associate the model card with. - **Project ID** (required): The project that owns the model card. - **VFolder** (required): The storage folder containing the model files. -- **Access Level**: Set to `Internal` (visible within the domain) or `Public` (visible to all). +- **Access Level**: Controls who can see the model card in the user-facing Model Store. + + * `Internal`: Visible only to administrators of the owning domain and project. Regular users cannot see internal cards in their Model Store. + * `Public`: Visible to all users who have access to the owning project. #### Editing a Model Card -Click the edit icon in the **Controls** column to modify an existing model card. The edit modal opens with previously entered fields already filled in. +Click the edit icon next to the model card name to modify an existing model card. The edit modal opens with previously entered fields already filled in. #### Deleting Model Cards -You can delete individual model cards by clicking the delete icon in the **Controls** column, or perform bulk deletion by selecting multiple model cards and clicking `Delete Selected`. - -#### Scanning Project Model Cards - -Click the `Scan Project Model Cards` button to automatically scan a project's model folders and create model cards for any folders that contain valid model definitions. The scan results show the number of model cards created and updated. - -:::note -The **Scan Project Model Cards** button is not available on Backend.AI version 26.4.0 and later. -::: - -:::note -From Backend.AI version **26.4.0** onwards, the Admin Model Store Management tab has been -redesigned. If you are on an older version, the description above still applies. Otherwise, -refer to [Admin Model Store Management (version 26.4.0 and later)](#admin-model-store-management-version-26-4-0-and-later) below. -::: - - - -#### Admin Model Store Management (version 26.4.0 and later) - -On Backend.AI version 26.4.0 and later, the **Model Store Management** tab presents a redesigned model card list. - -![](../images/admin_model_card_list_v2.png) - -The list provides the following columns: - -- **Name**: The unique identifier of the model card. -- **Title**: The human-readable display name. -- **Category**: The model category (e.g., LLM). -- **Task**: The inference task type (e.g., text-generation). -- **Access Level**: Shows a green `Public` tag when the model card is publicly accessible, or a default `Private` tag otherwise. -- **Domain**: The domain that owns the model card. -- **Project**: The project that owns the model card. -- **Created At**: The timestamp when the model card was created. - -You can filter the list by **Name** using the property filter bar at the top. Edit and delete action icons are shown directly in the **Name** cell of each row. - -To delete multiple model cards at once, select the rows you want to remove using the checkboxes and click the red trash-bin button next to the selection count. A confirmation dialog appears before the cards are deleted. - -:::note -The Create, Edit, and Delete dialogs for individual model cards are the same as in the legacy -version. See [Creating a Model Card](#creating-a-model-card), -[Editing a Model Card](#editing-a-model-card), and [Deleting Model Cards](#deleting-model-cards). -::: +You can delete an individual model card by clicking the delete icon next to its name, or perform bulk deletion by selecting multiple model cards with the row checkboxes and clicking the red trash-bin button next to the selection count. diff --git a/packages/backend.ai-webui-docs/src/ja/images/auto_scaling_rules_v2.png b/packages/backend.ai-webui-docs/src/ja/images/auto_scaling_rules_v2.png index b6faffbceb..adb9954d12 100644 Binary files a/packages/backend.ai-webui-docs/src/ja/images/auto_scaling_rules_v2.png and b/packages/backend.ai-webui-docs/src/ja/images/auto_scaling_rules_v2.png differ diff --git a/packages/backend.ai-webui-docs/src/ja/images/endpoint_preparing_alert.png b/packages/backend.ai-webui-docs/src/ja/images/endpoint_preparing_alert.png new file mode 100644 index 0000000000..897ef38e6e Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ja/images/endpoint_preparing_alert.png differ diff --git a/packages/backend.ai-webui-docs/src/ja/images/route_error_json_viewer.png b/packages/backend.ai-webui-docs/src/ja/images/route_error_json_viewer.png new file mode 100644 index 0000000000..993456f809 Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ja/images/route_error_json_viewer.png differ diff --git a/packages/backend.ai-webui-docs/src/ja/images/service_launcher_runtime_variant.png b/packages/backend.ai-webui-docs/src/ja/images/service_launcher_runtime_variant.png index f1e99e9a1c..074f82d005 100644 Binary files a/packages/backend.ai-webui-docs/src/ja/images/service_launcher_runtime_variant.png and b/packages/backend.ai-webui-docs/src/ja/images/service_launcher_runtime_variant.png differ diff --git a/packages/backend.ai-webui-docs/src/ja/model_serving/model_serving.md b/packages/backend.ai-webui-docs/src/ja/model_serving/model_serving.md index 14ddfcc2db..f6d0025648 100644 --- a/packages/backend.ai-webui-docs/src/ja/model_serving/model_serving.md +++ b/packages/backend.ai-webui-docs/src/ja/model_serving/model_serving.md @@ -63,8 +63,7 @@ Backend.AIは、モデル学習フェーズにおける開発環境の構築と :::tip 代替ワークフローとして、[モデルストア](#model-store)で事前構成されたモデルを閲覧し、 -`Run this model`ボタン(バージョン 26.4.0 以降では `Deploy` に名称変更)を使用して -ワンクリックでデプロイすることもできます。 +`デプロイ` ボタンを使用してワンクリックでデプロイすることもできます。 ::: @@ -273,9 +272,9 @@ failures) ┌─────┴─────┐ サービス定義ファイル(`service-definition.toml`)を使用すると、管理者はモデルサービスに必要なリソース、環境、およびランタイム設定を事前に構成できます。このファイルがモデルフォルダーに存在する場合、システムはサービスを作成する際にこれらの設定をデフォルト値として使用します。 `model-definition.yaml` と `service-definition.toml` の両方がモデルフォルダーに存在する必要があり、 -これによりモデルストアページで`Run this model`ボタン(バージョン 26.4.0 以降では `Deploy`)が -有効になります。これら2つのファイルは連携して動作します:モデル定義はモデルと推論サーバーの -構成を指定し、サービス定義はランタイム環境、リソース割り当て、および環境変数を指定します。 +これによりモデルストアページで `デプロイ` ボタンが有効になります。これら 2 つの +ファイルは連携して動作します:モデル定義はモデルと推論サーバーの構成を指定し、サービス +定義はランタイム環境、リソース割り当て、および環境変数を指定します。 サービス定義ファイルは、ランタイムバリアントごとにセクションを整理したTOML形式に従います。各セクションはサービスの特定の側面を構成します: @@ -319,9 +318,9 @@ MODEL_NAME = "example-model-name" ::: :::note -`Run this model`ボタン(バージョン 26.4.0 以降では `Deploy`)を使用してモデルストアから -サービスを作成すると、`service-definition.toml` の設定が自動的に適用されます。後で -リソース割り当てを調整する必要がある場合は、モデルサービングページを通じてサービスを変更できます。 +`デプロイ` ボタンを使用してモデルストアからサービスを作成すると、 +`service-definition.toml` の設定が自動的に適用されます。後でリソース割り当てを調整する +必要がある場合は、モデルサービングページを通じてサービスを変更できます。 ::: ## サービングページの概要 @@ -531,7 +530,6 @@ vllm serve /models/my-model --tp 2 - **サービスを準備しています**: サービスがデプロイ中またはステータス遷移中に表示されます。サービスがまだリクエストを処理する準備ができていないことを示します。 ![](../images/endpoint_preparing_alert.png) - - **サービスの準備が整いました**: サービスのステータスが `HEALTHY` の場合に表示されます。このバナーには、LLMチャットテストインターフェースへのショートカットを提供する **チャットを開始** ボタンが含まれています。 @@ -591,85 +589,39 @@ vllm serve /models/my-model --tp 2 ### 自動スケーリングルール -モデルサービスの自動スケーリングルールを設定できます。 -定義されたルールに基づいて、使用率が低い時はリソースを節約するためにレプリカ数が自動的に減少し、 -使用率が高い時はリクエストの遅延や失敗を防ぐために増加します。 - -![](../images/auto_scaling_rules.png) - -新しいルールを追加するには、`Add Rules`ボタンをクリックします。ボタンをクリックすると、 -ルールを追加できるモーダルが表示されます。モーダル内の各フィールドについて以下に説明します: - -- **Type**: ルールを定義します。ルールの範囲に基づいて`Scale Out`または`Scale In`を選択します。 - -- **Metric Source**: 推論フレームワークまたはカーネルです。 - - - Inference Framework: すべてのレプリカから取得された平均値です。AppProxyが推論メトリックをレポートする場合のみサポートされます。 - - Kernel: エンドポイントをバッキングするすべてのカーネルから取得された平均値です。 - -- **Condition**: 自動スケーリングルールが適用される条件を設定します。 - - - **Metric Name**: 比較されるメトリックの名前です。ランタイム環境でサポートされている任意のメトリックを自由に入力できます。 - - **Comparator**: ライブメトリックをしきい値と比較する方法です。 - - - LESS_THAN: 現在のメトリック値が定義されたしきい値を下回ったときにルールがトリガーされます - - LESS_THAN_OR_EQUAL: 現在のメトリック値が定義されたしきい値以下になったときにルールがトリガーされます - - GREATER_THAN: 現在のメトリック値が定義されたしきい値を上回ったときにルールがトリガーされます - - GREATER_THAN_OR_EQUAL: 現在のメトリック値が定義されたしきい値以上になったときにルールがトリガーされます - - - **Threshold**: スケーリング条件が満たされるかどうかを判断するための参照値です。 - -- **Step Size**: ルールがトリガーされたときに変更されるレプリカ数のステップサイズです。 - 正の値と負の値の両方で表すことができます。 - 負の値として定義されると、ルールはレプリカ数を減少させます。 - -- **Max/Min Replicas**: エンドポイントのレプリカ数の最大値/最小値を設定します。 - 潜在的なレプリカ数がこの値を超える/下回る場合、ルールはトリガーされません。 - -- **CoolDown Seconds**: ルールが最初にトリガーされた直後に、ルールの再適用をスキップする秒単位の期間です。 - -![](../images/auto_scaling_rules_modal.png) - -:::note -Backend.AI バージョン **26.4.0** 以降、自動スケーリングルールは Prometheus プリセット -サポートと新しいコンディションモデルで再設計されました。それより古いバージョンを使用 -している場合は、上記の説明がそのまま適用されます。それ以外の場合は、以下の -[自動スケーリングルール(バージョン 26.4.0 以降)](#auto-scaling-rules-version-26-4-0-and-later) -を参照してください。 -::: - - - -#### 自動スケーリングルール(バージョン 26.4.0 以降) - -Backend.AI バージョン 26.4.0 以降では、Prometheus メトリックソース、セグメント化されたコンディションコントロール、およびより豊富なルール一覧を備えた自動スケーリングルールが再設計されました。 +自動スケーリングルール(Auto Scaling Rules)は、ライブメトリックに基づいてモデルサービスのレプリカ数を自動的に増減します。これにより、使用率が低いときはリソースを節約し、使用率が高いときはリクエストの遅延や失敗を防ぎます。 ![](../images/auto_scaling_rules_v2.png) ルール一覧には以下が含まれます: -- **作成された時間**(Created At)および**最後にトリガーされました**(Last Triggered)の日時範囲でルールをフィルタリングできるプロパティフィルターバー。 +- 作成された時間(Created At)および最後にトリガーされました(Last Triggered)の日時範囲でルールをフィルタリングできるプロパティフィルターバー。 - サーバーサイドのページネーション。 -- 以下の列:**メトリックソース**(Metric Source)、**コンディション**(Condition)、**時間ウィンドウ**(Time Window)、**ステップサイズ**(Step Size)、**min / max レプリカ**(Min / Max Replicas)、**作成された時間**(Created At)、**最後にトリガーされました**(Last Triggered)。**ステップサイズ**列は、設定されたしきい値から導出される方向に基づいて `+`、`−`、`±` を自動的に表示するため、`Scale Out` または `Scale In` を明示的に選択する必要はなくなりました。 +- メトリックソース(Metric Source)、コンディション(Condition)、時間ウィンドウ(Time Window)、ステップサイズ(Step Size)、min / max レプリカ(Min / Max Replicas)、作成された時間(Created At)、最後にトリガーされました(Last Triggered)の列。ステップサイズ列は、設定されたしきい値から導出される方向に基づいて `+`、`−`、`±` を自動的に表示するため、`Scale Out` または `Scale In` を明示的に選択する必要はなくなりました。 - 各行のコンディションサマリーの横に表示される行ごとの編集および削除アイコン。 -`Add Rules`ボタンをクリックすると、**自動スケーリングルールを追加します**エディターが開きます。既存のルールを変更するには、その行の編集アイコンをクリックします。ルールの値が事前に入力された状態で**自動スケーリングルールを編集します**エディターが開きます。エディターには次のフィールドが順番に含まれます: +`Add Rules` ボタンをクリックすると、**自動スケーリングルールを追加します** エディターが開きます。既存のルールを変更するには、その行の編集アイコンをクリックします。ルールの値が事前に入力された状態で **自動スケーリングルールを編集します** エディターが開きます。エディターには次のフィールドが順番に含まれます: + +- **メトリックソース(Metric Source)**: `Kernel`、`Inference Framework`、`Prometheus` のいずれかを選択します。 +- **メトリック名(Metric Name)**: `Kernel` および `Inference Framework` の場合、メトリック名を入力します。`Kernel` では、`cpu_util`、`mem`、`net_rx`、`net_tx` などの一般的なメトリックがオートコンプリートの候補として提案され、カスタム名を自由に入力することもできます。 +- **メトリック名プリセット(Metric Name (Prometheus Preset))**: メトリックソースが `Prometheus` の場合のみ表示されます。ドロップダウンからプリセットを選択すると、プリセットのメトリック名、クエリテンプレート、および(定義されている場合)時間ウィンドウが自動的に入力されます。セレクタの下にある現在の値(Current value)プレビューは、プリセットが返す最新の値を更新ボタンとともに表示します。複数のシリーズが返される場合、プレビューにはシリーズの件数と最新の値が表示されます。利用可能なデータがない場合は、データがありません(No data available)と表示されます。 +- **コンディション(Condition)**: 2 つのモードを持つセグメント化されたコントロールです。 + + * シングル(Single): `Metric Threshold` の単一比較を定義します。ここで `` は `>` または `<` です。 + * 範囲(Range): `Min Threshold < Metric < Max Threshold` の範囲を定義します。両方のしきい値が必須で、最小値は最大値より小さくなければなりません。 -- **メトリックソース**(Metric Source): `Kernel`、`Inference Framework`、`Prometheus` のいずれかを選択します。 -- **メトリック名**(Metric Name): `Kernel` および `Inference Framework` の場合、メトリック名を入力します。`Kernel` では、`cpu_util`、`mem`、`net_rx`、`net_tx` などの一般的なメトリックがオートコンプリートの候補として提案され、カスタム名を自由に入力することもできます。 -- **メトリック名(Prometheusプリセット)**(Metric Name (Prometheus Preset)): **メトリックソース**が `Prometheus` の場合のみ表示されます。ドロップダウンからプリセットを選択すると、プリセットのメトリック名、クエリテンプレート、および(定義されている場合)**時間ウィンドウ**が自動的に入力されます。セレクタの下にある**現在の値**(Current value)プレビューは、プリセットが返す最新の値を更新ボタンとともに表示します。複数のシリーズが返される場合、プレビューにはシリーズの件数と最新の値が表示されます。利用可能なデータがない場合は、**データがありません**(No data available)と表示されます。 -- **コンディション**(Condition): 2 つのモードを持つセグメント化されたコントロールです: +- **ステップサイズ(Step Size)**: スケーリングイベントごとに追加または削除するレプリカ数を指定する正の整数です。方向(追加または削除)は設定されたしきい値から自動的に導出されます。 - - **シングル**(Single): `Metric Threshold` の単一比較を定義します。ここで `` は `>` または `<` です。 - - **範囲**(Range): `Min Threshold < Metric < Max Threshold` の範囲を定義します。両方のしきい値が必須で、最小値は最大値より小さくなければなりません。 + * 最小しきい値のみ設定 → `[metric] < [minThreshold]`。メトリックがこの値を下回るとスケール**イン**(Scale In)されます。 + * 最大しきい値のみ設定 → `[maxThreshold] < [metric]`。メトリックがこの値を上回るとスケール**アウト**(Scale Out)されます。 + * 両方設定 → `[metric] < [minThreshold]` または `[maxThreshold] < [metric]`。メトリックがどちらの境界を超えたかに応じてスケールインまたはスケールアウトされます。 -- **ステップサイズ**(Step Size): スケーリングイベントごとに追加または削除するレプリカ数を指定する正の整数です。方向(追加または削除)は構成されたしきい値から自動的に導出されるため、大きさのみを指定します。 -- **時間ウィンドウ**(Time Window): メトリックが集約されてスケーリング評価に使用される時間(秒単位)です。これは以前の `CoolDown Seconds` フィールドを置き換えるもので、意味が異なります。 -- **最小レプリカ**(Min Replicas)および**マックスレプリカ**(Max Replicas): 自動スケーリングがレプリカ数に対して強制する下限と上限です。自動スケーリングは、レプリカ数を**最小レプリカ**より下げたり、**マックスレプリカ**より上げたりすることはありません。 +- **時間ウィンドウ(Time Window)**: メトリックが集約されてスケーリング評価に使用される時間(秒単位)です。これは以前の `CoolDown Seconds` フィールドを置き換えるもので、意味が異なります。 +- **最小レプリカ(Min Replicas)および最大レプリカ(Max Replicas)**: 自動スケーリングがレプリカ数に対して強制する下限と上限です。自動スケーリングは、レプリカ数を最小レプリカより下げたり、最大レプリカより上げたりすることはありません。 ![](../images/auto_scaling_rules_modal_v2.png) -**メトリックソース**が `Prometheus` に設定されている場合、エディターにはプリセットセレクタとライブの**現在の値**プレビューが表示されます。 +メトリックソース(Metric Source)が `Prometheus` に設定されている場合、エディターにはプリセットセレクタとライブの現在の値(Current value)プレビューが表示されます。 ![](../images/auto_scaling_rules_modal_prometheus_v2.png) @@ -716,7 +668,6 @@ Backend.AI バージョン 26.4.0 以降では、Prometheus メトリックソ ルートにエラーが発生した場合、ルート行のエラーインジケーターをクリックすると、そのルートの生のエラーデータを表示するJSONビューアーモーダルが開きます。これは、個々のルートノードの問題を診断するのに役立ちます。 ![](../images/route_error_json_viewer.png) - ### サービスの変更 @@ -782,109 +733,62 @@ API接続に問題が発生した場合、Chatページにモデル設定を手 ## Model Store -モデルストアは、事前構成されたモデルを閲覧、検索、デプロイできるカードベースのギャラリーを提供します。サイドバーメニューからモデルストアにアクセスできます。 +モデルストア(Model Store)は、事前構成されたモデルを閲覧、検索、デプロイできるカードベースのギャラリーを提供します。サイドバーメニューからモデルストアにアクセスできます。 -![](../images/model_store_page.png) +![](../images/model_store_page_v2.png) ### モデルの閲覧と検索 -ページ上部の検索バーを使用して、名前、説明、タスク、カテゴリ、またはラベルでモデルを検索できます。また、フィルタードロップダウンを使用して結果を絞り込むことができます: - -- **Category**: モデルカテゴリでフィルタリングします(例:LLM)。 -- **Task**: タスクタイプでフィルタリングします(例:text-generation)。 -- **Label**: モデルラベルでフィルタリングします。 - -### モデルカードの詳細 - -モデルカードをクリックすると、モーダルで詳細を表示できます。モデルカードモーダルには以下が表示されます: - -- **Title**、**Author**、**Version** -- **Description**と**README** -- **Task**、**Category**、**Architecture** -- **Framework**と**Labels** -- **License** -- モデルの実行に必要な**最小リソース** -- モデルストレージフォルダーへのリンク - -![](../images/model_card_detail_modal.png) - -### モデルのクローン - -モデルカードの`Clone to a folder`ボタンをクリックして、モデルフォルダーを自分のストレージにクローンします。コピー先のフォルダー名を指定できる確認ダイアログが表示されます。 - -![](../images/model_clone_dialog.png) - -### モデルストアからモデルを実行 - -モデルカードの`Run this model`ボタンをクリックして、モデルをサービスとしてデプロイします。これには、モデルフォルダーに`model-definition.yaml`と`service-definition.toml`の両方が存在する必要があります。 - -- サービス定義に1つのランタイムバリアントのみが構成されている場合、事前構成された設定でサービスが自動的に起動します。 -- 複数のランタイムバリアントが利用可能な場合、1つを選択するためにサービスランチャーページにリダイレクトされます。 - -:::note -モデルストアからサービスを作成すると、`service-definition.toml`の設定が -自動的に適用されます。後でサービングページを通じてサービスを変更できます。 -::: - -:::note -Backend.AI バージョン **26.4.0** 以降、モデルストアは再設計されました。それより古い -バージョンを使用している場合は、上記の説明がそのまま適用されます。それ以外の場合は、 -以下の[モデルストア(バージョン 26.4.0 以降)](#model-store-version-26-4-0-and-later) -を参照してください。 -::: - - - -### モデルストア(バージョン 26.4.0 以降) - -Backend.AI バージョン 26.4.0 以降では、簡素化された閲覧エクスペリエンス、カード詳細ドロワー、および従来の閲覧/詳細/実行ワークフローを置き換える合理化されたデプロイフローを備えたモデルストアに再設計されました。 - -![](../images/model_store_page_v2.png) - ページ上部には検索と並べ替えのレイアウトが使用されています: -- **モデルの検索**(Search Models): **名前でフィルタリングする**(Filter By Name)プロパティフィルターを使用して、モデルカードを名前で検索します。 -- **並べ替え**(Sort): 結果の並び順を選択します。使用可能なオプションは、`名前 (A→Z)`、`名前 (Z→A)`、`古い順`、`新しい順` です。 -- **更新**: 更新ボタンをクリックしてカード一覧を再読み込みします。 +- **モデルの検索(Search Models)**: 名前でフィルタリング(Filter By Name)プロパティフィルターを使用して、モデルカードを名前で検索します。 +- **並べ替え(Sort)**: 結果の並び順を選択します。使用可能なオプションは、`名前 (A→Z)`、`名前 (Z→A)`、`古い順`、`新しい順` です。 +- **更新(Refresh)**: 更新ボタンをクリックしてカード一覧を再読み込みします。 -各カードには、モデルブランドのアイコン、タイトル(タイトルが設定されていない場合は名前)、タスクタグ、相対作成時刻、およびアイコン付きの著者が表示されます。現在のプロジェクトに**互換性のあるプリセットがない**カードは不透明度 50 % で表示されます。そのようなカードを開いて詳細を表示することは可能ですが、**Deploy** ボタンは無効化され、ドロワーに *No compatible presets available. This model cannot be deployed.* というエラーアラートが表示されます。 +各カードには、モデルブランドのアイコン、タイトル(タイトルが設定されていない場合は名前)、タスクタグ、相対作成時刻、およびアイコン付きの著者(Author)が表示されます。現在のプロジェクトに**互換性のあるプリセットがない**カードは不透明度 50 % で表示されます。そのようなカードを開いて詳細を表示することは可能ですが、`デプロイ` ボタンは無効化され、ドロワーに *互換性のあるプリセットがありません。このモデルはデプロイできません。* というエラーアラートが表示されます。 サーバーで `MODEL_STORE` プロジェクトが設定されていない場合、ページには管理者に問い合わせるようにとの案内とともに *モデルストアプロジェクトが見つかりません* というメッセージが表示されます。フィルターに一致するモデルカードがない場合は *モデルが見つかりません* と表示されます。 一覧はページ下部でページネーションされます。ページサイズは `10`、`20`、`50` 件の中から変更できます。 +### モデルカードの詳細 + カードをクリックすると、ページの右側にモデルカードのドロワーが開きます。ドロワーの上部にはモデルのタイトルと説明が表示され、次にタスク、カテゴリ、ラベル、ライセンスのタグが続き、その後に次の項目を含む詳細一覧が表示されます: -- **著者**(Author) -- **アーキテクチャ**(Architecture) -- **フレームワーク**(Framework)(各フレームワークはアイコン付きで表示) -- **バージョン**(Version) -- **作成した**(Created)および**最終更新日**(Last Modified)のタイムスタンプ -- **モデルフォルダ**(Model Folder): モデルストレージフォルダのフォルダエクスプローラを開くクリック可能なリンク -- **最小リソース**(Min Resource): 最小リソース要件(CPU、メモリ、GPU) +- **著者(Author)** +- **アーキテクチャ(Architecture)** +- **フレームワーク(Framework)**(各フレームワークはアイコン付きで表示) +- **バージョン(Version)** +- **作成日時(Created)** および **最終更新日時(Last Modified)** のタイムスタンプ +- **モデルフォルダ(Model Folder)**: モデルストレージフォルダのフォルダエクスプローラを開くクリック可能なリンク +- **最小リソース(Min Resource)**: 最小リソース要件(CPU、メモリ、GPU) モデルカードに README が含まれている場合は、ドロワーの下部に `README.md` カードとしてレンダリングされます。 ![](../images/model_card_detail_drawer.png) -バージョン 26.4.0 以降でモデルフォルダをクローンするには、[データ](../vfolder/vfolder.md) ページを直接使用してください。モデルストアドロワーには専用のクローンボタンは提供されなくなりました。 +### モデルのクローン + +モデルフォルダをクローンするには、[データ](../vfolder/vfolder.md) ページを直接使用してください。モデルストアドロワーには専用のクローンボタンは提供されません。 -ドロワーヘッダーの **Deploy** ボタンをクリックすると、モデルがサービスとしてデプロイされます。デプロイフローは次の 2 通りのいずれかで動作します: +### モデルのデプロイ + +ドロワーヘッダーの `デプロイ` ボタンをクリックすると、モデルがサービスとしてデプロイされます。デプロイフローは次の 2 通りのいずれかで動作します: - **自動デプロイ**: モデルに使用可能なプリセットがちょうど 1 つあり、現在のプロジェクトにアクセス可能なリソースグループがちょうど 1 つある場合、モーダルを表示せずにデプロイが静かに作成されます。エンドポイントがクエリ可能になった後、そのエンドポイント詳細ページに遷移します。 -- **モデルのデプロイモーダル**(Deploy Model): それ以外の場合、**Deploy Model** モーダルが次の必須フィールドとともに開きます: +- **モデルのデプロイモーダル(Deploy Model)**: それ以外の場合、モデルのデプロイモーダルが次の必須フィールドとともに開きます。 - - **プリセット**(Preset): 使用可能なリソースプリセットのグループ化されたドロップダウンです。プリセットが複数のランタイムバリアントにまたがる場合、オプションはランタイムバリアント名ごとにグループ化されます。それ以外の場合は、フラットなリストとして表示されます。 - - **リソースグループ**(Resource Group): サービスが実行されるリソースグループです。 + * **プリセット(Preset)**: 使用可能なリソースプリセットのグループ化されたドロップダウンです。プリセットが複数のランタイムバリアントにまたがる場合、オプションはランタイムバリアント名ごとにグループ化されます。それ以外の場合は、フラットなリストとして表示されます。 + * **リソースグループ(Resource Group)**: サービスが実行されるリソースグループです。 - モーダルの **Deploy** ボタンをクリックしてデプロイを開始します。モデルがデプロイされたことを確認する成功トーストが表示され、エンドポイント詳細ページに遷移します。 + モーダルの `デプロイ` ボタンをクリックしてデプロイを開始します。モデルがデプロイされたことを確認する成功トーストが表示され、エンドポイント詳細ページに遷移します。 ![](../images/model_card_deploy_modal.png) :::note 選択したモデルに現在のプロジェクトと互換性のあるプリセットがない場合、ドロワーの -**Deploy** ボタンは無効化され、互換性のあるプリセットが利用可能になるまでデプロイは -ブロックされます。 +`デプロイ` ボタンは無効化され、互換性のあるプリセットが利用可能になるまで +デプロイはブロックされます。 ::: ## 管理者機能 @@ -902,82 +806,53 @@ Backend.AI バージョン 26.4.0 以降では、簡素化された閲覧エク ### 管理者モデルストア管理 -スーパー管理者は、管理者サービングページの**Model Store Management**タブを通じてモデルカードを管理できます。このタブは、以下の列を持つすべてのモデルカードのテーブルビューを提供します:**Name**、**Title**、**Task**、**Category**、**Labels**、**Created At**、**Controls**。 - -![](../images/admin_model_card_list.png) - -#### モデルカードの作成 - -`Create Model Card`ボタンをクリックして作成モーダルを開きます。以下のフィールドを入力します: - -- **Name**(必須): モデルカードの一意の識別子です。 -- **Title**: 人間が読みやすい表示名です。 -- **Description**: モデルの詳細な説明です。 -- **Author**: モデルの作成者または組織です。 -- **Model Version**: モデルのバージョンです。 -- **Task**: 推論タスクタイプです(例:text-generation)。 -- **Category**: モデルカテゴリです(例:LLM)。 -- **Framework**: 使用されるMLフレームワークです(例:PyTorch、TensorFlow)。 -- **Label**: 分類およびフィルタリング用のタグです。 -- **License**: モデルが配布されるライセンスです。 -- **Architecture**: モデルアーキテクチャです(例:Transformer)。 -- **README**: モデルのマークダウンREADMEです。 -- **Domain**: モデルカードを関連付けるドメインです。 -- **Project ID**(必須): モデルカードを所有するプロジェクトです。 -- **VFolder**(必須): モデルファイルを含むストレージフォルダーです。 -- **Access Level**: `Internal`(ドメイン内で表示)または`Public`(すべてのユーザーに表示)に設定します。 - -#### モデルカードの編集 - -**Controls**列の編集アイコンをクリックして、既存のモデルカードを変更します。以前に入力したフィールドが入力された状態で編集モーダルが開きます。 - -#### モデルカードの削除 - -**Controls**列の削除アイコンをクリックして個別のモデルカードを削除するか、複数のモデルカードを選択して`Delete Selected`をクリックして一括削除を実行できます。 - -#### プロジェクトモデルカードのスキャン - -`Scan Project Model Cards`ボタンをクリックして、プロジェクトのモデルフォルダーを自動的にスキャンし、有効なモデル定義を含むフォルダーのモデルカードを作成します。スキャン結果には、作成および更新されたモデルカードの数が表示されます。 +スーパー管理者は、管理者サービングページのモデルストア管理(Model Store Management)タブを通じてモデルカードを管理できます。 +![](../images/admin_model_card_list_v2.png) -:::note -Backend.AI バージョン **26.4.0** 以降、管理者モデルストア管理タブは再設計されました。 -それより古いバージョンを使用している場合は、上記の説明がそのまま適用されます。 -それ以外の場合は、以下の -[管理者モデルストア管理(バージョン 26.4.0 以降)](#admin-model-store-management-version-26-4-0-and-later) -を参照してください。 -::: +一覧には次の列が表示されます: - +- **名前(Name)**: モデルカードの一意の識別子です。 +- **タイトル(Title)**: 人間が読みやすい表示名です。 +- **カテゴリ(Category)**: モデルカテゴリです(例:LLM)。 +- **タスク(Task)**: 推論タスクタイプです(例:text-generation)。 +- **アクセスレベル(Access Level)**: モデルカードが公開アクセス可能な場合は緑色の `Public` タグが、それ以外の場合はデフォルトの `Private` タグが表示されます。 +- **ドメイン(Domain)**: モデルカードを所有するドメインです。 +- **プロジェクト(Project)**: モデルカードを所有するプロジェクトです。 +- **作成日時(Created At)**: モデルカードが作成された時間です。 -#### 管理者モデルストア管理(バージョン 26.4.0 以降) +上部のプロパティフィルターバーを使用して、名前で一覧をフィルタリングできます。各行の名前セルには、編集および削除のアクションアイコンが直接表示されます。 -Backend.AI バージョン 26.4.0 以降では、**Model Store Management** タブに再設計されたモデルカード一覧が表示されます。 +複数のモデルカードを一度に削除するには、チェックボックスで削除する行を選択し、選択件数の横にある赤色のゴミ箱ボタンをクリックします。カードが削除される前に確認ダイアログが表示されます。 -![](../images/admin_model_card_list_v2.png) +#### モデルカードの作成 -一覧には次の列が表示されます: +`モデルカードの作成(Create Model Card)` ボタンをクリックして作成モーダルを開きます。以下のフィールドを入力します: + +- **名前(Name)**(必須): モデルカードの一意の識別子です。 +- **タイトル(Title)**: 人間が読みやすい表示名です。 +- **説明(Description)**: モデルの詳細な説明です。 +- **著者(Author)**: モデルの作成者または組織です。 +- **モデルバージョン(Model Version)**: モデルのバージョンです。 +- **タスク(Task)**: 推論タスクタイプです(例:text-generation)。 +- **カテゴリ(Category)**: モデルカテゴリです(例:LLM)。 +- **フレームワーク(Framework)**: 使用される ML フレームワークです(例:PyTorch、TensorFlow)。 +- **ラベル(Label)**: 分類およびフィルタリング用のタグです。 +- **ライセンス(License)**: モデルが配布されるライセンスです。 +- **アーキテクチャ(Architecture)**: モデルアーキテクチャです(例:Transformer)。 +- **README**: モデルのマークダウン README です。 +- **ドメイン(Domain)**: モデルカードを関連付けるドメインです。 +- **プロジェクト ID(Project ID)**(必須): モデルカードを所有するプロジェクトです。 +- **VFolder**(必須): モデルファイルを含むストレージフォルダーです。 +- **アクセスレベル(Access Level)**: ユーザー向けモデルストアでモデルカードを誰が閲覧できるかを制御します。 -- **名前**(Name): モデルカードの一意の識別子です。 -- **タイトル**(Title): 人間が読みやすい表示名です。 -- **カテゴリー**(Category): モデルカテゴリです(例:LLM)。 -- **タスク**(Task): 推論タスクタイプです(例:text-generation)。 -- **アクセスレベル**(Access Level): モデルカードが公開アクセス可能な場合は緑色の `Public` タグが、それ以外の場合はデフォルトの `Private` タグが表示されます。 -- **ドメイン**(Domain): モデルカードを所有するドメインです。 -- **プロジェクト**(Project): モデルカードを所有するプロジェクトです。 -- **作成された時間**(Created At): モデルカードが作成された時間です。 + * `Internal`: モデルカードを所有するドメインとプロジェクトの管理者にのみ表示されます。一般ユーザーは、自分のモデルストアで Internal のモデルカードを閲覧できません。 + * `Public`: 該当プロジェクトにアクセス権を持つすべてのユーザーに表示されます。 -上部のプロパティフィルターバーを使用して、**名前**で一覧をフィルタリングできます。各行の**名前**セルには、編集および削除のアクションアイコンが直接表示されます。 +#### モデルカードの編集 -複数のモデルカードを一度に削除するには、チェックボックスで削除する行を選択し、選択件数の横にある赤色のゴミ箱ボタンをクリックします。カードが削除される前に確認ダイアログが表示されます。 +モデルカード名の横にある編集アイコンをクリックして、既存のモデルカードを変更します。以前に入力したフィールドが入力された状態で編集モーダルが開きます。 -:::note -個別モデルカードの作成、編集、削除ダイアログは以前のバージョンと同じです。 -[モデルカードの作成](#creating-a-model-card)、 -[モデルカードの編集](#editing-a-model-card)、 -[モデルカードの削除](#deleting-model-cards) を参照してください。 -::: +#### モデルカードの削除 -:::note -**Scan Project Model Cards** ボタンは Backend.AI バージョン 26.4.0 以降では利用できません。 -::: +モデルカード名の横にある削除アイコンをクリックして個別のモデルカードを削除するか、行のチェックボックスで複数のモデルカードを選択したうえで、選択件数の横にある赤色のゴミ箱ボタンをクリックして一括削除を実行できます。 diff --git a/packages/backend.ai-webui-docs/src/ko/images/auto_scaling_rules_v2.png b/packages/backend.ai-webui-docs/src/ko/images/auto_scaling_rules_v2.png index b6faffbceb..adb9954d12 100644 Binary files a/packages/backend.ai-webui-docs/src/ko/images/auto_scaling_rules_v2.png and b/packages/backend.ai-webui-docs/src/ko/images/auto_scaling_rules_v2.png differ diff --git a/packages/backend.ai-webui-docs/src/ko/images/endpoint_preparing_alert.png b/packages/backend.ai-webui-docs/src/ko/images/endpoint_preparing_alert.png new file mode 100644 index 0000000000..897ef38e6e Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ko/images/endpoint_preparing_alert.png differ diff --git a/packages/backend.ai-webui-docs/src/ko/images/route_error_json_viewer.png b/packages/backend.ai-webui-docs/src/ko/images/route_error_json_viewer.png new file mode 100644 index 0000000000..993456f809 Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ko/images/route_error_json_viewer.png differ diff --git a/packages/backend.ai-webui-docs/src/ko/images/service_launcher_runtime_variant.png b/packages/backend.ai-webui-docs/src/ko/images/service_launcher_runtime_variant.png index f1e99e9a1c..074f82d005 100644 Binary files a/packages/backend.ai-webui-docs/src/ko/images/service_launcher_runtime_variant.png and b/packages/backend.ai-webui-docs/src/ko/images/service_launcher_runtime_variant.png differ diff --git a/packages/backend.ai-webui-docs/src/ko/model_serving/model_serving.md b/packages/backend.ai-webui-docs/src/ko/model_serving/model_serving.md index 6601649e57..73746589d0 100644 --- a/packages/backend.ai-webui-docs/src/ko/model_serving/model_serving.md +++ b/packages/backend.ai-webui-docs/src/ko/model_serving/model_serving.md @@ -63,8 +63,7 @@ Backend.AI는 모델 학습 단계에서 개발 환경 구축과 리소스 관 :::tip 대안적 워크플로우로, [모델 스토어](#model-store)에서 사전 구성된 모델을 탐색하고 -`Run this model` 버튼(버전 26.4.0 이상에서는 `Deploy`로 이름이 변경됨)을 사용하여 -한 번의 클릭으로 배포할 수 있습니다. +`배포` 버튼을 사용하여 한 번의 클릭으로 배포할 수 있습니다. ::: @@ -274,9 +273,9 @@ failures) ┌─────┴─────┐ 서비스 정의 파일(`service-definition.toml`)을 사용하면 관리자가 모델 서비스에 필요한 리소스, 환경 및 런타임 설정을 미리 구성할 수 있습니다. 이 파일이 모델 폴더에 있으면, 시스템은 서비스를 생성할 때 이러한 설정을 기본값으로 사용합니다. `model-definition.yaml`과 `service-definition.toml` 모두 모델 폴더에 있어야 -모델 스토어 페이지에서 `Run this model` 버튼(버전 26.4.0 이상에서는 `Deploy`)이 -활성화됩니다. 이 두 파일은 함께 작동합니다: 모델 정의는 모델과 추론 서버 구성을 -지정하고, 서비스 정의는 런타임 환경, 리소스 할당 및 환경 변수를 지정합니다. +모델 스토어 페이지에서 `배포` 버튼이 활성화됩니다. 이 두 파일은 함께 +작동합니다: 모델 정의는 모델과 추론 서버 구성을 지정하고, 서비스 정의는 런타임 +환경, 리소스 할당 및 환경 변수를 지정합니다. 서비스 정의 파일은 런타임 변형별로 섹션이 구성된 TOML 형식을 따릅니다. 각 섹션은 서비스의 특정 측면을 구성합니다. @@ -320,9 +319,9 @@ MODEL_NAME = "example-model-name" ::: :::note -`Run this model` 버튼(버전 26.4.0 이상에서는 `Deploy`)을 사용하여 모델 스토어에서 -서비스를 생성하면 `service-definition.toml`의 설정이 자동으로 적용됩니다. 나중에 -리소스 할당을 조정해야 하는 경우, 모델 서빙 페이지를 통해 서비스를 수정할 수 있습니다. +`배포` 버튼을 사용하여 모델 스토어에서 서비스를 생성하면 +`service-definition.toml`의 설정이 자동으로 적용됩니다. 나중에 리소스 할당을 +조정해야 하는 경우, 모델 서빙 페이지를 통해 서비스를 수정할 수 있습니다. ::: ## 서빙 페이지 개요 @@ -537,20 +536,19 @@ vllm serve /models/my-model --tp 2 - **환경 변수**: 코드 블록으로 표시됩니다. - **이미지**: 서비스에 사용되는 컨테이너 이미지입니다. -서비스 정보 카드에서 `Edit` 버튼을 클릭하면 업데이트 런처로 이동하여 서비스 설정을 수정할 수 있습니다. +서비스 정보 카드에서 `수정` 버튼을 클릭하면 업데이트 런처로 이동하여 서비스 설정을 수정할 수 있습니다. 엔드포인트 상세 페이지는 서비스의 현재 상태에 따라 페이지 상단에 상황별 알림 배너를 표시합니다: - **서비스를 준비하고 있습니다**: 서비스가 배포 중이거나 상태 전환 중일 때 표시됩니다. 서비스가 아직 요청을 처리할 준비가 되지 않았음을 나타냅니다. ![](../images/endpoint_preparing_alert.png) - - **서비스가 준비되었습니다**: 서비스 상태가 `HEALTHY`일 때 표시됩니다. 이 배너에는 LLM 채팅 테스트 인터페이스로의 바로가기를 제공하는 **채팅 시작** 버튼이 포함됩니다. ![](../images/endpoint_service_ready_alert.png) -- **이 모델 서비스는 다른 프로젝트에 속해 있습니다**: 엔드포인트가 현재 선택된 프로젝트와 다른 프로젝트에 속할 때 표시됩니다. 이 알림이 표시되는 동안 Edit 버튼은 비활성화됩니다. 알림의 **프로젝트 전환** 버튼을 클릭하여 올바른 프로젝트로 전환하고 엔드포인트를 관리할 수 있습니다. +- **이 모델 서비스는 다른 프로젝트에 속해 있습니다**: 엔드포인트가 현재 선택된 프로젝트와 다른 프로젝트에 속할 때 표시됩니다. 이 알림이 표시되는 동안 `수정` 버튼은 비활성화됩니다. 알림의 **프로젝트 전환** 버튼을 클릭하여 올바른 프로젝트로 전환하고 엔드포인트를 관리할 수 있습니다. @@ -593,7 +591,7 @@ vllm serve /models/my-model --tp 2 #### 리비전을 활용한 편집 동작 (Custom 변형 전용) -`Custom` 런타임 변형을 사용하는 서비스에서 서비스 정보 패널의 **Edit** 버튼을 클릭하면, 서비스 런처 폼에 최신 리비전의 모델 정의 값이 기본값으로 미리 채워집니다. 이를 통해 모든 필드를 다시 입력하지 않고도 설정을 점진적으로 조정할 수 있습니다. +`Custom` 런타임 변형을 사용하는 서비스에서 서비스 정보 패널의 **수정** 버튼을 클릭하면, 서비스 런처 폼에 최신 리비전의 모델 정의 값이 기본값으로 미리 채워집니다. 이를 통해 모든 필드를 다시 입력하지 않고도 설정을 점진적으로 조정할 수 있습니다. :::note 이 모델 정의 값의 사전 채우기 동작은 `Custom` 런타임 변형에만 적용됩니다. @@ -604,85 +602,39 @@ vllm serve /models/my-model --tp 2 ### 자동 스케일링 규칙 -모델 서비스에 대한 자동 스케일링 규칙을 구성할 수 있습니다. -정의된 규칙에 따라, 리소스를 절약하기 위해 낮은 사용량일 때 레플리카 수가 자동으로 줄어들고, -요청 지연이나 실패를 방지하기 위해 높은 사용량일 때 증가합니다. - -![](../images/auto_scaling_rules.png) - -새 규칙을 추가하려면 `Add Rules` 버튼을 클릭합니다. 버튼을 클릭하면 모달이 나타나며 -규칙을 추가할 수 있습니다. 모달의 각 필드는 다음과 같이 설명됩니다: - -- **Type**: 규칙을 정의합니다. 규칙의 범위에 따라 `Scale Out` 또는 `Scale In`을 선택합니다. - -- **Metric Source**: 추론 프레임워크 또는 커널입니다. - - - Inference Framework: 모든 레플리카에서 가져온 평균 값입니다. AppProxy가 추론 메트릭을 보고하는 경우에만 지원됩니다. - - Kernel: 엔드포인트를 지원하는 모든 커널에서 가져온 평균 값입니다. - -- **Condition**: 자동 스케일링 규칙이 적용될 조건을 설정합니다. - - - **Metric Name**: 비교할 메트릭의 이름입니다. 런타임 환경에서 지원하는 모든 메트릭을 자유롭게 입력할 수 있습니다. - - **Comparator**: 실시간 메트릭을 임계값과 비교하는 방법입니다. - - - LESS_THAN: 현재 메트릭 값이 정의된 임계값 아래로 떨어질 때 규칙이 트리거됩니다 - - LESS_THAN_OR_EQUAL: 현재 메트릭 값이 정의된 임계값 아래이거나 같을 때 규칙이 트리거됩니다 - - GREATER_THAN: 현재 메트릭 값이 정의된 임계값 위로 올라갈 때 규칙이 트리거됩니다 - - GREATER_THAN_OR_EQUAL: 현재 메트릭 값이 정의된 임계값 위이거나 같을 때 규칙이 트리거됩니다 - - - **Threshold**: 스케일링 조건이 충족되는지 판단하기 위한 기준 값입니다. - -- **Step Size**: 규칙이 트리거될 때 변경될 레플리카 수의 단계 크기입니다. - 양수와 음수 값으로 모두 표현할 수 있습니다. - 음수로 정의되면 규칙은 레플리카 수를 감소시킵니다. - -- **Max/Min Replicas**: 엔드포인트의 레플리카 수에 대한 최대/최소 값을 설정합니다. - 잠재적 레플리카 수가 이 값을 초과하거나 미만이 되면 규칙이 트리거되지 않습니다. - -- **CoolDown Seconds**: 규칙이 처음 트리거된 직후 규칙을 다시 적용하지 않을 시간(초 단위)입니다. - -![](../images/auto_scaling_rules_modal.png) - -:::note -Backend.AI 버전 **26.4.0**부터 자동 스케일링 규칙이 Prometheus 프리셋 지원과 -새로운 조건 모델로 재설계되었습니다. 이전 버전을 사용 중이라면 위의 설명이 그대로 -적용됩니다. 그렇지 않은 경우, 아래 -[자동 스케일링 규칙 (버전 26.4.0 이상)](#auto-scaling-rules-version-26-4-0-and-later) -섹션을 참고하세요. -::: - - - -#### 자동 스케일링 규칙 (버전 26.4.0 이상) - -Backend.AI 버전 26.4.0 이상에서는 Prometheus 메트릭 소스, 세그먼트형 조건 컨트롤, 그리고 더욱 풍부한 규칙 목록과 함께 자동 스케일링 규칙이 재설계되었습니다. +자동 스케일링 규칙(Auto Scaling Rules)은 실시간 메트릭을 기반으로 모델 서비스의 레플리카 수를 자동으로 증감시킵니다. 이를 통해 낮은 사용량일 때는 리소스를 절약하고, 높은 사용량일 때는 요청 지연이나 실패를 방지할 수 있습니다. ![](../images/auto_scaling_rules_v2.png) 규칙 목록에서는 다음을 제공합니다: -- **생성 시간**(Created At)과 **최근 실행 시점**(Last Triggered) 날짜-시간 범위로 규칙을 필터링할 수 있는 속성 필터 바. +- 생성 시간(Created At)과 최근 실행 시점(Last Triggered) 날짜-시간 범위로 규칙을 필터링할 수 있는 속성 필터 바. - 서버 측 페이지네이션. -- **메트릭 소스**(Metric Source), **조건**(Condition), **타임 윈도우**(Time Window), **단계 크기**(Step Size), **최소 / 최대 복제본 수**(Min / Max Replicas), **생성 시간**(Created At), **최근 실행 시점**(Last Triggered) 컬럼. **단계 크기** 컬럼은 설정된 임계값으로부터 도출된 방향에 따라 `+`, `−`, `±` 기호를 자동으로 표시하므로, 더 이상 `Scale Out` 또는 `Scale In`을 명시적으로 선택하지 않습니다. +- 메트릭 소스(Metric Source), 조건(Condition), 타임 윈도우(Time Window), 단계 크기(Step Size), 최소 / 최대 복제본 수(Min / Max Replicas), 생성 시간(Created At), 최근 실행 시점(Last Triggered) 컬럼. 단계 크기 컬럼은 설정된 임계값으로부터 도출된 방향에 따라 `+`, `−`, `±` 기호를 자동으로 표시하므로, 더 이상 `Scale Out` 또는 `Scale In`을 명시적으로 선택하지 않습니다. - 각 행의 조건 요약 옆에 표시되는 행별 편집 및 삭제 아이콘. `Add Rules` 버튼을 클릭하면 **오토스케일링 규칙 추가** 편집기가 열립니다. 기존 규칙을 수정하려면 해당 행의 편집 아이콘을 클릭하세요. 규칙 값이 미리 채워진 상태로 **오토스케일링 규칙 수정** 편집기가 열립니다. 편집기에는 다음 필드가 순서대로 포함됩니다: -- **메트릭 소스**(Metric Source): `Kernel`, `Inference Framework`, `Prometheus` 중 하나를 선택합니다. -- **메트릭 이름**(Metric Name): `Kernel`과 `Inference Framework`의 경우 메트릭 이름을 입력합니다. `Kernel`에서는 `cpu_util`, `mem`, `net_rx`, `net_tx`와 같은 일반적인 메트릭이 자동 완성 제안으로 제공되며, 사용자 정의 이름을 자유롭게 입력할 수도 있습니다. -- **메트릭 이름 (Prometheus 프리셋)**(Metric Name (Prometheus Preset)): **메트릭 소스**가 `Prometheus`일 때만 표시됩니다. 드롭다운에서 프리셋을 선택하면 프리셋의 메트릭 이름, 쿼리 템플릿, 그리고 (정의된 경우) **타임 윈도우**가 자동으로 채워집니다. 선택기 아래의 **현재 값**(Current value) 미리보기는 프리셋이 반환하는 최신 값을 새로 고침 버튼과 함께 표시합니다. 여러 시리즈가 반환되는 경우 미리보기에는 시리즈 수와 가장 최근 값이 표시되며, 사용 가능한 데이터가 없으면 **사용 가능한 데이터가 없습니다**(No data available)라고 표시됩니다. -- **조건**(Condition): 두 가지 모드를 가진 세그먼트형 컨트롤입니다: +- **메트릭 소스(Metric Source)**: `Kernel`, `Inference Framework`, `Prometheus` 중 하나를 선택합니다. +- **메트릭 이름(Metric Name)**: `Kernel`과 `Inference Framework`의 경우 메트릭 이름을 입력합니다. `Kernel`에서는 `cpu_util`, `mem`, `net_rx`, `net_tx`와 같은 일반적인 메트릭이 자동 완성 제안으로 제공되며, 사용자 정의 이름을 자유롭게 입력할 수도 있습니다. +- **메트릭 이름 프리셋(Metric Name (Prometheus Preset))**: 메트릭 소스가 `Prometheus`일 때만 표시됩니다. 드롭다운에서 프리셋을 선택하면 프리셋의 메트릭 이름, 쿼리 템플릿, 그리고 (정의된 경우) 타임 윈도우가 자동으로 채워집니다. 선택기 아래의 현재 값(Current value) 미리보기는 프리셋이 반환하는 최신 값을 새로 고침 버튼과 함께 표시합니다. 여러 시리즈가 반환되는 경우 미리보기에는 시리즈 수와 가장 최근 값이 표시되며, 사용 가능한 데이터가 없으면 사용 가능한 데이터가 없습니다(No data available)라고 표시됩니다. +- **조건(Condition)**: 두 가지 모드를 가진 세그먼트형 컨트롤입니다. + + * 단일(Single): `Metric Threshold` 단일 비교를 정의합니다. 여기서 ``는 `>` 또는 `<` 중 하나입니다. + * 범위(Range): `Min Threshold < Metric < Max Threshold` 범위를 정의합니다. 두 임계값 모두 필수이며, 최소값은 최대값보다 작아야 합니다. + +- **단계 크기(Step Size)**: 스케일링 이벤트마다 추가하거나 제거할 복제본 수를 지정하는 양의 정수입니다. 방향(추가 또는 제거)은 설정된 임계값에서 자동으로 도출됩니다. - - **단일**(Single): `Metric Threshold` 단일 비교를 정의합니다. 여기서 ``는 `>` 또는 `<` 중 하나입니다. - - **범위**(Range): `Min Threshold < Metric < Max Threshold` 범위를 정의합니다. 두 임계값 모두 필수이며, 최소값은 최대값보다 작아야 합니다. + * 최솟값 임계값만 설정 → `[metric] < [minThreshold]`. 메트릭이 이 아래로 떨어지면 스케일 **인**(Scale In)됩니다. + * 최댓값 임계값만 설정 → `[maxThreshold] < [metric]`. 메트릭이 이 위로 올라가면 스케일 **아웃**(Scale Out)됩니다. + * 둘 다 설정 → `[metric] < [minThreshold]` 또는 `[maxThreshold] < [metric]`. 메트릭이 어느 쪽 경계를 벗어나는지에 따라 스케일 인 또는 스케일 아웃됩니다. -- **단계 크기**(Step Size): 스케일링 이벤트마다 추가하거나 제거할 복제본 수를 지정하는 양의 정수입니다. 방향(추가 또는 제거)은 구성된 임계값에서 자동으로 도출되므로 크기만 지정하면 됩니다. -- **타임 윈도우**(Time Window): 메트릭이 집계되어 스케일링 평가에 사용되는 시간(초 단위)입니다. 이는 기존의 `CoolDown Seconds` 필드를 대체하며 의미가 다릅니다. -- **최소 복제본 수**(Min Replicas) 및 **최대 복제본 수**(Max Replicas): 자동 스케일링이 복제본 수에 대해 강제하는 하한과 상한입니다. 자동 스케일링은 복제본 수를 **최소 복제본 수** 아래로 줄이거나 **최대 복제본 수** 위로 늘리지 않습니다. +- **타임 윈도우(Time Window)**: 메트릭이 집계되어 스케일링 평가에 사용되는 시간(초 단위)입니다. 이는 기존의 `CoolDown Seconds` 필드를 대체하며 의미가 다릅니다. +- **최소 복제본 수(Min Replicas) 및 최대 복제본 수(Max Replicas)**: 자동 스케일링이 복제본 수에 대해 강제하는 하한과 상한입니다. 자동 스케일링은 복제본 수를 최소 복제본 수 아래로 줄이거나 최대 복제본 수 위로 늘리지 않습니다. ![](../images/auto_scaling_rules_modal_v2.png) -**메트릭 소스**가 `Prometheus`로 설정되면 편집기에 프리셋 선택기와 실시간 **현재 값** 미리보기가 표시됩니다. +메트릭 소스(Metric Source)가 `Prometheus`로 설정되면 편집기에 프리셋 선택기와 실시간 현재 값(Current value) 미리보기가 표시됩니다. ![](../images/auto_scaling_rules_modal_prometheus_v2.png) @@ -730,11 +682,10 @@ Backend.AI 버전 26.4.0 이상에서는 Prometheus 메트릭 소스, 세그먼 라우트에 오류가 발생한 경우, 라우트 행의 오류 표시기를 클릭하면 해당 라우트의 원시 오류 데이터를 표시하는 JSON 뷰어 모달이 열립니다. 이는 개별 라우트 노드의 문제를 진단하는 데 유용합니다. ![](../images/route_error_json_viewer.png) - ### 서비스 수정 -엔드포인트 상세 페이지에서 `Edit` 버튼을 클릭하여 모델 서비스를 수정합니다. 이전에 입력한 필드가 채워진 상태로 서비스 런처가 열립니다. 변경하려는 필드만 선택적으로 수정할 수 있습니다. 필드를 수정한 후 `Confirm`을 클릭하여 변경 사항을 적용합니다. +엔드포인트 상세 페이지에서 `수정` 버튼을 클릭하여 모델 서비스를 수정합니다. 이전에 입력한 필드가 채워진 상태로 서비스 런처가 열립니다. 변경하려는 필드만 선택적으로 수정할 수 있습니다. 필드를 수정한 후 `업데이트` 버튼을 클릭하여 변경 사항을 적용합니다. ![](../images/edit_model_service.png) @@ -810,107 +761,60 @@ API 연결에 문제가 발생하면, Chat 페이지에 모델 설정을 수동 ## Model Store -모델 스토어는 사전 구성된 모델을 탐색, 검색 및 배포할 수 있는 카드 기반 갤러리를 제공합니다. 사이드바 메뉴에서 모델 스토어에 접근할 수 있습니다. +모델 스토어(Model Store)는 사전 구성된 모델을 탐색, 검색 및 배포할 수 있는 카드 기반 갤러리를 제공합니다. 사이드바 메뉴에서 모델 스토어에 접근할 수 있습니다. -![](../images/model_store_page.png) +![](../images/model_store_page_v2.png) ### 모델 탐색 및 검색 -페이지 상단의 검색 바를 사용하여 이름, 설명, 태스크, 카테고리 또는 라벨로 모델을 검색할 수 있습니다. 또한 필터 드롭다운을 사용하여 결과를 좁힐 수 있습니다: - -- **Category**: 모델 카테고리로 필터링합니다 (예: LLM). -- **Task**: 태스크 유형으로 필터링합니다 (예: text-generation). -- **Label**: 모델 라벨로 필터링합니다. - -### 모델 카드 상세 정보 - -모델 카드를 클릭하면 모달에서 상세 정보를 볼 수 있습니다. 모델 카드 모달에는 다음이 표시됩니다: - -- **Title**, **Author** 및 **Version** -- **Description** 및 **README** -- **Task**, **Category** 및 **Architecture** -- **Framework** 및 **Labels** -- **License** -- 모델 실행에 필요한 **최소 리소스** -- 모델 스토리지 폴더 링크 - -![](../images/model_card_detail_modal.png) - -### 모델 복제 - -모델 카드에서 `Clone to a folder` 버튼을 클릭하여 모델 폴더를 자신의 스토리지로 복제합니다. 대상 폴더 이름을 지정할 수 있는 확인 대화 상자가 나타납니다. - -![](../images/model_clone_dialog.png) - -### 모델 스토어에서 모델 실행 - -모델 카드에서 `Run this model` 버튼을 클릭하여 모델을 서비스로 배포합니다. 이를 위해서는 모델 폴더에 `model-definition.yaml`과 `service-definition.toml`이 모두 있어야 합니다. - -- 서비스 정의에 하나의 런타임 변형만 구성된 경우, 사전 구성된 설정으로 서비스가 자동으로 시작됩니다. -- 여러 런타임 변형을 사용할 수 있는 경우, 하나를 선택하기 위해 서비스 런처 페이지로 리디렉션됩니다. - -:::note -모델 스토어에서 서비스를 생성하면 `service-definition.toml`의 설정이 -자동으로 적용됩니다. 나중에 서빙 페이지를 통해 서비스를 수정할 수 있습니다. -::: - -:::note -Backend.AI 버전 **26.4.0**부터 모델 스토어가 재설계되었습니다. 이전 버전을 사용 -중이라면 위의 설명이 그대로 적용됩니다. 그렇지 않은 경우, 아래 -[모델 스토어 (버전 26.4.0 이상)](#model-store-version-26-4-0-and-later) -섹션을 참고하세요. -::: - - - -### 모델 스토어 (버전 26.4.0 이상) - -Backend.AI 버전 26.4.0 이상에서는 간소화된 탐색 경험, 카드 상세 Drawer, 그리고 기존의 탐색/상세/실행 워크플로우를 대체하는 간결한 배포 흐름으로 모델 스토어가 재설계되었습니다. - -![](../images/model_store_page_v2.png) - 페이지 상단은 검색 및 정렬 레이아웃을 사용합니다: -- **모델 검색**(Search Models): **이름으로 필터링**(Filter By Name) 속성 필터를 사용하여 이름으로 모델 카드를 검색합니다. -- **정렬**(Sort): 결과 정렬 방식을 선택합니다. 사용 가능한 옵션은 `이름 (A→Z)`, `이름 (Z→A)`, `오래된 순`, `최신 순`입니다. -- **새로 고침**: 새로 고침 버튼을 클릭하여 카드 목록을 다시 로드합니다. +- **모델 검색(Search Models)**: 이름으로 필터링(Filter By Name) 속성 필터를 사용하여 이름으로 모델 카드를 검색합니다. +- **정렬(Sort)**: 결과 정렬 방식을 선택합니다. 사용 가능한 옵션은 `이름 (A→Z)`, `이름 (Z→A)`, `오래된 순`, `최신 순`입니다. +- **새로 고침(Refresh)**: 새로 고침 버튼을 클릭하여 카드 목록을 다시 로드합니다. -각 카드에는 모델 브랜드 아이콘, 제목(제목이 설정되지 않은 경우 이름), 작업 태그, 상대 생성 시간, 그리고 아이콘과 함께 작가가 표시됩니다. 현재 프로젝트에 **호환 가능한 프리셋이 없는** 카드는 50% 투명도로 표시됩니다. 이러한 카드를 열어 상세 정보를 볼 수는 있지만, **Deploy** 버튼은 비활성화되고 Drawer에 *No compatible presets available. This model cannot be deployed.*라는 오류 알림이 표시됩니다. +각 카드에는 모델 브랜드 아이콘, 제목(제목이 설정되지 않은 경우 이름), 태스크(Task) 태그, 상대 생성 시간, 그리고 아이콘과 함께 작가(Author)가 표시됩니다. 현재 프로젝트에 **호환 가능한 프리셋이 없는** 카드는 50% 투명도로 표시됩니다. 이러한 카드를 열어 상세 정보를 볼 수는 있지만, `배포` 버튼은 비활성화되고 Drawer에 *호환 가능한 프리셋이 없습니다. 이 모델은 배포할 수 없습니다.*라는 오류 알림이 표시됩니다. 서버에 `MODEL_STORE` 프로젝트가 설정되어 있지 않으면, 페이지에는 관리자에게 문의하라는 안내와 함께 *모델 스토어 프로젝트를 찾을 수 없습니다* 메시지가 표시됩니다. 필터와 일치하는 모델 카드가 없으면 *모델을 찾을 수 없습니다*라고 표시됩니다. 목록은 하단에서 페이지네이션됩니다. 페이지 크기는 `10`, `20`, `50`개 항목 중에서 변경할 수 있습니다. -카드를 클릭하면 페이지 오른쪽에 모델 카드 Drawer가 열립니다. Drawer 상단에는 모델 제목과 설명이 표시되고, 그 다음 작업, 카테고리, 라벨, 라이선스 태그가 이어지며, 다음 항목을 포함한 상세 목록이 표시됩니다: +### 모델 카드 상세 정보 -- **작가**(Author) -- **아키텍처**(Architecture) -- **프레임워크**(Framework) (각 프레임워크는 아이콘과 함께 표시) -- **버전**(Version) -- **생성**(Created) 및 **마지막 수정**(Last Modified) 타임스탬프 -- **모델 폴더**(Model Folder): 모델 스토리지 폴더의 폴더 탐색기를 여는 클릭 가능한 링크 -- **최소 리소스**(Min Resource): 최소 리소스 요구 사항(CPU, 메모리, GPU) +카드를 클릭하면 페이지 오른쪽에 모델 카드 Drawer가 열립니다. Drawer 상단에는 모델 제목과 설명이 표시되고, 그 다음 태스크, 카테고리, 라벨, 라이선스 태그가 이어지며, 다음 항목을 포함한 상세 목록이 표시됩니다: + +- **작가(Author)** +- **아키텍처(Architecture)** +- **프레임워크(Framework)** (각 프레임워크는 아이콘과 함께 표시) +- **버전(Version)** +- **생성 시간(Created)** 및 **마지막 수정(Last Modified)** 타임스탬프 +- **모델 폴더(Model Folder)**: 모델 스토리지 폴더의 폴더 탐색기를 여는 클릭 가능한 링크 +- **최소 리소스(Min Resource)**: 최소 리소스 요구 사항(CPU, 메모리, GPU) 모델 카드에 README가 포함된 경우, Drawer 하단에 `README.md` 카드로 렌더링됩니다. ![](../images/model_card_detail_drawer.png) -버전 26.4.0 이상에서 모델 폴더를 복제하려면 [데이터](../vfolder/vfolder.md) 페이지를 직접 사용하세요. 모델 스토어 Drawer에는 더 이상 전용 Clone 버튼이 제공되지 않습니다. +### 모델 복제 + +모델 폴더를 복제하려면 [데이터](../vfolder/vfolder.md) 페이지를 직접 사용하세요. 모델 스토어 Drawer에는 전용 Clone 버튼이 제공되지 않습니다. -Drawer 헤더의 **Deploy** 버튼을 클릭하여 모델을 서비스로 배포합니다. 배포 흐름은 다음 두 가지 방식 중 하나로 동작합니다: +### 모델 배포 + +Drawer 헤더의 `배포` 버튼을 클릭하여 모델을 서비스로 배포합니다. 배포 흐름은 다음 두 가지 방식 중 하나로 동작합니다: - **자동 배포**: 모델에 사용 가능한 프리셋이 정확히 하나 있고 현재 프로젝트에 접근 가능한 자원 그룹이 정확히 하나 있으면, 모달을 표시하지 않고 배포가 조용히 생성됩니다. 엔드포인트가 쿼리 가능해진 후 해당 엔드포인트 상세 페이지로 이동합니다. -- **모델 배포 모달**(Deploy Model): 그렇지 않은 경우, **Deploy Model** 모달이 다음 필수 필드와 함께 열립니다: +- **모델 배포 모달(Deploy Model)**: 그렇지 않은 경우, 모델 배포 모달이 다음 필수 필드와 함께 열립니다. - - **프리셋**(Preset): 사용 가능한 자원 프리셋의 그룹화된 드롭다운입니다. 프리셋이 여러 런타임 변형에 걸쳐 있는 경우 옵션은 런타임 변형 이름별로 그룹화되고, 그렇지 않은 경우 평면 목록으로 표시됩니다. - - **자원 그룹**(Resource Group): 서비스가 실행될 자원 그룹입니다. + * **프리셋(Preset)**: 사용 가능한 자원 프리셋의 그룹화된 드롭다운입니다. 프리셋이 여러 런타임 변형에 걸쳐 있는 경우 옵션은 런타임 변형 이름별로 그룹화되고, 그렇지 않은 경우 평면 목록으로 표시됩니다. + * **자원 그룹(Resource Group)**: 서비스가 실행될 자원 그룹입니다. - 모달의 **Deploy** 버튼을 클릭하여 배포를 시작합니다. 모델이 배포되었음을 확인하는 성공 토스트가 표시되고, 엔드포인트 상세 페이지로 이동합니다. + 모달의 `배포` 버튼을 클릭하여 배포를 시작합니다. 모델이 배포되었음을 확인하는 성공 토스트가 표시되고, 엔드포인트 상세 페이지로 이동합니다. ![](../images/model_card_deploy_modal.png) :::note -선택한 모델에 현재 프로젝트와 호환되는 프리셋이 없으면 Drawer의 **Deploy** 버튼이 +선택한 모델에 현재 프로젝트와 호환되는 프리셋이 없으면 Drawer의 `배포` 버튼이 비활성화되며, 호환되는 프리셋이 제공될 때까지 배포가 차단됩니다. ::: @@ -929,81 +833,53 @@ Drawer 헤더의 **Deploy** 버튼을 클릭하여 모델을 서비스로 배포 ### 관리자 모델 스토어 관리 -슈퍼관리자는 관리자 서빙 페이지의 **Model Store Management** 탭을 통해 모델 카드를 관리할 수 있습니다. 이 탭은 다음 열을 가진 모든 모델 카드의 테이블 뷰를 제공합니다: **Name**, **Title**, **Task**, **Category**, **Labels**, **Created At**, **Controls**. - -![](../images/admin_model_card_list.png) - -#### 모델 카드 생성 - -`Create Model Card` 버튼을 클릭하여 생성 모달을 엽니다. 다음 필드를 입력합니다: - -- **Name** (필수): 모델 카드의 고유 식별자입니다. -- **Title**: 사람이 읽을 수 있는 표시 이름입니다. -- **Description**: 모델에 대한 상세 설명입니다. -- **Author**: 모델 생성자 또는 조직입니다. -- **Model Version**: 모델 버전입니다. -- **Task**: 추론 태스크 유형입니다 (예: text-generation). -- **Category**: 모델 카테고리입니다 (예: LLM). -- **Framework**: 사용된 ML 프레임워크입니다 (예: PyTorch, TensorFlow). -- **Label**: 분류 및 필터링을 위한 태그입니다. -- **License**: 모델이 배포되는 라이선스입니다. -- **Architecture**: 모델 아키텍처입니다 (예: Transformer). -- **README**: 모델에 대한 마크다운 README입니다. -- **Domain**: 모델 카드를 연결할 도메인입니다. -- **Project ID** (필수): 모델 카드를 소유하는 프로젝트입니다. -- **VFolder** (필수): 모델 파일이 포함된 스토리지 폴더입니다. -- **Access Level**: `Internal`(도메인 내에서 표시) 또는 `Public`(모두에게 표시)으로 설정합니다. - -#### 모델 카드 수정 - -**Controls** 열의 편집 아이콘을 클릭하여 기존 모델 카드를 수정합니다. 이전에 입력한 필드가 채워진 상태로 편집 모달이 열립니다. - -#### 모델 카드 삭제 - -**Controls** 열의 삭제 아이콘을 클릭하여 개별 모델 카드를 삭제하거나, 여러 모델 카드를 선택하고 `Delete Selected`를 클릭하여 일괄 삭제를 수행할 수 있습니다. - -#### 프로젝트 모델 카드 스캔 - -`Scan Project Model Cards` 버튼을 클릭하여 프로젝트의 모델 폴더를 자동으로 스캔하고, 유효한 모델 정의가 포함된 폴더에 대해 모델 카드를 생성합니다. 스캔 결과에는 생성 및 업데이트된 모델 카드 수가 표시됩니다. +슈퍼관리자는 관리자 서빙 페이지의 모델 스토어 관리(Model Store Management) 탭을 통해 모델 카드를 관리할 수 있습니다. +![](../images/admin_model_card_list_v2.png) -:::note -Backend.AI 버전 **26.4.0**부터 관리자 모델 스토어 관리 탭이 재설계되었습니다. 이전 -버전을 사용 중이라면 위의 설명이 그대로 적용됩니다. 그렇지 않은 경우, 아래 -[관리자 모델 스토어 관리 (버전 26.4.0 이상)](#admin-model-store-management-version-26-4-0-and-later) -섹션을 참고하세요. -::: +목록은 다음 컬럼을 제공합니다: - +- **이름(Name)**: 모델 카드의 고유 식별자입니다. +- **제목(Title)**: 사람이 읽을 수 있는 표시 이름입니다. +- **카테고리(Category)**: 모델 카테고리입니다 (예: LLM). +- **태스크(Task)**: 추론 태스크 유형입니다 (예: text-generation). +- **접근 수준(Access Level)**: 모델 카드가 공개적으로 접근 가능한 경우 녹색 `Public` 태그가 표시되고, 그렇지 않으면 기본 `Private` 태그가 표시됩니다. +- **도메인(Domain)**: 모델 카드를 소유한 도메인입니다. +- **프로젝트(Project)**: 모델 카드를 소유한 프로젝트입니다. +- **생성 시간(Created At)**: 모델 카드가 생성된 시간입니다. -#### 관리자 모델 스토어 관리 (버전 26.4.0 이상) +상단의 속성 필터 바를 사용하여 이름으로 목록을 필터링할 수 있습니다. 각 행의 이름 셀에는 편집 및 삭제 액션 아이콘이 직접 표시됩니다. -Backend.AI 버전 26.4.0 이상에서는 **Model Store Management** 탭에 재설계된 모델 카드 목록이 표시됩니다. +여러 모델 카드를 한 번에 삭제하려면 체크박스로 삭제할 행을 선택한 후 선택 개수 옆의 빨간색 휴지통 버튼을 클릭합니다. 카드가 삭제되기 전에 확인 대화 상자가 표시됩니다. -![](../images/admin_model_card_list_v2.png) +#### 모델 카드 생성 -목록은 다음 컬럼을 제공합니다: +`모델 카드 생성(Create Model Card)` 버튼을 클릭하여 생성 모달을 엽니다. 다음 필드를 입력합니다: + +- **이름(Name)** (필수): 모델 카드의 고유 식별자입니다. +- **제목(Title)**: 사람이 읽을 수 있는 표시 이름입니다. +- **설명(Description)**: 모델에 대한 상세 설명입니다. +- **작가(Author)**: 모델 생성자 또는 조직입니다. +- **모델 버전(Model Version)**: 모델 버전입니다. +- **태스크(Task)**: 추론 태스크 유형입니다 (예: text-generation). +- **카테고리(Category)**: 모델 카테고리입니다 (예: LLM). +- **프레임워크(Framework)**: 사용된 ML 프레임워크입니다 (예: PyTorch, TensorFlow). +- **라벨(Label)**: 분류 및 필터링을 위한 태그입니다. +- **라이선스(License)**: 모델이 배포되는 라이선스입니다. +- **아키텍처(Architecture)**: 모델 아키텍처입니다 (예: Transformer). +- **README**: 모델에 대한 마크다운 README입니다. +- **도메인(Domain)**: 모델 카드를 연결할 도메인입니다. +- **프로젝트 ID(Project ID)** (필수): 모델 카드를 소유하는 프로젝트입니다. +- **VFolder** (필수): 모델 파일이 포함된 스토리지 폴더입니다. +- **접근 수준(Access Level)**: 사용자용 모델 스토어에서 모델 카드를 누가 볼 수 있는지를 제어합니다. -- **이름**(Name): 모델 카드의 고유 식별자입니다. -- **제목**(Title): 사람이 읽을 수 있는 표시 이름입니다. -- **카테고리**(Category): 모델 카테고리입니다 (예: LLM). -- **작업**(Task): 추론 작업 유형입니다 (예: text-generation). -- **접근 수준**(Access Level): 모델 카드가 공개적으로 접근 가능한 경우 녹색 `Public` 태그가 표시되고, 그렇지 않으면 기본 `Private` 태그가 표시됩니다. -- **도메인**(Domain): 모델 카드를 소유한 도메인입니다. -- **프로젝트**(Project): 모델 카드를 소유한 프로젝트입니다. -- **생성 시간**(Created At): 모델 카드가 생성된 시간입니다. + * `Internal`: 모델 카드를 소유한 도메인과 프로젝트의 관리자에게만 표시됩니다. 일반 사용자는 모델 스토어에서 Internal 모델 카드를 볼 수 없습니다. + * `Public`: 해당 프로젝트에 접근 권한이 있는 모든 사용자에게 표시됩니다. -상단의 속성 필터 바를 사용하여 **이름**으로 목록을 필터링할 수 있습니다. 각 행의 **이름** 셀에는 편집 및 삭제 액션 아이콘이 직접 표시됩니다. +#### 모델 카드 수정 -여러 모델 카드를 한 번에 삭제하려면 체크박스로 삭제할 행을 선택한 후 선택 개수 옆의 빨간색 휴지통 버튼을 클릭합니다. 카드가 삭제되기 전에 확인 대화 상자가 표시됩니다. +모델 카드 이름 옆의 편집 아이콘을 클릭하여 기존 모델 카드를 수정합니다. 이전에 입력한 필드가 채워진 상태로 편집 모달이 열립니다. -:::note -개별 모델 카드의 생성, 편집, 삭제 대화 상자는 이전 버전과 동일합니다. -[모델 카드 생성](#creating-a-model-card), -[모델 카드 수정](#editing-a-model-card), -[모델 카드 삭제](#deleting-model-cards)를 참고하세요. -::: +#### 모델 카드 삭제 -:::note -**Scan Project Model Cards** 버튼은 Backend.AI 버전 26.4.0 이상에서는 제공되지 않습니다. -::: +모델 카드 이름 옆의 삭제 아이콘을 클릭하여 개별 모델 카드를 삭제하거나, 행 체크박스로 여러 모델 카드를 선택한 후 선택 개수 옆의 빨간색 휴지통 버튼을 클릭하여 일괄 삭제를 수행할 수 있습니다. diff --git a/packages/backend.ai-webui-docs/src/th/images/auto_scaling_rules_v2.png b/packages/backend.ai-webui-docs/src/th/images/auto_scaling_rules_v2.png index b6faffbceb..adb9954d12 100644 Binary files a/packages/backend.ai-webui-docs/src/th/images/auto_scaling_rules_v2.png and b/packages/backend.ai-webui-docs/src/th/images/auto_scaling_rules_v2.png differ diff --git a/packages/backend.ai-webui-docs/src/th/images/endpoint_preparing_alert.png b/packages/backend.ai-webui-docs/src/th/images/endpoint_preparing_alert.png new file mode 100644 index 0000000000..897ef38e6e Binary files /dev/null and b/packages/backend.ai-webui-docs/src/th/images/endpoint_preparing_alert.png differ diff --git a/packages/backend.ai-webui-docs/src/th/images/route_error_json_viewer.png b/packages/backend.ai-webui-docs/src/th/images/route_error_json_viewer.png new file mode 100644 index 0000000000..993456f809 Binary files /dev/null and b/packages/backend.ai-webui-docs/src/th/images/route_error_json_viewer.png differ diff --git a/packages/backend.ai-webui-docs/src/th/images/service_launcher_runtime_variant.png b/packages/backend.ai-webui-docs/src/th/images/service_launcher_runtime_variant.png index f1e99e9a1c..074f82d005 100644 Binary files a/packages/backend.ai-webui-docs/src/th/images/service_launcher_runtime_variant.png and b/packages/backend.ai-webui-docs/src/th/images/service_launcher_runtime_variant.png differ diff --git a/packages/backend.ai-webui-docs/src/th/model_serving/model_serving.md b/packages/backend.ai-webui-docs/src/th/model_serving/model_serving.md index a8cd5ea67f..36af3fa7aa 100644 --- a/packages/backend.ai-webui-docs/src/th/model_serving/model_serving.md +++ b/packages/backend.ai-webui-docs/src/th/model_serving/model_serving.md @@ -65,8 +65,7 @@ inference API ได้เมื่อต้องการ deploy โมเด :::tip เป็นเวิร์กโฟลว์ทางเลือก คุณสามารถเรียกดูโมเดลที่กำหนดค่าไว้ล่วงหน้าใน -[Model Store](#model-store) และ deploy ด้วยคลิกเดียวโดยใช้ปุ่ม `Run this model` -(เปลี่ยนชื่อเป็น `Deploy` ในเวอร์ชัน 26.4.0 ขึ้นไป) +[Model Store](#model-store) และ deploy ด้วยคลิกเดียวโดยใช้ปุ่ม `Deploy` ::: @@ -268,7 +267,7 @@ failures) ┌─────┴─────┐ ไฟล์กำหนดบริการ (`service-definition.toml`) ช่วยให้ผู้ดูแลระบบสามารถกำหนดค่าทรัพยากร สภาพแวดล้อม และการตั้งค่า runtime ที่จำเป็นสำหรับบริการโมเดลล่วงหน้า เมื่อไฟล์นี้อยู่ในโฟลเดอร์โมเดล ระบบจะใช้การตั้งค่าเหล่านี้เป็นค่าเริ่มต้นเมื่อสร้างบริการ -ทั้ง `model-definition.yaml` และ `service-definition.toml` ต้องอยู่ในโฟลเดอร์โมเดลเพื่อเปิดใช้งานปุ่ม `Run this model` (`Deploy` ในเวอร์ชัน 26.4.0 ขึ้นไป) ในหน้า Model Store ไฟล์ทั้งสองทำงานร่วมกัน: ไฟล์กำหนดโมเดลระบุการกำหนดค่าโมเดลและเซิร์ฟเวอร์ inference ในขณะที่ไฟล์กำหนดบริการระบุสภาพแวดล้อม runtime การจัดสรรทรัพยากร และตัวแปรสภาพแวดล้อม +ทั้ง `model-definition.yaml` และ `service-definition.toml` ต้องอยู่ในโฟลเดอร์โมเดลเพื่อเปิดใช้งานปุ่ม `Deploy` ในหน้า Model Store ไฟล์ทั้งสองทำงานร่วมกัน: ไฟล์กำหนดโมเดลระบุการกำหนดค่าโมเดลและเซิร์ฟเวอร์ inference ในขณะที่ไฟล์กำหนดบริการระบุสภาพแวดล้อม runtime การจัดสรรทรัพยากร และตัวแปรสภาพแวดล้อม ไฟล์กำหนดบริการใช้รูปแบบ TOML โดยมีส่วนต่างๆ จัดตามตัวแปร runtime แต่ละส่วนกำหนดลักษณะเฉพาะของบริการ: @@ -308,7 +307,7 @@ MODEL_NAME = "example-model-name" ::: :::note -เมื่อบริการถูกสร้างขึ้นจาก Model Store โดยใช้ปุ่ม `Run this model` (`Deploy` ในเวอร์ชัน 26.4.0 ขึ้นไป) การตั้งค่าจาก `service-definition.toml` จะถูกนำไปใช้โดยอัตโนมัติ หากคุณต้องการปรับการจัดสรรทรัพยากรในภายหลัง คุณสามารถแก้ไขบริการผ่านหน้า Model Serving +เมื่อบริการถูกสร้างขึ้นจาก Model Store โดยใช้ปุ่ม `Deploy` การตั้งค่าจาก `service-definition.toml` จะถูกนำไปใช้โดยอัตโนมัติ หากคุณต้องการปรับการจัดสรรทรัพยากรในภายหลัง คุณสามารถแก้ไขบริการผ่านหน้า Model Serving ::: ## ภาพรวมหน้า Serving @@ -519,7 +518,6 @@ vllm serve /models/my-model --tp 2 - **กำลังเตรียมบริการของคุณ**: แสดงเมื่อบริการกำลังถูก deploy หรืออยู่ระหว่างการเปลี่ยนสถานะ บ่งบอกว่าบริการยังไม่พร้อมรับคำขอ ![](../images/endpoint_preparing_alert.png) - - **บริการพร้อมแล้ว**: แสดงเมื่อสถานะบริการเป็น `HEALTHY` แบนเนอร์นี้มีปุ่ม **เริ่มแชท** ที่ให้ทางลัดไปยังอินเทอร์เฟซ LLM Chat Test @@ -579,85 +577,39 @@ vllm serve /models/my-model --tp 2 ### กฎการปรับขนาดอัตโนมัติ -คุณสามารถกำหนดค่ากฎการปรับขนาดอัตโนมัติสำหรับบริการโมเดล -ตามกฎที่กำหนด จำนวนเรพลิกาจะถูกลดลงโดยอัตโนมัติในช่วงที่ใช้งานต่ำเพื่อประหยัดทรัพยากร -และเพิ่มขึ้นในช่วงที่ใช้งานสูงเพื่อป้องกันความล่าช้าของคำขอหรือความล้มเหลว - -![](../images/auto_scaling_rules.png) - -คลิกปุ่ม `Add Rules` เพื่อเพิ่มกฎใหม่ เมื่อคุณคลิกปุ่ม โมดอลจะปรากฏขึ้น -ซึ่งคุณสามารถเพิ่มกฎได้ ฟิลด์แต่ละฟิลด์ในโมดอลมีคำอธิบายดังนี้: - -- **Type**: กำหนดกฎ เลือก `Scale Out` หรือ `Scale In` ตามขอบเขตของกฎ - -- **Metric Source**: Inference Framework หรือ kernel - - - Inference Framework: ค่าเฉลี่ยที่นำมาจากทุกเรพลิกา รองรับเฉพาะเมื่อ AppProxy รายงานเมตริก inference - - Kernel: ค่าเฉลี่ยที่นำมาจากทุกเคอร์เนลที่รองรับ endpoint - -- **Condition**: ตั้งค่าเงื่อนไขที่จะใช้กฎการปรับขนาดอัตโนมัติ - - - **Metric Name**: ชื่อของเมตริกที่จะใช้เปรียบเทียบ คุณสามารถใส่เมตริกใดๆ ที่รองรับโดยสภาพแวดล้อม runtime - - **Comparator**: วิธีการเปรียบเทียบเมตริกสดกับค่าเกณฑ์ - - - LESS_THAN: กฎจะทำงานเมื่อค่าเมตริกปัจจุบันต่ำกว่าเกณฑ์ที่กำหนด - - LESS_THAN_OR_EQUAL: กฎจะทำงานเมื่อค่าเมตริกปัจจุบันต่ำกว่าหรือเท่ากับเกณฑ์ที่กำหนด - - GREATER_THAN: กฎจะทำงานเมื่อค่าเมตริกปัจจุบันสูงกว่าเกณฑ์ที่กำหนด - - GREATER_THAN_OR_EQUAL: กฎจะทำงานเมื่อค่าเมตริกปัจจุบันสูงกว่าหรือเท่ากับเกณฑ์ที่กำหนด - - - **Threshold**: ค่าอ้างอิงเพื่อกำหนดว่าเงื่อนไขการปรับขนาดเป็นไปตามหรือไม่ - -- **Step Size**: ขนาดขั้นตอนของจำนวนเรพลิกาที่จะเปลี่ยนแปลงเมื่อกฎทำงาน - สามารถแสดงเป็นค่าบวกและค่าลบได้ - เมื่อกำหนดเป็นค่าลบ กฎจะลดจำนวนเรพลิกา - -- **Max/Min Replicas**: ตั้งค่าสูงสุด/ต่ำสุดสำหรับจำนวนเรพลิกาของ endpoint - กฎจะไม่ทำงานหากจำนวนเรพลิกาที่เป็นไปได้สูงกว่า/ต่ำกว่าค่านี้ - -- **CoolDown Seconds**: ระยะเวลาเป็นวินาทีเพื่อข้ามการใช้กฎซ้ำทันทีหลังจากที่กฎทำงานครั้งแรก - -![](../images/auto_scaling_rules_modal.png) - -:::note -ตั้งแต่ Backend.AI เวอร์ชัน **26.4.0** เป็นต้นไป กฎการปรับขนาดอัตโนมัติได้รับการออกแบบใหม่ -พร้อมการรองรับ Prometheus preset และโมเดลเงื่อนไขใหม่ หากคุณใช้เวอร์ชันที่เก่ากว่า คำอธิบาย -ข้างต้นยังคงใช้ได้ มิฉะนั้น ให้ดู -[กฎการปรับขนาดอัตโนมัติ (เวอร์ชัน 26.4.0 ขึ้นไป)](#auto-scaling-rules-version-26-4-0-and-later) -ด้านล่าง -::: - - - -#### กฎการปรับขนาดอัตโนมัติ (เวอร์ชัน 26.4.0 ขึ้นไป) - -ใน Backend.AI เวอร์ชัน 26.4.0 ขึ้นไป กฎการปรับขนาดอัตโนมัติได้รับการออกแบบใหม่พร้อมด้วยแหล่งเมตริก Prometheus, ตัวควบคุมเงื่อนไขแบบแบ่งส่วน และรายการกฎที่มีรายละเอียดมากขึ้น +กฎการปรับขนาดอัตโนมัติ (Auto Scaling Rules) จะเพิ่มหรือลดจำนวนเรพลิกาของบริการโมเดลโดยอัตโนมัติตามเมตริกสด ช่วยประหยัดทรัพยากรในช่วงการใช้งานต่ำ และป้องกันความล่าช้าหรือความล้มเหลวของคำขอในช่วงการใช้งานสูง ![](../images/auto_scaling_rules_v2.png) รายการกฎให้บริการดังนี้: -- แถบตัวกรองคุณสมบัติสำหรับกรองกฎตามช่วงวันเวลาของ **สร้างเวลา** (Created At) และ **ทริกเกอร์ครั้งสุดท้าย** (Last Triggered) +- แถบตัวกรองคุณสมบัติสำหรับกรองกฎตามช่วงวันเวลาของ สร้างเวลา (Created At) และ ทริกเกอร์ครั้งสุดท้าย (Last Triggered) - การแบ่งหน้าที่ฝั่งเซิร์ฟเวอร์ -- คอลัมน์ต่อไปนี้: **แหล่งวัด** (Metric Source), **เงื่อนไข** (Condition), **กรอบเวลา** (Time Window), **ขนาดขั้นตอน** (Step Size), **แบบจำลองขั้นต่ำ / สูงสุด** (Min / Max Replicas), **สร้างเวลา** (Created At), **ทริกเกอร์ครั้งสุดท้าย** (Last Triggered) คอลัมน์ **ขนาดขั้นตอน** จะแสดง `+`, `−`, หรือ `±` โดยอัตโนมัติตามทิศทางที่ได้จากเกณฑ์ที่คุณตั้งไว้ ดังนั้นคุณจึงไม่ต้องเลือก `Scale Out` หรือ `Scale In` โดยตรงอีกต่อไป +- คอลัมน์ต่อไปนี้: แหล่งวัด (Metric Source), เงื่อนไข (Condition), กรอบเวลา (Time Window), ขนาดขั้นตอน (Step Size), แบบจำลองขั้นต่ำ / สูงสุด (Min / Max Replicas), สร้างเวลา (Created At), ทริกเกอร์ครั้งสุดท้าย (Last Triggered) คอลัมน์ขนาดขั้นตอนจะแสดง `+`, `−`, หรือ `±` โดยอัตโนมัติตามทิศทางที่ได้จากเกณฑ์ที่คุณตั้งไว้ ดังนั้นคุณจึงไม่ต้องเลือก `Scale Out` หรือ `Scale In` โดยตรงอีกต่อไป - ไอคอนแก้ไขและลบต่อแถว แสดงถัดจากสรุปเงื่อนไขในแต่ละแถว คลิกปุ่ม `Add Rules` เพื่อเปิดตัวแก้ไข **เพิ่มกฎการปรับขนาดอัตโนมัติ** หากต้องการแก้ไขกฎที่มีอยู่ ให้คลิกไอคอนแก้ไขในแถวนั้น ตัวแก้ไข **แก้ไขกฎการปรับขนาดอัตโนมัติ** จะเปิดขึ้นโดยมีค่าของกฎที่กรอกไว้ล่วงหน้า ตัวแก้ไขประกอบด้วยฟิลด์ต่อไปนี้ตามลำดับ: -- **แหล่งวัด** (Metric Source): เลือก `Kernel`, `Inference Framework` หรือ `Prometheus` -- **ชื่อเมตริก** (Metric Name): สำหรับ `Kernel` และ `Inference Framework` ให้ใส่ชื่อเมตริก สำหรับ `Kernel` จะมีเมตริกทั่วไป เช่น `cpu_util`, `mem`, `net_rx` และ `net_tx` เป็นคำแนะนำให้เติมอัตโนมัติ และคุณยังสามารถพิมพ์ชื่อที่กำหนดเองได้อย่างอิสระ -- **ชื่อเมตริก (Prometheus Preset)** (Metric Name (Prometheus Preset)): แสดงเฉพาะเมื่อ **แหล่งวัด** เป็น `Prometheus` เลือก preset จากดรอปดาวน์ ชื่อเมตริก เทมเพลตคิวรี และ (เมื่อกำหนดไว้) **กรอบเวลา** ของ preset จะถูกกรอกโดยอัตโนมัติ ด้านล่างตัวเลือก การแสดงตัวอย่าง **ค่าปัจจุบัน** (Current value) จะแสดงค่าล่าสุดที่ preset ส่งกลับพร้อมปุ่มรีเฟรช เมื่อมีชุดข้อมูลหลายชุดถูกส่งกลับ การแสดงตัวอย่างจะแสดงจำนวนชุดข้อมูลและค่าล่าสุด หากไม่มีข้อมูลให้ใช้งาน จะแสดงเป็น **ไม่มีข้อมูล** (No data available) -- **เงื่อนไข** (Condition): ตัวควบคุมแบบแบ่งส่วนที่มีสองโหมด: +- **แหล่งวัด (Metric Source)**: เลือก `Kernel`, `Inference Framework` หรือ `Prometheus` +- **ชื่อเมตริก (Metric Name)**: สำหรับ `Kernel` และ `Inference Framework` ให้ใส่ชื่อเมตริก สำหรับ `Kernel` จะมีเมตริกทั่วไป เช่น `cpu_util`, `mem`, `net_rx` และ `net_tx` เป็นคำแนะนำให้เติมอัตโนมัติ และคุณยังสามารถพิมพ์ชื่อที่กำหนดเองได้อย่างอิสระ +- **ชื่อเมตริกแบบ Preset (Metric Name (Prometheus Preset))**: แสดงเฉพาะเมื่อแหล่งวัดเป็น `Prometheus` เลือก preset จากดรอปดาวน์ ชื่อเมตริก เทมเพลตคิวรี และ (เมื่อกำหนดไว้) กรอบเวลาของ preset จะถูกกรอกโดยอัตโนมัติ ด้านล่างตัวเลือก การแสดงตัวอย่างค่าปัจจุบัน (Current value) จะแสดงค่าล่าสุดที่ preset ส่งกลับพร้อมปุ่มรีเฟรช เมื่อมีชุดข้อมูลหลายชุดถูกส่งกลับ การแสดงตัวอย่างจะแสดงจำนวนชุดข้อมูลและค่าล่าสุด หากไม่มีข้อมูลให้ใช้งาน จะแสดงเป็น ไม่มีข้อมูล (No data available) +- **เงื่อนไข (Condition)**: ตัวควบคุมแบบแบ่งส่วนที่มีสองโหมด + + * รายการเดียว (Single): กำหนดการเปรียบเทียบแบบเดียว `Metric Threshold` โดยที่ `` เป็น `>` หรือ `<` + * ช่วง (Range): กำหนดช่วง `Min Threshold < Metric < Max Threshold` ต้องระบุทั้งสองเกณฑ์ และเกณฑ์ต่ำสุดต้องน้อยกว่าเกณฑ์สูงสุด + +- **ขนาดขั้นตอน (Step Size)**: จำนวนเต็มบวกที่ระบุจำนวนเรพลิกาที่จะเพิ่มหรือลบต่อเหตุการณ์การปรับขนาด ทิศทาง (เพิ่มหรือลบ) ได้มาจากเกณฑ์ที่กำหนดค่าไว้โดยอัตโนมัติ - - **รายการเดียว** (Single): กำหนดการเปรียบเทียบแบบเดียว `Metric Threshold` โดยที่ `` เป็น `>` หรือ `<` - - **ช่วง** (Range): กำหนดช่วง `Min Threshold < Metric < Max Threshold` ต้องระบุทั้งสองเกณฑ์ และเกณฑ์ต่ำสุดต้องน้อยกว่าเกณฑ์สูงสุด + * ตั้งเฉพาะเกณฑ์ต่ำสุด → `[metric] < [minThreshold]` เรพลิกาจะถูก **ลด** (Scale In) เมื่อเมตริกต่ำกว่าเกณฑ์ + * ตั้งเฉพาะเกณฑ์สูงสุด → `[maxThreshold] < [metric]` เรพลิกาจะถูก **เพิ่ม** (Scale Out) เมื่อเมตริกสูงกว่าเกณฑ์ + * ตั้งทั้งสองเกณฑ์ → `[metric] < [minThreshold]` หรือ `[maxThreshold] < [metric]` เรพลิกาจะถูกเพิ่มหรือลดตามขอบเขตที่เมตริกข้ามผ่าน -- **ขนาดขั้นตอน** (Step Size): จำนวนเต็มบวกที่ระบุจำนวนเรพลิกาที่จะเพิ่มหรือลบต่อเหตุการณ์การปรับขนาด ทิศทาง (เพิ่มหรือลบ) ได้มาจากเกณฑ์ที่กำหนดค่าไว้โดยอัตโนมัติ ดังนั้นคุณจึงระบุเฉพาะขนาดเท่านั้น -- **กรอบเวลา** (Time Window): กรอบเวลาเป็นวินาทีที่ใช้ในการรวบรวมและประเมินเมตริกสำหรับการปรับขนาด ค่านี้แทนที่ฟิลด์ `CoolDown Seconds` เดิมและมีความหมายที่แตกต่างออกไป -- **แบบจำลองขั้นต่ำ** (Min Replicas) และ **แบบจำลองสูงสุด** (Max Replicas): ขอบเขตล่างและบนที่การปรับขนาดอัตโนมัติบังคับใช้กับจำนวนเรพลิกา การปรับขนาดอัตโนมัติจะไม่ลดจำนวนเรพลิกาต่ำกว่า **แบบจำลองขั้นต่ำ** หรือเพิ่มให้มากกว่า **แบบจำลองสูงสุด** +- **กรอบเวลา (Time Window)**: กรอบเวลาเป็นวินาทีที่ใช้ในการรวบรวมและประเมินเมตริกสำหรับการปรับขนาด ค่านี้แทนที่ฟิลด์ `CoolDown Seconds` เดิมและมีความหมายที่แตกต่างออกไป +- **แบบจำลองขั้นต่ำ (Min Replicas) และแบบจำลองสูงสุด (Max Replicas)**: ขอบเขตล่างและบนที่การปรับขนาดอัตโนมัติบังคับใช้กับจำนวนเรพลิกา การปรับขนาดอัตโนมัติจะไม่ลดจำนวนเรพลิกาต่ำกว่าแบบจำลองขั้นต่ำ หรือเพิ่มให้มากกว่าแบบจำลองสูงสุด ![](../images/auto_scaling_rules_modal_v2.png) -เมื่อ **แหล่งวัด** ถูกตั้งเป็น `Prometheus` ตัวแก้ไขจะแสดงตัวเลือก preset และการแสดงตัวอย่าง **ค่าปัจจุบัน** แบบสด +เมื่อแหล่งวัด (Metric Source) ถูกตั้งเป็น `Prometheus` ตัวแก้ไขจะแสดงตัวเลือก preset และการแสดงตัวอย่างค่าปัจจุบัน (Current value) แบบสด ![](../images/auto_scaling_rules_modal_prometheus_v2.png) @@ -704,7 +656,6 @@ vllm serve /models/my-model --tp 2 หากเส้นทางพบข้อผิดพลาด การคลิกตัวบ่งชี้ข้อผิดพลาดบนแถวเส้นทางจะเปิดโมดอล JSON viewer ที่แสดงข้อมูลข้อผิดพลาดดิบสำหรับเส้นทางนั้น สิ่งนี้มีประโยชน์สำหรับการวินิจฉัยปัญหาของโหนดเส้นทางแต่ละรายการ ![](../images/route_error_json_viewer.png) - ### การแก้ไขบริการ @@ -781,106 +732,60 @@ endpoint ได้ หากบริการถูกสร้างในเ ## Model Store -คลังโมเดลให้บริการแกลเลอรีแบบการ์ดของโมเดลที่กำหนดค่าไว้ล่วงหน้าที่คุณสามารถเรียกดู ค้นหา และ deploy ได้ คุณสามารถเข้าถึงคลังโมเดลจากเมนูด้านข้าง +คลังโมเดล (Model Store) ให้บริการแกลเลอรีแบบการ์ดของโมเดลที่กำหนดค่าไว้ล่วงหน้าซึ่งคุณสามารถเรียกดู ค้นหา และ deploy ได้ คุณสามารถเข้าถึงคลังโมเดลได้จากเมนูด้านข้าง -![](../images/model_store_page.png) +![](../images/model_store_page_v2.png) ### การเรียกดูและค้นหาโมเดล -คุณสามารถค้นหาโมเดลตามชื่อ คำอธิบาย task หมวดหมู่ หรือป้ายกำกับโดยใช้แถบค้นหาที่ด้านบนของหน้า นอกจากนี้ คุณสามารถใช้ดรอปดาวน์ตัวกรองเพื่อจำกัดผลลัพธ์: - -- **Category**: กรองตามหมวดหมู่โมเดล (เช่น LLM) -- **Task**: กรองตามประเภท task (เช่น text-generation) -- **Label**: กรองตามป้ายกำกับโมเดล - -### รายละเอียดการ์ดโมเดล - -คลิกการ์ดโมเดลเพื่อดูรายละเอียดในโมดอล โมดอลการ์ดโมเดลจะแสดง: - -- **Title**, **Author** และ **Version** -- **Description** และ **README** -- **Task**, **Category** และ **Architecture** -- **Framework** และ **Labels** -- **License** -- **ทรัพยากรขั้นต่ำ** ที่จำเป็นในการรันโมเดล -- ลิงก์ไปยังโฟลเดอร์จัดเก็บโมเดล - -![](../images/model_card_detail_modal.png) - -### การโคลนโมเดล - -คลิกปุ่ม `Clone to a folder` บนการ์ดโมเดลเพื่อโคลนโฟลเดอร์โมเดลไปยังที่จัดเก็บของคุณ กล่องโต้ตอบยืนยันจะปรากฏขึ้นซึ่งคุณสามารถระบุชื่อโฟลเดอร์ปลายทาง - -![](../images/model_clone_dialog.png) - -### การรันโมเดลจากคลังโมเดล - -คลิกปุ่ม `Run this model` บนการ์ดโมเดลเพื่อ deploy โมเดลเป็นบริการ สิ่งนี้ต้องการทั้ง `model-definition.yaml` และ `service-definition.toml` อยู่ในโฟลเดอร์โมเดล - -- หากมีตัวแปร runtime เพียงตัวเดียวที่กำหนดค่าในไฟล์กำหนดบริการ บริการจะเริ่มต้นโดยอัตโนมัติด้วยการตั้งค่าที่กำหนดไว้ล่วงหน้า -- หากมีตัวแปร runtime หลายตัวให้เลือก คุณจะถูกเปลี่ยนเส้นทางไปยังหน้าตัวเปิดใช้บริการเพื่อเลือก - -:::note -เมื่อบริการถูกสร้างจากคลังโมเดล การตั้งค่าจาก `service-definition.toml` -จะถูกนำไปใช้โดยอัตโนมัติ คุณสามารถแก้ไขบริการในภายหลังผ่านหน้าการให้บริการ -::: - -:::note -ตั้งแต่ Backend.AI เวอร์ชัน **26.4.0** เป็นต้นไป Model Store ได้รับการออกแบบใหม่ หากคุณ -ใช้เวอร์ชันที่เก่ากว่า คำอธิบายข้างต้นยังคงใช้ได้ มิฉะนั้น ให้ดู -[Model Store (เวอร์ชัน 26.4.0 ขึ้นไป)](#model-store-version-26-4-0-and-later) ด้านล่าง -::: - - - -### Model Store (เวอร์ชัน 26.4.0 ขึ้นไป) - -ใน Backend.AI เวอร์ชัน 26.4.0 ขึ้นไป Model Store ได้รับการออกแบบใหม่พร้อมด้วยประสบการณ์การเรียกดูที่เรียบง่ายขึ้น, Drawer แสดงรายละเอียดการ์ด และขั้นตอนการ deploy ที่กระชับซึ่งแทนที่เวิร์กโฟลว์แบบเรียกดู/รายละเอียด/เรียกใช้แบบเดิม - -![](../images/model_store_page_v2.png) - ส่วนบนของหน้าใช้รูปแบบค้นหาและเรียงลำดับ: -- **ค้นหาโมเดล** (Search Models): ใช้ตัวกรองคุณสมบัติ **กรองตามชื่อ** (Filter By Name) เพื่อค้นหาการ์ดโมเดลตามชื่อ -- **เรียงลำดับ** (Sort): เลือกวิธีการเรียงลำดับผลลัพธ์ ตัวเลือกที่ใช้งานได้คือ `ชื่อ (A→Z)`, `ชื่อ (Z→A)`, `เก่าสุดก่อน`, และ `ใหม่สุดก่อน` -- **รีเฟรช**: คลิกปุ่มรีเฟรชเพื่อโหลดรายการการ์ดใหม่ +- **ค้นหาโมเดล (Search Models)**: ใช้ตัวกรองคุณสมบัติ กรองตามชื่อ (Filter By Name) เพื่อค้นหาการ์ดโมเดลตามชื่อ +- **เรียงลำดับ (Sort)**: เลือกวิธีการเรียงลำดับผลลัพธ์ ตัวเลือกที่ใช้งานได้คือ `ชื่อ (A→Z)`, `ชื่อ (Z→A)`, `เก่าสุดก่อน` และ `ใหม่สุดก่อน` +- **รีเฟรช (Refresh)**: คลิกปุ่มรีเฟรชเพื่อโหลดรายการการ์ดใหม่ -การ์ดแต่ละใบจะแสดงไอคอนแบรนด์ของโมเดล, ชื่อเรื่อง (หรือชื่อเมื่อไม่มีการตั้งชื่อเรื่อง), แท็กงาน, เวลาสร้างแบบสัมพัทธ์ และผู้เขียนพร้อมไอคอน การ์ดที่ **ไม่มี preset ที่เข้ากันได้** สำหรับโปรเจกต์ปัจจุบันจะถูกแสดงที่ความโปร่งใส 50 % คุณสามารถเปิดการ์ดดังกล่าวเพื่อดูรายละเอียดได้ แต่ปุ่ม **Deploy** จะถูกปิดใช้งานและมีการแจ้งเตือนข้อผิดพลาด *No compatible presets available. This model cannot be deployed.* แสดงใน Drawer +การ์ดแต่ละใบจะแสดงไอคอนแบรนด์ของโมเดล ชื่อเรื่อง (หรือชื่อเมื่อไม่มีการตั้งชื่อเรื่อง) แท็กงาน เวลาสร้างแบบสัมพัทธ์ และผู้เขียน (Author) พร้อมไอคอน การ์ดที่ **ไม่มี preset ที่เข้ากันได้** สำหรับโปรเจกต์ปัจจุบันจะถูกแสดงที่ความโปร่งใส 50 % คุณสามารถเปิดการ์ดดังกล่าวเพื่อดูรายละเอียดได้ แต่ปุ่ม `Deploy` จะถูกปิดใช้งานและมีการแจ้งเตือนข้อผิดพลาด *ไม่มีพรีเซ็ตที่เข้ากันได้ โมเดลนี้ไม่สามารถปรับใช้ได้* แสดงใน Drawer หากไม่ได้ตั้งค่าโปรเจกต์ `MODEL_STORE` บนเซิร์ฟเวอร์ หน้าจะแสดงข้อความ *ไม่พบโปรเจกต์ Model Store* พร้อมคำแนะนำให้ติดต่อผู้ดูแลระบบ หากไม่มีการ์ดโมเดลใดที่ตรงกับตัวกรองของคุณ หน้าจะแสดง *ไม่พบโมเดล* รายการจะถูกแบ่งหน้าที่ด้านล่าง คุณสามารถเปลี่ยนขนาดหน้าระหว่าง `10`, `20` และ `50` รายการได้ +### รายละเอียดการ์ดโมเดล + คลิกการ์ดเพื่อเปิด Drawer การ์ดโมเดลทางด้านขวาของหน้า Drawer จะแสดงชื่อเรื่องและคำอธิบายโมเดลที่ด้านบน ตามด้วยแท็กงาน หมวดหมู่ ป้ายกำกับ และใบอนุญาต จากนั้นจะเป็นรายการรายละเอียดที่มีรายการต่อไปนี้: -- **ผู้เขียน** (Author) -- **สถาปัตยกรรม** (Architecture) -- **เฟรมเวิร์ก** (Framework) (เฟรมเวิร์กแต่ละตัวจะแสดงพร้อมไอคอน) -- **เวอร์ชัน** (Version) -- **สร้างเมื่อ** (Created) และ **แก้ไขล่าสุด** (Last Modified) เวลาประทับ -- **โฟลเดอร์โมเดล** (Model Folder): ลิงก์ที่คลิกได้ซึ่งเปิดตัวสำรวจโฟลเดอร์สำหรับโฟลเดอร์จัดเก็บโมเดล -- **ทรัพยากรขั้นต่ำ** (Min Resource): ข้อกำหนดทรัพยากรขั้นต่ำ (CPU, หน่วยความจำ, GPU) +- **ผู้เขียน (Author)** +- **สถาปัตยกรรม (Architecture)** +- **เฟรมเวิร์ก (Framework)** (เฟรมเวิร์กแต่ละตัวจะแสดงพร้อมไอคอน) +- **เวอร์ชัน (Version)** +- **สร้างเมื่อ (Created) และแก้ไขล่าสุด (Last Modified)** เวลาประทับ +- **โฟลเดอร์โมเดล (Model Folder)**: ลิงก์ที่คลิกได้ซึ่งเปิดตัวสำรวจโฟลเดอร์สำหรับโฟลเดอร์จัดเก็บโมเดล +- **ทรัพยากรขั้นต่ำ (Min Resource)**: ข้อกำหนดทรัพยากรขั้นต่ำ (CPU, หน่วยความจำ, GPU) หากการ์ดโมเดลมี README จะถูกเรนเดอร์เป็นการ์ด `README.md` ที่ด้านล่างของ Drawer ![](../images/model_card_detail_drawer.png) -ในการโคลนโฟลเดอร์โมเดลในเวอร์ชัน 26.4.0 ขึ้นไป ให้ใช้หน้า [Data](../vfolder/vfolder.md) โดยตรง เนื่องจาก Drawer ของ Model Store ไม่มีปุ่ม Clone เฉพาะอีกต่อไป +### การโคลนโมเดล + +ในการโคลนโฟลเดอร์โมเดล ให้ใช้หน้า [Data](../vfolder/vfolder.md) โดยตรง Drawer ของ Model Store ไม่มีปุ่ม Clone เฉพาะ -คลิกปุ่ม **Deploy** ในส่วนหัวของ Drawer เพื่อ deploy โมเดลเป็นบริการ ขั้นตอนการ deploy ทำงานได้ด้วยหนึ่งในสองรูปแบบ: +### การ Deploy โมเดล + +คลิกปุ่ม `Deploy` ในส่วนหัวของ Drawer เพื่อ deploy โมเดลเป็นบริการ ขั้นตอนการ deploy ทำงานได้ด้วยหนึ่งในสองรูปแบบ: - **Deploy อัตโนมัติ**: หากโมเดลมี preset ที่ใช้งานได้เพียงหนึ่งรายการ และโปรเจกต์ปัจจุบันมีกลุ่มทรัพยากรที่เข้าถึงได้เพียงหนึ่งรายการ การ deploy จะถูกสร้างขึ้นอย่างเงียบ ๆ โดยไม่มีโมดอลแสดงขึ้น หลังจาก endpoint พร้อมให้สืบค้นแล้ว คุณจะถูกนำไปยังหน้ารายละเอียด endpoint -- **โมดอล Deploy Model**: มิฉะนั้น โมดอล **Deploy Model** จะเปิดขึ้นพร้อมด้วยฟิลด์ที่จำเป็นต่อไปนี้: +- **โมดอล Deploy Model**: มิฉะนั้น โมดอล Deploy Model จะเปิดขึ้นพร้อมด้วยฟิลด์ที่จำเป็นต่อไปนี้ - - **Preset**: ดรอปดาวน์ที่จัดกลุ่มของ preset ทรัพยากรที่ใช้งานได้ เมื่อ preset ครอบคลุมตัวแปร runtime หลายตัว ตัวเลือกจะถูกจัดกลุ่มตามชื่อตัวแปร runtime มิฉะนั้น ตัวเลือกจะถูกแสดงเป็นรายการแบบแบน - - **Resource Group**: กลุ่มทรัพยากรที่บริการจะทำงาน + * **Preset**: ดรอปดาวน์ที่จัดกลุ่มของ preset ทรัพยากรที่ใช้งานได้ เมื่อ preset ครอบคลุมตัวแปร runtime หลายตัว ตัวเลือกจะถูกจัดกลุ่มตามชื่อตัวแปร runtime มิฉะนั้น ตัวเลือกจะถูกแสดงเป็นรายการแบบแบน + * **Resource Group**: กลุ่มทรัพยากรที่บริการจะทำงาน - คลิกปุ่ม **Deploy** ในโมดอลเพื่อเริ่มการ deploy จะมีการแสดง toast แสดงความสำเร็จที่ยืนยันว่าโมเดลได้รับการ deploy แล้ว และคุณจะถูกนำไปยังหน้ารายละเอียด endpoint + คลิกปุ่ม `Deploy` ในโมดอลเพื่อเริ่มการ deploy จะมีการแสดง toast แสดงความสำเร็จที่ยืนยันว่าโมเดลได้รับการ deploy แล้ว และคุณจะถูกนำไปยังหน้ารายละเอียด endpoint ![](../images/model_card_deploy_modal.png) :::note -หากโมเดลที่เลือกไม่มี preset ที่เข้ากันได้สำหรับโปรเจกต์ปัจจุบัน ปุ่ม **Deploy** ใน Drawer +หากโมเดลที่เลือกไม่มี preset ที่เข้ากันได้สำหรับโปรเจกต์ปัจจุบัน ปุ่ม `Deploy` ใน Drawer จะถูกปิดใช้งาน และการ deploy จะถูกปิดกั้นจนกว่าจะมี preset ที่เข้ากันได้ ::: @@ -899,82 +804,53 @@ endpoint ได้ หากบริการถูกสร้างในเ ### การจัดการคลังโมเดลสำหรับผู้ดูแลระบบ -ผู้ดูแลระบบขั้นสูงสามารถจัดการการ์ดโมเดลผ่านแท็บ **การจัดการร้านค้าโมเดล** ในหน้าการให้บริการสำหรับผู้ดูแลระบบ แท็บนี้ให้มุมมองตารางของการ์ดโมเดลทั้งหมดพร้อมคอลัมน์: **Name**, **Title**, **Task**, **Category**, **Labels**, **Created At**, **Controls** +ผู้ดูแลระบบขั้นสูงสามารถจัดการการ์ดโมเดลผ่านแท็บ Model Store Management ในหน้าการให้บริการสำหรับผู้ดูแลระบบ -![](../images/admin_model_card_list.png) +![](../images/admin_model_card_list_v2.png) + +รายการมีคอลัมน์ต่อไปนี้: + +- **ชื่อ (Name)**: ตัวระบุเฉพาะของการ์ดโมเดล +- **ชื่อเรื่อง (Title)**: ชื่อที่แสดงผลซึ่งมนุษย์อ่านได้ +- **หมวดหมู่ (Category)**: หมวดหมู่โมเดล (เช่น LLM) +- **งาน (Task)**: ประเภทงาน inference (เช่น text-generation) +- **ระดับการเข้าถึง (Access Level)**: แสดงแท็ก `Public` สีเขียวเมื่อการ์ดโมเดลเข้าถึงได้แบบสาธารณะ หรือแท็ก `Private` แบบเริ่มต้นเมื่อเป็นแบบส่วนตัว +- **โดเมน (Domain)**: โดเมนที่เป็นเจ้าของการ์ดโมเดล +- **โปรเจกต์ (Project)**: โปรเจกต์ที่เป็นเจ้าของการ์ดโมเดล +- **สร้างเวลา (Created At)**: เวลาที่สร้างการ์ดโมเดล + +คุณสามารถกรองรายการตามชื่อโดยใช้แถบตัวกรองคุณสมบัติที่ด้านบน ไอคอนแก้ไขและลบจะแสดงอยู่ในเซลล์ชื่อของแต่ละแถวโดยตรง + +หากต้องการลบการ์ดโมเดลหลายรายการในคราวเดียว ให้เลือกแถวที่ต้องการลบโดยใช้ช่องทำเครื่องหมาย จากนั้นคลิกปุ่มถังขยะสีแดงถัดจากจำนวนที่เลือก กล่องโต้ตอบยืนยันจะปรากฏขึ้นก่อนที่การ์ดจะถูกลบ #### การสร้างการ์ดโมเดล คลิกปุ่ม `Create Model Card` เพื่อเปิดโมดอลการสร้าง กรอกฟิลด์ต่อไปนี้: -- **Name** (จำเป็น): ตัวระบุเฉพาะสำหรับการ์ดโมเดล -- **Title**: ชื่อที่แสดงที่มนุษย์อ่านได้ -- **Description**: คำอธิบายรายละเอียดของโมเดล -- **Author**: ผู้สร้างโมเดลหรือองค์กร -- **Model Version**: เวอร์ชันของโมเดล -- **Task**: ประเภท task inference (เช่น text-generation) -- **Category**: หมวดหมู่โมเดล (เช่น LLM) -- **Framework**: ML framework ที่ใช้ (เช่น PyTorch, TensorFlow) -- **Label**: แท็กสำหรับการจัดหมวดหมู่และการกรอง -- **License**: สัญญาอนุญาตที่โมเดลถูกเผยแพร่ -- **Architecture**: สถาปัตยกรรมโมเดล (เช่น Transformer) +- **ชื่อ (Name)** (จำเป็น): ตัวระบุเฉพาะสำหรับการ์ดโมเดล +- **ชื่อเรื่อง (Title)**: ชื่อที่แสดงที่มนุษย์อ่านได้ +- **คำอธิบาย (Description)**: คำอธิบายรายละเอียดของโมเดล +- **ผู้เขียน (Author)**: ผู้สร้างโมเดลหรือองค์กร +- **เวอร์ชันโมเดล (Model Version)**: เวอร์ชันของโมเดล +- **งาน (Task)**: ประเภท task inference (เช่น text-generation) +- **หมวดหมู่ (Category)**: หมวดหมู่โมเดล (เช่น LLM) +- **เฟรมเวิร์ก (Framework)**: ML framework ที่ใช้ (เช่น PyTorch, TensorFlow) +- **ป้ายกำกับ (Label)**: แท็กสำหรับการจัดหมวดหมู่และการกรอง +- **สัญญาอนุญาต (License)**: สัญญาอนุญาตที่โมเดลถูกเผยแพร่ +- **สถาปัตยกรรม (Architecture)**: สถาปัตยกรรมโมเดล (เช่น Transformer) - **README**: README มาร์กดาวน์สำหรับโมเดล -- **Domain**: โดเมนที่จะเชื่อมโยงการ์ดโมเดล +- **โดเมน (Domain)**: โดเมนที่จะเชื่อมโยงการ์ดโมเดล - **Project ID** (จำเป็น): โปรเจกต์ที่เป็นเจ้าของการ์ดโมเดล - **VFolder** (จำเป็น): โฟลเดอร์จัดเก็บที่มีไฟล์โมเดล -- **Access Level**: ตั้งเป็น `Internal` (มองเห็นได้ภายในโดเมน) หรือ `Public` (มองเห็นได้สำหรับทุกคน) +- **ระดับการเข้าถึง (Access Level)**: ควบคุมว่าใครสามารถเห็นการ์ดโมเดลใน Model Store สำหรับผู้ใช้ + + * `Internal`: มองเห็นได้เฉพาะผู้ดูแลระบบของโดเมนและโปรเจกต์ที่เป็นเจ้าของเท่านั้น ผู้ใช้ทั่วไปจะไม่เห็นการ์ด Internal ใน Model Store ของตน + * `Public`: มองเห็นได้โดยผู้ใช้ทุกคนที่มีสิทธิ์เข้าถึงโปรเจกต์ที่เป็นเจ้าของ #### การแก้ไขการ์ดโมเดล -คลิกไอคอนแก้ไขในคอลัมน์ **Controls** เพื่อแก้ไขการ์ดโมเดลที่มีอยู่ โมดอลแก้ไขจะเปิดขึ้นพร้อมฟิลด์ที่ป้อนไว้ก่อนหน้านี้ +คลิกไอคอนแก้ไขถัดจากชื่อการ์ดโมเดลเพื่อแก้ไขการ์ดโมเดลที่มีอยู่ โมดอลแก้ไขจะเปิดขึ้นพร้อมฟิลด์ที่ป้อนไว้ก่อนหน้านี้ #### การลบการ์ดโมเดล -คุณสามารถลบการ์ดโมเดลแต่ละรายการโดยคลิกไอคอนลบในคอลัมน์ **Controls** หรือทำการลบจำนวนมากโดยเลือกการ์ดโมเดลหลายรายการแล้วคลิก `Delete Selected` - -#### การสแกนการ์ดโมเดลโปรเจกต์ - -คลิกปุ่ม `Scan Project Model Cards` เพื่อสแกนโฟลเดอร์โมเดลของโปรเจกต์โดยอัตโนมัติและสร้างการ์ดโมเดลสำหรับโฟลเดอร์ที่มีคำจำกัดความโมเดลที่ถูกต้อง ผลลัพธ์การสแกนจะแสดงจำนวนการ์ดโมเดลที่สร้างและอัปเดต - - -:::note -ตั้งแต่ Backend.AI เวอร์ชัน **26.4.0** เป็นต้นไป แท็บการจัดการ Model Store สำหรับผู้ดูแล -ระบบได้รับการออกแบบใหม่ หากคุณใช้เวอร์ชันที่เก่ากว่า คำอธิบายข้างต้นยังคงใช้ได้ มิฉะนั้น -ให้ดู -[การจัดการ Model Store สำหรับผู้ดูแลระบบ (เวอร์ชัน 26.4.0 ขึ้นไป)](#admin-model-store-management-version-26-4-0-and-later) -ด้านล่าง -::: - - - -#### การจัดการ Model Store สำหรับผู้ดูแลระบบ (เวอร์ชัน 26.4.0 ขึ้นไป) - -ใน Backend.AI เวอร์ชัน 26.4.0 ขึ้นไป แท็บ **Model Store Management** จะแสดงรายการการ์ดโมเดลที่ได้รับการออกแบบใหม่ - -![](../images/admin_model_card_list_v2.png) - -รายการมีคอลัมน์ต่อไปนี้: - -- **ชื่อ** (Name): ตัวระบุเฉพาะของการ์ดโมเดล -- **ชื่อเรื่อง** (Title): ชื่อที่แสดงผลซึ่งมนุษย์อ่านได้ -- **หมวดหมู่** (Category): หมวดหมู่โมเดล (เช่น LLM) -- **งาน** (Task): ประเภทงาน inference (เช่น text-generation) -- **ระดับการเข้าถึง** (Access Level): แสดงแท็ก `Public` สีเขียวเมื่อการ์ดโมเดลเข้าถึงได้แบบสาธารณะ หรือแท็ก `Private` แบบเริ่มต้นเมื่อเป็นแบบส่วนตัว -- **โดเมน** (Domain): โดเมนที่เป็นเจ้าของการ์ดโมเดล -- **โปรเจกต์** (Project): โปรเจกต์ที่เป็นเจ้าของการ์ดโมเดล -- **สร้างเวลา** (Created At): เวลาที่สร้างการ์ดโมเดล - -คุณสามารถกรองรายการตาม **ชื่อ** โดยใช้แถบตัวกรองคุณสมบัติที่ด้านบน ไอคอนแก้ไขและลบจะแสดงอยู่ในเซลล์ **ชื่อ** ของแต่ละแถวโดยตรง - -หากต้องการลบการ์ดโมเดลหลายรายการในคราวเดียว ให้เลือกแถวที่ต้องการลบโดยใช้ช่องทำเครื่องหมาย จากนั้นคลิกปุ่มถังขยะสีแดงถัดจากจำนวนที่เลือก กล่องโต้ตอบยืนยันจะปรากฏขึ้นก่อนที่การ์ดจะถูกลบ - -:::note -กล่องโต้ตอบสำหรับการสร้าง, การแก้ไข และการลบของการ์ดโมเดลแต่ละรายการเหมือนกับในเวอร์ชัน -เดิม ดู [การสร้างการ์ดโมเดล](#creating-a-model-card), -[การแก้ไขการ์ดโมเดล](#editing-a-model-card), และ -[การลบการ์ดโมเดล](#deleting-model-cards) -::: - -:::note -ปุ่ม **Scan Project Model Cards** ไม่มีให้ใช้งานใน Backend.AI เวอร์ชัน 26.4.0 ขึ้นไป -::: +คุณสามารถลบการ์ดโมเดลแต่ละรายการโดยคลิกไอคอนลบถัดจากชื่อการ์ด หรือทำการลบจำนวนมากโดยเลือกการ์ดโมเดลหลายรายการด้วยช่องทำเครื่องหมาย จากนั้นคลิกปุ่มถังขยะสีแดงถัดจากจำนวนที่เลือก