La IA Generativa con Modelos de Lenguaje Grandes en .NET y C#

La IA Generativa con Modelos de Lenguaje Grandes en .NET y C#

La Inteligencia Artificial Generativa (GenAI) se ha consolidado como la tecnología de consumo de más rápido crecimiento en la historia, superando a gigantes como Instagram y TikTok al alcanzar 100 millones de usuarios en menos de dos meses. Este hito se marcó a finales de 2022 con el lanzamiento de la vista previa gratuita de GPT-3.5 por OpenAI, entregada como el cliente de chat conversacional ChatGPT. Este modelo, ajustado mediante Aprendizaje por Refuerzo a partir de la Retroalimentación Humana (RLHF), catapultó la GenAI a la conciencia pública. En respuesta, a principios de 2023, Microsoft lanzó Azure OpenAI Service, permitiendo a los desarrolladores aprovisionar y utilizar modelos compatibles con OpenAI de forma segura a través de endpoints gestionados por Azure.

Poco después, Microsoft introdujo herramientas clave para el ecosistema .NET:

  • Semantic Kernel (SK): Un conjunto de herramientas para orquestar prompts, memorias y plugins usando C# o Python.
  • Microsoft Extensions for AI (MEAI): Abstracciones unificadas para interactuar con modelos, como IChatClient.
  • Microsoft Extensions for Vector Data: Interfaces estándar para bases de datos vectoriales, esenciales en sistemas RAG (Generación Aumentada por Recuperación).
  • Este post se aleja de la vertiginosa innovación de la IA para centrarse en sus conceptos fundamentales, sentando las bases para desarrolladores .NET/C# que trabajan con Microsoft Foundry, GitHub Models, AI Extensions y entornos de ejecución locales como Ollama.

    Conceptos Fundamentales de la IA

    La IA tiene su propia terminología, con significados muy específicos:

    Inteligencia Artificial (IA)

    La IA abarca técnicas que permiten a las computadoras realizar tareas que normalmente requieren inteligencia humana, como el razonamiento, el lenguaje, la planificación o la percepción. Aunque no es nueva, hoy en día se asocia principalmente con la IA generativa.

    IA Generativa (GenAI)

    La GenAI se refiere a sistemas capaces de producir contenido como texto, imágenes o audio. Por ejemplo, GPT significa Generative Pre-trained Transformer, lo que implica que es Generativa (produce contenido), Pre-entrenada (en enormes conjuntos de datos) y utiliza una arquitectura Transformer (red neuronal para modelado de lenguaje de alta calidad).

    Grandes Modelos de Lenguaje (LLMs)

    Los LLMs se entrenan con miles de millones de tokens y pueden generar texto, imágenes, código o pasos de razonamiento. Su capacidad multilingüe proviene de aprender las relaciones semánticas entre palabras, no simples traducciones directas. Superan el desafío de la ambigüedad del lenguaje, operando en un espacio semántico donde «paso» puede significar cosas distintas según el contexto (ej. «pasar el coche» vs. «paso de montaña»).

    Tokens y Embeddings

    Los modelos no leen texto directamente; lo dividen en tokens (palabras enteras, fragmentos o caracteres). Estos tokens se convierten en vectores numéricos, conocidos como embeddings, que son representaciones matemáticas del significado. Los embeddings capturan diferencias sutiles de significado, incluso para la misma palabra en diferentes contextos (ej. «la actriz era una estrella» vs. «amaban las estrellas»). Los modelos generan texto navegando por este vasto espacio vectorial y prediciendo el siguiente vector más probable. La búsqueda semántica utiliza la distancia en el espacio de embeddings, no la coincidencia de cadenas de texto.

    Parámetros: Tamaño del Modelo

    Los LLMs se caracterizan por su número de parámetros (pesos entrenados), como 7B, 70B o 123B. Más parámetros significan mayor capacidad de razonamiento, conocimiento y matices. Por ejemplo, GPT-1 (2018) tenía 117 millones de parámetros, mientras que los modelos frontera modernos superan los 100-400 mil millones.

    Prompts, Instrucciones y Herramientas

    Estos términos describen la interacción directa con el modelo:

    • Prompts: La entrada del usuario al modelo (ej. «¿Cuál es la mejor forma de pelar un mango?»).
    • Instrucciones del sistema: Un «plan oculto» que guía el comportamiento del modelo (ej. «Eres un experto en pelar mangos»).
    • Herramientas / Funciones: Permiten a los LLMs, entrenados en datos históricos, acceder a información actual o autorizada (APIs de clima, bases de datos, motores de búsqueda). Este patrón se conoce como Generación Aumentada por Recuperación (RAG). Por ejemplo, un agente conserje puede usar una API meteorológica y una de restaurantes para encontrar opciones de cena al aire libre en noches secas. O un agente de servicio al cliente puede buscar información específica en manuales de productos utilizando una API de producto y vectores semánticos.
    • Protocolo de Contexto del Modelo (MCP): Un conjunto de estándares para la interoperabilidad entre agentes y herramientas, facilitando que los modelos comprendan y utilicen herramientas disponibles.

    ¿Y los Agentes?

    Un agente es una solución especializada que combina un modelo, herramientas y contexto. Un «agente conserje» podría incluir un modelo de razonamiento con herramientas para información meteorológica y de negocios, junto con un modelo para generar mapas. En futuras publicaciones se abordarán más a fondo las soluciones basadas en C# para agentes.

    De GPT-1 al Presente: La Evolución de la IA en .NET

    La evolución de la IA en .NET ha sido notable en los últimos años, con una constante adaptación a las innovaciones de la IA generativa.

    Gestión de Modelos en el Ecosistema .NET

    Trabajar con modelos de IA implica más que solo identificarlos y usarlos; muchas empresas optan por alojar sus propios modelos por seguridad, coste o la necesidad de personalizarlos. Afortunadamente, el ecosistema .NET y C# facilita esta tarea con varios productos y servicios:

    • GitHub Models

      Ofrece un catálogo alojado de modelos abiertos y frontera a través de una API compatible con OpenAI. Es ideal para desarrolladores que inician su viaje en la IA, ya que no requiere infraestructura y permite cambiar entre modelos con cambios mínimos de código, perfecto para prototipos, evaluaciones y pipelines CI/CD.

    • Microsoft Foundry (Nube)

      Anteriormente Azure AI Studio, es la plataforma empresarial para catálogos de modelos (OpenAI, Meta, Mistral, etc.), flujos de trabajo de agentes (Foundry Agent Service), seguridad, gobernanza, monitoreo, trazabilidad, evaluaciones, ajuste fino y personalización. Foundry es donde las organizaciones llevan la IA a producción a escala.

    • Foundry Local

      Extiende la experiencia de desarrollo de Foundry a entornos offline (on-premise, air-gapped o edge). Ofrece los mismos agentes, herramientas y evaluaciones que la versión en la nube y soporta un ciclo de vida híbrido («desarrollar localmente → desplegar en la nube»), ideal para pruebas de modelos y código sin grandes costes, y para CI/CD sin depender de cuentas alojadas de terceros.

    • Ollama (Tiempo de Ejecución Local)

      Un motor de código abierto popular para ejecutar modelos ligeros y de tamaño medio localmente (Mistral, Llama 3, Phi-3). Ofrece una CLI y un servidor sencillos, es excelente para flujos de trabajo sensibles a la privacidad y se integra limpiamente con MEAI (IChatClient) a través de OllamaSharp.

    Unificando el Desarrollo: Abstracción Consistente

    Como desarrollador .NET, no debería ser necesario elegir un único proveedor o quedar bloqueado en una solución específica. Por ello, el equipo de .NET ha invertido en un conjunto de extensiones que proporcionan APIs consistentes y flexibles para trabajar con modelos. Esto permite, por ejemplo, utilizar una instancia de IChatClient sin importar si se interactúa con GitHub Models, Azure AI Foundry, OpenAI/Azure OpenAI, Foundry Local, Ollama o un proveedor personalizado, manteniendo el mismo código base. Esto también facilita escenarios como el middleware para el registro, rastreo e inyección de comportamientos.

    Se profundizará en estas herramientas en futuras publicaciones del blog .NET, por lo que se invita a los desarrolladores a estar atentos, suscribirse al boletín y unirse a las próximas sesiones de la comunidad en el canal de YouTube de .NET.

Author: Enagora

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *