Usando um Modelo Pré-treinado OpenSearch
O OCI Search com OpenSearch fornece suporte integrado para modelos pré-treinados do OpenSearch.
Este tópico descreve como registrar e implantar qualquer um dos modelos de transformador de frase de abraço pré-treinados em um cluster especificando apenas o nome do modelo. Consulte Modelos Pré-treinados para obter a lista de modelos aprovados. Para obter um procedimento completo sobre como usar um modelo pré-treinado OpenSearch para pesquisa semântica na Pesquisa do OCI com OpenSearch, consulte Passo a Passo da Pesquisa Semântica.
Pré-requisitos
Antes de começar, você precisa fazer o seguinte:
- Selecione um dos modelos pré-treinados suportados pelo OCI Search com o OpenSearch
- Confirme se o cluster do OpenSearch é da versão 2.11 ou mais recente.
- Atualize as definições do cluster para executar a pesquisa semântica. O exemplo a seguir inclui as configurações recomendadas:
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 } } } }
Etapa 1: Registrar o Grupo de Modelos
Os grupos de modelos permitem que você gerencie o acesso a modelos específicos. O registro de um grupo de modelos é opcional. No entanto, se você não registrar um grupo de modelos, o ML Commons criará registros de um novo grupo de modelos para você. Por isso, recomendamos que você registre o grupo de modelos.
Registre um grupo de modelos usando a operação registrar nas APIs do Grupo de Modelos, conforme mostrado no seguinte exemplo:
POST /_plugins/_ml/model_groups/_register
{
"name": "new_model_group",
"description": "A model group for local models"
}
Anote o model_group_id
retornado na resposta:
{
"model_group_id": "<modelgroupID>",
"status": "CREATED"
}
Etapa 2: Registrar o Modelo
model_group_id
: Se você concluiu a Etapa 1, este é o valor de model_group_id para a solicitação _register.name
: O nome do modelo do modelo pré-treinado que você deseja usar.version
: O número da versão do modelo pré-treinado que você deseja usar.model_format
: O formato do modelo,TORCH_SCRIPT
ouONNX
.
Registre o modelo usando a operação registrar nas APIs de Modelo, conforme mostrado no seguinte exemplo:
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"
}
Anote o task_id
retornado na resposta. Você pode usar o task_id
para verificar o status da operação.
Por exemplo, a partir da seguinte resposta:
{
"task_id": "TuD6Zo0Bb0cPUYbz3Moz",
"status": "CREATED"
}
para verificar o status da operação de registro, use task_id
com a operação Obter das APIs da Tarefa, conforme mostrado no seguinte exemplo:
GET /_plugins/_ml/tasks/TuD6Zo0Bb0cPUYbz3Moz
Quando a operação de registro estiver concluída, o valor status
na resposta à operação Obter será COMPLETED
, conforme mostrado o seguinte exemplo:
{
"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
}
Anote o valor model_id
retornado na resposta a ser usada quando você implantar o modelo.
Etapa 3: Implantar o Modelo
Depois que a operação de registro for concluída para o modelo, você poderá implantar o modelo no cluster usando a operação de implantação das APIs de Modelo, informando o model_id
da resposta da operação Obter na etapa anterior, conforme mostrado no seguinte exemplo:
POST /_plugins/_ml/models/cleMb4kBJ1eYAeTMFFg4/_deploy
Anote o task_id
retornado na resposta. Você pode usar o task_id
para verificar o status da operação.
Por exemplo, a partir da seguinte resposta:
{
"task_id": "T-D7Zo0Bb0cPUYbz-cod",
"task_type": "DEPLOY_MODEL",
"status": "CREATED"
}
para verificar o status da operação de registro, use o task_id
com a operação Get das APIs de Tarefas, conforme mostrado no seguinte exemplo:
GET /_plugins/_ml/tasks/T-D7Zo0Bb0cPUYbz-cod
Quando a operação de implantação estiver concluída, o valor status
na resposta à operação Obter será COMPLETED
, conforme mostrado o seguinte exemplo:
{
"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
}
Etapa 4: Testar o Modelo
Use a API de Previsão para testar o modelo, conforme mostrado no exemplo a seguir para um modelo de incorporação de texto:
POST /_plugins/_ml/_predict/text_embedding/<your_embedding_model_ID>
{
"text_docs":[ "today is sunny"],
"return_number": true,
"target_response": ["sentence_embedding"]
}
A resposta contém incorporações de texto para a instrução fornecida, conforme mostrado no exemplo de resposta a seguir:
"inference_results" : [
{
"output" : [
{
"name" : "sentence_embedding",
"data_type" : "FLOAT32",
"shape" : [
768
],
"data" : [
0.25517133,
-0.28009856,
0.48519906,
...
]
}
]
}
]
}