diff --git a/packages/backend.ai-webui-docs/src/en/dashboard/dashboard.md b/packages/backend.ai-webui-docs/src/en/dashboard/dashboard.md
index 2339efae72..8b455d9691 100644
--- a/packages/backend.ai-webui-docs/src/en/dashboard/dashboard.md
+++ b/packages/backend.ai-webui-docs/src/en/dashboard/dashboard.md
@@ -39,12 +39,21 @@ system configuration.
session type, and creation time.
By default, the latest 5 active sessions are displayed.
+When you are logged in as a superadmin, the Dashboard page also displays
+**Agent Statistics** and **Active Agents** panels alongside the standard user panels.
+See the [Superadmin Dashboard](#superadmin-dashboard) section for details on these panels.
+
## Auto-Refresh
The Dashboard automatically refreshes all panel data every **15 seconds**. This
ensures that the displayed information stays up to date without requiring manual
interaction.
+:::note
+The superadmin dashboard uses a **30-second** refresh interval instead.
+See the [Superadmin Dashboard](#superadmin-dashboard) section for more information.
+:::
+
## Customizing the Dashboard Layout
You can customize the Dashboard layout by rearranging and resizing panels to
diff --git a/packages/backend.ai-webui-docs/src/en/images/admin_model_card_list.png b/packages/backend.ai-webui-docs/src/en/images/admin_model_card_list.png
new file mode 100644
index 0000000000..2f3fa08fd3
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/en/images/admin_model_card_list.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/admin_model_card_modal.png b/packages/backend.ai-webui-docs/src/en/images/admin_model_card_modal.png
new file mode 100644
index 0000000000..5794585b76
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/en/images/admin_model_card_modal.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/admin_serving_page.png b/packages/backend.ai-webui-docs/src/en/images/admin_serving_page.png
new file mode 100644
index 0000000000..a990cae158
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/en/images/admin_serving_page.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/model_card_detail_modal.png b/packages/backend.ai-webui-docs/src/en/images/model_card_detail_modal.png
new file mode 100644
index 0000000000..73202aa1bb
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/en/images/model_card_detail_modal.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/model_clone_dialog.png b/packages/backend.ai-webui-docs/src/en/images/model_clone_dialog.png
new file mode 100644
index 0000000000..1a174a3291
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/en/images/model_clone_dialog.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/model_store_page.png b/packages/backend.ai-webui-docs/src/en/images/model_store_page.png
new file mode 100644
index 0000000000..5a427d1eb9
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/en/images/model_store_page.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/service_launcher1.png b/packages/backend.ai-webui-docs/src/en/images/service_launcher1.png
index 206003734c..dea12ed5b5 100644
Binary files a/packages/backend.ai-webui-docs/src/en/images/service_launcher1.png and b/packages/backend.ai-webui-docs/src/en/images/service_launcher1.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/service_launcher2.png b/packages/backend.ai-webui-docs/src/en/images/service_launcher2.png
index 63345b3f42..3b651ea1b6 100644
Binary files a/packages/backend.ai-webui-docs/src/en/images/service_launcher2.png and b/packages/backend.ai-webui-docs/src/en/images/service_launcher2.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/service_launcher3.png b/packages/backend.ai-webui-docs/src/en/images/service_launcher3.png
index 3f9049cd39..62fd2fa3b1 100644
Binary files a/packages/backend.ai-webui-docs/src/en/images/service_launcher3.png and b/packages/backend.ai-webui-docs/src/en/images/service_launcher3.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/service_launcher_command_mode.png b/packages/backend.ai-webui-docs/src/en/images/service_launcher_command_mode.png
new file mode 100644
index 0000000000..8799386076
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/en/images/service_launcher_command_mode.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/service_launcher_runtime_params.png b/packages/backend.ai-webui-docs/src/en/images/service_launcher_runtime_params.png
new file mode 100644
index 0000000000..06e2386ced
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/en/images/service_launcher_runtime_params.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 d972728a32..f1e99e9a1c 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/images/serving_list_page.png b/packages/backend.ai-webui-docs/src/en/images/serving_list_page.png
index e115df562a..5580ef254b 100644
Binary files a/packages/backend.ai-webui-docs/src/en/images/serving_list_page.png and b/packages/backend.ai-webui-docs/src/en/images/serving_list_page.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/start_announcement_banner.png b/packages/backend.ai-webui-docs/src/en/images/start_announcement_banner.png
index daf67c6baa..48594d7ba8 100644
Binary files a/packages/backend.ai-webui-docs/src/en/images/start_announcement_banner.png and b/packages/backend.ai-webui-docs/src/en/images/start_announcement_banner.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/start_from_url_github.png b/packages/backend.ai-webui-docs/src/en/images/start_from_url_github.png
index dcd75d7a2b..2e33b48af6 100644
Binary files a/packages/backend.ai-webui-docs/src/en/images/start_from_url_github.png and b/packages/backend.ai-webui-docs/src/en/images/start_from_url_github.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/start_from_url_gitlab.png b/packages/backend.ai-webui-docs/src/en/images/start_from_url_gitlab.png
index f2019b815d..32e19f6bab 100644
Binary files a/packages/backend.ai-webui-docs/src/en/images/start_from_url_gitlab.png and b/packages/backend.ai-webui-docs/src/en/images/start_from_url_gitlab.png differ
diff --git a/packages/backend.ai-webui-docs/src/en/images/start_from_url_notebook.png b/packages/backend.ai-webui-docs/src/en/images/start_from_url_notebook.png
index c2f121aeed..402f6c945f 100644
Binary files a/packages/backend.ai-webui-docs/src/en/images/start_from_url_notebook.png and b/packages/backend.ai-webui-docs/src/en/images/start_from_url_notebook.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 3e8fbe1b39..7b4adc390e 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
@@ -2,7 +2,6 @@
## Model Service
-
:::note
This feature is supported in Enterprise version only.
:::
@@ -23,7 +22,8 @@ administrators only need to specify the scaling parameters required for
the Model Service, without the need to manually create or delete compute
sessions.
-## Configuring and limitations of model service in version 23.03 and earlier
+
+Model Service in Version 23.03 and Earlier
Although the model serving-specific feature is officially supported from
version 23.09, you can still use model service in earlier versions.
@@ -53,6 +53,8 @@ to create/manage Model Services through the model serving menu whenever
possible. The use of pre-opened ports is recommended only for
development and testing purposes.
+
+
## Guide to Steps for Using Model Service
To use the Model Service, you need to follow the steps below:
@@ -60,16 +62,22 @@ To use the Model Service, you need to follow the steps below:
1. Create a model definition file.
2. Create a service definition file.
3. Upload the definition files to the model type folder.
-4. Create/Validate the Model Service.
+4. Create/Validate the Model Service using the service launcher.
5. (If the Model Service is not public) Obtain a token.
6. (For end users) Access the endpoint corresponding to the Model
Service to verify the service.
7. (If needed) Modify the Model Service.
8. (If needed) Terminate the Model Service.
+:::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.
+:::
+
-#### Creating a Model Definition File
+### Creating a Model Definition File
:::note
From 24.03, you can configure model definition file name. But if you don't
@@ -226,7 +234,7 @@ synchronized with the status displayed in the user interface.
-**Description for service action supported in Backend.AI Model serving**
+**Description for Service Action Supported in Backend.AI Model Serving**
- `write_file`: This is an action to create a file with the given
@@ -258,7 +266,7 @@ synchronized with the status displayed in the user interface.
- `args/message`: Specify the message to be displayed in the logs.
- `debug`: Set to `True` if it is in debug mode, otherwise set to `False`.
-#### Uploading Model Definition File to Model Type Folder
+### Uploading Model Definition File to Model Type Folder
To upload the model definition file (`model-definition.yml`) to the
model type folder, you need to create a virtual folder. When creating
@@ -280,12 +288,12 @@ please refer to the [Explore Folder](#explore-folder) section.
-#### Creating a Service Definition File
+### Creating a Service Definition File
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 on the Model Store page. These two
+model folder to enable the `Run this model` 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.
@@ -332,100 +340,161 @@ selected runtime variant when creating the service.
:::
:::note
-When a service is created from the Model Store using the "Run this model" button,
+When a service is created from the Model Store using the `Run this model` 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.
:::
-#### Creating/Validating Model Service
+## Serving Page Overview
-Once the model definition file is uploaded to the virtual folder of the
-model type, you are ready to create the model service.
-
-Click the 'Start Service' button on the Model Serving page. This will
-bring up a page where you can enter the required settings for creating
-the service.
+The Serving page displays a list of all model service endpoints in the current project. You can access it by clicking **Model Serving** in the sidebar menu.

-First, provide a service name. For detailed explanations of each item, please refer to the following:
+At the top of the page, you can filter endpoints by lifecycle stage:
+
+- **Active**: Shows endpoints that are currently running or being created. This is the default view.
+- **Destroyed**: Shows endpoints that have been terminated.
+
+You can also use the property filter bar to search endpoints by **Endpoint Name**, **Service Endpoint URL**, or **Owner** (available to admins and superadmins).
-- Open To Public: This option allows access to the model service
- without any separate token on the server where the service is to be
- hosted. By default, it is disabled.
-- Model Storage To Mount: This is model folder to mount, which contains
- model definition file inside the directory.
-- Inference Runtime Variant: This categorizes the type of models into four: `vLLM`, `NVIDIA NIM`, `Predefined Image Command`, `Custom`.
+Click the `Start Service` button to open the service launcher and create a new model service.
+
+## Creating a Model Service
+
+### Service Launcher
+
+Click the `Start Service` button on the Serving page to open the service launcher.
+
+#### Service Name and Basic Settings
+
+First, provide a service name. The following fields are available:
+
+- **Open To Public**: This option allows access to the model service without any separate token. By default, it is disabled.
+- **Model Storage**: The model storage folder to mount, which contains the model definition file inside the directory.
+- **Inference Runtime Variant**: Selects the runtime variant for the model service. The available variants are dynamically loaded from the backend and may include `vLLM`, `SGLang`, `NVIDIA NIM`, `Modular MAX`, `Custom`, and others depending on your installation.

-For example, if you choose `vLLM` or `NVIDIA NIM` or `Predefined Image Command` as a runtime variant of model service,
-there's no need to configure a `model-definition` file in your model folder to mount. Instead, you might have to set an additional environment variable.
-For more information, please take a look at
-[Model Variant: Easily Serving Various Model Services](https://www.backend.ai/blog/2024-07-10-various-ways-of-model-serving).
+For runtime variants such as `vLLM`, `SGLang`, `NVIDIA NIM`, or `Modular MAX`, there is no need to configure a `model-definition` file in your model folder. Instead, the system handles the model configuration automatically based on the selected variant.

-- Model Destination For Model Folder: This option allows aliasing path of
- model storage path to session corresponding to routing, which represents
- the service. default value is `/models`.
-- Model Definition File Path: You can also set model definition file as you
- uploaded in model storage path. The default value is `model-definition.yaml`.
-- Additional Mounts: Likewise session, service provides additional mounts.
- Please make sure that only you can mount general/data usage mode folder, not additional
- model folder.
+#### Model Definition Mode (Custom Runtime Only)
+
+When you select the `Custom` runtime variant, you can choose between two modes for defining the model service:
+
+##### Enter Command Mode
+
+Select `Enter Command` to paste a CLI command directly. For example:
+
+```shell
+vllm serve /models/my-model --tp 2
+```
+
+The system automatically parses the command and fills in the following fields:
+
+- **Port**: Auto-detected from the command (default `8000`).
+- **Health Check URL**: Auto-detected from the command (default `/health`).
+- **Model mount path**: Auto-detected from the command.
+
+
+
+You can also configure:
+
+- **Initial Delay**: Seconds to wait before the first health check after the service starts.
+- **Max Retries**: Maximum number of health check attempts before the service is considered failed.
+
+:::tip
+If the command suggests multi-GPU usage (e.g., `--tp 2`), a GPU hint will appear
+to help you allocate the correct number of GPU resources.
+:::
+
+##### Use Config File Mode
+
+Select `Use Config File` to use the traditional `model-definition.yaml` approach. This mode allows you to set:
+
+- **Mount Destination For Model Folder**: The path where the model storage is mounted in the session. The default value is `/models`.
+- **Model Definition File Path**: The path to the model definition file you uploaded. The default value is `model-definition.yaml`.
+- **Additional Mounts**: You can mount additional storage folders. Note that only general/data usage mode folders can be mounted, not additional model folders.

-Then set number of replicas and select environments and resource group. The resource group is a collection of
-resources that can be allocated to the model service.
+#### Runtime Parameters (vLLM / SGLang)
-- Number of replicas: This setting serves as the basis for determining the number
- of routing sessions to maintain for the current service. If you change the value of this
- setting, the manager can create a new replica session or terminate a running session
- by referring to the number of existing replica sessions.
-- Environment / Version: You can configure the execution environment
- for the dedicated server of the model service. Currently, even if the
- service has multiple routings, it will be executed in a single
- environment only. (Support for multiple execution environments will
- be added in a future update)
+When you select the `vLLM` or `SGLang` runtime variant, a **Runtime Parameters** section appears. This section lets you fine-tune the model serving behavior without manually editing configuration files.
+
+
+
+The parameters are organized into categories:
+
+**Sampling Parameters:**
+
+- **Temperature**: Controls randomness in text generation. Higher values produce more diverse output.
+- **Top P**: Nucleus sampling threshold.
+- **Top K**: Limits the number of highest-probability tokens to consider.
+- **Min P**: Minimum probability threshold for token selection.
+- **Frequency Penalty**: Penalizes tokens based on their frequency in the generated text.
+- **Presence Penalty**: Penalizes tokens that have already appeared.
+- **Repetition Penalty**: Penalizes repeated tokens. Values above 1.0 discourage repetition.
+- **Seed**: Random seed for reproducible generation.
+
+**Context / Engine Parameters:**
+
+- **Context Length**: Maximum context length the model can process.
+- **Data Type**: Data type for model weights and computation.
+- **KV Cache Data Type**: Data type for the key-value cache.
+- **GPU Memory Utilization**: Fraction of GPU memory to use for the model.
+- **Trust Remote Code**: Allow execution of custom model code from the model repository.
+- **Enforce Eager Mode** (vLLM only): Disable CUDA graph optimization for debugging.
+- **Disable CUDA Graph** (SGLang only): Disable CUDA graph capture.
+- **Memory Fraction Static** (SGLang only): Static memory fraction for the model.
+- **Max Model Length**: Maximum context length (number of tokens) the model can process.
+
+**Additional Arguments**: A text field for extra CLI arguments not covered by the controls above.
+
+:::note
+Unchanged parameters will use the runtime's default values.
+:::
+
+#### Environment and Resources
+
+Set the number of replicas and select the environment and resource group.
+
+- **Number of replicas**: Determines the number of routing sessions to maintain for the service. Changing this value causes the manager to create or terminate replica sessions accordingly.
+- **Environment / Version**: Configure the execution environment for the model service. Selecting a runtime variant such as vLLM automatically filters the environment images to show relevant ones.

-- Resource Presets: Allows you to select the amount of resources to allocate from the model service.
- Resource contains CPU, RAM, and AI accelerator, as known as GPU.
+- **Resource Presets**: Select the amount of resources to allocate. Resources include CPU, RAM, and AI accelerator (GPU).

-- Single Node: When running a session, the managed node and worker nodes are
- placed on a single physical node or virtual machine.
-- Multi Node: When running a session, one managed node and one or more worker
- nodes are split across multiple physical nodes or virtual machines.
-- Variable: In this section, you can set environment variable when starting a model service.
- It is useful when you trying to create a model service using runtime variant. some runtime variant needs
- certain environment variable setting before execution.
+#### Cluster Mode and Environment Variables
+
+- **Single Node**: The managed node and worker nodes are placed on a single physical node or virtual machine.
+- **Multi Node**: One managed node and one or more worker nodes are split across multiple physical nodes or virtual machines.
+- **Variable**: Set environment variables when starting a model service. This is useful when using runtime variants that require certain environment variable settings before execution.

-Before creating model service, Backend.AI supports validation feature to check
-whether execution is available or not(due to any errors during execution).
-By clicking the 'Validate' button at the bottom-left of the service launcher,
-a new popup for listening to validation events will pop up. In the popup modal,
-you can check the status through the container log. When the result is set to
-`Finished`, then the validation check is finished.
+#### Validating the Service
+Before creating a model service, Backend.AI supports a validation feature to check
+whether execution is available. Click the `Validate` button at the bottom-left of
+the service launcher, and a new popup for listening to validation events will appear.
+In the popup modal, you can check the status through the container log. When the
+result is set to `Finished`, the validation check is complete.

-
:::note
The result `Finished` doesn't guarantee that the execution is successfully done.
Instead, please check the container log.
:::
-
-**Handling Failed Model Service Creation**
+### Handling Failed Model Service Creation
If the status of the model service remains `UNHEALTHY`, it indicates
that the model service cannot be executed properly.
@@ -446,61 +515,86 @@ follows:
- Solution: Verify [the format of the model definition file](#model-definition-guide) and
if any key-value pairs are incorrect, modify them and overwrite the file in the saved location.
- Then, click 'Clear error and Retry' button to remove all the error stacked in routes info
+ Then, click `Clear error and retry` button to remove all the error stacked in routes info
table and ensure that the routing of the model service is set correctly.

+## Endpoint Detail Page
+
+Click on an endpoint name in the serving list to view detailed information about the model service.
+
+### Service Information
+
+The Service Info card displays the following details:
+
+- **Endpoint Name** and **Status**
+- **Endpoint ID** and **Session Owner**
+- **Number of Replicas**
+- **Service Endpoint**: The URL for accessing the model service. For LLM services, an `LLM Chat Test` button is available.
+- **Open To Public**: Whether the service is publicly accessible.
+- **Resources**: The resource group and allocated CPU/Memory/GPU.
+- **Model Storage**: The mounted model storage folder and mount destination.
+- **Additional Mounts**: Any extra storage folders mounted.
+- **Environment Variables**: Displayed as a code block.
+- **Image**: The container image used for the service.
+
+Click the `Edit` button on the Service Info card to navigate to the update launcher and modify the service settings.
+
+:::warning
+If the endpoint belongs to a different project than the currently selected one,
+a project mismatch warning is displayed. Switch to the correct project to manage the endpoint.
+:::
+
+### Auto Scaling Rules
-#### 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 using to conserve resources,
-and increased during high usage to prevent request delays of failures.
+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.

-Click the 'Add Rules' button to add a new rule. When you click the button, a modal appears
-when you can add a rule. Each field in the modal is described below:
+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.
+- **Type**: Define the rule. Select either `Scale Out` or `Scale In` based on the scope of the rule.
-- Metric Source: Inference Framework or kernel.
+- **Metric Source**: Inference Framework or kernel.
- - Inference Framework: Average value taken from every replicas. Supported only if both AppProxy reports the inference metrics.
- - Kernel: Average value taken from every kernels backing the endpoint.
+ - 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.
+- **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.
+ - **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.
+ - **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.
+- **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.
+ 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.
+- **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: Durations in seconds to skip reapplying the rule right after rule is first triggered.
+- **CoolDown Seconds**: Duration in seconds to skip reapplying the rule right after rule is first triggered.

-#### Generating Tokens
+### Generating Tokens
Once the model service is successfully executed, the status will be set
-to `HEALTHY`. In this case, you can click on the corresponding endpoint
-name in the Model Service tab to view detailed information about the
-model service. From there, you can check the service endpoint in the
-routing information of the model service. If the 'Open to Public' option
+to `HEALTHY`. You can click on the corresponding endpoint name in the
+serving list to view detailed information. From there, you can check the
+service endpoint in the routing information. If the **Open To Public** option
is enabled when the service is created, the endpoint will be publicly
accessible without any separate token, and end users can access it.
However, if it is disabled, you can issue a token as described below to
@@ -508,13 +602,12 @@ verify that the service is running properly.

-Click the 'Generate Token' button located to the right of the generated
-token list in the routing information. In the modal that appears for
-token creation, enter the expiration date.
+Click the `Generate Token` button located to the right of the generated
+token list. In the modal that appears, enter the expiration date.

-The issued token will be added to the list of generated tokens. Click the 'copy' button in the token
+The issued token will be added to the list of generated tokens. Each token displays its **Status** (Valid or Expired), **Expiration Date**, and **Created Date**. Click the `copy` button in the token
item to copy the token, and add it as the value of the following key.

@@ -524,19 +617,50 @@ item to copy the token, and add it as the value of the following key.
| Content-Type | application/json |
| Authorization | BackendAI |
-#### Accessing the Model Service Endpoint for End Users
+### Routes Information
+
+The Routes Info card shows the routing status of the model service. You can filter routes by:
+
+- **Running / Finished**: Toggle between active and completed route nodes.
+- **Property filter**: Filter by health status and traffic status.
+
+Click the `Sync Routes` button to synchronize the route information with the backend.
+
+Click on a route node to open the session detail drawer, where you can view individual session details.
+
+### 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.
+
+
+
+### Terminating a Service
+
+The model service periodically runs a scheduler to adjust the routing
+count to match the desired session count. However, this puts a burden on
+the Backend.AI scheduler. Therefore, it is recommended to terminate the
+model service if it is no longer needed. To terminate the model service,
+click on the `Delete` button in the Controls column. A modal will appear asking
+for confirmation to terminate the model service. Clicking `Delete`
+will terminate the model service. The terminated model service will
+appear in the **Destroyed** filter view.
+
+
+
+## Accessing the Service Endpoint
+
+### Making API Requests
To complete the model serving, you need to share information with the
actual end users so that they can access the server where the model
-service is running. If the Open to Public option is enabled when the
+service is running. If the **Open To Public** option is enabled when the
service is created, you can share the service endpoint value from the
-routing information page. If the service was created with the option
+endpoint detail page. If the service was created with the option
disabled, you can share the service endpoint value along with the token
previously generated.
-Here's the simple command using `curl` command whether to check sending any requests
-to model serving endpoint working properly or not.
-
+Here is a simple command using `curl` to check whether sending requests
+to the model serving endpoint is working properly:
```bash
$ export API_TOKEN=""
@@ -545,7 +669,6 @@ $ curl -H "Content-Type: application/json" -X GET \
```
-
:::warning
By default, end users must be on a network that can access the
endpoint. If the service was created in a closed network, only end
@@ -553,26 +676,26 @@ users who have access within that closed network can access the
service.
:::
-#### Using the Large Language Model
+### LLM Chat Test
-If you've created a Large Language Model (LLM) service, you can test the LLM in real-time.
-Simply click the 'LLM Chat Test' button located in the Service Endpoint column.
+If you have created a Large Language Model (LLM) service, you can test the LLM in real-time.
+Click the `LLM Chat Test` button located in the Service Endpoint section of the endpoint detail page.

-Then, You will be redirected to the Chat page, where the model you created is automatically selected.
+You will be redirected to the Chat page, where the model you created is automatically selected.
Using the chat interface provided on the Chat page, you can test the LLM model.
-For more information about the chat feature, please refer to the [Chat page](#chat-page)
+For more information about the chat feature, please refer to the [Chat page](#chat-page).

If you encounter issues connecting to the API, the Chat page will display options that allow you to manually configure the model settings.
To use the model, you will need the following information:
-- baseURL (optional): Base URL of the server where the model is located.
+- **baseURL** (optional): Base URL of the server where the model is located.
Make sure to include the version information.
For instance, when utilizing the OpenAI API, you should enter https://api.openai.com/v1.
-- Token (optional): An authentication key to access the model service. Tokens can be
+- **Token** (optional): An authentication key to access the model service. Tokens can be
generated from various services, not just Backend.AI. The format and generation process
may vary depending on the service. Always refer to the specific service's guide for details.
For instance, when using the service generated by Backend.AI, please refer to the
@@ -580,25 +703,103 @@ To use the model, you will need the following information:

-#### Modifying Model Service
+## Model Store
-Click on the wrench icon in the Control tab to modify a model service you want to update.
-The format is identical to the model service start modal, with
-previously entered fields already filled in. You can optionally modify only the
-fields you wish to change. After modifying the fields, click the 'confirm' button.
-The changes will be adjusted accordingly.
+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.
-
+
-#### Terminating Model Service
+### Browsing and Searching Models
-The model service periodically runs a scheduler to adjust the routing
-count to match the desired session count. However, this puts a burden on
-the Backend.AI scheduler. Therefore, it is recommended to terminate the
-model service if it is no longer needed. To terminate the model service,
-click on the 'trash' button in the Control column. A modal will appear asking
-for confirmation to terminate the model service. Clicking `Delete`
-will terminate the model service. The terminated model service will be
-removed from the list of model services.
+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
+
+
+
+### 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.
+
+
+
+### 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.
+:::
+
+## Admin Features
+
+### Admin Serving Page
+
+Administrators and superadmins can access the Admin Serving page, which provides a cross-project view of all endpoints. This page shows the **Project** column in addition to the standard endpoint list columns, allowing admins to manage services across all projects.
+
+
+
+The Admin Serving page has two tabs:
+
+- **Serving**: Displays the endpoint list across all projects, with the same lifecycle and property filters as the user-facing Serving page.
+- **Model Store Management**: Available to superadmins only. See the section below.
+
+### 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**.
+
+
+
+#### Creating a Model Card
+
+Click the `Create Model Card` button to open the creation modal. Fill in the following fields:
+
+- **Name** (required): A unique identifier for the model card.
+- **Title**: A human-readable display name.
+- **Description**: A detailed description of the model.
+- **Author**: The model creator or organization.
+- **Model Version**: The version of the model.
+- **Task**: The inference task type (e.g., text-generation).
+- **Category**: The model category (e.g., LLM).
+- **Framework**: The ML framework used (e.g., PyTorch, TensorFlow).
+- **Label**: Tags for categorization and filtering.
+- **License**: The license under which the model is distributed.
+- **Architecture**: The model architecture (e.g., Transformer).
+- **README**: A markdown README for the model.
+- **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).
+
+
+
+#### 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.
+
+#### 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
-
\ No newline at end of file
+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.
diff --git a/packages/backend.ai-webui-docs/src/ja/dashboard/dashboard.md b/packages/backend.ai-webui-docs/src/ja/dashboard/dashboard.md
index febc17c13d..833e4a05f3 100644
--- a/packages/backend.ai-webui-docs/src/ja/dashboard/dashboard.md
+++ b/packages/backend.ai-webui-docs/src/ja/dashboard/dashboard.md
@@ -25,6 +25,8 @@
- **最近作成されたセッション:**
現在のプロジェクトで最近作成されたアクティブなセッション一覧を表示します。セッション名、ステータス、CPU/メモリ使用量、環境、リソースグループ、セッションタイプ、作成日時などの詳細を確認できます。デフォルトでは最新の5つのアクティブなセッションが表示されます。
+スーパー管理者としてログインしている場合、ダッシュボードページには通常のユーザーパネルに加えて、**エージェントの統計**および**アクティブなエージェント**パネルも表示されます。これらのパネルの詳細については、[スーパー管理者ダッシュボード](#superadmin-dashboard)セクションを参照してください。
+
## 自動更新
ダッシュボードは**15秒**ごとにすべてのパネルデータを自動的に更新します。これにより、手動操作なしに常に最新の情報を確認できます。
diff --git a/packages/backend.ai-webui-docs/src/ja/images/admin_model_card_list.png b/packages/backend.ai-webui-docs/src/ja/images/admin_model_card_list.png
new file mode 100644
index 0000000000..2f3fa08fd3
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ja/images/admin_model_card_list.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/admin_model_card_modal.png b/packages/backend.ai-webui-docs/src/ja/images/admin_model_card_modal.png
new file mode 100644
index 0000000000..5794585b76
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ja/images/admin_model_card_modal.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/admin_serving_page.png b/packages/backend.ai-webui-docs/src/ja/images/admin_serving_page.png
new file mode 100644
index 0000000000..a990cae158
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ja/images/admin_serving_page.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/model_card_detail_modal.png b/packages/backend.ai-webui-docs/src/ja/images/model_card_detail_modal.png
new file mode 100644
index 0000000000..73202aa1bb
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ja/images/model_card_detail_modal.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/model_clone_dialog.png b/packages/backend.ai-webui-docs/src/ja/images/model_clone_dialog.png
new file mode 100644
index 0000000000..1a174a3291
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ja/images/model_clone_dialog.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/model_store_page.png b/packages/backend.ai-webui-docs/src/ja/images/model_store_page.png
new file mode 100644
index 0000000000..5a427d1eb9
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ja/images/model_store_page.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/service_launcher1.png b/packages/backend.ai-webui-docs/src/ja/images/service_launcher1.png
index 206003734c..dea12ed5b5 100644
Binary files a/packages/backend.ai-webui-docs/src/ja/images/service_launcher1.png and b/packages/backend.ai-webui-docs/src/ja/images/service_launcher1.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/service_launcher2.png b/packages/backend.ai-webui-docs/src/ja/images/service_launcher2.png
index 63345b3f42..3b651ea1b6 100644
Binary files a/packages/backend.ai-webui-docs/src/ja/images/service_launcher2.png and b/packages/backend.ai-webui-docs/src/ja/images/service_launcher2.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/service_launcher3.png b/packages/backend.ai-webui-docs/src/ja/images/service_launcher3.png
index 3f9049cd39..62fd2fa3b1 100644
Binary files a/packages/backend.ai-webui-docs/src/ja/images/service_launcher3.png and b/packages/backend.ai-webui-docs/src/ja/images/service_launcher3.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/service_launcher_command_mode.png b/packages/backend.ai-webui-docs/src/ja/images/service_launcher_command_mode.png
new file mode 100644
index 0000000000..8799386076
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ja/images/service_launcher_command_mode.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/service_launcher_runtime_params.png b/packages/backend.ai-webui-docs/src/ja/images/service_launcher_runtime_params.png
new file mode 100644
index 0000000000..06e2386ced
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ja/images/service_launcher_runtime_params.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 d972728a32..f1e99e9a1c 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/images/serving_list_page.png b/packages/backend.ai-webui-docs/src/ja/images/serving_list_page.png
index e115df562a..5580ef254b 100644
Binary files a/packages/backend.ai-webui-docs/src/ja/images/serving_list_page.png and b/packages/backend.ai-webui-docs/src/ja/images/serving_list_page.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/start_announcement_banner.png b/packages/backend.ai-webui-docs/src/ja/images/start_announcement_banner.png
index daf67c6baa..48594d7ba8 100644
Binary files a/packages/backend.ai-webui-docs/src/ja/images/start_announcement_banner.png and b/packages/backend.ai-webui-docs/src/ja/images/start_announcement_banner.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/start_from_url_github.png b/packages/backend.ai-webui-docs/src/ja/images/start_from_url_github.png
index dcd75d7a2b..2e33b48af6 100644
Binary files a/packages/backend.ai-webui-docs/src/ja/images/start_from_url_github.png and b/packages/backend.ai-webui-docs/src/ja/images/start_from_url_github.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/start_from_url_gitlab.png b/packages/backend.ai-webui-docs/src/ja/images/start_from_url_gitlab.png
index f2019b815d..32e19f6bab 100644
Binary files a/packages/backend.ai-webui-docs/src/ja/images/start_from_url_gitlab.png and b/packages/backend.ai-webui-docs/src/ja/images/start_from_url_gitlab.png differ
diff --git a/packages/backend.ai-webui-docs/src/ja/images/start_from_url_notebook.png b/packages/backend.ai-webui-docs/src/ja/images/start_from_url_notebook.png
index c2f121aeed..402f6c945f 100644
Binary files a/packages/backend.ai-webui-docs/src/ja/images/start_from_url_notebook.png and b/packages/backend.ai-webui-docs/src/ja/images/start_from_url_notebook.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 63d1a53ca5..a85ecfed5a 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
@@ -18,7 +18,8 @@ Backend.AIは、モデル学習フェーズにおける開発環境の構築と
モデルサービスは、既存のトレーニングコンピュートセッションの機能を拡張し、自動メンテナンス、スケーリング、および本番サービスのための永続的なポートとエンドポイントアドレスのマッピングを可能にします。開発者または管理者は、モデルサービスに必要なスケーリングパラメータを指定するだけでよく、コンピュートセッションを手動で作成または削除する必要はありません。
-## バージョン23.03以前でのモデルサービスの設定と制限事項
+
+バージョン23.03以前でのモデルサービス
モデルサービング専用機能はバージョン23.09から正式にサポートされていますが、
以前のバージョンでもモデルサービスを使用することは可能です。
@@ -45,6 +46,8 @@ Backend.AIは、モデル学習フェーズにおける開発環境の構築と
モデルサービスを作成・管理することを推奨します。事前開放ポートの使用は、
開発およびテスト目的でのみ推奨されます。
+
+
## モデルサービスの使用手順ガイド
モデルサービスを使用するには、以下の手順に従う必要があります:
@@ -52,15 +55,20 @@ Backend.AIは、モデル学習フェーズにおける開発環境の構築と
1. モデル定義ファイルを作成します。
2. サービス定義ファイルを作成します。
3. 定義ファイルをモデルタイプフォルダーにアップロードします。
-4. モデルサービスを作成/検証します。
+4. サービスランチャーを使用してモデルサービスを作成/検証します。
5. (モデルサービスが公開されていない場合)トークンを取得します。
6. (エンドユーザー向け)モデルサービスに対応するエンドポイントにアクセスして、サービスを確認します。
7. (必要に応じて)モデルサービスを変更します。
8. (必要に応じて)モデルサービスを終了します。
+:::tip
+代替ワークフローとして、[モデルストア](#model-store)で事前構成されたモデルを閲覧し、
+`Run this model`ボタンを使用してワンクリックでデプロイすることもできます。
+:::
+
-#### モデル定義ファイルの作成
+### モデル定義ファイルの作成
:::note
24.03以降、モデル定義ファイル名を設定できます。モデル定義ファイルパスで
@@ -97,13 +105,13 @@ models:
**モデル定義ファイルのキーと値の説明**
:::note
-「(Required)」表示のないフィールドはオプションです。
+「(必須)」表示のないフィールドはオプションです。
:::
-- `name` (Required): Defines the name of the model.
-- `model_path` (Required): Addresses the path of where model is defined.
-- `service`: Item for organizing information about the files to be served
- (includes command scripts and code).
+- `name` (必須): モデルの名前を定義します。
+- `model_path` (必須): モデルが定義されているパスを指定します。
+- `service`: サービスされるファイルに関する情報を整理する項目です
+ (コマンドスクリプトおよびコードを含む)。
- `pre_start_actions`: `start_command`の前に実行されるアクションです。これらのアクションは、
設定ファイルの作成、ディレクトリのセットアップ、初期化スクリプトの実行などによって環境を準備します。
@@ -113,30 +121,29 @@ models:
[事前開始アクション](#prestart-actions)を参照してください。
- `args`: アクション固有のパラメータ。各アクションタイプには異なる必須引数があります。
- - `start_command` (Required): Specify the command to be executed in model serving.
- Can be a string or a list of strings.
- - `port` (Required): Container port for the model service (e.g., `8000`, `8080`).
- - `health_check`: Configuration for periodic health monitoring of the model service.
- When configured, the system automatically checks if the service is responding correctly
- and removes unhealthy instances from traffic routing.
+ - `start_command` (必須): モデルサービングで実行されるコマンドを指定します。
+ 文字列または文字列のリストで指定できます。
+ - `port` (必須): モデルサービス用のコンテナポートです(例:`8000`、`8080`)。
+ - `health_check`: モデルサービスの定期的なヘルスモニタリングの設定です。
+ 設定すると、システムはサービスが正しく応答しているか自動的に確認し、
+ 異常なインスタンスをトラフィックルーティングから除外します。
- - `path` (Required): HTTP endpoint path for health check requests (e.g., `/health`, `/v1/health`).
- - `interval` (default: `10.0`): Time in seconds between consecutive health checks.
- - `max_retries` (default: `10`): Number of consecutive failures allowed before marking
- the service as `UNHEALTHY`. The service continues receiving traffic until this threshold is exceeded.
- - `max_wait_time` (default: `15.0`): Timeout in seconds for each health check HTTP request.
- If no response is received within this time, the check is considered failed.
- - `expected_status_code` (default: `200`): HTTP status code that indicates a healthy response.
- Common values: `200` (OK), `204` (No Content).
- - `initial_delay` (default: `60.0`): Time in seconds to wait after container creation
- before starting health checks. This allows time for model loading, GPU initialization,
- and service warmup. Set higher values for large models (e.g., `300.0` for 70B+ LLMs).
+ - `path` (必須): ヘルスチェックリクエスト用のHTTPエンドポイントパスです(例:`/health`、`/v1/health`)。
+ - `interval` (デフォルト: `10.0`): 連続するヘルスチェック間の秒数です。
+ - `max_retries` (デフォルト: `10`): サービスを`UNHEALTHY`としてマークする前に
+ 許容される連続失敗回数です。このしきい値を超えるまでサービスはトラフィックを受け続けます。
+ - `max_wait_time` (デフォルト: `15.0`): 各ヘルスチェックHTTPリクエストのタイムアウト秒数です。
+ この時間内に応答がない場合、チェックは失敗とみなされます。
+ - `expected_status_code` (デフォルト: `200`): 正常な応答を示すHTTPステータスコードです。
+ 一般的な値:`200`(OK)、`204`(No Content)。
+ - `initial_delay` (デフォルト: `60.0`): コンテナ作成後にヘルスチェックを開始するまでの
+ 待機時間(秒)です。モデルのロード、GPUの初期化、サービスのウォームアップに時間を確保します。
+ 大規模モデルの場合はより高い値を設定してください(例:70B+のLLMの場合`300.0`)。
-**Understanding Health Check Behavior**
+**ヘルスチェック動作の理解**
-The health check system monitors individual model service containers and automatically
-manages traffic routing based on their health status.
+ヘルスチェックシステムは、個々のモデルサービスコンテナを監視し、ヘルスステータスに基づいてトラフィックルーティングを自動的に管理します。
```
Container Created
@@ -192,19 +199,19 @@ failures) ┌─────┴─────┐
```
:::note
-The internal health status (used for traffic routing) may not be immediately
-synchronized with the status displayed in the user interface.
+内部ヘルスステータス(トラフィックルーティングに使用)は、ユーザーインターフェースに
+表示されるステータスと即座に同期されない場合があります。
:::
-**Time to UNHEALTHY**:
+**UNHEALTHYまでの時間**:
-- Initial startup: `initial_delay + interval × (max_retries + 1)`
+- 初期起動時: `initial_delay + interval × (max_retries + 1)`
- Example with defaults: 60 + 10 × 11 = **170 seconds** (about 3 minutes)
+ デフォルト値の例: 60 + 10 × 11 = **170秒**(約3分)
-- During operation (after healthy): `interval × (max_retries + 1)`
+- 運用中(正常状態後): `interval × (max_retries + 1)`
- Example with defaults: 10 × 11 = **110 seconds** (about 2 minutes)
+ デフォルト値の例: 10 × 11 = **110秒**(約2分)
@@ -240,7 +247,7 @@ synchronized with the status displayed in the user interface.
- `args/message`: ログに表示するメッセージを指定
- `debug`: デバッグモードの場合は `True`、それ以外は `False` に設定
-#### モデル定義ファイルをモデルタイプフォルダーにアップロード
+### モデル定義ファイルをモデルタイプフォルダーにアップロード
モデル定義ファイル(`model-definition.yml`)をモデルタイプフォルダーにアップロードするには、
バーチャルフォルダーを作成する必要があります。バーチャルフォルダーを作成する際は、
@@ -260,12 +267,12 @@ synchronized with the status displayed in the user interface.
-#### サービス定義ファイルの作成
+### サービス定義ファイルの作成
サービス定義ファイル(`service-definition.toml`)を使用すると、管理者はモデルサービスに必要なリソース、環境、およびランタイム設定を事前に構成できます。このファイルがモデルフォルダーに存在する場合、システムはサービスを作成する際にこれらの設定をデフォルト値として使用します。
`model-definition.yaml` と `service-definition.toml` の両方がモデルフォルダーに存在する必要があり、
-これによりモデルストアページで「このモデルを実行」ボタンが有効になります。これら2つのファイルは
+これによりモデルストアページで`Run this model`ボタンが有効になります。これら2つのファイルは
連携して動作します:モデル定義はモデルと推論サーバーの構成を指定し、サービス定義はランタイム環境、
リソース割り当て、および環境変数を指定します。
@@ -311,96 +318,160 @@ MODEL_NAME = "example-model-name"
:::
:::note
-「このモデルを実行」ボタンを使用してモデルストアからサービスを作成すると、
+`Run this model`ボタンを使用してモデルストアからサービスを作成すると、
`service-definition.toml` の設定が自動的に適用されます。後でリソース割り当てを
調整する必要がある場合は、モデルサービングページを通じてサービスを変更できます。
:::
-#### モデルサービスの作成/検証
-
-モデル定義ファイルがモデルタイプのバーチャルフォルダーにアップロードされたら、
-モデルサービスを作成する準備が整います。
+## サービングページの概要
-モデルサービングページで「サービス開始」ボタンをクリックします。これにより、
-サービスを作成するために必要な設定を入力するページが表示されます。
+サービングページには、現在のプロジェクト内のすべてのモデルサービスエンドポイントの一覧が表示されます。サイドバーメニューの**モデルサービス**をクリックしてアクセスできます。

-まず、サービス名を入力します。各項目の詳細については、以下を参照してください:
+ページ上部で、ライフサイクルステージ別にエンドポイントをフィルタリングできます:
+
+- **Active**: 現在実行中または作成中のエンドポイントを表示します。これがデフォルトビューです。
+- **Destroyed**: 終了したエンドポイントを表示します。
+
+また、プロパティフィルターバーを使用して、**エンドポイント名**、**サービスエンドポイントURL**、または**オーナー**(管理者およびスーパー管理者に提供)でエンドポイントを検索できます。
+
+`Start Service`ボタンをクリックしてサービスランチャーを開き、新しいモデルサービスを作成します。
-- 公開設定: このオプションを使用すると、サービスがホストされるサーバー上で
- モデルサービスに個別のトークンなしでアクセスできるようになります。
- デフォルトでは無効になっています。
-- マウントするモデルストレージ: これはマウントするモデルフォルダーで、
- ディレクトリ内にモデル定義ファイルが含まれています。
-- 推論ランタイムバリアント: モデルのタイプを4つのカテゴリに分類します:`vLLM`、`NVIDIA NIM`、`Predefined Image Command`、`Custom`。
+## モデルサービスの作成
+
+### サービスランチャー
+
+サービングページで`Start Service`ボタンをクリックしてサービスランチャーを開きます。
+
+#### サービス名と基本設定
+
+まず、サービス名を入力します。以下のフィールドが利用可能です:
+
+- **Open To Public**: 別途トークンなしでモデルサービスにアクセスできるようにします。デフォルトでは無効です。
+- **モデルストレージ**: モデル定義ファイルを含むマウントするモデルストレージフォルダーです。
+- **推論ランタイム・バリアント**: モデルサービスのランタイムバリアントを選択します。利用可能なバリアントはバックエンドから動的にロードされ、インストールに応じて`vLLM`、`SGLang`、`NVIDIA NIM`、`Modular MAX`、`Custom`などが含まれます。

-例えば、モデルサービスのランタイムバリアントとして `vLLM` または `NVIDIA NIM` または `Predefined Image Command` を選択した場合、
-マウントするモデルフォルダーに `model-definition` ファイルを設定する必要はありません。代わりに、追加の環境変数を設定する必要がある場合があります。
-詳細については、
-[Model Variant: Easily Serving Various Model Services](https://www.backend.ai/blog/2024-07-10-various-ways-of-model-serving)を参照してください。
+`vLLM`、`SGLang`、`NVIDIA NIM`、`Modular MAX`などのランタイムバリアントを選択すると、モデルフォルダーに`model-definition`ファイルを設定する必要はありません。選択されたバリアントに基づいて、システムがモデル構成を自動的に処理します。

-- モデルフォルダーのモデル宛先: このオプションにより、サービスを表すルーティングに
- 対応するセッションへのモデルストレージパスのエイリアスパスを設定できます。
- デフォルト値は `/models` です。
-- モデル定義ファイルパス: モデルストレージパスにアップロードしたモデル定義ファイルを
- 設定することもできます。デフォルト値は `model-definition.yaml` です。
-- 追加マウント: セッションと同様に、サービスも追加マウントを提供します。
- 追加のモデルフォルダーではなく、一般/データ使用モードのフォルダーのみをマウントできることに
- 注意してください。
+#### モデル定義モード(Customランタイム専用)
+
+`Custom`ランタイムバリアントを選択すると、モデルサービスを定義する2つのモードから選択できます:
+
+##### コマンド入力モード
+
+`コマンドを入力`を選択して、CLIコマンドを直接貼り付けることができます。例えば:
+
+```shell
+vllm serve /models/my-model --tp 2
+```
+
+システムが自動的にコマンドを解析し、以下のフィールドを入力します:
+
+- **Port**: コマンドから自動検出されます(デフォルト`8000`)。
+- **ヘルスチェック URL**: コマンドから自動検出されます(デフォルト`/health`)。
+- **モデルマウントパス**: コマンドから自動検出されます。
+
+
+
+以下も設定できます:
+
+- **初期遅延**: サービス起動後、最初のヘルスチェックを行うまで待機する秒数です。
+- **最大再試行回数**: サービスが失敗と判断されるまでのヘルスチェックの最大試行回数です。
+
+:::tip
+コマンドがマルチGPU使用を示唆している場合(例:`--tp 2`)、正しい数のGPU
+リソースを割り当てるのに役立つGPUヒントが表示されます。
+:::
+
+##### 設定ファイル使用モード
+
+`設定ファイルを使用`を選択して、従来の`model-definition.yaml`アプローチを使用します。このモードでは以下を設定できます:
+
+- **モデルフォルダーのマウント先**: セッションでモデルストレージがマウントされるパスです。デフォルト値は`/models`です。
+- **モデル定義ファイルパス**: アップロードしたモデル定義ファイルのパスです。デフォルト値は`model-definition.yaml`です。
+- **追加マウント**: 追加のストレージフォルダーをマウントできます。追加のモデルフォルダーではなく、一般/データ使用モードのフォルダーのみをマウントできることに注意してください。

-次に、レプリカ数を設定し、環境とリソースグループを選択します。リソースグループは、
-モデルサービスに割り当てることができるリソースのコレクションです。
+#### ランタイムパラメータ(vLLM / SGLang)
+
+`vLLM`または`SGLang`ランタイムバリアントを選択すると、**ランタイムパラメータ**セクションが表示されます。このセクションでは、設定ファイルを手動で編集することなく、モデルサービングの動作を微調整できます。
+
+
+
+パラメータはカテゴリ別に整理されています:
+
+**サンプリングパラメータ:**
+
+- **Temperature**: テキスト生成のランダム性を制御します。値が高いほど多様な出力が得られます。
+- **Top P**: Nucleusサンプリングのしきい値です。
+- **Top K**: 考慮する最高確率トークンの数を制限します。
+- **Min P**: トークン選択の最小確率しきい値です。
+- **Frequency Penalty**: 生成されたテキスト中のトークンの頻度に基づいてペナルティを与えます。
+- **Presence Penalty**: すでに出現したトークンにペナルティを与えます。
+- **Repetition Penalty**: 繰り返しトークンにペナルティを与えます。1.0以上の値は繰り返しを抑制します。
+- **Seed**: 再現可能な生成のためのランダムシードです。
+
+**コンテキスト / Engineパラメータ:**
+
+- **コンテキスト長**: モデルが処理できる最大コンテキスト長です。
+- **データ型**: モデルの重みと計算のデータ型です。
+- **KV Cacheデータ型**: キーバリューキャッシュのデータ型です。
+- **GPUメモリ使用率**: モデルに使用するGPUメモリの割合です。
+- **リモートコードを信頼**: モデルリポジトリからのカスタムモデルコードの実行を許可します。
+- **Eagerモードを強制**(vLLM専用): デバッグのためにCUDA graph最適化を無効にします。
+- **CUDA Graphを無効にする**(SGLang専用): CUDAグラフキャプチャを無効にします。
+- **メモリ割合(静的)**(SGLang専用): モデルの静的メモリ割合です。
+- **最大モデル長**: モデルが処理できる最大コンテキスト長(トークン数)です。
+
+**追加引数**: 上記のコントロールでは対応していない追加のCLI引数用のテキストフィールドです。
+
+:::note
+変更されていないパラメータはランタイムのデフォルト値を使用します。
+:::
+
+#### 環境とリソース
-- レプリカ数: この設定は、現在のサービスに対して維持するルーティングセッションの数を
- 決定するための基礎となります。この設定の値を変更すると、マネージャーは既存のレプリカ
- セッションの数を参照して、新しいレプリカセッションを作成したり、実行中のセッションを
- 終了したりできます。
-- 環境 / バージョン: モデルサービスの専用サーバーの実行環境を設定できます。
- 現在、サービスに複数のルーティングがある場合でも、単一の環境でのみ実行されます。
- (複数の実行環境のサポートは将来のアップデートで追加される予定です)
+レプリカ数を設定し、環境とリソースグループを選択します。
+
+- **レプリカ数**: サービスに対して維持するルーティングセッションの数を決定します。この値を変更すると、マネージャーはレプリカセッションを作成または終了します。
+- **環境 / バージョン**: モデルサービスの実行環境を設定します。vLLMなどのランタイムバリアントを選択すると、環境イメージが自動的にフィルタリングされ、関連するイメージが表示されます。

-- リソースプリセット: モデルサービスから割り当てるリソースの量を選択できます。
- リソースには、CPU、RAM、およびGPUとして知られるAIアクセラレーターが含まれます。
+- **リソースプリセット**: 割り当てるリソースの量を選択します。リソースにはCPU、RAM、GPUが含まれます。

-- シングルノード: セッションを実行する際、管理ノードとワーカーノードが
- 単一の物理ノードまたは仮想マシンに配置されます。
-- マルチノード: セッションを実行する際、1つの管理ノードと1つ以上のワーカー
- ノードが複数の物理ノードまたは仮想マシンに分割されます。
-- 変数: このセクションでは、モデルサービスを開始する際に環境変数を設定できます。
- ランタイムバリアントを使用してモデルサービスを作成しようとする場合に便利です。
- 一部のランタイムバリアントは、実行前に特定の環境変数の設定が必要です。
+#### クラスターモードと環境変数
+
+- **シングルノード**: セッションを実行する際、管理ノードとワーカーノードが単一の物理ノードまたは仮想マシンに配置されます。
+- **マルチノード**: 1つの管理ノードと1つ以上のワーカーノードが複数の物理ノードまたは仮想マシンに分割されます。
+- **変数**: モデルサービスを開始する際に環境変数を設定できます。ランタイムバリアントを使用してモデルサービスを作成する場合に便利です。

-モデルサービスを作成する前に、Backend.AIは実行が可能かどうか(実行中のエラーの有無)を
-チェックする検証機能をサポートしています。
-サービスランチャーの左下にある「検証」ボタンをクリックすると、
+#### サービスの検証
+
+モデルサービスを作成する前に、Backend.AIは実行が可能かどうかをチェックする検証機能をサポートしています。
+サービスランチャーの左下にある`Validate`ボタンをクリックすると、
検証イベントをリスニングするための新しいポップアップが表示されます。ポップアップモーダルでは、
-コンテナログを通じてステータスを確認できます。結果が `Finished` に設定されると、
+コンテナログを通じてステータスを確認できます。結果が`Finished`に設定されると、
検証チェックは完了です。
-

-
:::note
結果が `Finished` であっても、実行が正常に完了したことを保証するものではありません。
代わりに、コンテナログを確認してください。
:::
-
-**モデルサービス作成の失敗への対処**
+### モデルサービス作成の失敗への対処
モデルサービスのステータスが `UNHEALTHY` のままの場合、
モデルサービスが正しく実行できないことを示しています。
@@ -418,76 +489,100 @@ MODEL_NAME = "example-model-name"
- 解決策: [モデル定義ファイルの形式](#model-definition-guide)を確認し、
キー値ペアが正しくない場合は、それらを修正して保存された場所のファイルを上書きしてください。
- その後、「エラーをクリアして再試行」ボタンをクリックして、ルート情報テーブルに
+ その後、`Clear error and retry`ボタンをクリックして、ルート情報テーブルに
スタックされたすべてのエラーを削除し、モデルサービスのルーティングが正しく設定されていることを確認してください。

+## エンドポイント詳細ページ
+
+サービング一覧でエンドポイント名をクリックすると、モデルサービスの詳細情報を表示できます。
+
+### サービス情報
+
+サービス情報カードには以下の詳細が表示されます:
+
+- **エンドポイント名**と**ステータス**
+- **エンドポイントID**と**セッションオーナー**
+- **レプリカ数**
+- **サービスエンドポイント**: モデルサービスにアクセスするためのURLです。LLMサービスの場合、`LLM Chat Test`ボタンが利用可能です。
+- **Open To Public**: サービスが公開アクセス可能かどうかです。
+- **リソース**: リソースグループおよび割り当てられたCPU/メモリ/GPUです。
+- **モデルストレージ**: マウントされたモデルストレージフォルダーとマウント先です。
+- **追加マウント**: マウントされた追加のストレージフォルダーです。
+- **環境変数**: コードブロックとして表示されます。
+- **イメージ**: サービスに使用されるコンテナイメージです。
+
+サービス情報カードの`Edit`ボタンをクリックすると、更新ランチャーに移動してサービス設定を変更できます。
+
+:::warning
+エンドポイントが現在選択されているプロジェクトとは異なるプロジェクトに属している場合、
+プロジェクト不一致の警告が表示されます。エンドポイントを管理するには、正しいプロジェクトに切り替えてください。
+:::
+
+### 自動スケーリングルール
-#### 自動スケーリングルール
モデルサービスの自動スケーリングルールを設定できます。
定義されたルールに基づいて、使用率が低い時はリソースを節約するためにレプリカ数が自動的に減少し、
使用率が高い時はリクエストの遅延や失敗を防ぐために増加します。

-新しいルールを追加するには、「ルールを追加」ボタンをクリックします。ボタンをクリックすると、
+新しいルールを追加するには、`Add Rules`ボタンをクリックします。ボタンをクリックすると、
ルールを追加できるモーダルが表示されます。モーダル内の各フィールドについて以下に説明します:
-- タイプ: ルールを定義します。ルールの範囲に基づいて「スケールアウト」または「スケールイン」を選択します。
+- **Type**: ルールを定義します。ルールの範囲に基づいて`Scale Out`または`Scale In`を選択します。
-- メトリックソース: 推論フレームワークまたはカーネル。
+- **Metric Source**: 推論フレームワークまたはカーネルです。
- - 推論フレームワーク: すべてのレプリカから取得された平均値。両方のAppProxyが推論メトリックをレポートする場合のみサポートされます。
- - カーネル: エンドポイントをバッキングするすべてのカーネルから取得された平均値。
+ - 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**: ルールが最初にトリガーされた直後に、ルールの再適用をスキップする秒単位の期間です。

-#### Generating Tokens
+### トークンの生成
-Once the model service is successfully executed, the status will be set
-to `HEALTHY`. In this case, you can click on the corresponding endpoint
-name in the Model Service tab to view detailed information about the
-model service. From there, you can check the service endpoint in the
-routing information of the model service. If the 'Open to Public' option
-is enabled when the service is created, the endpoint will be publicly
-accessible without any separate token, and end users can access it.
-However, if it is disabled, you can issue a token as described below to
-verify that the service is running properly.
+モデルサービスが正常に実行されると、ステータスが
+`HEALTHY`に設定されます。サービング一覧で対応するエンドポイント名をクリックして、
+詳細情報を表示できます。ルーティング情報でサービスエンドポイントを確認できます。
+サービス作成時に**Open To Public**オプションが
+有効になっている場合、エンドポイントは別途トークンなしで
+公開アクセス可能です。
+ただし、無効になっている場合は、以下に説明するようにトークンを発行して、
+サービスが正しく実行されていることを確認できます。

-Click the 'Generate Token' button located to the right of the generated
-token list in the routing information. In the modal that appears for
-token creation, enter the expiration date.
+生成されたトークン一覧の右側にある`Generate Token`ボタンを
+クリックします。表示されるモーダルで有効期限を入力します。

-The issued token will be added to the list of generated tokens. Click the 'copy' button in the token
-item to copy the token, and add it as the value of the following key.
+発行されたトークンは生成されたトークン一覧に追加されます。各トークンには**ステータス**(有効または期限切れ)、**有効期限**、**作成日**が表示されます。トークン
+項目の`copy`ボタンをクリックしてトークンをコピーし、以下のキーの値として追加します。

@@ -496,19 +591,36 @@ item to copy the token, and add it as the value of the following key.
| Content-Type | application/json |
| Authorization | BackendAI |
-#### Accessing the Model Service Endpoint for End Users
+### ルート情報
+
+ルート情報カードは、モデルサービスのルーティングステータスを表示します。以下の基準でルートをフィルタリングできます:
+
+- **Running / Finished**: アクティブなルートノードと完了したルートノードを切り替えます。
+- **プロパティフィルター**: ヘルスステータスおよびトラフィックステータスでフィルタリングします。
+
+`Sync Routes`ボタンをクリックして、ルート情報をバックエンドと同期します。
+
+ルートノードをクリックするとセッション詳細ドロワーが開き、個別のセッション詳細を表示できます。
+
+### サービスの変更
+
+エンドポイント詳細ページの`Edit`ボタンをクリックして、モデルサービスを変更します。以前に入力したフィールドが入力された状態でサービスランチャーが開きます。変更したいフィールドのみを選択的に変更できます。フィールドを変更した後、`Confirm`をクリックして変更を適用します。
+
+
+
+### サービスの終了
+
+モデルサービスは、目的のセッション数に合わせてルーティング数を調整するために、定期的にスケジューラーを実行します。ただし、これはBackend.AIスケジューラーに負担をかけます。そのため、不要になったモデルサービスは終了することを推奨します。モデルサービスを終了するには、Controls列の`Delete`ボタンをクリックします。モデルサービスを終了するかどうかの確認モーダルが表示されます。`Delete`をクリックするとモデルサービスが終了します。終了したモデルサービスは**Destroyed**フィルタービューに表示されます。
-To complete the model serving, you need to share information with the
-actual end users so that they can access the server where the model
-service is running. If the Open to Public option is enabled when the
-service is created, you can share the service endpoint value from the
-routing information page. If the service was created with the option
-disabled, you can share the service endpoint value along with the token
-previously generated.
+
-Here's the simple command using `curl` command whether to check sending any requests
-to model serving endpoint working properly or not.
+## サービスエンドポイントへのアクセス
+### APIリクエストの送信
+
+モデルサービングを完了するには、実際のエンドユーザーと情報を共有して、モデルサービスが実行されているサーバーにアクセスできるようにする必要があります。サービス作成時に**Open To Public**オプションが有効になっている場合、エンドポイント詳細ページからサービスエンドポイントの値を共有できます。オプションが無効の状態でサービスが作成された場合は、以前に生成したトークンとともにサービスエンドポイントの値を共有できます。
+
+以下は、モデルサービングエンドポイントへのリクエスト送信が正しく機能しているかどうかを確認する`curl`コマンドの簡単な例です:
```bash
$ export API_TOKEN=""
@@ -517,60 +629,137 @@ $ curl -H "Content-Type: application/json" -X GET \
```
-
:::warning
-By default, end users must be on a network that can access the
-endpoint. If the service was created in a closed network, only end
-users who have access within that closed network can access the
-service.
+デフォルトでは、エンドユーザーはエンドポイントにアクセスできるネットワーク上にいる必要があります。
+サービスがクローズドネットワークで作成された場合、そのクローズドネットワーク内にアクセスできる
+エンドユーザーのみがサービスにアクセスできます。
:::
-#### Using the Large Language Model
+### LLMチャットテスト
-If you've created a Large Language Model (LLM) service, you can test the LLM in real-time.
-Simply click the 'LLM Chat Test' button located in the Service Endpoint column.
+大規模言語モデル(LLM)サービスを作成した場合、リアルタイムでLLMをテストできます。
+エンドポイント詳細ページのサービスエンドポイントセクションにある`LLM Chat Test`ボタンをクリックします。

-Then, You will be redirected to the Chat page, where the model you created is automatically selected.
-Using the chat interface provided on the Chat page, you can test the LLM model.
-For more information about the chat feature, please refer to the [Chat page](#chat-page)
+作成したモデルが自動的に選択されたChatページにリダイレクトされます。
+Chatページで提供されるチャットインターフェースを使用して、LLMモデルをテストできます。
+チャット機能の詳細については、[Chatページ](#chat-page)を参照してください。

-If you encounter issues connecting to the API, the Chat page will display options that allow you to manually configure the model settings.
-To use the model, you will need the following information:
+API接続に問題が発生した場合、Chatページにモデル設定を手動で構成できるオプションが表示されます。
+モデルを使用するには、以下の情報が必要です:
-- baseURL (optional): Base URL of the server where the model is located.
- Make sure to include the version information.
- For instance, when utilizing the OpenAI API, you should enter https://api.openai.com/v1.
-- Token (optional): An authentication key to access the model service. Tokens can be
- generated from various services, not just Backend.AI. The format and generation process
- may vary depending on the service. Always refer to the specific service's guide for details.
- For instance, when using the service generated by Backend.AI, please refer to the
- [Generating Tokens](#generating-tokens) section for instructions on how to generate tokens.
+- **baseURL**(オプション): モデルが配置されているサーバーのベースURLです。
+ バージョン情報を含めてください。
+ 例えば、OpenAI APIを使用する場合は、https://api.openai.com/v1 を入力してください。
+- **Token**(オプション): モデルサービスにアクセスするための認証キーです。トークンは
+ Backend.AIだけでなく、さまざまなサービスから生成できます。形式と生成プロセスは
+ サービスによって異なる場合があります。詳細については、常に特定のサービスのガイドを参照してください。
+ 例えば、Backend.AIで生成されたサービスを使用する場合は、
+ トークンの生成方法については[トークンの生成](#generating-tokens)セクションを参照してください。

-#### Modifying Model Service
+
-Click on the wrench icon in the Control tab to modify a model service you want to update.
-The format is identical to the model service start modal, with
-previously entered fields already filled in. You can optionally modify only the
-fields you wish to change. After modifying the fields, click the 'confirm' button.
-The changes will be adjusted accordingly.
+## Model Store
-
+モデルストアは、事前構成されたモデルを閲覧、検索、デプロイできるカードベースのギャラリーを提供します。サイドバーメニューからモデルストアにアクセスできます。
+
+
+
+### モデルの閲覧と検索
+
+ページ上部の検索バーを使用して、名前、説明、タスク、カテゴリ、またはラベルでモデルを検索できます。また、フィルタードロップダウンを使用して結果を絞り込むことができます:
+
+- **Category**: モデルカテゴリでフィルタリングします(例:LLM)。
+- **Task**: タスクタイプでフィルタリングします(例:text-generation)。
+- **Label**: モデルラベルでフィルタリングします。
+
+### モデルカードの詳細
+
+モデルカードをクリックすると、モーダルで詳細を表示できます。モデルカードモーダルには以下が表示されます:
+
+- **Title**、**Author**、**Version**
+- **Description**と**README**
+- **Task**、**Category**、**Architecture**
+- **Framework**と**Labels**
+- **License**
+- モデルの実行に必要な**最小リソース**
+- モデルストレージフォルダーへのリンク
+
+
+
+### モデルのクローン
+
+モデルカードの`Clone to a folder`ボタンをクリックして、モデルフォルダーを自分のストレージにクローンします。コピー先のフォルダー名を指定できる確認ダイアログが表示されます。
+
+
+
+### モデルストアからモデルを実行
+
+モデルカードの`Run this model`ボタンをクリックして、モデルをサービスとしてデプロイします。これには、モデルフォルダーに`model-definition.yaml`と`service-definition.toml`の両方が存在する必要があります。
+
+- サービス定義に1つのランタイムバリアントのみが構成されている場合、事前構成された設定でサービスが自動的に起動します。
+- 複数のランタイムバリアントが利用可能な場合、1つを選択するためにサービスランチャーページにリダイレクトされます。
+
+:::note
+モデルストアからサービスを作成すると、`service-definition.toml`の設定が
+自動的に適用されます。後でサービングページを通じてサービスを変更できます。
+:::
+
+## 管理者機能
+
+### 管理者サービングページ
+
+管理者およびスーパー管理者は、すべてのプロジェクトのエンドポイントを表示できる管理者サービングページにアクセスできます。このページには、標準のエンドポイント一覧列に加えて**プロジェクト**列が表示され、管理者がすべてのプロジェクトのサービスを管理できます。
+
+
+
+管理者サービングページには2つのタブがあります:
+
+- **Serving**: すべてのプロジェクトのエンドポイント一覧を表示し、ユーザー向けサービングページと同じライフサイクルおよびプロパティフィルターを提供します。
+- **Model Store Management**: スーパー管理者のみ利用可能です。以下のセクションを参照してください。
+
+### 管理者モデルストア管理
+
+スーパー管理者は、管理者サービングページの**Model Store Management**タブを通じてモデルカードを管理できます。このタブは、以下の列を持つすべてのモデルカードのテーブルビューを提供します:**Name**、**Title**、**Task**、**Category**、**Labels**、**Created At**、**Controls**。
+
+
+
+#### モデルカードの作成
+
+`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**列の編集アイコンをクリックして、既存のモデルカードを変更します。以前に入力したフィールドが入力された状態で編集モーダルが開きます。
+
+#### モデルカードの削除
-#### Terminating Model Service
+**Controls**列の削除アイコンをクリックして個別のモデルカードを削除するか、複数のモデルカードを選択して`Delete Selected`をクリックして一括削除を実行できます。
-The model service periodically runs a scheduler to adjust the routing
-count to match the desired session count. However, this puts a burden on
-the Backend.AI scheduler. Therefore, it is recommended to terminate the
-model service if it is no longer needed. To terminate the model service,
-click on the 'trash' button in the Control column. A modal will appear asking
-for confirmation to terminate the model service. Clicking `Delete`
-will terminate the model service. The terminated model service will be
-removed from the list of model services.
+#### プロジェクトモデルカードのスキャン
-
\ No newline at end of file
+`Scan Project Model Cards`ボタンをクリックして、プロジェクトのモデルフォルダーを自動的にスキャンし、有効なモデル定義を含むフォルダーのモデルカードを作成します。スキャン結果には、作成および更新されたモデルカードの数が表示されます。
diff --git a/packages/backend.ai-webui-docs/src/ko/dashboard/dashboard.md b/packages/backend.ai-webui-docs/src/ko/dashboard/dashboard.md
index 9956cbfdad..ed274f4677 100644
--- a/packages/backend.ai-webui-docs/src/ko/dashboard/dashboard.md
+++ b/packages/backend.ai-webui-docs/src/ko/dashboard/dashboard.md
@@ -27,6 +27,10 @@
- **최근 생성 세션:**
현재 프로젝트에서 가장 최근에 생성된 실행 중인 세션 목록을 보여 줍니다. 세션 이름, 상태, CPU/메모리 사용량, 환경, 자원 그룹, 세션 유형, 생성 일시 등을 확인할 수 있습니다. 기본적으로 최근 5개의 실행 중인 세션이 표시됩니다.
+슈퍼관리자로 로그인한 경우, 대시보드 페이지에 일반 사용자 패널과 함께
+**에이전트 통계** 및 **활성 에이전트** 패널이 추가로 표시됩니다.
+이 패널에 대한 자세한 내용은 [슈퍼관리자 대시보드](#superadmin-dashboard) 섹션을 참고하세요.
+
## 자동 새로고침
대시보드는 모든 패널 데이터를 **15초**마다 자동으로 새로고침합니다. 이를 통해 수동 조작 없이도 항상 최신 정보를 확인할 수 있습니다.
diff --git a/packages/backend.ai-webui-docs/src/ko/images/admin_model_card_list.png b/packages/backend.ai-webui-docs/src/ko/images/admin_model_card_list.png
new file mode 100644
index 0000000000..2f3fa08fd3
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ko/images/admin_model_card_list.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/admin_model_card_modal.png b/packages/backend.ai-webui-docs/src/ko/images/admin_model_card_modal.png
new file mode 100644
index 0000000000..5794585b76
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ko/images/admin_model_card_modal.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/admin_serving_page.png b/packages/backend.ai-webui-docs/src/ko/images/admin_serving_page.png
new file mode 100644
index 0000000000..a990cae158
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ko/images/admin_serving_page.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/model_card_detail_modal.png b/packages/backend.ai-webui-docs/src/ko/images/model_card_detail_modal.png
new file mode 100644
index 0000000000..73202aa1bb
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ko/images/model_card_detail_modal.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/model_clone_dialog.png b/packages/backend.ai-webui-docs/src/ko/images/model_clone_dialog.png
new file mode 100644
index 0000000000..1a174a3291
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ko/images/model_clone_dialog.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/model_store_page.png b/packages/backend.ai-webui-docs/src/ko/images/model_store_page.png
new file mode 100644
index 0000000000..5a427d1eb9
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ko/images/model_store_page.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/service_launcher1.png b/packages/backend.ai-webui-docs/src/ko/images/service_launcher1.png
index 206003734c..dea12ed5b5 100644
Binary files a/packages/backend.ai-webui-docs/src/ko/images/service_launcher1.png and b/packages/backend.ai-webui-docs/src/ko/images/service_launcher1.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/service_launcher2.png b/packages/backend.ai-webui-docs/src/ko/images/service_launcher2.png
index 63345b3f42..3b651ea1b6 100644
Binary files a/packages/backend.ai-webui-docs/src/ko/images/service_launcher2.png and b/packages/backend.ai-webui-docs/src/ko/images/service_launcher2.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/service_launcher3.png b/packages/backend.ai-webui-docs/src/ko/images/service_launcher3.png
index 3f9049cd39..62fd2fa3b1 100644
Binary files a/packages/backend.ai-webui-docs/src/ko/images/service_launcher3.png and b/packages/backend.ai-webui-docs/src/ko/images/service_launcher3.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/service_launcher_command_mode.png b/packages/backend.ai-webui-docs/src/ko/images/service_launcher_command_mode.png
new file mode 100644
index 0000000000..8799386076
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ko/images/service_launcher_command_mode.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/service_launcher_runtime_params.png b/packages/backend.ai-webui-docs/src/ko/images/service_launcher_runtime_params.png
new file mode 100644
index 0000000000..06e2386ced
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/ko/images/service_launcher_runtime_params.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 d972728a32..f1e99e9a1c 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/images/serving_list_page.png b/packages/backend.ai-webui-docs/src/ko/images/serving_list_page.png
index e115df562a..5580ef254b 100644
Binary files a/packages/backend.ai-webui-docs/src/ko/images/serving_list_page.png and b/packages/backend.ai-webui-docs/src/ko/images/serving_list_page.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/start_announcement_banner.png b/packages/backend.ai-webui-docs/src/ko/images/start_announcement_banner.png
index daf67c6baa..48594d7ba8 100644
Binary files a/packages/backend.ai-webui-docs/src/ko/images/start_announcement_banner.png and b/packages/backend.ai-webui-docs/src/ko/images/start_announcement_banner.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/start_from_url_github.png b/packages/backend.ai-webui-docs/src/ko/images/start_from_url_github.png
index dcd75d7a2b..2e33b48af6 100644
Binary files a/packages/backend.ai-webui-docs/src/ko/images/start_from_url_github.png and b/packages/backend.ai-webui-docs/src/ko/images/start_from_url_github.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/start_from_url_gitlab.png b/packages/backend.ai-webui-docs/src/ko/images/start_from_url_gitlab.png
index f2019b815d..32e19f6bab 100644
Binary files a/packages/backend.ai-webui-docs/src/ko/images/start_from_url_gitlab.png and b/packages/backend.ai-webui-docs/src/ko/images/start_from_url_gitlab.png differ
diff --git a/packages/backend.ai-webui-docs/src/ko/images/start_from_url_notebook.png b/packages/backend.ai-webui-docs/src/ko/images/start_from_url_notebook.png
index c2f121aeed..402f6c945f 100644
Binary files a/packages/backend.ai-webui-docs/src/ko/images/start_from_url_notebook.png and b/packages/backend.ai-webui-docs/src/ko/images/start_from_url_notebook.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 0b5bc1b8d8..b7ce43a527 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
@@ -18,7 +18,8 @@ Backend.AI는 모델 학습 단계에서 개발 환경 구축과 리소스 관
모델 서비스는 기존의 학습용 연산 세션 기능을 확장하여, 자동화된 유지·보수 및 스케일링을 가능하게 하고 프로덕션 서비스를 위한 영구적인 포트 및 엔드포인트 주소 매핑을 제공합니다. 개발자나 관리자가 연산 세션을 수동으로 생성·삭제할 필요 없이 모델 서비스에 필요한 스케일링 파라미터를 지정해 주기만 하면 됩니다.
-## 23.03 이전 버전에서의 모델 서비스 구성 및 제한 사항
+
+23.03 이전 버전에서의 모델 서비스
모델 서빙 전용 기능은 23.09 버전부터 공식적으로 지원되지만,
이전 버전에서도 모델 서비스를 사용할 수는 있습니다.
@@ -45,6 +46,8 @@ Backend.AI는 모델 학습 단계에서 개발 환경 구축과 리소스 관
모델 서비스를 생성/관리하는 것을 권장합니다. 사전 개방 포트의 사용은
개발 및 테스트 목적으로만 권장됩니다.
+
+
## 모델 서비스를 사용하기 위한 단계 안내
모델 서비스를 사용하기 위해서는 크게 아래와 같은 단계를 따라야 합니다.
@@ -52,15 +55,20 @@ Backend.AI는 모델 학습 단계에서 개발 환경 구축과 리소스 관
1. 모델 정의 파일을 생성합니다.
2. 서비스 정의 파일을 생성합니다.
3. 정의 파일들을 모델 타입 폴더에 업로드합니다.
-4. 모델 서비스를 생성/유효성 검사합니다.
+4. 서비스 런처를 사용하여 모델 서비스를 생성/유효성 검사합니다.
5. (모델 서비스가 공개되지 않은 경우) 토큰을 발급합니다.
6. (엔드 유저용) 모델 서비스에 대응하는 엔드포인트에 접속하여 서비스를 확인합니다.
7. (필요한 경우) 모델 서비스를 수정합니다.
8. (필요한 경우) 모델 서비스를 종료합니다.
+:::tip
+대안적 워크플로우로, [모델 스토어](#model-store)에서 사전 구성된 모델을 탐색하고
+`Run this model` 버튼을 사용하여 한 번의 클릭으로 배포할 수 있습니다.
+:::
+
-#### 모델 정의 파일 생성하기
+### 모델 정의 파일 생성하기
:::note
24.03 버전부터 모델 정의 파일 이름을 구성할 수 있습니다. 모델 정의 파일 경로에
@@ -239,7 +247,7 @@ failures) ┌─────┴─────┐
- `args/message`: 로그에 표시할 메시지 지정
- `debug`: 디버그 모드인 경우 `True`, 그렇지 않으면 `False`로 설정
-#### 모델 정의 파일을 모델 타입 폴더에 업로드
+### 모델 정의 파일을 모델 타입 폴더에 업로드
모델 정의 파일(`model-definition.yml`)을 모델 타입 폴더에 업로드하려면
가상 폴더를 생성해야 합니다. 가상 폴더를 생성할 때 기본 `general` 타입 대신
@@ -260,12 +268,12 @@ failures) ┌─────┴─────┐
-#### 서비스 정의 파일 생성
+### 서비스 정의 파일 생성
서비스 정의 파일(`service-definition.toml`)을 사용하면 관리자가 모델 서비스에 필요한 리소스, 환경 및 런타임 설정을 미리 구성할 수 있습니다. 이 파일이 모델 폴더에 있으면, 시스템은 서비스를 생성할 때 이러한 설정을 기본값으로 사용합니다.
`model-definition.yaml`과 `service-definition.toml` 모두 모델 폴더에 있어야
-모델 스토어 페이지에서 "이 모델 실행" 버튼이 활성화됩니다. 이 두 파일은
+모델 스토어 페이지에서 `Run this model` 버튼이 활성화됩니다. 이 두 파일은
함께 작동합니다: 모델 정의는 모델과 추론 서버 구성을 지정하고, 서비스 정의는
런타임 환경, 리소스 할당 및 환경 변수를 지정합니다.
@@ -311,96 +319,160 @@ MODEL_NAME = "example-model-name"
:::
:::note
-"이 모델 실행" 버튼을 사용하여 모델 스토어에서 서비스를 생성하면
+`Run this model` 버튼을 사용하여 모델 스토어에서 서비스를 생성하면
`service-definition.toml`의 설정이 자동으로 적용됩니다. 나중에 리소스
할당을 조정해야 하는 경우, 모델 서빙 페이지를 통해 서비스를 수정할 수 있습니다.
:::
-#### 모델 서비스 생성/유효성 검사
-
-모델 정의 파일이 모델 타입의 가상 폴더에 업로드되면,
-모델 서비스를 생성할 준비가 됩니다.
+## 서빙 페이지 개요
-모델 서빙 페이지에서 '서비스 시작' 버튼을 클릭합니다. 이렇게 하면
-서비스를 생성하는 데 필요한 설정을 입력할 수 있는 페이지가 표시됩니다.
+서빙 페이지는 현재 프로젝트의 모든 모델 서비스 엔드포인트 목록을 표시합니다. 사이드바 메뉴에서 **모델 서빙**을 클릭하여 접근할 수 있습니다.

-먼저 서비스 이름을 제공합니다. 각 항목에 대한 자세한 설명은 다음을 참조하세요:
+페이지 상단에서 라이프사이클 단계별로 엔드포인트를 필터링할 수 있습니다:
+
+- **Active**: 현재 실행 중이거나 생성 중인 엔드포인트를 표시합니다. 기본 보기입니다.
+- **Destroyed**: 종료된 엔드포인트를 표시합니다.
+
+또한 속성 필터 바를 사용하여 **엔드포인트 이름**, **서비스 엔드포인트 URL**, 또는 **소유자**(관리자 및 슈퍼관리자에게 제공)별로 엔드포인트를 검색할 수 있습니다.
+
+`Start Service` 버튼을 클릭하여 서비스 런처를 열고 새 모델 서비스를 생성합니다.
+
+## 모델 서비스 생성
-- 공개 설정: 이 옵션을 사용하면 서비스가 호스팅되는 서버에서
- 별도의 토큰 없이 모델 서비스에 액세스할 수 있습니다.
- 기본적으로 비활성화되어 있습니다.
-- 마운트할 모델 스토리지: 디렉토리 내부에 모델 정의 파일이 포함된
- 마운트할 모델 폴더입니다.
-- 추론 런타임 변형: 모델 유형을 네 가지로 분류합니다: `vLLM`, `NVIDIA NIM`, `Predefined Image Command`, `Custom`.
+### 서비스 런처
+
+서빙 페이지에서 `Start Service` 버튼을 클릭하여 서비스 런처를 엽니다.
+
+#### 서비스 이름 및 기본 설정
+
+먼저 서비스 이름을 입력합니다. 다음 필드를 사용할 수 있습니다:
+
+- **Open To Public**: 별도의 토큰 없이 모델 서비스에 액세스할 수 있도록 허용합니다. 기본적으로 비활성화되어 있습니다.
+- **모델 스토리지**: 모델 정의 파일이 포함된 마운트할 모델 스토리지 폴더입니다.
+- **인퍼런스 런타임 종류**: 모델 서비스의 런타임 변형을 선택합니다. 사용 가능한 변형은 백엔드에서 동적으로 로드되며, 설치에 따라 `vLLM`, `SGLang`, `NVIDIA NIM`, `Modular MAX`, `Custom` 등이 포함될 수 있습니다.

-예를 들어, 모델 서비스의 런타임 변형으로 `vLLM` 또는 `NVIDIA NIM` 또는 `Predefined Image Command`를 선택하면,
-마운트할 모델 폴더에 `model-definition` 파일을 구성할 필요가 없습니다. 대신 추가 환경 변수를 설정해야 할 수도 있습니다.
-자세한 내용은
-[Model Variant: Easily Serving Various Model Services](https://www.backend.ai/blog/2024-07-10-various-ways-of-model-serving)를 참조하세요.
+`vLLM`, `SGLang`, `NVIDIA NIM`, `Modular MAX` 등의 런타임 변형을 선택하면, 모델 폴더에 `model-definition` 파일을 구성할 필요가 없습니다. 대신 선택한 변형에 따라 시스템이 모델 구성을 자동으로 처리합니다.

-- 모델 폴더의 모델 대상: 이 옵션을 사용하면 서비스를 나타내는 라우팅에
- 해당하는 세션으로 모델 스토리지 경로의 별칭 경로를 설정할 수 있습니다.
- 기본값은 `/models`입니다.
-- 모델 정의 파일 경로: 모델 스토리지 경로에 업로드한 모델 정의 파일을
- 설정할 수도 있습니다. 기본값은 `model-definition.yaml`입니다.
-- 추가 마운트: 세션과 마찬가지로, 서비스도 추가 마운트를 제공합니다.
- 추가 모델 폴더가 아닌 일반/데이터 사용 모드 폴더만 마운트할 수 있다는 점에
- 유의하세요.
+#### 모델 정의 모드 (Custom 런타임 전용)
+
+`Custom` 런타임 변형을 선택하면, 모델 서비스를 정의하는 두 가지 모드를 선택할 수 있습니다:
+
+##### 명령어 입력 모드
+
+`명령어 입력`을 선택하여 CLI 명령어를 직접 붙여넣을 수 있습니다. 예를 들어:
+
+```shell
+vllm serve /models/my-model --tp 2
+```
+
+시스템이 자동으로 명령어를 분석하여 다음 필드를 채웁니다:
+
+- **Port**: 명령어에서 자동 감지됩니다 (기본값 `8000`).
+- **상태 확인 URL**: 명령어에서 자동 감지됩니다 (기본값 `/health`).
+- **모델 마운트 경로**: 명령어에서 자동 감지됩니다.
+
+
+
+추가로 다음을 구성할 수 있습니다:
+
+- **초기 지연 시간**: 서비스 시작 후 첫 번째 상태 확인까지 대기하는 시간(초)입니다.
+- **최대 재시도 횟수**: 서비스가 실패로 판단되기 전까지의 최대 상태 확인 시도 횟수입니다.
+
+:::tip
+명령어가 멀티 GPU 사용을 암시하는 경우(예: `--tp 2`), 올바른 수의 GPU 리소스를
+할당하는 데 도움이 되는 GPU 힌트가 표시됩니다.
+:::
+
+##### 설정 파일 사용 모드
+
+`설정 파일 사용`을 선택하여 기존의 `model-definition.yaml` 방식을 사용합니다. 이 모드에서는 다음을 설정할 수 있습니다:
+
+- **모델 폴더의 마운트 대상**: 세션에서 모델 스토리지가 마운트되는 경로입니다. 기본값은 `/models`입니다.
+- **모델 정의 파일 경로**: 업로드한 모델 정의 파일의 경로입니다. 기본값은 `model-definition.yaml`입니다.
+- **추가 마운트**: 추가 스토리지 폴더를 마운트할 수 있습니다. 추가 모델 폴더가 아닌 일반/데이터 사용 모드 폴더만 마운트할 수 있다는 점에 유의하세요.

-그런 다음 레플리카 수를 설정하고 환경 및 자원 그룹을 선택합니다. 자원 그룹은
-모델 서비스에 할당할 수 있는 리소스의 모음입니다.
+#### 런타임 파라미터 (vLLM / SGLang)
+
+`vLLM` 또는 `SGLang` 런타임 변형을 선택하면 **런타임 파라미터** 섹션이 나타납니다. 이 섹션에서는 구성 파일을 수동으로 편집하지 않고도 모델 서빙 동작을 미세 조정할 수 있습니다.
+
+
-- 레플리카 수: 이 설정은 현재 서비스에 대해 유지할 라우팅 세션 수를
- 결정하는 기준이 됩니다. 이 설정 값을 변경하면, 관리자는 기존 레플리카
- 세션 수를 참조하여 새 레플리카 세션을 생성하거나 실행 중인 세션을
- 종료할 수 있습니다.
-- 환경 / 버전: 모델 서비스의 전용 서버에 대한 실행 환경을 구성할 수 있습니다.
- 현재는 서비스에 여러 라우팅이 있더라도 단일 환경에서만 실행됩니다.
- (다중 실행 환경 지원은 향후 업데이트에서 추가될 예정입니다)
+파라미터는 카테고리별로 구성되어 있습니다:
+
+**샘플링 파라미터:**
+
+- **Temperature**: 텍스트 생성의 무작위성을 제어합니다. 값이 높을수록 다양한 출력이 생성됩니다.
+- **Top P**: 누클리어스 샘플링 임계값입니다.
+- **Top K**: 고려할 최고 확률 토큰 수를 제한합니다.
+- **Min P**: 토큰 선택을 위한 최소 확률 임계값입니다.
+- **빈도 페널티**: 생성된 텍스트에서의 빈도에 따라 토큰에 페널티를 부여합니다.
+- **존재 페널티**: 이미 나타난 토큰에 페널티를 부여합니다.
+- **반복 페널티**: 반복된 토큰에 페널티를 부여합니다. 1.0 이상의 값은 반복을 억제합니다.
+- **시드**: 재현 가능한 생성을 위한 랜덤 시드입니다.
+
+**컨텍스트 / 엔진 파라미터:**
+
+- **컨텍스트 길이**: 모델이 처리할 수 있는 최대 컨텍스트 길이입니다.
+- **데이터 타입**: 모델 가중치 및 연산의 데이터 타입입니다.
+- **KV 캐시 데이터 타입**: 키-값 캐시의 데이터 타입입니다.
+- **GPU 메모리 사용률**: 모델에 사용할 GPU 메모리 비율입니다.
+- **원격 코드 신뢰**: 모델 저장소의 커스텀 모델 코드 실행을 허용합니다.
+- **Eager 모드 강제** (vLLM 전용): 디버깅을 위해 CUDA 그래프 최적화를 비활성화합니다.
+- **CUDA 그래프 비활성화** (SGLang 전용): CUDA 그래프 캡처를 비활성화합니다.
+- **메모리 비율 (정적)** (SGLang 전용): 모델의 정적 메모리 비율입니다.
+- **최대 모델 길이**: 모델이 처리할 수 있는 최대 컨텍스트 길이(토큰 수)입니다.
+
+**추가 인자**: 위 컨트롤에서 다루지 않는 추가 CLI 인자를 위한 텍스트 필드입니다.
+
+:::note
+변경하지 않은 파라미터는 런타임 기본값이 사용됩니다.
+:::
+
+#### 환경 및 리소스
+
+레플리카 수를 설정하고 환경 및 자원 그룹을 선택합니다.
+
+- **레플리카 수**: 서비스에 대해 유지할 라우팅 세션 수를 결정합니다. 이 값을 변경하면 매니저가 레플리카 세션을 생성하거나 종료합니다.
+- **환경 / 버전**: 모델 서비스의 실행 환경을 구성합니다. vLLM 등의 런타임 변형을 선택하면 환경 이미지가 자동으로 필터링되어 관련 이미지가 표시됩니다.

-- 리소스 프리셋: 모델 서비스에 할당할 리소스 양을 선택할 수 있습니다.
- 리소스에는 CPU, RAM 및 GPU로 알려진 AI 가속기가 포함됩니다.
+- **리소스 프리셋**: 할당할 리소스 양을 선택합니다. 리소스에는 CPU, RAM 및 GPU가 포함됩니다.

-- Single Node: 세션 실행 시, 관리 노드와 워커 노드가
- 단일 물리 노드 또는 가상 머신에 배치됩니다.
-- Multi Node: 세션 실행 시, 하나의 관리 노드와 하나 이상의 워커
- 노드가 여러 물리 노드 또는 가상 머신에 분산됩니다.
-- Variable: 이 섹션에서는 모델 서비스를 시작할 때 환경 변수를 설정할 수 있습니다.
- 이는 런타임 변형을 사용하여 모델 서비스를 생성할 때 유용합니다. 일부 런타임 변형은
- 실행 전에 특정 환경 변수 설정이 필요합니다.
+#### 클러스터 모드 및 환경 변수
+
+- **Single Node**: 세션 실행 시, 관리 노드와 워커 노드가 단일 물리 노드 또는 가상 머신에 배치됩니다.
+- **Multi Node**: 하나의 관리 노드와 하나 이상의 워커 노드가 여러 물리 노드 또는 가상 머신에 분산됩니다.
+- **Variable**: 모델 서비스를 시작할 때 환경 변수를 설정할 수 있습니다. 런타임 변형을 사용하여 모델 서비스를 생성할 때 유용합니다.

-모델 서비스를 생성하기 전에, Backend.AI는 유효성 검사 기능을 지원하여
-실행 가능 여부를 확인합니다(실행 중 오류로 인한).
-서비스 런처의 왼쪽 하단에 있는 '유효성 검사' 버튼을 클릭하면,
+#### 서비스 유효성 검사
+
+모델 서비스를 생성하기 전에, Backend.AI는 실행 가능 여부를 확인하는 유효성 검사 기능을 지원합니다.
+서비스 런처의 왼쪽 하단에 있는 `Validate` 버튼을 클릭하면,
유효성 검사 이벤트를 확인하는 새 팝업이 나타납니다. 팝업 모달에서
컨테이너 로그를 통해 상태를 확인할 수 있습니다. 결과가
`Finished`로 설정되면 유효성 검사가 완료된 것입니다.
-

-
:::note
결과가 `Finished`라고 해서 실행이 성공적으로 완료되었다는 것을 보장하지는 않습니다.
대신 컨테이너 로그를 확인하세요.
:::
-
-**실패한 모델 서비스 생성 처리**
+### 실패한 모델 서비스 생성 처리
모델 서비스의 상태가 `UNHEALTHY`로 유지되면,
모델 서비스가 제대로 실행될 수 없음을 나타냅니다.
@@ -419,76 +491,101 @@ MODEL_NAME = "example-model-name"
- 해결 방법: [모델 정의 파일의 형식](#model-definition-guide)을 확인하고
키-값 쌍이 잘못된 경우 수정한 다음 저장된 위치에 파일을 덮어씁니다.
- 그런 다음 'Clear error and Retry' 버튼을 클릭하여 라우트 정보
+ 그런 다음 `Clear error and retry` 버튼을 클릭하여 라우트 정보
테이블에 쌓인 모든 오류를 제거하고 모델 서비스의 라우팅이 올바르게 설정되었는지 확인합니다.

+## 엔드포인트 상세 페이지
+
+서빙 목록에서 엔드포인트 이름을 클릭하면 모델 서비스에 대한 상세 정보를 볼 수 있습니다.
+
+### 서비스 정보
+
+서비스 정보 카드에는 다음 세부 사항이 표시됩니다:
+
+- **엔드포인트 이름** 및 **상태**
+- **엔드포인트 ID** 및 **세션 소유자**
+- **레플리카 수**
+- **서비스 엔드포인트**: 모델 서비스에 액세스하기 위한 URL입니다. LLM 서비스의 경우 `LLM Chat Test` 버튼이 제공됩니다.
+- **Open To Public**: 서비스가 공개적으로 액세스 가능한지 여부입니다.
+- **리소스**: 자원 그룹 및 할당된 CPU/메모리/GPU입니다.
+- **모델 스토리지**: 마운트된 모델 스토리지 폴더와 마운트 대상입니다.
+- **추가 마운트**: 마운트된 추가 스토리지 폴더입니다.
+- **환경 변수**: 코드 블록으로 표시됩니다.
+- **이미지**: 서비스에 사용되는 컨테이너 이미지입니다.
+
+서비스 정보 카드에서 `Edit` 버튼을 클릭하면 업데이트 런처로 이동하여 서비스 설정을 수정할 수 있습니다.
+
+:::warning
+엔드포인트가 현재 선택된 프로젝트와 다른 프로젝트에 속하는 경우,
+프로젝트 불일치 경고가 표시됩니다. 엔드포인트를 관리하려면 올바른 프로젝트로 전환하세요.
+:::
+
+### 자동 스케일링 규칙
-#### 자동 스케일링 규칙
모델 서비스에 대한 자동 스케일링 규칙을 구성할 수 있습니다.
정의된 규칙에 따라, 리소스를 절약하기 위해 낮은 사용량일 때 레플리카 수가 자동으로 줄어들고,
요청 지연이나 실패를 방지하기 위해 높은 사용량일 때 증가합니다.

-새 규칙을 추가하려면 'Add Rules' 버튼을 클릭합니다. 버튼을 클릭하면 모달이 나타나며
+새 규칙을 추가하려면 `Add Rules` 버튼을 클릭합니다. 버튼을 클릭하면 모달이 나타나며
규칙을 추가할 수 있습니다. 모달의 각 필드는 다음과 같이 설명됩니다:
-- Type: 규칙을 정의합니다. 규칙의 범위에 따라 '스케일 아웃' 또는 '스케일 인'을 선택합니다.
+- **Type**: 규칙을 정의합니다. 규칙의 범위에 따라 `Scale Out` 또는 `Scale In`을 선택합니다.
-- Metric Source: 추론 프레임워크 또는 커널입니다.
+- **Metric Source**: 추론 프레임워크 또는 커널입니다.
- Inference Framework: 모든 레플리카에서 가져온 평균 값입니다. AppProxy가 추론 메트릭을 보고하는 경우에만 지원됩니다.
- Kernel: 엔드포인트를 지원하는 모든 커널에서 가져온 평균 값입니다.
-- Condition: 자동 스케일링 규칙이 적용될 조건을 설정합니다.
+- **Condition**: 자동 스케일링 규칙이 적용될 조건을 설정합니다.
- - Metric Name: 비교할 메트릭의 이름입니다. 런타임 환경에서 지원하는 모든 메트릭을 자유롭게 입력할 수 있습니다.
- - Comparator: 실시간 메트릭을 임계값과 비교하는 방법입니다.
+ - **Metric Name**: 비교할 메트릭의 이름입니다. 런타임 환경에서 지원하는 모든 메트릭을 자유롭게 입력할 수 있습니다.
+ - **Comparator**: 실시간 메트릭을 임계값과 비교하는 방법입니다.
- LESS_THAN: 현재 메트릭 값이 정의된 임계값 아래로 떨어질 때 규칙이 트리거됩니다
- LESS_THAN_OR_EQUAL: 현재 메트릭 값이 정의된 임계값 아래이거나 같을 때 규칙이 트리거됩니다
- GREATER_THAN: 현재 메트릭 값이 정의된 임계값 위로 올라갈 때 규칙이 트리거됩니다
- GREATER_THAN_OR_EQUAL: 현재 메트릭 값이 정의된 임계값 위이거나 같을 때 규칙이 트리거됩니다
- - Threshold: 스케일링 조건이 충족되는지 판단하기 위한 기준 값입니다.
+ - **Threshold**: 스케일링 조건이 충족되는지 판단하기 위한 기준 값입니다.
-- Step Size: 규칙이 트리거될 때 변경될 레플리카 수의 단계 크기입니다.
+- **Step Size**: 규칙이 트리거될 때 변경될 레플리카 수의 단계 크기입니다.
양수와 음수 값으로 모두 표현할 수 있습니다.
음수로 정의되면 규칙은 레플리카 수를 감소시킵니다.
-- Max/Min Replicas: 엔드포인트의 레플리카 수에 대한 최대/최소 값을 설정합니다.
+- **Max/Min Replicas**: 엔드포인트의 레플리카 수에 대한 최대/최소 값을 설정합니다.
잠재적 레플리카 수가 이 값을 초과하거나 미만이 되면 규칙이 트리거되지 않습니다.
-- CoolDown Seconds: 규칙이 처음 트리거된 직후 규칙을 다시 적용하지 않을 시간(초 단위)입니다.
+- **CoolDown Seconds**: 규칙이 처음 트리거된 직후 규칙을 다시 적용하지 않을 시간(초 단위)입니다.

-#### 토큰 생성
+### 토큰 생성
모델 서비스가 성공적으로 실행되면 상태가
-`HEALTHY`로 설정됩니다. 이 경우, Model Service 탭에서 해당 엔드포인트
-이름을 클릭하여 모델 서비스에 대한 자세한 정보를 볼 수 있습니다.
-거기서 모델 서비스의 라우팅 정보에서 서비스 엔드포인트를 확인할 수 있습니다.
-서비스가 생성될 때 'Open to Public' 옵션이
+`HEALTHY`로 설정됩니다. 서빙 목록에서 해당 엔드포인트 이름을 클릭하여
+상세 정보를 볼 수 있습니다. 라우팅 정보에서 서비스 엔드포인트를 확인할 수 있습니다.
+서비스가 생성될 때 **Open To Public** 옵션이
활성화되면, 엔드포인트는 별도의 토큰 없이 공개적으로
-액세스할 수 있으며, 엔드 유저가 액세스할 수 있습니다.
+액세스할 수 있습니다.
그러나 비활성화된 경우, 아래 설명된 대로 토큰을 발급하여
서비스가 제대로 실행되고 있는지 확인할 수 있습니다.

-라우팅 정보의 생성된 토큰 목록 오른쪽에 있는 'Generate Token' 버튼을
-클릭합니다. 토큰 생성을 위해 나타나는 모달에서
+생성된 토큰 목록 오른쪽에 있는 `Generate Token` 버튼을
+클릭합니다. 나타나는 모달에서
만료 날짜를 입력합니다.

-발급된 토큰은 생성된 토큰 목록에 추가됩니다. 토큰
-항목에서 'copy' 버튼을 클릭하여 토큰을 복사하고, 다음 키의 값으로 추가합니다.
+발급된 토큰은 생성된 토큰 목록에 추가됩니다. 각 토큰에는 **상태**(유효 또는 만료됨), **만료 날짜** 및 **생성 날짜**가 표시됩니다. 토큰
+항목에서 `copy` 버튼을 클릭하여 토큰을 복사하고, 다음 키의 값으로 추가합니다.

@@ -497,18 +594,49 @@ MODEL_NAME = "example-model-name"
| Content-Type | application/json |
| Authorization | BackendAI |
-#### 엔드 유저를 위한 모델 서비스 엔드포인트 접속
+### 라우트 정보
+
+라우트 정보 카드는 모델 서비스의 라우팅 상태를 보여줍니다. 다음 기준으로 라우트를 필터링할 수 있습니다:
+
+- **Running / Finished**: 활성 라우트 노드와 완료된 라우트 노드 간 전환합니다.
+- **속성 필터**: 건강 상태 및 트래픽 상태로 필터링합니다.
+
+`Sync Routes` 버튼을 클릭하여 라우트 정보를 백엔드와 동기화합니다.
+
+라우트 노드를 클릭하면 세션 상세 드로어가 열리며, 개별 세션 세부 정보를 볼 수 있습니다.
+
+### 서비스 수정
+
+엔드포인트 상세 페이지에서 `Edit` 버튼을 클릭하여 모델 서비스를 수정합니다. 이전에 입력한 필드가 채워진 상태로 서비스 런처가 열립니다. 변경하려는 필드만 선택적으로 수정할 수 있습니다. 필드를 수정한 후 `Confirm`을 클릭하여 변경 사항을 적용합니다.
+
+
+
+### 서비스 종료
+
+모델 서비스는 원하는 세션 수와 일치하도록 라우팅
+수를 조정하기 위해 주기적으로 스케줄러를 실행합니다. 그러나 이것은
+Backend.AI 스케줄러에 부담을 줍니다. 따라서 더 이상 필요하지 않은 경우
+모델 서비스를 종료하는 것이 좋습니다. 모델 서비스를 종료하려면,
+Controls 열에서 `Delete` 버튼을 클릭합니다. 모델 서비스를 종료할지
+확인하는 모달이 나타납니다. `Delete`를
+클릭하면 모델 서비스가 종료됩니다. 종료된 모델 서비스는
+**Destroyed** 필터 뷰에 표시됩니다.
+
+
+
+## 서비스 엔드포인트 접속
+
+### API 요청 보내기
모델 서빙을 완료하려면, 실제 엔드 유저와 정보를 공유하여
모델 서비스가 실행 중인 서버에 액세스할 수 있도록 해야 합니다.
-서비스가 생성될 때 Open to Public 옵션이 활성화되면,
-라우팅 정보 페이지에서 서비스 엔드포인트 값을 공유할 수 있습니다.
+서비스가 생성될 때 **Open To Public** 옵션이 활성화되면,
+엔드포인트 상세 페이지에서 서비스 엔드포인트 값을 공유할 수 있습니다.
옵션이 비활성화된 상태로 서비스가 생성된 경우,
이전에 생성된 토큰과 함께 서비스 엔드포인트 값을 공유할 수 있습니다.
다음은 모델 서빙 엔드포인트로 요청을 보내는 것이 제대로 작동하는지 확인하는
-`curl` 명령을 사용한 간단한 명령입니다.
-
+`curl` 명령을 사용한 간단한 예시입니다:
```bash
$ export API_TOKEN=""
@@ -517,7 +645,6 @@ $ curl -H "Content-Type: application/json" -X GET \
```
-
:::warning
기본적으로, 엔드 유저는 엔드포인트에 액세스할 수 있는
네트워크에 있어야 합니다. 서비스가 폐쇄된 네트워크에서 생성된 경우,
@@ -525,14 +652,14 @@ $ curl -H "Content-Type: application/json" -X GET \
유저만 서비스에 액세스할 수 있습니다.
:::
-#### 대형 언어 모델 사용
+### LLM 채팅 테스트
대형 언어 모델(LLM) 서비스를 생성한 경우, 실시간으로 LLM을 테스트할 수 있습니다.
-Service Endpoint 열에 있는 'LLM Chat Test' 버튼을 클릭하기만 하면 됩니다.
+엔드포인트 상세 페이지의 서비스 엔드포인트 섹션에 있는 `LLM Chat Test` 버튼을 클릭합니다.

-그러면, 생성한 모델이 자동으로 선택된 Chat 페이지로 리디렉션됩니다.
+생성한 모델이 자동으로 선택된 Chat 페이지로 리디렉션됩니다.
Chat 페이지에서 제공되는 채팅 인터페이스를 사용하여 LLM 모델을 테스트할 수 있습니다.
채팅 기능에 대한 자세한 내용은 [Chat 페이지](#chat-page)를 참조하세요.
@@ -541,10 +668,10 @@ Chat 페이지에서 제공되는 채팅 인터페이스를 사용하여 LLM 모
API 연결에 문제가 발생하면, Chat 페이지에 모델 설정을 수동으로 구성할 수 있는 옵션이 표시됩니다.
모델을 사용하려면 다음 정보가 필요합니다:
-- baseURL (선택사항): 모델이 위치한 서버의 기본 URL입니다.
+- **baseURL** (선택사항): 모델이 위치한 서버의 기본 URL입니다.
버전 정보를 포함해야 합니다.
예를 들어, OpenAI API를 사용할 때는 https://api.openai.com/v1을 입력해야 합니다.
-- Token (선택사항): 모델 서비스에 액세스하기 위한 인증 키입니다. 토큰은
+- **Token** (선택사항): 모델 서비스에 액세스하기 위한 인증 키입니다. 토큰은
Backend.AI뿐만 아니라 다양한 서비스에서 생성할 수 있습니다. 형식과 생성 프로세스는
서비스에 따라 다를 수 있습니다. 자세한 내용은 항상 특정 서비스의 가이드를 참조하세요.
예를 들어, Backend.AI에서 생성된 서비스를 사용할 때는
@@ -552,25 +679,104 @@ API 연결에 문제가 발생하면, Chat 페이지에 모델 설정을 수동

-#### 모델 서비스 수정
+
-업데이트하려는 모델 서비스를 수정하려면 Control 탭에서 렌치 아이콘을 클릭합니다.
-형식은 모델 서비스 시작 모달과 동일하며,
-이전에 입력한 필드가 이미 채워져 있습니다. 변경하려는
-필드만 선택적으로 수정할 수 있습니다. 필드를 수정한 후 'confirm' 버튼을 클릭합니다.
-변경 사항이 그에 따라 조정됩니다.
+## Model Store
-
+모델 스토어는 사전 구성된 모델을 탐색, 검색 및 배포할 수 있는 카드 기반 갤러리를 제공합니다. 사이드바 메뉴에서 모델 스토어에 접근할 수 있습니다.
-#### 모델 서비스 종료
+
-모델 서비스는 원하는 세션 수와 일치하도록 라우팅
-수를 조정하기 위해 주기적으로 스케줄러를 실행합니다. 그러나 이것은
-Backend.AI 스케줄러에 부담을 줍니다. 따라서 더 이상 필요하지 않은 경우
-모델 서비스를 종료하는 것이 좋습니다. 모델 서비스를 종료하려면,
-Control 열에서 'trash' 버튼을 클릭합니다. 모델 서비스를 종료할지
-확인하는 모달이 나타납니다. `Delete`를
-클릭하면 모델 서비스가 종료됩니다. 종료된 모델 서비스는
-모델 서비스 목록에서 제거됩니다.
+### 모델 탐색 및 검색
+
+페이지 상단의 검색 바를 사용하여 이름, 설명, 태스크, 카테고리 또는 라벨로 모델을 검색할 수 있습니다. 또한 필터 드롭다운을 사용하여 결과를 좁힐 수 있습니다:
+
+- **Category**: 모델 카테고리로 필터링합니다 (예: LLM).
+- **Task**: 태스크 유형으로 필터링합니다 (예: text-generation).
+- **Label**: 모델 라벨로 필터링합니다.
+
+### 모델 카드 상세 정보
+
+모델 카드를 클릭하면 모달에서 상세 정보를 볼 수 있습니다. 모델 카드 모달에는 다음이 표시됩니다:
+
+- **Title**, **Author** 및 **Version**
+- **Description** 및 **README**
+- **Task**, **Category** 및 **Architecture**
+- **Framework** 및 **Labels**
+- **License**
+- 모델 실행에 필요한 **최소 리소스**
+- 모델 스토리지 폴더 링크
+
+
+
+### 모델 복제
+
+모델 카드에서 `Clone to a folder` 버튼을 클릭하여 모델 폴더를 자신의 스토리지로 복제합니다. 대상 폴더 이름을 지정할 수 있는 확인 대화 상자가 나타납니다.
+
+
+
+### 모델 스토어에서 모델 실행
+
+모델 카드에서 `Run this model` 버튼을 클릭하여 모델을 서비스로 배포합니다. 이를 위해서는 모델 폴더에 `model-definition.yaml`과 `service-definition.toml`이 모두 있어야 합니다.
+
+- 서비스 정의에 하나의 런타임 변형만 구성된 경우, 사전 구성된 설정으로 서비스가 자동으로 시작됩니다.
+- 여러 런타임 변형을 사용할 수 있는 경우, 하나를 선택하기 위해 서비스 런처 페이지로 리디렉션됩니다.
+
+:::note
+모델 스토어에서 서비스를 생성하면 `service-definition.toml`의 설정이
+자동으로 적용됩니다. 나중에 서빙 페이지를 통해 서비스를 수정할 수 있습니다.
+:::
+
+## 관리자 기능
+
+### 관리자 서빙 페이지
+
+관리자 및 슈퍼관리자는 모든 프로젝트의 엔드포인트를 볼 수 있는 관리자 서빙 페이지에 접근할 수 있습니다. 이 페이지는 표준 엔드포인트 목록 열에 추가로 **프로젝트** 열을 표시하여, 관리자가 모든 프로젝트의 서비스를 관리할 수 있게 합니다.
+
+
+
+관리자 서빙 페이지에는 두 개의 탭이 있습니다:
+
+- **Serving**: 모든 프로젝트의 엔드포인트 목록을 표시하며, 사용자용 서빙 페이지와 동일한 라이프사이클 및 속성 필터를 제공합니다.
+- **Model Store Management**: 슈퍼관리자에게만 제공됩니다. 아래 섹션을 참조하세요.
+
+### 관리자 모델 스토어 관리
+
+슈퍼관리자는 관리자 서빙 페이지의 **Model Store Management** 탭을 통해 모델 카드를 관리할 수 있습니다. 이 탭은 다음 열을 가진 모든 모델 카드의 테이블 뷰를 제공합니다: **Name**, **Title**, **Task**, **Category**, **Labels**, **Created At**, **Controls**.
+
+
+
+#### 모델 카드 생성
+
+`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`를 클릭하여 일괄 삭제를 수행할 수 있습니다.
+
+#### 프로젝트 모델 카드 스캔
-
\ No newline at end of file
+`Scan Project Model Cards` 버튼을 클릭하여 프로젝트의 모델 폴더를 자동으로 스캔하고, 유효한 모델 정의가 포함된 폴더에 대해 모델 카드를 생성합니다. 스캔 결과에는 생성 및 업데이트된 모델 카드 수가 표시됩니다.
diff --git a/packages/backend.ai-webui-docs/src/th/dashboard/dashboard.md b/packages/backend.ai-webui-docs/src/th/dashboard/dashboard.md
index dcb8305703..32b9926041 100644
--- a/packages/backend.ai-webui-docs/src/th/dashboard/dashboard.md
+++ b/packages/backend.ai-webui-docs/src/th/dashboard/dashboard.md
@@ -22,9 +22,15 @@
แผง**ทรัพยากรรวมในกลุ่มทรัพยากร**อาจไม่แสดงขึ้นอยู่กับการกำหนดค่าระบบ
:::
+:::note
+แผง**ทรัพยากรรวมในกลุ่มทรัพยากร**อาจไม่แสดงขึ้นอยู่กับการกำหนดค่าระบบ
+:::
+
- **เซสชันที่สร้างล่าสุด:**
แสดงรายการเซสชันที่ใช้งานอยู่ที่สร้างล่าสุดภายในโปรเจกต์ปัจจุบัน แสดงรายละเอียดเซสชัน เช่น ชื่อ สถานะ การใช้ CPU/หน่วยความจำ สภาพแวดล้อม กลุ่มทรัพยากร ประเภทเซสชัน และเวลาที่สร้าง โดยค่าเริ่มต้นจะแสดงเซสชันที่ใช้งานอยู่ล่าสุด 5 รายการ
+เมื่อเข้าสู่ระบบในฐานะผู้ดูแลระบบระดับสูง หน้าแดชบอร์ดจะแสดงแผง**สถิติเอเจนต์**และ**เอเจนต์ที่ใช้งานอยู่**เพิ่มเติมจากแผงมาตรฐานของผู้ใช้ทั่วไป สามารถดูรายละเอียดของแผงเหล่านี้ได้ในส่วน[แดชบอร์ดสำหรับผู้ดูแลระบบระดับสูง](#superadmin-dashboard)
+
## การรีเฟรชอัตโนมัติ
แดชบอร์ดจะรีเฟรชข้อมูลทุกแผงอัตโนมัติทุก **15 วินาที** เพื่อให้ข้อมูลที่แสดงเป็นปัจจุบันอยู่เสมอโดยไม่ต้องดำเนินการด้วยตนเอง
diff --git a/packages/backend.ai-webui-docs/src/th/images/admin_model_card_list.png b/packages/backend.ai-webui-docs/src/th/images/admin_model_card_list.png
new file mode 100644
index 0000000000..2f3fa08fd3
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/th/images/admin_model_card_list.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/admin_model_card_modal.png b/packages/backend.ai-webui-docs/src/th/images/admin_model_card_modal.png
new file mode 100644
index 0000000000..5794585b76
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/th/images/admin_model_card_modal.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/admin_serving_page.png b/packages/backend.ai-webui-docs/src/th/images/admin_serving_page.png
new file mode 100644
index 0000000000..a990cae158
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/th/images/admin_serving_page.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/model_card_detail_modal.png b/packages/backend.ai-webui-docs/src/th/images/model_card_detail_modal.png
new file mode 100644
index 0000000000..73202aa1bb
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/th/images/model_card_detail_modal.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/model_clone_dialog.png b/packages/backend.ai-webui-docs/src/th/images/model_clone_dialog.png
new file mode 100644
index 0000000000..1a174a3291
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/th/images/model_clone_dialog.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/model_store_page.png b/packages/backend.ai-webui-docs/src/th/images/model_store_page.png
new file mode 100644
index 0000000000..5a427d1eb9
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/th/images/model_store_page.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/service_launcher1.png b/packages/backend.ai-webui-docs/src/th/images/service_launcher1.png
index 206003734c..dea12ed5b5 100644
Binary files a/packages/backend.ai-webui-docs/src/th/images/service_launcher1.png and b/packages/backend.ai-webui-docs/src/th/images/service_launcher1.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/service_launcher2.png b/packages/backend.ai-webui-docs/src/th/images/service_launcher2.png
index 63345b3f42..3b651ea1b6 100644
Binary files a/packages/backend.ai-webui-docs/src/th/images/service_launcher2.png and b/packages/backend.ai-webui-docs/src/th/images/service_launcher2.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/service_launcher3.png b/packages/backend.ai-webui-docs/src/th/images/service_launcher3.png
index 3f9049cd39..62fd2fa3b1 100644
Binary files a/packages/backend.ai-webui-docs/src/th/images/service_launcher3.png and b/packages/backend.ai-webui-docs/src/th/images/service_launcher3.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/service_launcher_command_mode.png b/packages/backend.ai-webui-docs/src/th/images/service_launcher_command_mode.png
new file mode 100644
index 0000000000..8799386076
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/th/images/service_launcher_command_mode.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/service_launcher_runtime_params.png b/packages/backend.ai-webui-docs/src/th/images/service_launcher_runtime_params.png
new file mode 100644
index 0000000000..06e2386ced
Binary files /dev/null and b/packages/backend.ai-webui-docs/src/th/images/service_launcher_runtime_params.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 d972728a32..f1e99e9a1c 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/images/serving_list_page.png b/packages/backend.ai-webui-docs/src/th/images/serving_list_page.png
index e115df562a..5580ef254b 100644
Binary files a/packages/backend.ai-webui-docs/src/th/images/serving_list_page.png and b/packages/backend.ai-webui-docs/src/th/images/serving_list_page.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/start_announcement_banner.png b/packages/backend.ai-webui-docs/src/th/images/start_announcement_banner.png
index daf67c6baa..48594d7ba8 100644
Binary files a/packages/backend.ai-webui-docs/src/th/images/start_announcement_banner.png and b/packages/backend.ai-webui-docs/src/th/images/start_announcement_banner.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/start_from_url_github.png b/packages/backend.ai-webui-docs/src/th/images/start_from_url_github.png
index dcd75d7a2b..2e33b48af6 100644
Binary files a/packages/backend.ai-webui-docs/src/th/images/start_from_url_github.png and b/packages/backend.ai-webui-docs/src/th/images/start_from_url_github.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/start_from_url_gitlab.png b/packages/backend.ai-webui-docs/src/th/images/start_from_url_gitlab.png
index f2019b815d..32e19f6bab 100644
Binary files a/packages/backend.ai-webui-docs/src/th/images/start_from_url_gitlab.png and b/packages/backend.ai-webui-docs/src/th/images/start_from_url_gitlab.png differ
diff --git a/packages/backend.ai-webui-docs/src/th/images/start_from_url_notebook.png b/packages/backend.ai-webui-docs/src/th/images/start_from_url_notebook.png
index c2f121aeed..402f6c945f 100644
Binary files a/packages/backend.ai-webui-docs/src/th/images/start_from_url_notebook.png and b/packages/backend.ai-webui-docs/src/th/images/start_from_url_notebook.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 799a161596..89b040b677 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
@@ -18,52 +18,59 @@ inference API ได้เมื่อต้องการ deploy โมเด

-บริการโมเดลขยายฟังก์ชันการทำงานของเซสชันการคอมพิวเตอร์การฝึกอบรมที่มีอยู่ โดยช่วยให้การบำรุงรักษา การปรับขนาดอัตโนมัติ และการแมพตำแหน่งพอร์ตและที่อยู่เอ็นด์พอยต์ถาวรสำหรับบริการการผลิต ทำให้ผู้พัฒนาหรือผู้ดูแลระบบจำเป็นต้องระบุพารามิเตอร์การปรับขนาดที่จำเป็นสำหรับบริการโมเดล โดยไม่จำเป็นต้องสร้างหรือลบเซสชันการคอมพิวเตอร์ด้วยตนเอง
+บริการโมเดลขยายฟังก์ชันการทำงานของเซสชันการคำนวณสำหรับการฝึกที่มีอยู่ โดยช่วยให้การบำรุงรักษาอัตโนมัติ การปรับขนาด และการแมพตำแหน่งพอร์ตและที่อยู่เอ็นด์พอยต์ถาวรสำหรับบริการการผลิต ผู้พัฒนาหรือผู้ดูแลระบบจำเป็นต้องระบุพารามิเตอร์การปรับขนาดที่จำเป็นสำหรับบริการโมเดลเท่านั้น โดยไม่จำเป็นต้องสร้างหรือลบเซสชันการคำนวณด้วยตนเอง
-## การกำหนดค่าและข้อจำกัดของบริการโมเดลในเวอร์ชัน 23.03 และก่อนหน้า
+
+บริการโมเดลในเวอร์ชัน 23.03 และก่อนหน้า
แม้ว่าฟีเจอร์เฉพาะสำหรับการให้บริการโมเดลจะได้รับการสนับสนุนอย่างเป็นทางการตั้งแต่
เวอร์ชัน 23.09 แต่คุณยังคงสามารถใช้บริการโมเดลในเวอร์ชันก่อนหน้าได้
ตัวอย่างเช่น ในเวอร์ชัน 23.03 คุณสามารถกำหนดค่าบริการโมเดลโดย
-การแก้ไขเซสชันการคำนวณสำหรับการฝึกอบรมในวิธีต่อไปนี้:
+การแก้ไขเซสชันการคำนวณสำหรับการฝึกในวิธีต่อไปนี้:
-1. Add pre-opened ports during session creation to map the running
- server port inside the session for model serving.
- (For instructions on how to use preopen ports, refer to [Set Preopen Ports](#set-preopen-ports).)
+1. เพิ่มพอร์ตที่เปิดไว้ล่วงหน้าระหว่างการสร้างเซสชัน เพื่อแมพพอร์ตเซิร์ฟเวอร์ที่ทำงานอยู่
+ ภายในเซสชันสำหรับการให้บริการโมเดล
+ (สำหรับคำแนะนำเกี่ยวกับวิธีใช้พอร์ตเปิดไว้ล่วงหน้า โปรดดู [ตั้งค่าพอร์ตเปิดไว้ล่วงหน้า](#set-preopen-ports))
-2. Check 'Open app to public' to allow the service mapped to the
- pre-opened port to be publicly accessible.
- (For detailed information about "Open app to public," refer to [Open app to public](#open-app-to-public).)
+2. เลือก 'เปิดแอพสู่สาธารณะ' เพื่ออนุญาตให้บริการที่แมพกับพอร์ตเปิดไว้ล่วงหน้า
+ สามารถเข้าถึงได้สาธารณะ
+ (สำหรับข้อมูลรายละเอียดเกี่ยวกับ "เปิดแอพสู่สาธารณะ" โปรดดู [เปิดแอพสู่สาธารณะ](#open-app-to-public))
-However, there are certain limitations in version 23.03:
+อย่างไรก็ตาม มีข้อจำกัดบางประการในเวอร์ชัน 23.03:
-- เซสชันจะไม่ฟื้นคืนโดยอัตโนมัติหากถูกยกเลิกเนื่องจากปัจจัยภายนอกเช่นเวลาไม่ทำงานหรือตัวบกพร่องของระบบ
-- พอร์ตของแอปจะเปลี่ยนทุกครั้งที่เริ่มเซสชันใหม่
+- เซสชันจะไม่ฟื้นคืนโดยอัตโนมัติหากถูกยกเลิกเนื่องจากปัจจัยภายนอก เช่น หมดเวลาไม่ทำงานหรือข้อผิดพลาดของระบบ
+- พอร์ตของแอพจะเปลี่ยนทุกครั้งที่เริ่มเซสชันใหม่
- หากเซสชันถูกรีสตาร์ทซ้ำๆ พอร์ตที่ไม่ได้ใช้งานอาจหมดลง
-The official บริการโมเดล feature in version 23.09 resolves these
-limitations. Therefore, starting from version 23.09, it is recommended
-to create/manage บริการโมเดลs through the model serving menu whenever
-possible. The use of pre-opened ports is recommended only for
-development and testing purposes.
+ฟีเจอร์บริการโมเดลอย่างเป็นทางการในเวอร์ชัน 23.09 แก้ไขข้อจำกัดเหล่านี้
+ดังนั้น ตั้งแต่เวอร์ชัน 23.09 เป็นต้นไป แนะนำให้สร้าง/จัดการบริการโมเดล
+ผ่านเมนูการให้บริการโมเดลเมื่อทำได้ การใช้พอร์ตเปิดไว้ล่วงหน้าแนะนำเฉพาะ
+สำหรับวัตถุประสงค์ในการพัฒนาและทดสอบเท่านั้น
-## คู่มือสำหรับขั้นตอนการใช้งานบริการโมเดล
+
+
+## คู่มือขั้นตอนการใช้งานบริการโมเดล
เพื่อใช้บริการโมเดล คุณต้องปฏิบัติตามขั้นตอนด้านล่างนี้:
1. สร้างไฟล์กำหนดโมเดล
2. สร้างไฟล์กำหนดบริการ
3. อัปโหลดไฟล์กำหนดไปยังโฟลเดอร์ประเภทโมเดล
-4. สร้าง/ตรวจสอบบริการโมเดล
+4. สร้าง/ตรวจสอบบริการโมเดลโดยใช้ตัวเปิดใช้บริการ
5. (ถ้าบริการโมเดลไม่เป็นสาธารณะ) รับโทเค็น
-6. (สำหรับผู้ใช้ปลายทาง) เข้าถึงจุดสุดท้ายที่สอดคล้องกับบริการโมเดลเพื่อตรวจสอบบริการ
+6. (สำหรับผู้ใช้ปลายทาง) เข้าถึง endpoint ที่สอดคล้องกับบริการโมเดลเพื่อตรวจสอบบริการ
7. (ถ้าจำเป็น) ปรับเปลี่ยนบริการโมเดล
-8. (ถ้าจำเป็น) ยกเลิกบริการโมเดล
+8. (ถ้าจำเป็น) ยุติบริการโมเดล
+
+:::tip
+เป็นเวิร์กโฟลว์ทางเลือก คุณสามารถเรียกดูโมเดลที่กำหนดค่าไว้ล่วงหน้าใน
+[Model Store](#model-store) และ deploy ด้วยคลิกเดียวโดยใช้ปุ่ม `Run this model`
+:::
-#### การสร้างไฟล์กำหนดรูปแบบโมเดล
+### การสร้างไฟล์กำหนดโมเดล
:::note
ตั้งแต่เวอร์ชัน 24.03 คุณสามารถกำหนดชื่อไฟล์กำหนดโมเดลได้ หากคุณไม่ได้
@@ -71,9 +78,9 @@ development and testing purposes.
หรือ `model-definition.yaml`
:::
-ไฟล์การกำหนดโมเดลประกอบด้วยข้อมูลการกำหนดค่าที่ระบบ Backend.AI ต้องการเพื่อเริ่มต้น อ初始化 และปรับขนาดเซสชันการสรุปผลโดยอัตโนมัติ มันถูกเก็บในโฟลเดอร์ประเภทโมเดลแยกต่างหากจากภาพคอนเทนเนอร์ที่มีเอนจินการบริการการสรุปผล ซึ่งอนุญาตให้เอนจินให้บริการโมเดลที่แตกต่างกันตามความต้องการเฉพาะและกำจัดความจำเป็นในการสร้างและปรับใช้ภาพคอนเทนเนอร์ใหม่ทุกครั้งที่โมเดลเปลี่ยน โดยการโหลดการกำหนดโมเดลและข้อมูลโมเดลจากที่เก็บข้อมูลบนเครือข่าย กระบวนการปรับใช้สามารถทำให้เรียบง่ายและถูกปรับปรุงในระหว่างการปรับขนาดอัตโนมัติ
+ไฟล์กำหนดโมเดลประกอบด้วยข้อมูลการกำหนดค่าที่ระบบ Backend.AI ต้องการเพื่อเริ่มต้น เตรียมการ และปรับขนาดเซสชัน inference โดยอัตโนมัติ ไฟล์นี้ถูกจัดเก็บในโฟลเดอร์ประเภทโมเดลแยกต่างหากจากอิมเมจคอนเทนเนอร์ที่มีเอนจิน inference ซึ่งช่วยให้เอนจินสามารถให้บริการโมเดลที่แตกต่างกันตามความต้องการเฉพาะ และไม่จำเป็นต้องสร้างและ deploy อิมเมจคอนเทนเนอร์ใหม่ทุกครั้งที่โมเดลเปลี่ยน โดยการโหลดการกำหนดโมเดลและข้อมูลโมเดลจากที่จัดเก็บบนเครือข่าย กระบวนการ deploy สามารถทำได้ง่ายและเหมาะสมยิ่งขึ้นระหว่างการปรับขนาดอัตโนมัติ
-ไฟล์นิยามโมเดลมีรูปแบบดังนี้:
+ไฟล์กำหนดโมเดลมีรูปแบบดังนี้:
```yaml
models:
@@ -97,33 +104,36 @@ models:
initial_delay: 60.0
```
-**คำอธิบายคู่คีย์-ค่า สำหรับไฟล์กำหนดแบบจำลอง**
+**คำอธิบายคู่คีย์-ค่า สำหรับไฟล์กำหนดโมเดล**
:::note
-ฟิลด์ที่ไม่มีเครื่องหมาย "(Required)" เป็นตัวเลือก
+ฟิลด์ที่ไม่มีเครื่องหมาย "(จำเป็น)" เป็นตัวเลือก
:::
-- `name` (Required): Defines the name of the model.
-- `model_path` (Required): Addresses the path of where model is defined.
-- `service`: Item for organizing information about the files to be served
- (includes command scripts and code).
+- `name` (จำเป็น): กำหนดชื่อของโมเดล
+- `model_path` (จำเป็น): ระบุเส้นทางที่โมเดลถูกกำหนด
+- `service`: รายการสำหรับจัดระเบียบข้อมูลเกี่ยวกับไฟล์ที่จะให้บริการ
+ (รวมถึงสคริปต์คำสั่งและโค้ด)
- - `pre_start_actions` : Item for organizing preceding commands or actions to be executed before the `start_command`.
+ - `pre_start_actions`: การดำเนินการที่จะดำเนินการก่อน `start_command` การดำเนินการเหล่านี้
+ เตรียมสภาพแวดล้อมโดยการสร้างไฟล์การกำหนดค่า การตั้งค่าไดเรกทอรี หรือ
+ การรันสคริปต์เริ่มต้น การดำเนินการจะถูกดำเนินการตามลำดับที่กำหนด
- - `action`: Further information and description is in [Prestart Actions](#prestart-actions).
- - `args/*`: Further information and description is in [Prestart Actions](#prestart-actions).
+ - `action`: ประเภทของการดำเนินการที่จะดำเนินการ ดูข้อมูลประเภทการดำเนินการที่มีและพารามิเตอร์ได้ที่
+ [การดำเนินการก่อนเริ่ม](#prestart-actions)
+ - `args`: พารามิเตอร์เฉพาะการดำเนินการ แต่ละประเภทการดำเนินการมีอาร์กิวเมนต์ที่จำเป็นต่างกัน
- - `start_command` (Required): Specify the command to be executed in model serving.
- Can be a string or a list of strings.
- - `port` (Required): Container port for the model service (e.g., `8000`, `8080`).
+ - `start_command` (จำเป็น): ระบุคำสั่งที่จะดำเนินการในการให้บริการโมเดล
+ สามารถเป็นสตริงหรือรายการสตริง
+ - `port` (จำเป็น): พอร์ตคอนเทนเนอร์สำหรับบริการโมเดล (เช่น `8000`, `8080`)
- `health_check`: การกำหนดค่าสำหรับการตรวจสอบสุขภาพของบริการโมเดลเป็นระยะ
เมื่อได้รับการกำหนดค่าแล้ว ระบบจะตรวจสอบโดยอัตโนมัติว่าบริการตอบสนองอย่างถูกต้อง
- และลบอินสแตนซ์ที่ไม่มีสุขภาพดีออกจากการเส้นทางการรับส่งข้อมูล
+ และลบอินสแตนซ์ที่ไม่สมบูรณ์ออกจากการเส้นทางการรับส่งข้อมูล
- `path` (จำเป็น): เส้นทาง HTTP endpoint สำหรับคำขอตรวจสอบสุขภาพ (เช่น `/health`, `/v1/health`)
- `interval` (ค่าเริ่มต้น: `10.0`): เวลาเป็นวินาทีระหว่างการตรวจสอบสุขภาพต่อเนื่อง
- - `max_retries` (ค่าเริ่มต้น: `10`): จำนวนความล้มเหลวต่อเนื่องที่ได้รับอนุญาตก่อนที่จะทำเครื่องหมาย
- บริการเป็น `UNHEALTHY` บริการจะยังคงได้รับการรับส่งข้อมูลจนกว่าจะเกินเกณฑ์นี้
+ - `max_retries` (ค่าเริ่มต้น: `10`): จำนวนความล้มเหลวต่อเนื่องที่อนุญาตก่อนที่จะทำเครื่องหมาย
+ บริการเป็น `UNHEALTHY` บริการจะยังคงรับการรับส่งข้อมูลจนกว่าจะเกินเกณฑ์นี้
- `max_wait_time` (ค่าเริ่มต้น: `15.0`): เวลาหมดเวลาเป็นวินาทีสำหรับแต่ละคำขอ HTTP ตรวจสอบสุขภาพ
หากไม่ได้รับการตอบกลับภายในเวลานี้ การตรวจสอบจะถือว่าล้มเหลว
- `expected_status_code` (ค่าเริ่มต้น: `200`): รหัสสถานะ HTTP ที่บ่งชี้ว่าการตอบกลับมีสุขภาพดี
@@ -135,8 +145,7 @@ models:
**ความเข้าใจพฤติกรรมการตรวจสอบสุขภาพ**
-ระบบการตรวจสอบสุขภาพจะตรวจสอบคอนเทนเนอร์บริการโมเดลแต่ละตัวและจัดการ
-การเส้นทางการรับส่งข้อมูลโดยอัตโนมัติตามสถานะสุขภาพ
+ระบบการตรวจสอบสุขภาพจะตรวจสอบคอนเทนเนอร์บริการโมเดลแต่ละตัวและจัดการการเส้นทางการรับส่งข้อมูลโดยอัตโนมัติตามสถานะสุขภาพ
```
Container Created
@@ -209,42 +218,44 @@ failures) ┌─────┴─────┐
-**Description for service action supported in Backend.AI Model serving**
+**คำอธิบายการดำเนินการบริการที่รองรับใน Backend.AI Model Serving**
-- `write_file`: This is an action to create a file with the given
- file name and append control to it. the default access permission is `644`.
+- `write_file`: การดำเนินการเพื่อสร้างไฟล์ด้วยชื่อไฟล์ที่กำหนดและเพิ่มเนื้อหา
+ สิทธิ์การเข้าถึงเริ่มต้นคือ `644`
- `arg/filename`: ระบุชื่อไฟล์
- `body`: ระบุเนื้อหาที่จะเพิ่มลงในไฟล์
- `mode`: ระบุสิทธิ์การเข้าถึงไฟล์
- `append`: ตั้งค่าว่าจะเขียนทับหรือผนวกเนื้อหาลงในไฟล์เป็น `True` หรือ `False`
-- `write_tempfile`: นี่คือการดำเนินการเพื่อสร้างไฟล์ด้วยชื่อไฟล์ชั่วคราว (`.py`) และผนวกเนื้อหาเข้าไป หากไม่ได้ระบุค่าสำหรับ mode สิทธิ์การเข้าถึงเริ่มต้นจะเป็น `644`
+- `write_tempfile`: การดำเนินการเพื่อสร้างไฟล์ด้วยชื่อไฟล์ชั่วคราว (`.py`) และผนวกเนื้อหา
+ หากไม่ได้ระบุค่าสำหรับ mode สิทธิ์การเข้าถึงเริ่มต้นจะเป็น `644`
- `body`: ระบุเนื้อหาที่จะเพิ่มลงในไฟล์
- `mode`: ระบุสิทธิ์การเข้าถึงไฟล์
-- `run_command`: ผลลัพธ์จากการดำเนินการคำสั่ง รวมถึงข้อผิดพลาดใดๆ จะถูกส่งกลับในรูปแบบต่อไปนี้ (`out`: ผลลัพธ์จากการดำเนินการคำสั่ง, `err`: ข้อความแสดงข้อผิดพลาดหากเกิดข้อผิดพลาดขึ้นระหว่างการดำเนินการคำสั่ง)
+- `run_command`: ผลลัพธ์จากการดำเนินการคำสั่ง รวมถึงข้อผิดพลาดใดๆ จะถูกส่งกลับในรูปแบบต่อไปนี้
+ (`out`: ผลลัพธ์จากการดำเนินการคำสั่ง, `err`: ข้อความแสดงข้อผิดพลาดหากเกิดข้อผิดพลาดระหว่างการดำเนินการ)
- `args/command`: ระบุคำสั่งที่จะดำเนินการเป็นอาร์เรย์ (เช่น คำสั่ง `python3 -m http.server 8080` กลายเป็น ["python3", "-m", "http.server", "8080"])
-- `mkdir`: นี่คือการดำเนินการเพื่อสร้างไดเรกทอรีตามเส้นทางที่ระบุ
+- `mkdir`: การดำเนินการเพื่อสร้างไดเรกทอรีตามเส้นทางที่ระบุ
- `args/path`: ระบุเส้นทางเพื่อสร้างไดเรกทอรี
-- `log`: นี่คือการดำเนินการเพื่อพิมพ์ล็อกตามข้อความที่ระบุ
+- `log`: การดำเนินการเพื่อพิมพ์ล็อกตามข้อความที่ระบุ
- `args/message`: ระบุข้อความที่จะแสดงในล็อก
- `debug`: ตั้งค่าเป็น `True` หากอยู่ในโหมดดีบัก มิฉะนั้นตั้งค่าเป็น `False`
-#### การอัปโหลดไฟล์กำหนดโมเดลไปยังโฟลเดอร์ประเภทโมเดล
+### การอัปโหลดไฟล์กำหนดโมเดลไปยังโฟลเดอร์ประเภทโมเดล
-เพื่ออัปโหลดไฟล์กำหนดโมเดล (`model-definition.yml`) ไปยังโฟลเดอร์ประเภทโมเดล คุณต้องสร้างโฟลเดอร์เสมือน เมื่อสร้างโฟลเดอร์เสมือน ให้เลือกประเภท `model` แทนประเภท `general` เริ่มต้น โปรดอ้างถึงส่วนเกี่ยวกับ [การสร้างโฟลเดอร์จัดเก็บ](#create-storage-folder) ในหน้า Data สำหรับคำแนะนำเกี่ยวกับวิธีสร้างโฟลเดอร์
+เพื่ออัปโหลดไฟล์กำหนดโมเดล (`model-definition.yml`) ไปยังโฟลเดอร์ประเภทโมเดล คุณต้องสร้างโฟลเดอร์เสมือน เมื่อสร้างโฟลเดอร์เสมือน ให้เลือกประเภท `model` แทนประเภท `general` เริ่มต้น โปรดดูส่วน [การสร้างโฟลเดอร์จัดเก็บ](#create-storage-folder) ในหน้า Data สำหรับคำแนะนำเกี่ยวกับวิธีสร้างโฟลเดอร์

-หลังจากสร้างโฟลเดอร์แล้ว ให้เลือกแท็บ 'MODELS' ในหน้า Data คลิกไอคอนโฟลเดอร์ประเภทโมเดลที่สร้างขึ้นล่าสุดเพื่อเปิดตัวสำรวจโฟลเดอร์ และอัปโหลดไฟล์กำหนดโมเดล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ตัวสำรวจโฟลเดอร์ โปรดอ้างถึงส่วน [สำรวจโฟลเดอร์](#explore-folder)
+หลังจากสร้างโฟลเดอร์แล้ว ให้เลือกแท็บ 'MODELS' ในหน้า Data คลิกไอคอนโฟลเดอร์ประเภทโมเดลที่สร้างขึ้นล่าสุดเพื่อเปิดตัวสำรวจโฟลเดอร์ และอัปโหลดไฟล์กำหนดโมเดล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ตัวสำรวจโฟลเดอร์ โปรดดูส่วน [สำรวจโฟลเดอร์](#explore-folder)

@@ -252,13 +263,13 @@ failures) ┌─────┴─────┐
-#### การสร้างไฟล์กำหนดบริการ
+### การสร้างไฟล์กำหนดบริการ
-ไฟล์กำหนดบริการ (`service-definition.toml`) ช่วยให้ผู้ดูแลระบบสามารถกำหนดค่าทรัพยากร สภาพแวดล้อม และการตั้งค่าเวลาทำงานที่จำเป็นสำหรับบริการโมเดลล่วงหน้า เมื่อไฟล์นี้อยู่ในโฟลเดอร์โมเดล ระบบจะใช้การตั้งค่าเหล่านี้เป็นค่าเริ่มต้นเมื่อสร้างบริการ
+ไฟล์กำหนดบริการ (`service-definition.toml`) ช่วยให้ผู้ดูแลระบบสามารถกำหนดค่าทรัพยากร สภาพแวดล้อม และการตั้งค่า runtime ที่จำเป็นสำหรับบริการโมเดลล่วงหน้า เมื่อไฟล์นี้อยู่ในโฟลเดอร์โมเดล ระบบจะใช้การตั้งค่าเหล่านี้เป็นค่าเริ่มต้นเมื่อสร้างบริการ
-ทั้ง `model-definition.yaml` และ `service-definition.toml` ต้องอยู่ในโฟลเดอร์โมเดลเพื่อเปิดใช้งานปุ่ม "Run this model" ในหน้า Model Store ไฟล์ทั้งสองทำงานร่วมกัน: ไฟล์กำหนดโมเดลระบุการกำหนดค่าโมเดลและเซิร์ฟเวอร์อนุมาน ในขณะที่ไฟล์กำหนดบริการระบุสภาพแวดล้อมเวลาทำงาน การจัดสรรทรัพยากร และตัวแปรสภาพแวดล้อม
+ทั้ง `model-definition.yaml` และ `service-definition.toml` ต้องอยู่ในโฟลเดอร์โมเดลเพื่อเปิดใช้งานปุ่ม `Run this model` ในหน้า Model Store ไฟล์ทั้งสองทำงานร่วมกัน: ไฟล์กำหนดโมเดลระบุการกำหนดค่าโมเดลและเซิร์ฟเวอร์ inference ในขณะที่ไฟล์กำหนดบริการระบุสภาพแวดล้อม runtime การจัดสรรทรัพยากร และตัวแปรสภาพแวดล้อม
-ไฟล์กำหนดบริการใช้รูปแบบ TOML โดยมีส่วนต่างๆ จัดตามรูปแบบเวลาทำงาน แต่ละส่วนกำหนดลักษณะเฉพาะของบริการ:
+ไฟล์กำหนดบริการใช้รูปแบบ TOML โดยมีส่วนต่างๆ จัดตามตัวแปร runtime แต่ละส่วนกำหนดลักษณะเฉพาะของบริการ:
```toml
[vllm.environment]
@@ -276,10 +287,10 @@ MODEL_NAME = "example-model-name"
**คำอธิบายคู่คีย์-ค่า สำหรับไฟล์กำหนดบริการ**
-- `[{runtime}.environment]`: ระบุภาพคอนเทนเนอร์และสถาปัตยกรรมสำหรับบริการโมเดล
+- `[{runtime}.environment]`: ระบุอิมเมจคอนเทนเนอร์และสถาปัตยกรรมสำหรับบริการโมเดล
- - `image` (จำเป็น): เส้นทางเต็มของภาพคอนเทนเนอร์ที่ใช้สำหรับบริการอนุมาน (เช่น `example.com/model-server:latest`)
- - `architecture` (จำเป็น): สถาปัตยกรรม CPU ของภาพคอนเทนเนอร์ (เช่น `x86_64`, `aarch64`)
+ - `image` (จำเป็น): เส้นทางเต็มของอิมเมจคอนเทนเนอร์ที่ใช้สำหรับบริการ inference (เช่น `example.com/model-server:latest`)
+ - `architecture` (จำเป็น): สถาปัตยกรรม CPU ของอิมเมจคอนเทนเนอร์ (เช่น `x86_64`, `aarch64`)
- `[{runtime}.resource_slots]`: กำหนดทรัพยากรการคำนวณที่จัดสรรให้กับบริการโมเดล
@@ -287,189 +298,278 @@ MODEL_NAME = "example-model-name"
- `mem`: จำนวนหน่วยความจำที่จะจัดสรร รองรับคำต่อท้ายหน่วย (เช่น `"8gb"`, `"16gb"`)
- `"cuda.shares"`: ส่วนแบ่ง GPU เศษส่วน (fGPU) ที่จะจัดสรร (เช่น `"0.5"`, `"1.0"`) ค่านี้ใส่เครื่องหมายคำพูดเนื่องจากคีย์มีจุด
-- `[{runtime}.environ]`: ตั้งค่าตัวแปรสภาพแวดล้อมที่จะส่งผ่านไปยังคอนเทนเนอร์บริการอนุมาน
+- `[{runtime}.environ]`: ตั้งค่าตัวแปรสภาพแวดล้อมที่จะส่งผ่านไปยังคอนเทนเนอร์บริการ inference
- - คุณสามารถกำหนดตัวแปรสภาพแวดล้อมใดๆ ที่จำเป็นสำหรับเวลาทำงาน เช่น `MODEL_NAME` มักใช้เพื่อระบุโมเดลที่จะโหลด
+ - คุณสามารถกำหนดตัวแปรสภาพแวดล้อมใดๆ ที่จำเป็นสำหรับ runtime เช่น `MODEL_NAME` มักใช้เพื่อระบุโมเดลที่จะโหลด
:::note
-คำนำหน้า `{runtime}` ในแต่ละส่วนหัวสอดคล้องกับชื่อรูปแบบเวลาทำงาน (เช่น `vllm`, `nim`, `custom`) ระบบจะจับคู่คำนำหน้านี้กับรูปแบบเวลาทำงานที่เลือกเมื่อสร้างบริการ
+คำนำหน้า `{runtime}` ในแต่ละส่วนหัวสอดคล้องกับชื่อตัวแปร runtime (เช่น `vllm`, `nim`, `custom`) ระบบจะจับคู่คำนำหน้านี้กับตัวแปร runtime ที่เลือกเมื่อสร้างบริการ
:::
:::note
-เมื่อบริการถูกสร้างขึ้นจาก Model Store โดยใช้ปุ่ม "Run this model" การตั้งค่าจาก `service-definition.toml` จะถูกนำไปใช้โดยอัตโนมัติ หากคุณต้องการปรับการจัดสรรทรัพยากรในภายหลัง คุณสามารถแก้ไขบริการผ่านหน้า Model Serving
+เมื่อบริการถูกสร้างขึ้นจาก Model Store โดยใช้ปุ่ม `Run this model` การตั้งค่าจาก `service-definition.toml` จะถูกนำไปใช้โดยอัตโนมัติ หากคุณต้องการปรับการจัดสรรทรัพยากรในภายหลัง คุณสามารถแก้ไขบริการผ่านหน้า Model Serving
:::
-#### การสร้าง/ตรวจสอบบริการโมเดล
-
-เมื่ออัปโหลดไฟล์กำหนดโมเดลไปยังโฟลเดอร์เสมือนของประเภทโมเดลแล้ว คุณก็พร้อมที่จะสร้างบริการโมเดล
+## ภาพรวมหน้า Serving
-คลิกปุ่ม 'Start Service' ในหน้า Model Serving ซึ่งจะเปิดหน้าที่คุณสามารถใส่การตั้งค่าที่จำเป็นสำหรับการสร้างบริการ
+หน้า Serving แสดงรายการ endpoint บริการโมเดลทั้งหมดในโปรเจกต์ปัจจุบัน คุณสามารถเข้าถึงได้โดยคลิก **การให้บริการ** ในเมนูด้านข้าง

-ขั้นแรก ให้ระบุชื่อบริการ สำหรับคำอธิบายรายละเอียดของแต่ละรายการ โปรดอ้างถึงสิ่งต่อไปนี้:
+ที่ด้านบนของหน้า คุณสามารถกรอง endpoint ตามขั้นตอนวงจรชีวิต:
+
+- **Active**: แสดง endpoint ที่กำลังทำงานหรือกำลังสร้าง นี่คือมุมมองเริ่มต้น
+- **Destroyed**: แสดง endpoint ที่ถูกยุติแล้ว
+
+คุณยังสามารถใช้แถบตัวกรองคุณสมบัติเพื่อค้นหา endpoint ตาม **ชื่อ Endpoint**, **URL ของ Service Endpoint** หรือ **เจ้าของ** (มีให้สำหรับผู้ดูแลระบบ)
+
+คลิกปุ่ม `Start Service` เพื่อเปิดตัวเปิดใช้บริการและสร้างบริการโมเดลใหม่
-- เปิดสู่สาธารณะ: ตัวเลือกนี้อนุญาตให้เข้าถึงบริการโมเดลโดยไม่ต้องใช้โทเค็นแยกต่างหากบนเซิร์ฟเวอร์ที่จะเป็นโฮสต์บริการ โดยค่าเริ่มต้นจะถูกปิดใช้งาน
-- Model Storage To Mount: นี่คือโฟลเดอร์โมเดลที่จะเมาต์ ซึ่งประกอบด้วยไฟล์กำหนดโมเดลภายในไดเรกทอรี
-- Inference Runtime Variant: สิ่งนี้แบ่งประเภทของโมเดลออกเป็นสี่ประเภท: `vLLM`, `NVIDIA NIM`, `Predefined Image Command`, `Custom`, `Predefined Image Command`, `Custom`.
+## การสร้างบริการโมเดล
+
+### ตัวเปิดใช้บริการ
+
+คลิกปุ่ม `Start Service` ในหน้า Serving เพื่อเปิดตัวเปิดใช้บริการ
+
+#### ชื่อบริการและการตั้งค่าพื้นฐาน
+
+ขั้นแรก ให้ระบุชื่อบริการ ฟิลด์ต่อไปนี้มีให้ใช้งาน:
+
+- **Open To Public**: ตัวเลือกนี้อนุญาตให้เข้าถึงบริการโมเดลโดยไม่ต้องใช้โทเค็นแยกต่างหาก โดยค่าเริ่มต้นจะถูกปิดใช้งาน
+- **Model Storage**: โฟลเดอร์จัดเก็บโมเดลที่จะเมาต์ ซึ่งประกอบด้วยไฟล์กำหนดโมเดลภายในไดเรกทอรี
+- **ตัวแปรรันไทม์การอนุมาน**: เลือกตัวแปร runtime สำหรับบริการโมเดล ตัวแปรที่มีจะถูกโหลดแบบไดนามิกจากแบ็กเอนด์ และอาจรวมถึง `vLLM`, `SGLang`, `NVIDIA NIM`, `Modular MAX`, `Custom` และอื่นๆ ขึ้นอยู่กับการติดตั้งของคุณ

-For example, if you choose `vLLM` or `NVIDIA NIM` or `Predefined Image Command` as a runtime variant of model service,
-there's no need to configure a `model-definition` file in your model folder to mount. Instead, you might have to set an additional environment variable.
-For more information, please take a look at
-[Model Variant: Easily Serving Various Model Services](https://www.backend.ai/blog/2024-07-10-various-ways-of-model-serving).
+สำหรับตัวแปร runtime เช่น `vLLM`, `SGLang`, `NVIDIA NIM` หรือ `Modular MAX` ไม่จำเป็นต้องกำหนดค่าไฟล์ `model-definition` ในโฟลเดอร์โมเดลของคุณ ระบบจะจัดการการกำหนดค่าโมเดลโดยอัตโนมัติตามตัวแปรที่เลือก

-- Model Destination For Model Folder: This option allows aliasing path of
- model storage path to session corresponding to routing, which represents
- the service. default value is `/models`.
-- Model Definition File Path: You can also set model definition file as you
- uploaded in model storage path. The default value is `model-definition.yaml`.
-- Additional Mounts: Likewise session, service provides additional mounts.
- Please make sure that only you can mount general/data usage mode folder, not additional
- model folder.
+#### โหมดกำหนดโมเดล (เฉพาะ Custom Runtime)
+
+เมื่อคุณเลือกตัวแปร runtime `Custom` คุณสามารถเลือกระหว่างสองโหมดสำหรับกำหนดบริการโมเดล:
+
+##### โหมดป้อนคำสั่ง
+
+เลือก `ป้อนคำสั่ง` เพื่อวางคำสั่ง CLI โดยตรง ตัวอย่างเช่น:
+
+```shell
+vllm serve /models/my-model --tp 2
+```
+
+ระบบจะวิเคราะห์คำสั่งโดยอัตโนมัติและกรอกฟิลด์ต่อไปนี้:
+
+- **Port**: ตรวจจับอัตโนมัติจากคำสั่ง (ค่าเริ่มต้น `8000`)
+- **URL ตรวจสอบสถานะ**: ตรวจจับอัตโนมัติจากคำสั่ง (ค่าเริ่มต้น `/health`)
+- **เส้นทางเมาต์โมเดล**: ตรวจจับอัตโนมัติจากคำสั่ง
+
+
+
+คุณยังสามารถกำหนดค่า:
+
+- **ความล่าช้าเริ่มต้น**: จำนวนวินาทีที่รอก่อนการตรวจสอบสถานะครั้งแรกหลังจากบริการเริ่มทำงาน
+- **จำนวนครั้งที่ลองใหม่สูงสุด**: จำนวนครั้งสูงสุดในการพยายามตรวจสอบสถานะก่อนที่บริการจะถูกถือว่าล้มเหลว
+
+:::tip
+หากคำสั่งแนะนำการใช้ multi-GPU (เช่น `--tp 2`) คำแนะนำ GPU จะปรากฏขึ้น
+เพื่อช่วยคุณจัดสรรจำนวนทรัพยากร GPU ที่ถูกต้อง
+:::
+
+##### โหมดใช้ไฟล์การตั้งค่า
+
+เลือก `ใช้ไฟล์การตั้งค่า` เพื่อใช้วิธี `model-definition.yaml` แบบดั้งเดิม โหมดนี้ช่วยให้คุณตั้งค่า:
+
+- **ปลายทางเมาต์สำหรับโฟลเดอร์โมเดล**: เส้นทางที่จัดเก็บโมเดลถูกเมาต์ในเซสชัน ค่าเริ่มต้นคือ `/models`
+- **เส้นทางไฟล์กำหนดโมเดล**: เส้นทางไปยังไฟล์กำหนดโมเดลที่คุณอัปโหลด ค่าเริ่มต้นคือ `model-definition.yaml`
+- **เมาต์เพิ่มเติม**: คุณสามารถเมาต์โฟลเดอร์จัดเก็บเพิ่มเติมได้ โปรดทราบว่าสามารถเมาต์เฉพาะโฟลเดอร์โหมดใช้งานทั่วไป/ข้อมูลเท่านั้น ไม่ใช่โฟลเดอร์โมเดลเพิ่มเติม

-Then set number of replicas and select environments and resource group. The resource group is a collection of
-resources that can be allocated to the model service.
+#### พารามิเตอร์ Runtime (vLLM / SGLang)
+
+เมื่อคุณเลือกตัวแปร runtime `vLLM` หรือ `SGLang` ส่วน **พารามิเตอร์ Runtime** จะปรากฏขึ้น ส่วนนี้ช่วยให้คุณปรับแต่งพฤติกรรมการให้บริการโมเดลอย่างละเอียดโดยไม่ต้องแก้ไขไฟล์การกำหนดค่าด้วยตนเอง
+
+
+
+พารามิเตอร์ถูกจัดเป็นหมวดหมู่:
+
+**พารามิเตอร์การสุ่มตัวอย่าง:**
+
+- **Temperature**: ควบคุมความสุ่มในการสร้างข้อความ ค่าที่สูงกว่าจะให้ผลลัพธ์ที่หลากหลายกว่า
+- **Top P**: เกณฑ์การสุ่มตัวอย่าง Nucleus
+- **Top K**: จำกัดจำนวน token ที่มีความน่าจะเป็นสูงสุดที่จะพิจารณา
+- **Min P**: เกณฑ์ความน่าจะเป็นขั้นต่ำสำหรับการเลือก token
+- **Frequency Penalty**: ลงโทษ token ตามความถี่ในข้อความที่สร้างขึ้น
+- **Presence Penalty**: ลงโทษ token ที่ปรากฏแล้ว
+- **Repetition Penalty**: ลงโทษ token ที่ซ้ำกัน ค่าที่สูงกว่า 1.0 จะยับยั้งการซ้ำ
+- **Seed**: Seed แบบสุ่มสำหรับการสร้างที่ทำซ้ำได้
+
+**พารามิเตอร์บริบท / Engine:**
+
+- **ความยาวบริบท**: ความยาวบริบทสูงสุดที่โมเดลสามารถประมวลผลได้
+- **ประเภทข้อมูล**: ประเภทข้อมูลสำหรับน้ำหนักโมเดลและการคำนวณ
+- **ประเภทข้อมูล KV Cache**: ประเภทข้อมูลสำหรับ cache คีย์-ค่า
+- **การใช้งานหน่วยความจำ GPU**: สัดส่วนของหน่วยความจำ GPU ที่ใช้สำหรับโมเดล
+- **เชื่อถือโค้ดจากระยะไกล**: อนุญาตให้รันโค้ดโมเดลที่กำหนดเองจากคลังโมเดล
+- **บังคับใช้โหมด Eager** (เฉพาะ vLLM): ปิดใช้งานการเพิ่มประสิทธิภาพ CUDA graph เพื่อการดีบัก
+- **ปิดใช้งาน CUDA Graph** (เฉพาะ SGLang): ปิดใช้งานการจับภาพ CUDA graph
+- **สัดส่วนหน่วยความจำ (คงที่)** (เฉพาะ SGLang): สัดส่วนหน่วยความจำคงที่สำหรับโมเดล
+- **ความยาวโมเดลสูงสุด**: ความยาวบริบทสูงสุด (จำนวน token) ที่โมเดลสามารถประมวลผลได้
+
+**อาร์กิวเมนต์เพิ่มเติม**: ช่องข้อความสำหรับอาร์กิวเมนต์ CLI เพิ่มเติมที่ไม่ครอบคลุมโดยตัวควบคุมด้านบน
+
+:::note
+พารามิเตอร์ที่ไม่เปลี่ยนแปลงจะใช้ค่าเริ่มต้นของ runtime
+:::
+
+#### สภาพแวดล้อมและทรัพยากร
-- Number of replicas: This setting serves as the basis for determining the number
- of routing sessions to maintain for the current service. If you change the value of this
- setting, the manager can create a new replica session or terminate a running session
- by referring to the number of existing replica sessions.
-- Environment / Version: You can configure the execution environment
- for the dedicated server of the model service. Currently, even if the
- service has multiple routings, it will be executed in a single
- environment only. (Support for multiple execution environments will
- be added in a future update)
+ตั้งค่าจำนวนเรพลิกาและเลือกสภาพแวดล้อมและกลุ่มทรัพยากร
+
+- **จำนวนเรพลิกา**: กำหนดจำนวนเซสชันการเส้นทางที่จะรักษาไว้สำหรับบริการ การเปลี่ยนค่านี้จะทำให้ตัวจัดการสร้างหรือยุติเซสชันเรพลิกาตามลำดับ
+- **สภาพแวดล้อม / เวอร์ชัน**: กำหนดค่าสภาพแวดล้อมการทำงานสำหรับบริการโมเดล การเลือกตัวแปร runtime เช่น vLLM จะกรองอิมเมจสภาพแวดล้อมโดยอัตโนมัติเพื่อแสดงอิมเมจที่เกี่ยวข้อง

-- Resource Presets: Allows you to select the amount of resources to allocate from the model service.
- Resource contains CPU, RAM, and AI accelerator, as known as GPU.
+- **พรีเซ็ตทรัพยากร**: เลือกจำนวนทรัพยากรที่จะจัดสรร ทรัพยากรรวมถึง CPU, RAM และ GPU

-- Single Node: When running a session, the managed node and worker nodes are
- placed on a single physical node or virtual machine.
-- Multi Node: When running a session, one managed node and one or more worker
- nodes are split across multiple physical nodes or virtual machines.
-- Variable: In this section, you can set environment variable when starting a model service.
- It is useful when you trying to create a model service using runtime variant. some runtime variant needs
- certain environment variable setting before execution.
+#### โหมดคลัสเตอร์และตัวแปรสภาพแวดล้อม
+
+- **Single Node**: เมื่อรันเซสชัน โหนดจัดการและโหนดผู้ปฏิบัติงานจะอยู่บนโหนดจริงหรือเครื่องเสมือนเดียวกัน
+- **Multi Node**: โหนดจัดการหนึ่งตัวและโหนดผู้ปฏิบัติงานหนึ่งตัวหรือมากกว่าจะถูกแบ่งข้ามโหนดจริงหรือเครื่องเสมือนหลายตัว
+- **Variable**: ตั้งค่าตัวแปรสภาพแวดล้อมเมื่อเริ่มบริการโมเดล สิ่งนี้มีประโยชน์เมื่อใช้ตัวแปร runtime ที่ต้องการการตั้งค่าตัวแปรสภาพแวดล้อมเฉพาะ

-Before creating model service, Backend.AI supports validation feature to check
-whether execution is available or not(due to any errors during execution).
-By clicking the 'Validate' button at the bottom-left of the service launcher,
-a new popup for listening to validation events will pop up. In the popup modal,
-you can check the status through the container log. When the result is set to
-`Finished`, then the validation check is finished.
+#### การตรวจสอบความถูกต้องของบริการ
+ก่อนที่จะสร้างบริการโมเดล Backend.AI สนับสนุนฟีเจอร์การตรวจสอบความถูกต้องเพื่อตรวจสอบ
+ว่าสามารถทำงานได้หรือไม่ คลิกปุ่ม `Validate` ที่ด้านล่างซ้ายของตัวเปิดใช้บริการ
+และป๊อปอัพใหม่สำหรับรับฟังเหตุการณ์การตรวจสอบจะปรากฏขึ้น
+ในป๊อปอัพโมดอล คุณสามารถตรวจสอบสถานะผ่านล็อกคอนเทนเนอร์ เมื่อผลลัพธ์ถูกตั้งเป็น
+`Finished` การตรวจสอบจะเสร็จสมบูรณ์

-
:::note
-The result `Finished` doesn't guarantee that the execution is successfully done.
-Instead, please check the container log.
+ผลลัพธ์ `Finished` ไม่ได้รับประกันว่าการทำงานเสร็จสมบูรณ์สำเร็จ
+โปรดตรวจสอบล็อกคอนเทนเนอร์แทน
:::
+### การจัดการการสร้างบริการโมเดลที่ล้มเหลว
-**Handling Failed Model Service Creation**
-
-If the status of the model service remains `UNHEALTHY`, it indicates
-that the model service cannot be executed properly.
+หากสถานะของบริการโมเดลยังคงเป็น `UNHEALTHY` แสดงว่า
+บริการโมเดลไม่สามารถทำงานได้อย่างถูกต้อง
-The common reasons for creation failure and their solutions are as
-follows:
+สาเหตุทั่วไปของการสร้างที่ล้มเหลวและวิธีแก้ไขมีดังนี้:
-- Insufficient allocated resources for the routing when creating the
- model service
+- ทรัพยากรที่จัดสรรไม่เพียงพอสำหรับการเส้นทางเมื่อสร้าง
+ บริการโมเดล
- - Solution: Terminate the problematic service and recreate it with
- an allocation of more sufficient resources than the previous
- settings.
+ - วิธีแก้ไข: ยุติบริการที่มีปัญหาและสร้างใหม่ด้วย
+ การจัดสรรทรัพยากรที่เพียงพอกว่าการตั้งค่าก่อนหน้า
-- Incorrect format of the model definition file (`model-definition.yml`)
+- รูปแบบของไฟล์กำหนดโมเดล (`model-definition.yml`) ไม่ถูกต้อง

- - Solution: Verify [the format of the model definition file](#model-definition-guide) and
- if any key-value pairs are incorrect, modify them and overwrite the file in the saved location.
- Then, click 'Clear error and Retry' button to remove all the error stacked in routes info
- table and ensure that the routing of the model service is set correctly.
+ - วิธีแก้ไข: ตรวจสอบ[รูปแบบของไฟล์กำหนดโมเดล](#model-definition-guide) และ
+ หากคู่คีย์-ค่าใดไม่ถูกต้อง ให้แก้ไขและเขียนทับไฟล์ในตำแหน่งที่บันทึกไว้
+ จากนั้น คลิกปุ่ม `Clear error and retry` เพื่อลบข้อผิดพลาดทั้งหมดที่สะสมในตาราง
+ ข้อมูลเส้นทาง และให้แน่ใจว่าการเส้นทางของบริการโมเดลถูกตั้งค่าอย่างถูกต้อง

+## หน้ารายละเอียด Endpoint
+
+คลิกชื่อ endpoint ในรายการ Serving เพื่อดูข้อมูลรายละเอียดเกี่ยวกับบริการโมเดล
+
+### ข้อมูลบริการ
+
+การ์ดข้อมูลบริการแสดงรายละเอียดต่อไปนี้:
+
+- **ชื่อ Endpoint** และ **สถานะ**
+- **ID ของ Endpoint** และ **เจ้าของเซสชัน**
+- **จำนวนเรพลิกา**
+- **Service Endpoint**: URL สำหรับเข้าถึงบริการโมเดล สำหรับบริการ LLM จะมีปุ่ม `LLM Chat Test` ให้ใช้งาน
+- **Open To Public**: บริการเข้าถึงได้สาธารณะหรือไม่
+- **ทรัพยากร**: กลุ่มทรัพยากรและ CPU/หน่วยความจำ/GPU ที่จัดสรร
+- **Model Storage**: โฟลเดอร์จัดเก็บโมเดลที่เมาต์และปลายทางเมาต์
+- **เมาต์เพิ่มเติม**: โฟลเดอร์จัดเก็บเพิ่มเติมที่เมาต์
+- **ตัวแปรสภาพแวดล้อม**: แสดงเป็นบล็อกโค้ด
+- **อิมเมจ**: อิมเมจคอนเทนเนอร์ที่ใช้สำหรับบริการ
+
+คลิกปุ่ม `Edit` บนการ์ดข้อมูลบริการเพื่อไปยังตัวเปิดใช้อัปเดตและแก้ไขการตั้งค่าบริการ
+
+:::warning
+หาก endpoint เป็นของโปรเจกต์อื่นที่ไม่ใช่โปรเจกต์ที่เลือกในปัจจุบัน
+จะแสดงคำเตือนการไม่ตรงกันของโปรเจกต์ สลับไปยังโปรเจกต์ที่ถูกต้องเพื่อจัดการ endpoint
+:::
+
+### กฎการปรับขนาดอัตโนมัติ
-#### กฎการปรับขนาดอัตโนมัติ
คุณสามารถกำหนดค่ากฎการปรับขนาดอัตโนมัติสำหรับบริการโมเดล
ตามกฎที่กำหนด จำนวนเรพลิกาจะถูกลดลงโดยอัตโนมัติในช่วงที่ใช้งานต่ำเพื่อประหยัดทรัพยากร
และเพิ่มขึ้นในช่วงที่ใช้งานสูงเพื่อป้องกันความล่าช้าของคำขอหรือความล้มเหลว

-คลิกปุ่ม 'Add Rules' เพื่อเพิ่มกฎใหม่ เมื่อคุณคลิกปุ่ม โมดอลจะปรากฏขึ้น
+คลิกปุ่ม `Add Rules` เพื่อเพิ่มกฎใหม่ เมื่อคุณคลิกปุ่ม โมดอลจะปรากฏขึ้น
ซึ่งคุณสามารถเพิ่มกฎได้ ฟิลด์แต่ละฟิลด์ในโมดอลมีคำอธิบายดังนี้:
-- Type: กำหนดกฎ เลือก 'ขยายแนวนอน' หรือ 'ย่อขนาด' ตามขอบเขตของกฎ
+- **Type**: กำหนดกฎ เลือก `Scale Out` หรือ `Scale In` ตามขอบเขตของกฎ
-- Metric Source: Inference Framework หรือ kernel
+- **Metric Source**: Inference Framework หรือ kernel
- - Inference Framework: ค่าเฉลี่ยที่นำมาจากทุกเรพลิกา รองรับเฉพาะเมื่อ AppProxy ทั้งคู่รายงานเมตริกการอนุมาน
+ - Inference Framework: ค่าเฉลี่ยที่นำมาจากทุกเรพลิกา รองรับเฉพาะเมื่อ AppProxy รายงานเมตริก inference
- Kernel: ค่าเฉลี่ยที่นำมาจากทุกเคอร์เนลที่รองรับ endpoint
-- Condition: ตั้งค่าเงื่อนไขที่จะใช้กฎการปรับขนาดอัตโนมัติ
+- **Condition**: ตั้งค่าเงื่อนไขที่จะใช้กฎการปรับขนาดอัตโนมัติ
- - Metric Name: ชื่อของเมตริกที่จะใช้เปรียบเทียบ คุณสามารถใส่เมตริกใดๆ ที่รองรับโดยสภาพแวดล้อมเวลาทำงาน
- - Comparator: วิธีการเปรียบเทียบเมตริกสดกับค่าเกณฑ์
+ - **Metric Name**: ชื่อของเมตริกที่จะใช้เปรียบเทียบ คุณสามารถใส่เมตริกใดๆ ที่รองรับโดยสภาพแวดล้อม runtime
+ - **Comparator**: วิธีการเปรียบเทียบเมตริกสดกับค่าเกณฑ์
- LESS_THAN: กฎจะทำงานเมื่อค่าเมตริกปัจจุบันต่ำกว่าเกณฑ์ที่กำหนด
- LESS_THAN_OR_EQUAL: กฎจะทำงานเมื่อค่าเมตริกปัจจุบันต่ำกว่าหรือเท่ากับเกณฑ์ที่กำหนด
- GREATER_THAN: กฎจะทำงานเมื่อค่าเมตริกปัจจุบันสูงกว่าเกณฑ์ที่กำหนด
- GREATER_THAN_OR_EQUAL: กฎจะทำงานเมื่อค่าเมตริกปัจจุบันสูงกว่าหรือเท่ากับเกณฑ์ที่กำหนด
- - Threshold: ค่าอ้างอิงเพื่อกำหนดว่าเงื่อนไขการปรับขนาดเป็นไปตามหรือไม่
+ - **Threshold**: ค่าอ้างอิงเพื่อกำหนดว่าเงื่อนไขการปรับขนาดเป็นไปตามหรือไม่
-- Step Size: ขนาดขั้นตอนของจำนวนเรพลิกาที่จะเปลี่ยนแปลงเมื่อกฎทำงาน
+- **Step Size**: ขนาดขั้นตอนของจำนวนเรพลิกาที่จะเปลี่ยนแปลงเมื่อกฎทำงาน
สามารถแสดงเป็นค่าบวกและค่าลบได้
เมื่อกำหนดเป็นค่าลบ กฎจะลดจำนวนเรพลิกา
-- Max/Min Replicas: ตั้งค่าสูงสุด/ต่ำสุดสำหรับจำนวนเรพลิกาของ endpoint
+- **Max/Min Replicas**: ตั้งค่าสูงสุด/ต่ำสุดสำหรับจำนวนเรพลิกาของ endpoint
กฎจะไม่ทำงานหากจำนวนเรพลิกาที่เป็นไปได้สูงกว่า/ต่ำกว่าค่านี้
-- CoolDown Seconds: ระยะเวลาเป็นวินาทีเพื่อข้ามการใช้กฎซ้ำทันทีหลังจากที่กฎทำงานครั้งแรก
+- **CoolDown Seconds**: ระยะเวลาเป็นวินาทีเพื่อข้ามการใช้กฎซ้ำทันทีหลังจากที่กฎทำงานครั้งแรก

-#### การสร้างโทเค็น
+### การสร้างโทเค็น
เมื่อบริการโมเดลทำงานสำเร็จแล้ว สถานะจะถูกตั้งเป็น
-`HEALTHY` ในกรณีนี้ คุณสามารถคลิกที่ชื่อ endpoint ที่สอดคล้อง
-ในแท็บ Model Service เพื่อดูข้อมูลรายละเอียดเกี่ยวกับ
-บริการโมเดล จากนั้น คุณสามารถตรวจสอบ service endpoint ใน
-ข้อมูลการเส้นทางของบริการโมเดล หากตัวเลือก 'Open to Public'
+`HEALTHY` คุณสามารถคลิกที่ชื่อ endpoint ที่สอดคล้องในรายการ Serving
+เพื่อดูข้อมูลรายละเอียด คุณสามารถตรวจสอบ service endpoint ใน
+ข้อมูลการเส้นทาง หากตัวเลือก **Open To Public**
เปิดใช้งานเมื่อสร้างบริการ endpoint จะสามารถเข้าถึงได้สาธารณะ
-โดยไม่ต้องใช้โทเค็นแยกต่างหาก และผู้ใช้ปลายทางสามารถเข้าถึงได้
+โดยไม่ต้องใช้โทเค็นแยกต่างหาก
อย่างไรก็ตาม หากถูกปิดใช้งาน คุณสามารถออกโทเค็นตามที่อธิบายด้านล่าง
เพื่อตรวจสอบว่าบริการทำงานอย่างถูกต้อง

-คลิกปุ่ม 'Generate Token' ที่อยู่ทางขวาของรายการโทเค็นที่สร้างขึ้น
-ในข้อมูลการเส้นทาง ในโมดอลที่ปรากฏขึ้นสำหรับ
-การสร้างโทเค็น ให้ใส่วันที่หมดอายุ
+คลิกปุ่ม `Generate Token` ที่อยู่ทางขวาของรายการโทเค็นที่สร้างขึ้น
+ในโมดอลที่ปรากฏขึ้น ให้ใส่วันที่หมดอายุ

-โทเค็นที่ออกจะถูกเพิ่มลงในรายการโทเค็นที่สร้างขึ้น คลิกปุ่ม 'copy' ในรายการโทเค็น
+โทเค็นที่ออกจะถูกเพิ่มลงในรายการโทเค็นที่สร้างขึ้น แต่ละโทเค็นจะแสดง **สถานะ** (ใช้ได้หรือหมดอายุ), **วันที่หมดอายุ** และ **วันที่สร้าง** คลิกปุ่ม `copy` ในรายการโทเค็น
เพื่อคัดลอกโทเค็น และเพิ่มเป็นค่าของคีย์ต่อไปนี้

@@ -479,19 +579,47 @@ follows:
| Content-Type | application/json |
| Authorization | BackendAI |
-#### การเข้าถึง Model Service Endpoint สำหรับผู้ใช้ปลายทาง
+### ข้อมูลเส้นทาง
+
+การ์ดข้อมูลเส้นทางแสดงสถานะการเส้นทางของบริการโมเดล คุณสามารถกรองเส้นทางตาม:
+
+- **Running / Finished**: สลับระหว่างโหนดเส้นทางที่ใช้งานอยู่และที่เสร็จสิ้น
+- **ตัวกรองคุณสมบัติ**: กรองตามสถานะสุขภาพและสถานะการรับส่งข้อมูล
+
+คลิกปุ่ม `Sync Routes` เพื่อซิงโครไนซ์ข้อมูลเส้นทางกับแบ็กเอนด์
+
+คลิกโหนดเส้นทางเพื่อเปิดลิ้นชักรายละเอียดเซสชัน ซึ่งคุณสามารถดูรายละเอียดเซสชันแต่ละรายการ
+
+### การแก้ไขบริการ
+
+คลิกปุ่ม `Edit` บนหน้ารายละเอียด endpoint เพื่อแก้ไขบริการโมเดล ตัวเปิดใช้บริการจะเปิดขึ้นพร้อมฟิลด์ที่ป้อนไว้ก่อนหน้านี้ คุณสามารถเลือกแก้ไขเฉพาะฟิลด์ที่คุณต้องการเปลี่ยนแปลง หลังจากแก้ไขฟิลด์แล้ว ให้คลิก `Confirm` เพื่อใช้การเปลี่ยนแปลง
+
+
+
+### การยุติบริการ
+
+บริการโมเดลจะรันตัวจัดตารางเป็นระยะๆ เพื่อปรับจำนวนการเส้นทาง
+ให้ตรงกับจำนวนเซสชันที่ต้องการ อย่างไรก็ตาม สิ่งนี้สร้างภาระให้กับ
+ตัวจัดตาราง Backend.AI ดังนั้น แนะนำให้ยุติบริการโมเดลหากไม่จำเป็นต้องใช้แล้ว
+เพื่อยุติบริการโมเดล ให้คลิกปุ่ม `Delete` ในคอลัมน์ Controls
+โมดอลจะปรากฏขึ้นเพื่อขอการยืนยันในการยุติบริการโมเดล การคลิก `Delete`
+จะยุติบริการโมเดล บริการโมเดลที่ยุติแล้วจะปรากฏในมุมมองตัวกรอง **Destroyed**
+
+
+
+## การเข้าถึง Service Endpoint
+
+### การส่งคำขอ API
เพื่อให้การให้บริการโมเดลสมบูรณ์ คุณต้องแบ่งปันข้อมูลกับ
ผู้ใช้ปลายทางจริงเพื่อให้พวกเขาสามารถเข้าถึงเซิร์ฟเวอร์ที่
-บริการโมเดลกำลังทำงานอยู่ หากตัวเลือก Open to Public เปิดใช้งานเมื่อ
-สร้างบริการ คุณสามารถแบ่งปันค่า service endpoint จาก
-หน้าข้อมูลการเส้นทาง หากบริการถูกสร้างด้วยตัวเลือก
-ปิดใช้งาน คุณสามารถแบ่งปันค่า service endpoint พร้อมกับโทเค็น
-ที่สร้างขึ้นก่อนหน้านี้
-
-นี่คือคำสั่งง่ายๆ ใช้คำสั่ง `curl` เพื่อตรวจสอบการส่งคำขอใดๆ
-ไปยัง model serving endpoint ว่าทำงานอย่างถูกต้องหรือไม่
+บริการโมเดลกำลังทำงานอยู่ หากตัวเลือก **Open To Public** เปิดใช้งานเมื่อ
+สร้างบริการ คุณสามารถแบ่งปันค่า service endpoint จากหน้ารายละเอียด endpoint
+หากบริการถูกสร้างด้วยตัวเลือกปิดใช้งาน
+คุณสามารถแบ่งปันค่า service endpoint พร้อมกับโทเค็นที่สร้างขึ้นก่อนหน้านี้
+นี่คือคำสั่ง `curl` ง่ายๆ เพื่อตรวจสอบว่าการส่งคำขอไปยัง
+model serving endpoint ทำงานอย่างถูกต้องหรือไม่:
```bash
$ export API_TOKEN=""
@@ -500,60 +628,137 @@ $ curl -H "Content-Type: application/json" -X GET \
```
-
:::warning
โดยค่าเริ่มต้น ผู้ใช้ปลายทางต้องอยู่ในเครือข่ายที่สามารถเข้าถึง
endpoint ได้ หากบริการถูกสร้างในเครือข่ายปิด เฉพาะผู้ใช้ปลายทาง
-ที่มีการเข้าถึงภายในเครือข่ายปิดนั้นเท่านั้นที่สามารถเข้าถึง
-บริการได้
+ที่มีการเข้าถึงภายในเครือข่ายปิดนั้นเท่านั้นที่สามารถเข้าถึงบริการได้
:::
-#### การใช้ Large Language Model
+### การทดสอบ LLM Chat
หากคุณสร้างบริการ Large Language Model (LLM) คุณสามารถทดสอบ LLM แบบเรียลไทม์
-เพียงคลิกปุ่ม 'LLM Chat Test' ที่อยู่ในคอลัมน์ Service Endpoint
+คลิกปุ่ม `LLM Chat Test` ที่อยู่ในส่วน Service Endpoint ของหน้ารายละเอียด endpoint

-จากนั้น คุณจะถูกเปลี่ยนเส้นทางไปยังหน้า Chat ซึ่งโมเดลที่คุณสร้างจะถูกเลือกโดยอัตโนมัติ
+คุณจะถูกเปลี่ยนเส้นทางไปยังหน้า Chat ซึ่งโมเดลที่คุณสร้างจะถูกเลือกโดยอัตโนมัติ
โดยใช้อินเทอร์เฟซแชทที่ให้บริการในหน้า Chat คุณสามารถทดสอบโมเดล LLM
-สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์แชท โปรดอ้างถึง [หน้าแชท](#chat-page)
+สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์แชท โปรดดู [หน้าแชท](#chat-page)

หากคุณพบปัญหาในการเชื่อมต่อกับ API หน้าแชทจะแสดงตัวเลือกที่ให้คุณกำหนดค่าการตั้งค่าโมเดลด้วยตนเอง
ในการใช้โมเดล คุณจะต้องมีข้อมูลต่อไปนี้:
-- baseURL (ไม่บังคับ): Base URL ของเซิร์ฟเวอร์ที่โมเดลตั้งอยู่
+- **baseURL** (ไม่บังคับ): Base URL ของเซิร์ฟเวอร์ที่โมเดลตั้งอยู่
ตรวจสอบให้แน่ใจว่าได้รวมข้อมูลเวอร์ชัน
เช่น เมื่อใช้ OpenAI API คุณควรใส่ https://api.openai.com/v1
-- Token (ไม่บังคับ): คีย์การรับรองความถูกต้องเพื่อเข้าถึงบริการโมเดล โทเค็นสามารถ
+- **Token** (ไม่บังคับ): คีย์การรับรองความถูกต้องเพื่อเข้าถึงบริการโมเดล โทเค็นสามารถ
สร้างได้จากบริการต่างๆ ไม่ใช่แค่ Backend.AI เท่านั้น รูปแบบและกระบวนการสร้าง
อาจแตกต่างกันไปขึ้นอยู่กับบริการ ควรอ้างถึงคู่มือของบริการเฉพาะสำหรับรายละเอียด
- เช่น เมื่อใช้บริการที่สร้างโดย Backend.AI โปรดอ้างถึง
+ เช่น เมื่อใช้บริการที่สร้างโดย Backend.AI โปรดดู
[การสร้างโทเค็น](#generating-tokens) สำหรับคำแนะนำเกี่ยวกับวิธีสร้างโทเค็น

-#### การปรับเปลี่ยนบริการโมเดล
+
-คลิกไอคอนประแจในแท็บ Control เพื่อปรับเปลี่ยนบริการโมเดลที่คุณต้องการอัปเดต
-รูปแบบจะเหมือนกับโมดอลเริ่มบริการโมเดล โดยมี
-ฟิลด์ที่ป้อนไว้ก่อนหน้านี้ถูกกรอกไว้แล้ว คุณสามารถเลือกปรับเปลี่ยนเฉพาะ
-ฟิลด์ที่คุณต้องการเปลี่ยนแปลง หลังจากปรับเปลี่ยนฟิลด์แล้ว ให้คลิกปุ่ม 'confirm'
-การเปลี่ยนแปลงจะถูกปรับให้เหมาะสม
+## Model Store
-
+คลังโมเดลให้บริการแกลเลอรีแบบการ์ดของโมเดลที่กำหนดค่าไว้ล่วงหน้าที่คุณสามารถเรียกดู ค้นหา และ deploy ได้ คุณสามารถเข้าถึงคลังโมเดลจากเมนูด้านข้าง
-#### การยุติบริการโมเดล
+
-บริการโมเดลจะเรียกใช้ตัวจัดตารางเป็นระยะๆ เพื่อปรับจำนวนการเส้นทาง
-ให้ตรงกับจำนวนเซสชันที่ต้องการ อย่างไรก็ตาม สิ่งนี้สร้างภาระให้กับ
-ตัวจัดตาราง Backend.AI ดังนั้น จึงแนะนำให้ยุติ
-บริการโมเดลหากไม่จำเป็นต้องใช้แล้ว เพื่อยุติบริการโมเดล
-ให้คลิกปุ่ม 'trash' ในคอลัมน์ Control โมดอลจะปรากฏขึ้นเพื่อขอ
-การยืนยันในการยุติบริการโมเดล การคลิก `Delete`
-จะยุติบริการโมเดล บริการโมเดลที่ยุติแล้วจะถูก
-ลบออกจากรายการบริการโมเดล
-
-
\ No newline at end of file
+### การเรียกดูและค้นหาโมเดล
+
+คุณสามารถค้นหาโมเดลตามชื่อ คำอธิบาย task หมวดหมู่ หรือป้ายกำกับโดยใช้แถบค้นหาที่ด้านบนของหน้า นอกจากนี้ คุณสามารถใช้ดรอปดาวน์ตัวกรองเพื่อจำกัดผลลัพธ์:
+
+- **Category**: กรองตามหมวดหมู่โมเดล (เช่น LLM)
+- **Task**: กรองตามประเภท task (เช่น text-generation)
+- **Label**: กรองตามป้ายกำกับโมเดล
+
+### รายละเอียดการ์ดโมเดล
+
+คลิกการ์ดโมเดลเพื่อดูรายละเอียดในโมดอล โมดอลการ์ดโมเดลจะแสดง:
+
+- **Title**, **Author** และ **Version**
+- **Description** และ **README**
+- **Task**, **Category** และ **Architecture**
+- **Framework** และ **Labels**
+- **License**
+- **ทรัพยากรขั้นต่ำ** ที่จำเป็นในการรันโมเดล
+- ลิงก์ไปยังโฟลเดอร์จัดเก็บโมเดล
+
+
+
+### การโคลนโมเดล
+
+คลิกปุ่ม `Clone to a folder` บนการ์ดโมเดลเพื่อโคลนโฟลเดอร์โมเดลไปยังที่จัดเก็บของคุณ กล่องโต้ตอบยืนยันจะปรากฏขึ้นซึ่งคุณสามารถระบุชื่อโฟลเดอร์ปลายทาง
+
+
+
+### การรันโมเดลจากคลังโมเดล
+
+คลิกปุ่ม `Run this model` บนการ์ดโมเดลเพื่อ deploy โมเดลเป็นบริการ สิ่งนี้ต้องการทั้ง `model-definition.yaml` และ `service-definition.toml` อยู่ในโฟลเดอร์โมเดล
+
+- หากมีตัวแปร runtime เพียงตัวเดียวที่กำหนดค่าในไฟล์กำหนดบริการ บริการจะเริ่มต้นโดยอัตโนมัติด้วยการตั้งค่าที่กำหนดไว้ล่วงหน้า
+- หากมีตัวแปร runtime หลายตัวให้เลือก คุณจะถูกเปลี่ยนเส้นทางไปยังหน้าตัวเปิดใช้บริการเพื่อเลือก
+
+:::note
+เมื่อบริการถูกสร้างจากคลังโมเดล การตั้งค่าจาก `service-definition.toml`
+จะถูกนำไปใช้โดยอัตโนมัติ คุณสามารถแก้ไขบริการในภายหลังผ่านหน้าการให้บริการ
+:::
+
+## ฟีเจอร์สำหรับผู้ดูแลระบบ
+
+### หน้า Admin Serving
+
+ผู้ดูแลระบบและผู้ดูแลระบบขั้นสูงสามารถเข้าถึงหน้า Admin Serving ซึ่งให้มุมมองข้ามโปรเจกต์ของ endpoint ทั้งหมด หน้านี้แสดงคอลัมน์ **โปรเจกต์** เพิ่มเติมจากคอลัมน์รายการ endpoint มาตรฐาน ช่วยให้ผู้ดูแลระบบจัดการบริการข้ามทุกโปรเจกต์
+
+
+
+หน้า Admin Serving มีสองแท็บ:
+
+- **การให้บริการ**: แสดงรายการ endpoint ข้ามทุกโปรเจกต์ พร้อมตัวกรองวงจรชีวิตและคุณสมบัติเดียวกับหน้าการให้บริการสำหรับผู้ใช้
+- **การจัดการร้านค้าโมเดล**: มีให้เฉพาะผู้ดูแลระบบขั้นสูง ดูส่วนด้านล่าง
+
+### การจัดการคลังโมเดลสำหรับผู้ดูแลระบบ
+
+ผู้ดูแลระบบขั้นสูงสามารถจัดการการ์ดโมเดลผ่านแท็บ **การจัดการร้านค้าโมเดล** ในหน้าการให้บริการสำหรับผู้ดูแลระบบ แท็บนี้ให้มุมมองตารางของการ์ดโมเดลทั้งหมดพร้อมคอลัมน์: **Name**, **Title**, **Task**, **Category**, **Labels**, **Created At**, **Controls**
+
+
+
+#### การสร้างการ์ดโมเดล
+
+คลิกปุ่ม `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)
+- **README**: README มาร์กดาวน์สำหรับโมเดล
+- **Domain**: โดเมนที่จะเชื่อมโยงการ์ดโมเดล
+- **Project ID** (จำเป็น): โปรเจกต์ที่เป็นเจ้าของการ์ดโมเดล
+- **VFolder** (จำเป็น): โฟลเดอร์จัดเก็บที่มีไฟล์โมเดล
+- **Access Level**: ตั้งเป็น `Internal` (มองเห็นได้ภายในโดเมน) หรือ `Public` (มองเห็นได้สำหรับทุกคน)
+
+
+
+#### การแก้ไขการ์ดโมเดล
+
+คลิกไอคอนแก้ไขในคอลัมน์ **Controls** เพื่อแก้ไขการ์ดโมเดลที่มีอยู่ โมดอลแก้ไขจะเปิดขึ้นพร้อมฟิลด์ที่ป้อนไว้ก่อนหน้านี้
+
+#### การลบการ์ดโมเดล
+
+คุณสามารถลบการ์ดโมเดลแต่ละรายการโดยคลิกไอคอนลบในคอลัมน์ **Controls** หรือทำการลบจำนวนมากโดยเลือกการ์ดโมเดลหลายรายการแล้วคลิก `Delete Selected`
+
+#### การสแกนการ์ดโมเดลโปรเจกต์
+
+คลิกปุ่ม `Scan Project Model Cards` เพื่อสแกนโฟลเดอร์โมเดลของโปรเจกต์โดยอัตโนมัติและสร้างการ์ดโมเดลสำหรับโฟลเดอร์ที่มีคำจำกัดความโมเดลที่ถูกต้อง ผลลัพธ์การสแกนจะแสดงจำนวนการ์ดโมเดลที่สร้างและอัปเดต