3.5 KiB
3.5 KiB
ADW 26AI — Compartilhamento de Modelo ONNX entre Schemas
🎯 Objetivo
Permitir que um schema (APP_SCHEMA) utilize um modelo ONNX (MY_ONNX_MODEL) pertencente a outro schema (SRC_SCHEMA) no Autonomous Data Warehouse (ADW 26AI), incluindo integração com Select AI.
📌 Pré-requisitos
- Modelo ONNX já carregado no
SRC_SCHEMA - Acesso como
ADMIN - Usuário consumidor (
APP_SCHEMA) criado
1️⃣ Validar modelo no schema de origem
Conecte como SRC_SCHEMA:
SELECT model_name, algorithm, mining_function
FROM user_mining_models
WHERE model_name = 'MY_ONNX_MODEL';
2️⃣ Grants básicos (executar como ADMIN)
GRANT CREATE SESSION TO APP_SCHEMA;
GRANT DWROLE TO APP_SCHEMA;
GRANT EXECUTE ON DBMS_CLOUD TO APP_SCHEMA;
GRANT EXECUTE ON DBMS_CLOUD_AI TO APP_SCHEMA;
(Opcional) Diretório para operações com arquivos
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO APP_SCHEMA;
3️⃣ Habilitar acesso a dados para Select AI (ADMIN)
BEGIN
DBMS_CLOUD_AI.ENABLE_DATA_ACCESS();
END;
/
4️⃣ Grant no modelo ONNX (acesso entre schemas)
Conecte como SRC_SCHEMA:
GRANT SELECT MINING MODEL ON MY_ONNX_MODEL TO APP_SCHEMA;
Alternativa (mais ampla)
GRANT SELECT ANY MINING MODEL TO APP_SCHEMA;
5️⃣ Observação sobre "alias"
- ❌ Não é necessário criar alias ou synonym
- ✅ Use nome qualificado do modelo:
SRC_SCHEMA.MY_ONNX_MODEL
6️⃣ Criar credential (APP_SCHEMA)
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'GENAI_CRED',
user_ocid => '<user_ocid>',
tenancy_ocid => '<tenancy_ocid>',
private_key => '<private_key>',
fingerprint => '<fingerprint>'
);
END;
/
7️⃣ Criar profile do Select AI
🔹 Apenas embedding (modelo interno)
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name => 'EMBEDDING_PROFILE',
attributes => '{
"provider": "database",
"embedding_model": "SRC_SCHEMA.MY_ONNX_MODEL"
}'
);
END;
/
🔹 LLM externo + embedding ONNX
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name => 'OCI_GENAI',
attributes => '{
"provider": "oci",
"model": "meta.llama-3.3-70b-instruct",
"credential_name": "GENAI_CRED",
"embedding_model": "database: SRC_SCHEMA.MY_ONNX_MODEL"
}'
);
END;
/
8️⃣ Ativar profile
EXEC DBMS_CLOUD_AI.SET_PROFILE('OCI_GENAI');
9️⃣ Teste do modelo
SELECT VECTOR_EMBEDDING(
SRC_SCHEMA.MY_ONNX_MODEL
USING 'texto de teste' AS data
)
FROM dual;
✅ Resumo rápido
| Etapa | Ação |
|---|---|
| 1 | Validar modelo no SRC_SCHEMA |
| 2 | Grants DBMS_CLOUD / DBMS_CLOUD_AI |
| 3 | ENABLE_DATA_ACCESS (opcional) |
| 4 | GRANT SELECT MINING MODEL |
| 5 | Usar nome qualificado (sem alias) |
| 6 | Criar credential |
| 7 | Criar profile |
| 8 | Ativar profile |
| 9 | Testar uso |
⚠️ Observações importantes
- O privilégio correto é SELECT MINING MODEL
CREATE MINING MODELsó é necessário para criação de modelos- Sempre usar nome qualificado (schema.model) em cenários cross-schema
SELECT ANY MINING MODELdeve ser evitado em produção (princípio do menor privilégio)