La acción `extract` extrae el objeto binario (blob) ONNX guardado de un almacén ONNX remoto (rstore). Esta funcionalidad es fundamental cuando se trabaja con modelos de aprendizaje profundo o machine learning portables definidos en el formato Open Neural Network Exchange (ONNX) que han sido encapsulados dentro de tablas CAS (analytic stores). Permite recuperar el artefacto original del modelo para su análisis, validación o despliegue en otros entornos.
| Parámetro | Descripción |
|---|---|
| rstore | Especifica la tabla binaria (analytic store) que contiene el blob ONNX guardado. Es un parámetro obligatorio. |
| rstore.name | El nombre de la tabla CAS que contiene el almacén analítico. |
| rstore.caslib | Especifica la biblioteca CAS (caslib) donde reside la tabla de entrada. Si no se especifica, se utiliza la caslib activa. |
| rstore.whereTable | Especifica una tabla de entrada adicional que contiene filas para utilizar como un filtro WHERE (semi-join). Esto permite seleccionar registros específicos dentro del astore para la extracción. |
| rstore.whereTable.vars | Define las variables específicas de la tabla de filtrado que se utilizarán para la coincidencia o el filtrado. |
| rstore.whereTable.where | Una expresión de filtrado para subconjuntar los datos de la tabla de filtro antes de aplicarla al rstore. |
Para demostrar la acción, simulamos la existencia de una tabla 'onnx_model_store' que contendría datos binarios de un modelo.
| 1 | PROC CAS; |
| 2 | /* Crear una tabla dummy que simula ser un astore */ |
| 3 | dataStep.runCode / code="data casuser.onnx_model_store; length _blob_ binary; _blob_ = '89504E470D0A1A0A'x; id=1; output; run;"; |
| 4 | RUN; |
Extrae el contenido binario ONNX de la tabla especificada en el parámetro rstore.
| 1 | PROC CAS; |
| 2 | aStore.extract / |
| 3 | rstore={name="onnx_model_store"}; |
| 4 | RUN; |
Utiliza una tabla auxiliar para filtrar qué registros específicos del almacén analítico se deben extraer, útil en escenarios con múltiples versiones de modelos.
| 1 | PROC CAS; |
| 2 | /* 1. Crear tabla de filtro */ |
| 3 | dataStep.runCode / code="data casuser.filter_ids; length id 8; id=1; output; run;"; |
| 4 | |
| 5 | /* 2. Ejecutar extracción usando la tabla de filtro */ |
| 6 | aStore.extract / |
| 7 | rstore={ |
| 8 | name="onnx_model_store", |
| 9 | whereTable={ |
| 10 | name="filter_ids", |
| 11 | caslib="casuser", |
| 12 | vars={{name="id"}} |
| 13 | } |
| 14 | }; |
| 15 | RUN; |