mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-05 02:17:31 +00:00
Support model resource updates and deletes (#452)
# What does this PR do?
* Changes the registry to store only one RoutableObject per identifier.
Before it was a list, which is not really required.
* Adds impl for updates and deletes
* Updates routing table to handle updates correctly
## Test Plan
```
❯ llama-stack-client models list
+------------------------+---------------+------------------------------------+------------+
| identifier | provider_id | provider_resource_id | metadata |
+========================+===============+====================================+============+
| Llama3.1-405B-Instruct | fireworks-0 | fireworks/llama-v3p1-405b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
| Llama3.1-8B-Instruct | fireworks-0 | fireworks/llama-v3p1-8b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
| Llama3.2-3B-Instruct | fireworks-0 | fireworks/llama-v3p2-1b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
❯ llama-stack-client models register dineshyv-model --provider-model-id=fireworks/llama-v3p1-70b-instruct
Successfully registered model dineshyv-model
❯ llama-stack-client models list
+------------------------+---------------+------------------------------------+------------+
| identifier | provider_id | provider_resource_id | metadata |
+========================+===============+====================================+============+
| Llama3.1-405B-Instruct | fireworks-0 | fireworks/llama-v3p1-405b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
| Llama3.1-8B-Instruct | fireworks-0 | fireworks/llama-v3p1-8b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
| Llama3.2-3B-Instruct | fireworks-0 | fireworks/llama-v3p2-1b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
| dineshyv-model | fireworks-0 | fireworks/llama-v3p1-70b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
❯ llama-stack-client models update dineshyv-model --provider-model-id=fireworks/llama-v3p1-405b-instruct
Successfully updated model dineshyv-model
❯ llama-stack-client models list
+------------------------+---------------+------------------------------------+------------+
| identifier | provider_id | provider_resource_id | metadata |
+========================+===============+====================================+============+
| Llama3.1-405B-Instruct | fireworks-0 | fireworks/llama-v3p1-405b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
| Llama3.1-8B-Instruct | fireworks-0 | fireworks/llama-v3p1-8b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
| Llama3.2-3B-Instruct | fireworks-0 | fireworks/llama-v3p2-1b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
| dineshyv-model | fireworks-0 | fireworks/llama-v3p1-405b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
llama-stack-client models delete dineshyv-model
❯ llama-stack-client models list
+------------------------+---------------+------------------------------------+------------+
| identifier | provider_id | provider_resource_id | metadata |
+========================+===============+====================================+============+
| Llama3.1-405B-Instruct | fireworks-0 | fireworks/llama-v3p1-405b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
| Llama3.1-8B-Instruct | fireworks-0 | fireworks/llama-v3p1-8b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
| Llama3.2-3B-Instruct | fireworks-0 | fireworks/llama-v3p2-1b-instruct | {} |
+------------------------+---------------+------------------------------------+------------+
```
---------
Co-authored-by: Dinesh Yeduguru <dineshyv@fb.com>
This commit is contained in:
parent
4253cfcd7f
commit
efe791bab7
7 changed files with 447 additions and 129 deletions
|
|
@ -6,6 +6,8 @@
|
|||
|
||||
import pytest
|
||||
|
||||
from llama_models.datatypes import CoreModelId
|
||||
|
||||
# How to run this test:
|
||||
#
|
||||
# pytest -v -s llama_stack/providers/tests/inference/test_model_registration.py
|
||||
|
|
@ -33,3 +35,23 @@ class TestModelRegistration:
|
|||
await models_impl.register_model(
|
||||
model_id="Llama3-NonExistent-Model",
|
||||
)
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_update_model(self, inference_stack):
|
||||
_, models_impl = inference_stack
|
||||
|
||||
# Register a model to update
|
||||
model_id = CoreModelId.llama3_1_8b_instruct.value
|
||||
old_model = await models_impl.register_model(model_id=model_id)
|
||||
|
||||
# Update the model
|
||||
new_model_id = CoreModelId.llama3_2_3b_instruct.value
|
||||
updated_model = await models_impl.update_model(
|
||||
model_id=model_id, provider_model_id=new_model_id
|
||||
)
|
||||
|
||||
# Retrieve the updated model to verify changes
|
||||
assert updated_model.provider_resource_id != old_model.provider_resource_id
|
||||
|
||||
# Cleanup
|
||||
await models_impl.delete_model(model_id=model_id)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue