Vorgeschultes Modell OpenSearch verwenden
OCI Search mit OpenSearch bietet integrierte Unterstützung für vortrainierte OpenSearch-Modelle.
In diesem Thema wird beschrieben, wie Sie eines der vortrainierten Transformer-Modelle für Umarmungen in einem Cluster registrieren und bereitstellen, indem Sie nur den Modellnamen angeben. Eine Liste der genehmigten Modelle finden Sie unter Vorgeschulte Modelle. Eine End-to-End-Prozedur zur Verwendung eines vortrainierten OpenSearch-Modells für die semantische Suche in OCI Search mit OpenSearch finden Sie unter Durchlauf für semantische Suche.
Voraussetzungen
Bevor Sie beginnen, müssen Sie folgende Schritte ausführen:
- Wählen Sie eines der vortrainierten Modelle aus, die von OCI Search mit OpenSearch unterstützt werden
- Stellen Sie sicher, dass das Cluster OpenSearch Version 2.11 oder höher ist.
- Aktualisieren Sie die Clustereinstellungen, um eine semantische Suche auszuführen. Das folgende Beispiel enthält die empfohlenen Einstellungen:
PUT _cluster/settings { "persistent": { "plugins": { "ml_commons": { "only_run_on_ml_node": "false", "model_access_control_enabled": "true", "native_memory_threshold": "99", "rag_pipeline_feature_enabled": "true", "memory_feature_enabled": "true", "allow_registering_model_via_local_file": "true", "allow_registering_model_via_url": "true", "model_auto_redeploy.enable":"true", "model_auto_redeploy.lifetime_retry_times": 10 } } } }
Schritt 1: Modellgruppe registrieren
Mit Modellgruppen können Sie den Zugriff auf bestimmte Modelle verwalten. Die Registrierung einer Modellgruppe ist optional. Wenn Sie jedoch keine Modellgruppe registrieren, erstellt ML Commons eine neue Modellgruppe für Sie. Daher empfehlen wir Ihnen, die Modellgruppe zu registrieren.
Registrieren Sie eine Modellgruppe mit dem Vorgang registrieren in den Modellgruppen-APIs, wie im folgenden Beispiel dargestellt:
POST /_plugins/_ml/model_groups/_register
{
"name": "new_model_group",
"description": "A model group for local models"
}
Notieren Sie sich die in der Antwort zurückgegebene model_group_id
:
{
"model_group_id": "<modelgroupID>",
"status": "CREATED"
}
Schritt 2: Modell registrieren
model_group_id
: Wenn Sie Schritt 1 abgeschlossen haben, ist dies der Wert für model_group_id für die _register-Anforderung.name
: Der Modellname für das vorgeschulte Modell, das Sie verwenden möchten.version
: Die Versionsnummer für das zu verwendende vorgeschulte Modell.model_format
: Das Format für das Modell:TORCH_SCRIPT
oderONNX
.
Registrieren Sie das Modell mit dem Vorgang registrieren über die Modell-APIs, wie im folgenden Beispiel dargestellt:
POST /_plugins/_ml/models/_register
{
"name": "huggingface/sentence-transformers/msmarco-distilbert-base-tas-b",
"version": "1.0.2",
"model_group_id": "TOD4Zo0Bb0cPUYbzwcpD",
"model_format": "TORCH_SCRIPT"
}
Notieren Sie sich die in der Antwort zurückgegebene task_id
. Mit der task_id
können Sie den Status des Vorgangs prüfen.
Beispiel: Von der folgenden Antwort:
{
"task_id": "TuD6Zo0Bb0cPUYbz3Moz",
"status": "CREATED"
}
um den Status des Registrierungsvorgangs zu prüfen, verwenden Sie task_id
mit dem Vorgang Get der Aufgaben-APIs, wie im folgenden Beispiel dargestellt:
GET /_plugins/_ml/tasks/TuD6Zo0Bb0cPUYbz3Moz
Wenn der Kassenvorgang abgeschlossen ist, lautet der Wert status
in der Antwort auf den Get-Vorgang COMPLETED
, wie im folgenden Beispiel dargestellt:
{
"model_id": "iDf6Zo0BkIugivXi3E7z",
"task_type": "REGISTER_MODEL",
"function_name": "TEXT_EMBEDDING",
"state": "COMPLETED",
"worker_node": [
"3qSqVfK2RvGJv1URKfS1bw"
],
"create_time": 1706829732915,
"last_update_time": 1706829780094,
"is_async": true
}
Notieren Sie sich den in der Antwort zurückgegebenen Wert model_id
, der beim Deployment des Modells verwendet werden soll.
3. Schritt: Modell bereitstellen
Nachdem der Registrierungsvorgang für das Modell abgeschlossen ist, können Sie das Modell mit dem Deployment-Vorgang der Modell-APIs im Cluster bereitstellen und die model_id
aus der Antwort des Get-Vorgangs im vorherigen Schritt übergeben, wie im folgenden Beispiel dargestellt:
POST /_plugins/_ml/models/cleMb4kBJ1eYAeTMFFg4/_deploy
Notieren Sie sich die in der Antwort zurückgegebene task_id
. Mit der task_id
können Sie den Status des Vorgangs prüfen.
Beispiel: Von der folgenden Antwort:
{
"task_id": "T-D7Zo0Bb0cPUYbz-cod",
"task_type": "DEPLOY_MODEL",
"status": "CREATED"
}
Um den Status des Registervorgangs zu prüfen, verwenden Sie task_id
mit dem Vorgang Get der Aufgaben-APIs, wie im folgenden Beispiel dargestellt:
GET /_plugins/_ml/tasks/T-D7Zo0Bb0cPUYbz-cod
Wenn der Deployment-Vorgang abgeschlossen ist, lautet der Wert status
in der Antwort auf den Get-Vorgang COMPLETED
, wie im folgenden Beispiel dargestellt:
{
"model_id": "iDf6Zo0BkIugivXi3E7z",
"task_type": "DEPLOY_MODEL",
"function_name": "TEXT_EMBEDDING",
"state": "COMPLETED",
"worker_node": [
"3qSqVfK2RvGJv1URKfS1bw"
],
"create_time": 1706829732915,
"last_update_time": 1706829780094,
"is_async": true
}
Schritt 4: Test des Modells
Verwenden Sie die Predict-API, um das Modell zu testen, wie im folgenden Beispiel für ein Texteinbettungsmodell gezeigt:
POST /_plugins/_ml/_predict/text_embedding/<your_embedding_model_ID>
{
"text_docs":[ "today is sunny"],
"return_number": true,
"target_response": ["sentence_embedding"]
}
Die Antwort enthält Texteinbettungen für den angegebenen Satz, wie im folgenden Antwortbeispiel gezeigt:
"inference_results" : [
{
"output" : [
{
"name" : "sentence_embedding",
"data_type" : "FLOAT32",
"shape" : [
768
],
"data" : [
0.25517133,
-0.28009856,
0.48519906,
...
]
}
]
}
]
}