Twitter Flickr Pinterest LinkedIn YouTube Google Maps E-mail RSS
formats

De la Nube al escritorio. Uso de IA en local con ONNX Runtime y .NET

Anuncios

Hoy en día, la inteligencia artificial (IA) está al alcance de todos, y no siempre necesitas depender de Internet para aprovechar sus beneficios. En esta entrada, exploraremos cómo usar ONNX Runtime para ejecutar modelos de IA en tu ordenador local con .NET. Esta opción es ligera, flexible y completamente gratuita.

¿Qué es ONNX Runtime?

ONNX Runtime es una biblioteca optimizada que permite ejecutar modelos de IA en formato ONNX (Open Neural Network Exchange). Este formato es un estándar abierto que facilita la interoperabilidad entre diferentes plataformas y frameworks como TensorFlow y PyTorch.

Con ONNX Runtime, puedes ejecutar modelos de IA localmente en tu CPU o GPU, sin necesidad de enviar datos a servidores externos. Esto es ideal para aplicaciones que requieren procesamiento rápido, privacidad o independencia de la red.

¿Qué son los modelos ONNX?

Un modelo es una representación matemática de un sistema entrenado para realizar tareas específicas, como clasificación de imágenes, análisis de texto o detección de objetos. Los modelos en formato ONNX se construyen entrenando redes neuronales en frameworks como TensorFlow o PyTorch, y luego se exportan al formato ONNX para su uso en diferentes entornos.

Un modelo ONNX incluye:

  1. Estructura del modelo: Representa la arquitectura de la red (capas, conexiones, etc.).
  2. Pesos entrenados: Son los valores aprendidos durante el entrenamiento.
  3. Entradas y salidas: Define los formatos de los datos que el modelo puede procesar.

Ejemplo: Un modelo de clasificación de imágenes puede tomar como entrada una imagen y devolver una etiqueta que indica la clase de objeto en la imagen.


Ventajas de usar IA en local

  1. Privacidad: Los datos no se envían a terceros.
  2. Bajo costo: No necesitas pagar servicios en la nube.
  3. Latencia baja: Procesamiento rápido al no depender de Internet.
  4. Control total: Puedes personalizar el uso de los modelos.

Requisitos para empezar

  1. Sistema operativo compatible: Windows, macOS o Linux.
  2. .NET Framework o .NET Core: Para ejecutar código en VB.NET.
  3. ONNX Runtime: Descárgalo como paquete NuGet (Microsoft.ML.OnnxRuntime).
  4. Modelo ONNX: Puedes descargar modelos pre-entrenados desde ONNX Model Zoo.

Instalación de ONNX Runtime

  1. Abre tu proyecto en Visual Studio.
  2. Ve al Administrador de paquetes NuGet.
  3. Busca e instala el paquete Microsoft.ML.OnnxRuntime.

Cómo usar ONNX Runtime en VB.NET

Aquí tienes un ejemplo sencillo para ejecutar un modelo de IA y permitir que el usuario pase la pregunta como parámetro al ejecutar el programa:

Código de ejemplo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Imports Microsoft.ML.OnnxRuntime
Imports Microsoft.ML.OnnxRuntime.Tensors

Module Program
    Sub Main(args As String())
        Dim modelPath As String = "ruta_al_modelo.onnx"

        ' Verificar si hay parámetros de entrada
        If args.Length = 0 Then
            Console.WriteLine("Por favor, proporciona una pregunta como parámetro al ejecutar el programa.")
            Return
        End If

        Dim userInput As String = args(0)

        ' Crear una sesión de inferencia
        Using session As New InferenceSession(modelPath)
            Console.WriteLine("Modelo cargado exitosamente. Procesando entrada...")

            ' Crear entrada para el modelo (adaptar según el modelo utilizado)
            Dim inputTensor = New DenseTensor(Of Single)(ProcesarEntrada(userInput), New Integer() {1, userInput.Length})
            Dim inputs = New NamedOnnxValue() {NamedOnnxValue.CreateFromTensor("input", inputTensor)}

            ' Ejecutar el modelo
            Dim results = session.Run(inputs)

            ' Mostrar resultados
            For Each result In results
                Console.WriteLine("Respuesta del modelo: " & result.AsTensor(Of Single)().ToString())
            Next
        End Using
    End Sub

    ' Función para procesar la entrada del usuario y convertirla a datos numéricos
    Private Function ProcesarEntrada(input As String) As Single()
        ' Este es un ejemplo simple, adaptar según el modelo (por ejemplo, tokenización para texto)
        Return input.Select(Function(c) Convert.ToSingle(Asc(c))).ToArray()
    End Function
End Module

En este ejemplo:

  • El programa espera que el usuario pase una pregunta como argumento al ejecutar el archivo .exe.
  • Por ejemplo, puedes ejecutar el programa desde la línea de comandos así:
    MiPrograma.exe "¿Cuál es el clima hoy?"
    
  • El programa procesa la pregunta, la envía al modelo y muestra la respuesta generada.

Descarga de modelos

Visita ONNX Model Zoo para obtener modelos pre-entrenados. Algunos ejemplos populares incluyen:

  • Clasificación de imágenes: Modelos pequeños (±5-10 MB).
  • Procesamiento de texto: Modelos como GPT-2 (±500 MB).
  • Visión por computadora: Modelos de detección de objetos (±1-2 GB).

Consideraciones

  • Requisitos de hardware: Para modelos avanzados, una GPU acelera el procesamiento.
  • Preprocesamiento: Asegúrate de preparar las entradas según los requisitos del modelo.
  • Optimización: ONNX Runtime está optimizado para CPU y GPU, por lo que es eficiente incluso en máquinas sin hardware de alto rendimiento.

Conclusión

Usar IA en local con ONNX Runtime y .NET es una excelente alternativa para quienes buscan soluciones privadas, rápidas y sin costo continuo. Además, la flexibilidad del formato ONNX permite aprovechar modelos pre-entrenados de alta calidad para tareas como clasificación, generación de texto o detección de objetos.

¡Prueba esta opción y lleva tus proyectos de IA al siguiente nivel!

 

Anuncios
Home Sin categoría De la Nube al escritorio. Uso de IA en local con ONNX Runtime y .NET
© www.palentino.es, desde el 2012 - Un Blog para compartir conocimientos ...

Uso de cookies en mi sitio palentino.es

Este sitio web utiliza cookies para que tengamos la mejor experiencia de usuario. Si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de la política de cookies

ACEPTAR
Aviso de cookies