Qué es ONNX?
Significa Open Neural Network Exchange y corresponde un formato abierto y estándar para representar modelos de Machine Learning e Inteligencia Artificial, diseñado para que un modelo entrenado en una herramienta pueda ejecutarse en otra.
Si haces una conexión a tu base de datos y ejecutas el siguiente comando y no recibes ningún registro de vuelta, es que no tienes ningún modelo cargado en tu base de datos.
SELECT model_name, mining_function, algorithm
FROM user_mining_models
Al ejecutar la siguiente consulta buscando crear un embedding para una línea de texto, vas a recibir un error ORA-40284 indicando que el modelo no existe.
SQL> SELECT VECTOR_EMBEDDING(MI_MODELO_EMBEDDINGS USING 'Hola, esto es una prueba' AS DATA) AS vector
FROM DUAL; 2
FROM DUAL
*
ERROR at line 2:
ORA-40284: model does not exist
Help: https://docs.oracle.com/error-help/db/ora-40284/
Así que vamos a preparar nuestra base de datos para poder crear a través de la función VECTOR_EMBEDDING, una representación vectorial de un texto.
Lo primero, vamos a brindar los permisos necesarios al esquema en el cuál vamos a trabajar.
En este caso he escogido el esquema de ejemplo de SH.
GRANT DB_DEVELOPER_ROLE TO SH;
GRANT CREATE MINING MODEL TO SH;
Luego vamos a crear un directorio en nuestro servidor de base de datos, que va a hacer referencia a un punto en el sistema operativo, en donde vamos a descargar el modelo que queremos importar dentro de la base de datos.
create directory models as '/u01/app/oracle/models';
En este caso, el directorio "MODELS" apuntará a la ruta indicada a nivel de sistema operativo.
Ahora vamos a brindar permisos de lectura y escritura sobre el directorio creado a nuestro esquema SH.
grant read,write on directory models to sh;
Para este ejemplo es elegido el modelo all-MiniLM-L12-v2 que es uno de los modelos de embeddings más usados por su equilibrio entre tamaño, velocidad y precisión.
El modelo all_MiniLM_L12_v2.onnx es una versión exportada a ONNX del modelo Sentence Transformers sentence-transformers/all-MiniLM-L12-v2, utilizado principalmente para generar embeddings semánticos de texto. Es uno de los modelos que Oracle ha recomendado para integrarlo con AI Vector Search en Oracle AI Database 26ai.
Características técnicas principales
| Característica | Valor aproximado |
|---|---|
| Arquitectura base | MiniLM (Transformer liviano) |
| Número de capas | 12 layers |
| Parámetros | ~33 millones |
| Dimensión del embedding | 384 |
| Longitud máxima de tokens | 256 tokens (algunas implementaciones 128/256) |
| Tipo de salida | Vector denso normalizado |
| Similaridad recomendada | COSINE |
| Formato | ONNX |
| Licencia | Apache 2.0 |
¿Qué hace exactamente?
Convierte frases, párrafos o documentos cortos en vectores de 384 dimensiones donde: textos con significado similar → vectores cercanos textos distintos → vectores alejados
Ejemplo:
ambos producirán embeddings cercanos."Oracle Database 26ai supports vector search"
"Oracle AI DB includes semantic search"
Casos de uso típicos
Este modelo funciona bien para:
✅ Semantic Search
Buscar documentos “por significado” y no por coincidencia exacta.
✅ RAG (Retrieval-Augmented Generation)
Buscar fragmentos relevantes antes de enviar contexto a un LLM.
✅ Clustering de texto
Agrupar tickets, incidentes, logs, correos.
✅ Detección de similitud
Comparar preguntas/respuestas.
✅ Clasificación semántica
Asignar categorías por cercanía vectorial.
Ventajas
Comparado con modelos más grandes como MPNet o BERT-base:
- Más rápido en CPU.
- Menor consumo de RAM.
- Menor tamaño en disco (~90MB a ~130MB dependiendo de exportación).
- Ideal para ejecutarse dentro de Oracle Database.
Ahora, será necesario que hagamos la descarga del modelo que hemos escogido para utilizar.
[oracle@oracle-server-26ai models]$ pwd
/u01/app/oracle/models
[oracle@oracle-server-26ai models]$ wget -O all_MiniLM_L12_v2.onnx \
"https://adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com/p/iPX9W0MZeRkwJKWdFmdJCemmN-iKAl_bFvNGYLW7YqIrw4kKsukL24J2q93Beb9S/n/adwc4pm/b/OML-ai-models/o/all_MiniLM_L12_v2.onnx"
--2026-04-25 14:17:09-- https://adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com/p/iPX9W0MZeRkwJKWdFmdJCemmN-iKAl_bFvNGYLW7YqIrw4kKsukL24J2q93Beb9S/n/adwc4pm/b/OML-ai-models/o/all_MiniLM_L12_v2.onnx
Resolving adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com (adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com)... 134.70.32.1, 134.70.28.1, 134.70.24.1
Connecting to adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com (adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com)|134.70.32.1|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 133322334 (127M) []
Saving to: ‘all_MiniLM_L12_v2.onnx’
all_MiniLM_L12_v2.onnx 100%[========================================================================================>] 127.15M 310MB/s in 0.4s
2026-04-25 14:17:09 (310 MB/s) - ‘all_MiniLM_L12_v2.onnx’ saved [133322334/133322334]
[oracle@oracle-server-26ai models]$ ls -lat
total 130200
drwxr-xr-x. 2 oracle oinstall 36 Apr 25 14:17 .
drwxrwx---. 10 oracle oinstall 118 Apr 25 14:15 ..
-rw-r--r--. 1 oracle oinstall 133322334 Oct 7 2025 all_MiniLM_L12_v2.onnx
Listo ya tenemos descargado nuestro modelo y ahora es necesario que carguemos el modelo dentro de la base de datos.
BEGIN
DBMS_VECTOR.LOAD_ONNX_MODEL(
directory => 'models',
file_name => 'all_MiniLM_L12_v2.onnx',
model_name => 'MI_MODELO_EMBEDDINGS'
);
END;
/
SELECT model_name, mining_function, algorithm
FROM user_mining_models
MODEL_NAME MINING_FUNCTION ALGORITHM
-------------------- ------------------------------ ------------------------------
MI_MODELO_EMBEDDINGS EMBEDDING ONNX
SELECT VECTOR_EMBEDDING(MI_MODELO_EMBEDDINGS USING 'Hola, esto es una prueba' AS DATA) AS vector
FROM DUAL;
[1.3900646E-003,6.4947255E-002,-3.41739021E-002,3.00823897E-002,-1.3453302E-002,-1.87666081E-002,-4.35688905E-002,4.46249396E-002,6.3403599E-002,-4.62511182E-002,3.3260759E-002,-1.44735333E-002,-2.21015308E-002,1.40913026E-002,7.5034E-002,3.59462239E-002,6.43426031E-002,1.98624283E-002,1.90574955E-002,-2.13727448E-002,7.24871606E-002,6.8553783E-002,-2.48328503E-002,2.43773255E-002,-2.34660842E-002,-5.5200249E-002,3.9385803E-002,7.0384331E-002,-5.28017692E-002,-5.48376963E-002,-1.94696989E-002,4.1839987E-002,7.37491548E-002,-2.21404079E-002,-5.96100725E-002,-4.02953289E-002,7.35913664E-002,-9.62668285E-002,1.56864934E-002,1.2650843E-001,-8.29633791E-003,-5.34933135E-002,-6.29290864E-002,-4.25488316E-002,2.33139982E-003,-1.02485389E-001,-3.00091389E-003,8.56035948E-002,7.16768205E-002,2.89637297E-002,2.96710469E-002,-4.93476242E-002,-3.28859203E-002,1.27376709E-002,4.25983733E-003,5.24660461E-002,7.47554079E-002,-9.9608168E-002,-6.88042492E-002,8.87526199E-002,-1.80443178E-003,2.61041019E-002,3.81092168E-002,6.49420405E-003,-7.15156458E-003,3.77375836E-004,6.56677037E-002,-5.78824989E-002,-2.22714376E-002,4.38990667E-002,3.11253797E-002,-1.50656011E-002,4.09434102E-002,5.47525883E-002,2.77292971E-002,-7.04061687E-002,1.6800079E-003,-9.08812806E-002,-8.92041251E-003,5.46105094E-002,-2.05046106E-002,-1.2373329E-001,-3.45300809E-002,-4.78763729E-002,-8.85539651E-002,-7.20430613E-002,-1.7484704E-002,4.76256311E-002,-3.64556946E-002,-6.55404404E-002,-5.06183552E-003,1.35141434E-002,-3.6078237E-002,-4.76635993E-004,3.7716683E-002,3.38687003E-002,-6.03729934E-002,-4.40221317E-002,1.00445992E-003,6.26754761E-002,1.9100951E-002,-4.17933352E-002,7.84236044E-002,-6.76141009E-002,-1.58108363E-003,8.11111853E-002,5.22661954E-002,3.96392047E-002,-7.88598787E-003,1.40044698E-002,-1.8102048E-002,-5.93436025E-002,-4.04904895E-002,4.09404673E-002,-3.24861035E-002,-1.36348559E-002,-7.20573664E-002,-3.92829888E-002,-7.74733722E-002,-6.04367889E-002,1.48849776E-002,-2.17362046E-002,-1.37405088E-002,-1.40654035E-002,5.28604463E-002,-8.58230144E-002,8.2690537E-002,-1.5872702E-002,2.59843729E-002,-1.89039744E-002,-4.1163303E-003,-3.26678306E-002,-5.90283051E-002,1.78802516E-002,-1.49752768E-002,6.13624938E-002,-2.13406868E-002,4.18959334E-002,-2.84545049E-002,2.55872235E-002,-1.41871767E-002,-7.05784326E-003,7.58661628E-002,5.12781693E-003,2.65482161E-002,-2.98756734E-002,6.20706081E-002,6.97502196E-002,-4.34035808E-002,6.63504153E-002,-1.63700934E-002,2.19134353E-002,-4.25044447E-002,-4.44938778E-004,-8.99366662E-002,-4.5101922E-002,-2.94682924E-002,6.38995096E-002,1.22462576E-002,-7.70974485E-003,-5.87149225E-002,3.07904016E-002,7.1540691E-002,-9.26405471E-003,3.59040033E-003,2.65567563E-003,-1.45466123E-002,3.51659209E-002,-6.44643903E-002,3.22895348E-002,-3.17530781E-002,8.62621609E-003,4.65120748E-002,-5.58609096E-003,-3.77367511E-002,4.18439917E-002,9.31436718E-002,-3.05033475E-002,-9.26166251E-002,1.64704993E-002,-2.0406669E-002,4.81320225E-004,-9.45158228E-002,-6.67981952E-002,-8.91887397E-002,2.49027461E-002,-6.48279041E-002,-4.72947806E-002,2.46572159E-002,5.50275706E-002,2.57982686E-002,-4.67213206E-002,-2.69834343E-002,8.45892653E-002,-5.38872145E-002,6.37916997E-002,5.9427578E-002,5.21879494E-002,-1.48437489E-002,-2.74545904E-002,-1.90172456E-002,2.9384179E-002,-8.22653249E-002,-2.33890284E-002,7.54830614E-002,-6.06272332E-002,5.65813715E-003,8.76496881E-002,-4.60354798E-002,-4.1076811E-003,2.31930427E-002,2.79998016E-002,-2.04425808E-002,1.55423552E-001,5.11384718E-002,1.07636675E-001,6.04426637E-002,1.50089845E-001,-5.39999828E-002,1.02401003E-001,3.16832936E-003,-6.32362515E-002,2.88271345E-002,-1.32585654E-032,1.38411419E-002,-5.69943376E-002,3.07825487E-002,-6.2084619E-002,4.73874994E-003,-5.29002324E-002,-6.90745264E-002,8.36086571E-002,7.66877756E-002,3.37841697E-002,-6.46747053E-002,-5.57038672E-002,7.92162195E-002,-8.3183445E-002,6.84358031E-002,1.10465817E-005,-4.53029294E-003,-2.83081327E-002,-2.04892661E-002,-9.35557634E-002,-5.7014741E-002,2.72388998E-002,7.82605112E-002,-1.20674539E-002,6.11994267E-002,9.75737348E-003,-3.0896483E-002,-3.74141373E-002,-2.18903963E-002,-7.92545453E-002,-8.68051965E-003,1.11484644E-003,-3.59221697E-002,1.31579891E-001,-1.28166946E-002,-2.35027988E-002,-1.26797035E-002,2.87881829E-002,4.12984751E-002,9.91139933E-003,-1.12441219E-002,1.65291037E-002,-9.90293324E-002,1.9596843E-002,-5.19916788E-002,-3.85330012E-003,1.16031997E-001,-3.30846384E-002,1.01698637E-002,-6.02884032E-002,-4.50805342E-003,2.04256666E-003,1.87034942E-002,5.2292333E-003,8.39919224E-002,-6.04134798E-002,-7.75140002E-002,-4.72206511E-002,4.50489484E-002,7.22124577E-002,2.7057562E-002,4.34556231E-002,-2.32761689E-002,-2.01885235E-002,3.4009587E-002,2.4763735E-002,-4.55132462E-002,1.18991081E-002,5.8908958E-002,7.33381808E-002,7.92638883E-002,-7.41918385E-002,-1.34471074E-001,-3.27881388E-002,-5.01030199E-002,5.87125532E-002,-9.05613378E-002,5.67616522E-003,-3.68121415E-002,-4.14253287E-002,3.20088374E-003,-2.77393535E-002,-8.57385434E-003,-4.5528993E-002,-4.96782809E-002,-2.40529813E-002,-1.36366487E-002,-7.79022556E-003,9.82291345E-003,5.79915568E-002,-9.82802012E-004,3.76926661E-002,-3.59502137E-002,-4.84997742E-002,-1.41461603E-002,4.12206343E-032,-2.22963225E-002,7.83920195E-003,-6.78976113E-003,2.47782543E-002,7.05694035E-002,3.58279049E-002,-6.50222152E-002,-6.46860227E-002,-1.02872102E-004,-3.98172028E-002,9.73907858E-003,-8.38956162E-002,-5.45164645E-002,-2.14765649E-002,3.25041562E-002,2.91623659E-002,4.62868623E-002,7.13896453E-002,2.59754043E-002,-1.16456635E-002,-1.39092626E-002,-7.8247726E-002,8.32773093E-003,-3.50259878E-002,4.80484255E-002,3.37976627E-002,-3.08791045E-002,-1.19398562E-002,6.18945323E-002,-9.94550586E-002,-9.02341772E-003,1.11277113E-002,-8.27196687E-002,-7.58799762E-002,1.68302748E-002,-6.02526218E-002,4.47138511E-002,-5.04813492E-002,-6.43555447E-002,-1.25823811E-001,-1.9547062E-002,7.96526521E-002,1.28585175E-002,2.31666751E-002,-2.69731451E-002,-5.82041442E-002,3.8045086E-002,-8.97646844E-002,3.40791396E-003,2.25604866E-002,-5.89550175E-002,-3.92772555E-002,7.14555234E-002,3.20473276E-002,8.6180523E-002,-3.58830206E-002,-1.6021559E-002,-2.47178948E-003,-4.43300009E-002,1.32946577E-002,8.7638922E-002,5.74000552E-002,-1.10163353E-002,1.13602327E-002]
Oracle hace conversiones automáticas desde otros tipos:
- CHAR
- NCHAR
- NVARCHAR2
- CLOB
- NCLOB → convertido a NVARCHAR2
- NUMBER, DATE, etc. → convertidos a texto si la conversión es válida
SELECT VECTOR_EMBEDDING(modelo USING employee_id) FROM hr.employees;
internamente sería algo similar a: TO_CHAR(employee_id)
Restricciones
Aunque Oracle permita convertir: CLOB, no es recomendable si el contenido excede la ventana del modelo.
Ejemplo: MiniLM:
- 256 tokens aprox.
- algunos modelos 512
Eso puede degradar la semántica.
Ahora si, ya puedes desde tu base de datos crear "embeddings" para texto sin ncesidad de salir de la base de datos.

No hay comentarios:
Publicar un comentario
Te agradezco tus comentarios. Te esperamos de vuelta.