Page:
home/Razonamiento local con LLMs usando ONNX Runtime en C# y JAVA
Pages
Avances en Selenium IDE
Creación de pantallas Tutorial ISJ NET
Estimación de Tiempo Migración ISJ
Estimación de tiempo migración de Reporteria de ISJ
Herramientas de QA Playwright MCP
Implementaciones para C# Plawright
Modelos de GNU Health
Modelos de Usuario
Modelos del Sistema
Modernización del Sistema Winform ISJ
Paper GNUHealth Progreso
ProyectoBrandonTurcios
home
Índice de Modelos
No results
Table of Contents
Documentación del Demo GPT-2 con ONNX
Resumen
Este proyecto demuestra la generación de texto usando GPT-2 con ONNX Runtime en Java (GPT2Demo.java) y C# (Program.cs). Las implementaciones cargan un modelo preentrenado de GPT-2, tokenizan la entrada del usuario y generan texto iterativamente.
Descripción de Archivos
1. GPT2Demo.java (Implementación en Java)
Dependencias
ai.onnxruntime(API de Java para ONNX Runtime)com.fasterxml.jackson(parseo de JSON para el tokenizador)- Java NIO para operaciones con tensores
Componentes Clave
- Clase
GPT2Demo:- Carga el modelo ONNX y el tokenizador.
- Acepta entrada del usuario y genera 50 tokens de texto.
- Usa
softmaxysampleFromDistributionpara muestrear tokens.
- Clase
GPT2Tokenizer:- Carga el vocabulario desde
tokenizer.json. - Maneja codificación/decodificación con reemplazos para tokens especiales (ej.
Ġ→ espacio).
- Carga el vocabulario desde
Flujo de Trabajo
- Cargar modelo y tokenizador.
- Codificar la entrada del usuario en IDs de tokens.
- Generar tokens iterativamente:
- Construir tensores de entrada (
input_ids,attention_mask,position_ids). - Ejecutar inferencia mediante ONNX Runtime.
- Muestrear el siguiente token usando probabilidades ajustadas por temperatura.
- Construir tensores de entrada (
- Imprimir el texto generado.
2. Program.cs (Implementación en C#)
Dependencias
Microsoft.ML.OnnxRuntime(API de C# para ONNX Runtime)Newtonsoft.Json(parseo de JSON para el tokenizador)
Componentes Clave
- Clase
Program:- Replica la lógica de Java pero usa APIs específicas de C# (ej.
DenseTensor). - Implementa
SoftmaxySampleFromDistributioncon LINQ para eficiencia.
- Replica la lógica de Java pero usa APIs específicas de C# (ej.
- Clase
GPT2Tokenizer:- Carga el vocabulario y maneja codificación/decodificación similar a la versión en Java.
Flujo de Trabajo
- Inicialización del modelo y tokenizador.
- Codificación de tokens y generación iterativa:
- Usa
NamedOnnxValuepara entradas de tensores. - Muestrea tokens con filtrado top-k y ajuste de temperatura.
- Usa
Instrucciones de Configuración
Prerrequisitos
- Archivo del modelo ONNX:
model.onnx(colocar en la raíz del proyecto). - Archivo del tokenizador:
tokenizer.json(colocar en la raíz del proyecto). - Java:
- Añadir dependencias:
onnxruntime,jackson-databind.
- Añadir dependencias:
- C#:
- Instalar paquetes NuGet:
Microsoft.ML.OnnxRuntime,Newtonsoft.Json.
- Instalar paquetes NuGet:
Ejecución
- Java:
java -jar target/onnx-demo-1.0-SNAPSHOT.jar - C##:
dotnet run