Skip to content

Commit 774580f

Browse files
agatha197ironAiken2
authored andcommitted
docs(FR-2623): reorganize admin model serving docs and remove clone references (#6844)
Resolves #6843 ([FR-2623](https://lablup.atlassian.net/browse/FR-2623)) ## Summary - Moved Admin features (Admin Serving Page, Admin Model Store Management) from `model_serving.md` to `admin_menu.md` across all 4 languages — admin-only content now lives in the Admin Menu section where it belongs. - Removed all clone-related content from `admin_menu.md` and `model_serving.md` (Clone to Folder, Create Service from This Model, Cloning a Model). The clone feature is no longer provided by the product. - Rewrote the `model-definition.yaml` description as an advanced configuration option for the Custom runtime variant during serving. The old wording incorrectly implied that uploading the file creates a model card; model cards are now managed via the Admin UI backed by the database. - Removed the stale old Model Store Page section along with the `model_card_added.png` reference. - Kept the Cloneable field in `vfolder.md` — it is still a real field in the vfolder creation modal. ## Test Plan - [ ] Verify `admin_menu.md` renders correctly with the new Admin Features section in en/ko/ja/th - [ ] Verify `model_serving.md` no longer references clone or admin-only features in en/ko/ja/th - [ ] Verify the `vfolder.md` Cloneable field documentation is intact in en/ko/ja/th - [ ] Rebuild the PDF locally and spot-check the reorganized pages [FR-2623]: https://lablup.atlassian.net/browse/FR-2623?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
1 parent 5b25c38 commit 774580f

8 files changed

Lines changed: 336 additions & 784 deletions

File tree

packages/backend.ai-webui-docs/src/en/admin_menu/admin_menu.md

Lines changed: 78 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -246,37 +246,47 @@ also displayed in the Permission panel.
246246

247247
<a id="manage-models-cards"></a>
248248

249-
## Manage Models cards
249+
## Manage Model Cards
250250

251-
All of the Model cards in model store are managed by project admin.
252-
After uploading model store with model-definition file, any user in the project
253-
can access to model card and clone it if needed.
251+
Model cards in the Model Store are created and managed through the [Admin Model Store Management](#admin-model-store-management) interface. Each model card is linked to a storage folder (vfolder) that contains the actual model files.
254252

255-
Following method is to add model cards from the Hugging Face.
253+
### Setting Up the Model Store Folder
256254

257255
:::note
258-
Before creating a model card, getting an access to the specific model on Hugging Face is needed.
259-
For more information, please refer to [Gated models](https://huggingface.co/docs/hub/models-gated) .
256+
If the model is hosted on Hugging Face as a gated model, you will need to request access before downloading. Refer to [Gated models](https://huggingface.co/docs/hub/models-gated) for details.
260257
:::
261258

262-
First, Set the project to 'model-store'.
259+
First, set the project to `model-store`.
263260

264261
![](../images/select_project_to_model_store.png)
265262

266-
Move to data page and click the 'Create Folder' button on the right side. Enter the folder name,
267-
and set the rest of folder configuration as shown below:
263+
Go to the Data page and click the **Create Folder** button. Configure the folder as follows:
268264

269-
- Usage Mode: Model
270-
- Type: project
271-
- Permission: Read-Write
272-
- Cloneable: True
265+
- **Usage Mode**: Model
266+
- **Type**: Project
267+
- **Permission**: Read-Write
273268

274269
![](../images/model_store_folder.png)
275270

276-
After creating the folder, you need to set and upload the model-definition.yaml file
277-
to the folder that you've just created. Following is the example of the model-definition file.
278-
If you want to know how to write model-definition file,
279-
please refer to [Model definition guide](#model-definition-guide) section.
271+
After creating the folder, download the model files into it. You can mount the model folder during session creation and use tools such as `huggingface-cli` to download model weights.
272+
273+
:::note
274+
You need to download the model files manually into the folder. For instructions on how to download from Hugging Face, refer to [Downloading models](https://huggingface.co/docs/hub/models-downloading).
275+
:::
276+
277+
Once the folder and its model files are ready, create a model card through the [Admin Model Store Management](#admin-model-store-management) interface and link it to this folder.
278+
279+
![](../images/model_card_detail.png)
280+
281+
### Model Definition File (Advanced — Custom Runtime)
282+
283+
For the `Custom` runtime variant, you can optionally place a `model-definition.yaml` file in the model folder. This file tells Backend.AI how to start and operate the inference server during serving — including the startup command, health check settings, and any pre-start actions such as downloading model weights at launch time.
284+
285+
:::note
286+
Runtime variants such as `vLLM`, `SGLang`, `NVIDIA NIM`, and `Modular MAX` do not require a `model-definition.yaml` file. These variants handle model configuration automatically based on the selected settings.
287+
:::
288+
289+
The following is an example `model-definition.yaml` that starts a vLLM server using the `Custom` variant:
280290

281291
```yaml
282292
models:
@@ -316,134 +326,83 @@ models:
316326
max_retries: 500
317327
```
318328
319-
Once the model-definition file is uploaded, the model card will appear in the model store page.
320-
321-
![](../images/model_card_added.png)
329+
For a full description of the model definition format, refer to the [Model Definition Guide](../model_serving/model_serving.md#model-definition-guide) in the Model Serving documentation.
322330
323331
:::note
324-
You need to download model manually after setting model-definition file. For downloading the model file to folder,
325-
you can mount the model folder to session creation and download file to there by referring
326-
[Downloading models](https://huggingface.co/docs/hub/models-downloading) .
332+
To enable the **Deploy** button on a model card in the Model Store, include `service-definition.toml` in the linked folder so Backend.AI can read the model service configuration. Add `model-definition.yaml` only when you use the `Custom` runtime variant; preset runtime variants (such as `vLLM`, `SGLang`, `NVIDIA NIM`, and `Modular MAX`) do not require it. For details on the service definition file, refer to the [Service Definition File](../model_serving/model_serving.md#service-definition-file) section in the Model Serving documentation.
327333
:::
328334

329-
Clicking on the model card you've just created will display the details of the model-definition file you uploaded.
330-
Now, every member of the project can access the model card and clone it.
331-
332-
![](../images/model_card_detail.png)
333-
334-
:::note
335-
To enable the "Run this model" button on the model card, both
336-
`model-definition.yaml` and `service-definition.toml` files must exist in the
337-
folder. If either file is missing, the button will be disabled. For details on
338-
creating the service definition file, refer to the
339-
[Service Definition File](#service-definition-file)
340-
section in the Model Serving documentation.
341-
:::
335+
<a id="admin-features"></a>
342336

343-
<a id="model-store-page"></a>
337+
## Admin Features
344338

345-
## Model Store Page
339+
<a id="admin-serving-page"></a>
346340

347-
The Model Store page is where users can discover and use pre-configured models that have been set up by administrators. When you navigate to the Model Store page from the sidebar, you will see model cards displaying all available models from the model-store project.
341+
### Admin Serving Page
348342

349-
![](../images/model_store_page_overview.png)
343+
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.
350344

351-
Each model card displays key information about the model, including:
345+
![](../images/admin_serving_page.png)
352346

353-
- Model name (folder name)
354-
- README content (if a README file exists in the folder)
355-
- Metadata from the model-definition.yaml file
356-
- Action buttons for interacting with the model
347+
The Admin Serving page has two tabs:
357348

358-
Clicking on a model card opens a detailed view with the full README content and available actions.
349+
- **Serving**: Displays the endpoint list across all projects, with the same lifecycle and property filters as the user-facing Serving page.
350+
- **Model Store Management**: Available to superadmins only. See the section below.
359351

360-
![](../images/model_card_detail_with_buttons.png)
352+
<a id="admin-model-store-management"></a>
361353

362-
<a id="clone-to-folder"></a>
354+
### Admin Model Store Management
363355

364-
### Clone to Folder
356+
Superadmins can manage model cards through the **Model Store Management** tab on the Admin Serving page.
365357

366-
The "Clone to folder" button allows you to create a personal copy of a model store folder. Since model store folders are read-only and shared across the project, you need to clone them to your own storage to modify files or use them in custom workflows.
358+
![](../images/admin_model_card_list_v2.png)
367359

368-
To clone a model folder:
360+
The list provides the following columns:
369361

370-
1. Click the "Clone to folder" button on the model card
371-
2. In the clone dialog, configure the following settings:
372-
- **Folder Name**: The name for your cloned folder (defaults to the original name with a random suffix)
373-
- **Permission**: Set the access permission for the cloned folder (Read-Only or Read-Write)
374-
- **Usage Mode**: The folder type (General, Model, or Auto Mount)
375-
3. Click the "Clone" button to start the cloning process
362+
- **Name**: The unique identifier of the model card.
363+
- **Title**: The human-readable display name.
364+
- **Category**: The model category (e.g., LLM).
365+
- **Task**: The inference task type (e.g., text-generation).
366+
- **Access Level**: Shows a green `Public` tag when the model card is publicly accessible, or a default `Private` tag otherwise.
367+
- **Domain**: The domain that owns the model card.
368+
- **Project**: The project that owns the model card.
369+
- **Created At**: The timestamp when the model card was created.
376370

377-
![](../images/model_store_clone_dialog.png)
371+
You can filter the list by **Name** using the property filter bar at the top. Edit and delete action icons are shown directly in the **Name** cell of each row.
378372

379-
:::note
380-
Currently, folder cloning only supports cloning to the same storage host.
381-
:::
373+
To delete multiple model cards at once, select the rows you want to remove using the checkboxes and click the red trash-bin button next to the selection count. A confirmation dialog appears before the cards are deleted.
382374

383-
After cloning completes, the new folder will appear in your Data page under the appropriate tab based on the usage mode you selected.
375+
#### Creating a Model Card
384376

385-
<a id="create-service-from-this-model"></a>
377+
Click the `Create Model Card` button to open the creation modal. Fill in the following fields:
386378

387-
### Create Service from This Model
388-
389-
The "Run this model" button allows you to create a model service directly from a model card with a single click. This feature automates the process of cloning the model folder and creating a model service endpoint.
390-
391-
:::note
392-
This button requires the following conditions to be met:
393-
394-
- Both `model-definition.yaml` and `service-definition.toml` files must exist in the model folder. If either file is missing, the button will be disabled with a tooltip explaining which file is needed.
395-
- You must have sufficient resource quota to create a model service.
396-
- The resource group must allow inference session types.
397-
:::
398-
399-
<a id="service-creation-workflow"></a>
400-
401-
#### Service Creation Workflow
402-
403-
When you click the "Run this model" button, Backend.AI follows this workflow:
404-
405-
1. **Check for Required Files**: The system verifies that both model-definition.yaml and service-definition.toml exist in the folder
406-
407-
2. **Clone Folder (if needed)**: If you don't have a cloned copy of the model folder:
408-
- A confirmation dialog appears asking if you want to clone the folder
409-
- The folder will be cloned with a name format: `{original-name}-{random-4-chars}`
410-
- A notification shows the cloning progress
411-
412-
![](../images/model_service_clone_confirmation.png)
413-
414-
<!-- TODO: Capture screenshot of clone confirmation dialog before service creation -->
415-
416-
3. **Create Service**: Once the folder exists (either from a previous clone or just cloned):
417-
- The service is automatically created using settings from service-definition.toml
418-
- A notification displays the service creation progress
419-
- You can click the notification to navigate to the Model Serving page
420-
421-
![](../images/model_service_creation_progress.png)
422-
423-
<!-- TODO: Capture screenshot of service creation progress notification -->
424-
425-
4. **View Service Details**: After creation completes, you can navigate to the Model Serving page to view the endpoint details, monitor service health, and manage the service
426-
427-
![](../images/model_service_created_detail.png)
428-
429-
:::note
430-
If a cloned folder already exists from a previous operation, the system will
431-
automatically use that folder to create the service. In a future release, you will
432-
be able to select which cloned folder to use if multiple copies exist.
433-
:::
379+
- **Name** (required): A unique identifier for the model card.
380+
- **Title**: A human-readable display name.
381+
- **Description**: A detailed description of the model.
382+
- **Author**: The model creator or organization.
383+
- **Model Version**: The version of the model.
384+
- **Task**: The inference task type (e.g., text-generation).
385+
- **Category**: The model category (e.g., LLM).
386+
- **Framework**: The ML framework used (e.g., PyTorch, TensorFlow).
387+
- **Label**: Tags for categorization and filtering.
388+
- **License**: The license under which the model is distributed.
389+
- **Architecture**: The model architecture (e.g., Transformer).
390+
- **README**: A markdown README for the model.
391+
- **Domain**: The domain to associate the model card with.
392+
- **Project ID** (required): The project that owns the model card.
393+
- **VFolder** (required): The storage folder containing the model files.
394+
- **Access Level**: Controls who can see the model card in the user-facing Model Store.
434395

435-
<a id="troubleshooting"></a>
396+
* `Internal`: Visible only to administrators of the owning domain and project. Regular users cannot see internal cards in their Model Store.
397+
* `Public`: Visible to all users who have access to the owning project.
436398

437-
#### Troubleshooting
399+
#### Editing a Model Card
438400

439-
If service creation fails:
401+
Click the edit icon next to the model card name to modify an existing model card. The edit modal opens with previously entered fields already filled in.
440402

441-
- Check that both model-definition.yaml and service-definition.toml are correctly formatted
442-
- Verify that your resource quota allows creating new model services
443-
- Check the Model Serving page for error messages in the service status
444-
- Refer to the [Model Serving](#model-serving) documentation for detailed troubleshooting steps
403+
#### Deleting Model Cards
445404

446-
For more information about model services, service configuration, and endpoint management, refer to the [Model Serving](#model-serving) documentation.
405+
You can delete an individual model card by clicking the delete icon next to its name, or perform bulk deletion by selecting multiple model cards with the row checkboxes and clicking the red trash-bin button next to the selection count.
447406

448407
<a id="manage-resource-policy"></a>
449408

packages/backend.ai-webui-docs/src/en/model_serving/model_serving.md

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -758,10 +758,6 @@ If the model card includes a README, it is rendered as a `README.md` card at the
758758

759759
![](../images/model_card_detail_drawer.png)
760760

761-
### Cloning a Model
762-
763-
To clone a model folder, use the [Data](../vfolder/vfolder.md) page directly. The Model Store drawer does not provide a dedicated Clone button.
764-
765761
### Deploying a Model
766762

767763
Click the **Deploy** button in the drawer header to deploy the model as a service. The deploy flow behaves in one of two ways:
@@ -781,69 +777,4 @@ If the selected model has no compatible presets for the current project, the dra
781777
**Deploy** button is disabled and deployment is blocked until a compatible preset is available.
782778
:::
783779

784-
## Admin Features
785-
786-
### Admin Serving Page
787-
788-
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.
789-
790-
![](../images/admin_serving_page.png)
791-
792-
The Admin Serving page has two tabs:
793-
794-
- **Serving**: Displays the endpoint list across all projects, with the same lifecycle and property filters as the user-facing Serving page.
795-
- **Model Store Management**: Available to superadmins only. See the section below.
796-
797-
### Admin Model Store Management
798-
799-
Superadmins can manage model cards through the **Model Store Management** tab on the Admin Serving page.
800-
801-
![](../images/admin_model_card_list_v2.png)
802-
803-
The list provides the following columns:
804-
805-
- **Name**: The unique identifier of the model card.
806-
- **Title**: The human-readable display name.
807-
- **Category**: The model category (e.g., LLM).
808-
- **Task**: The inference task type (e.g., text-generation).
809-
- **Access Level**: Shows a green `Public` tag when the model card is publicly accessible, or a default `Private` tag otherwise.
810-
- **Domain**: The domain that owns the model card.
811-
- **Project**: The project that owns the model card.
812-
- **Created At**: The timestamp when the model card was created.
813-
814-
You can filter the list by **Name** using the property filter bar at the top. Edit and delete action icons are shown directly in the **Name** cell of each row.
815-
816-
To delete multiple model cards at once, select the rows you want to remove using the checkboxes and click the red trash-bin button next to the selection count. A confirmation dialog appears before the cards are deleted.
817-
818-
#### Creating a Model Card
819-
820-
Click the `Create Model Card` button to open the creation modal. Fill in the following fields:
821-
822-
- **Name** (required): A unique identifier for the model card.
823-
- **Title**: A human-readable display name.
824-
- **Description**: A detailed description of the model.
825-
- **Author**: The model creator or organization.
826-
- **Model Version**: The version of the model.
827-
- **Task**: The inference task type (e.g., text-generation).
828-
- **Category**: The model category (e.g., LLM).
829-
- **Framework**: The ML framework used (e.g., PyTorch, TensorFlow).
830-
- **Label**: Tags for categorization and filtering.
831-
- **License**: The license under which the model is distributed.
832-
- **Architecture**: The model architecture (e.g., Transformer).
833-
- **README**: A markdown README for the model.
834-
- **Domain**: The domain to associate the model card with.
835-
- **Project ID** (required): The project that owns the model card.
836-
- **VFolder** (required): The storage folder containing the model files.
837-
- **Access Level**: Controls who can see the model card in the user-facing Model Store.
838-
839-
* `Internal`: Visible only to administrators of the owning domain and project. Regular users cannot see internal cards in their Model Store.
840-
* `Public`: Visible to all users who have access to the owning project.
841-
842-
#### Editing a Model Card
843-
844-
Click the edit icon next to the model card name to modify an existing model card. The edit modal opens with previously entered fields already filled in.
845-
846-
#### Deleting Model Cards
847-
848-
You can delete an individual model card by clicking the delete icon next to its name, or perform bulk deletion by selecting multiple model cards with the row checkboxes and clicking the red trash-bin button next to the selection count.
849780

0 commit comments

Comments
 (0)