Domando los Modelos de Lenguaje a través de TypeScript

Rate this content
Bookmark

Probablemente hayas jugado con bots como ChatGPT y los hayas utilizado para brainstorming. Tal vez hayas notado que obtener respuestas en la estructura o formato correcto ha sido un desafío. Como personas, eso está bien, pero los programas son mucho más quisquillosos. Hemos estado experimentando con el uso de TypeScript en sí mismo como una forma de guiar y validar las respuestas de los modelos de lenguaje.

FAQ

Daniel Rosenwasser es el gerente de programa en el equipo de TypeScript en Microsoft.

TypeChat es una biblioteca desarrollada por el equipo de TypeScript en Microsoft para facilitar la implementación de modelos de lenguaje en aplicaciones, permitiendo respuestas estructuradas en formato JSON que se alinean con tipos definidos.

TypeChat permite guiar a los modelos de lenguaje para que produzcan datos en un formato específico utilizando TypeScript, facilitando que las aplicaciones analicen y utilicen esta información de manera eficiente.

Utilizar JSON permite que las respuestas de los modelos de lenguaje sean fácilmente analizables y manejables por las aplicaciones, evitando la complejidad de analizar lenguaje natural.

Uno de los principales desafíos es obtener respuestas en un formato específico y consistente, dado que los modelos de lenguaje son no deterministas y pueden generar respuestas en formatos variables.

TypeChat utiliza los tipos definidos en TypeScript para validar las respuestas del modelo de lenguaje, asegurando que coincidan con el formato esperado y sean correctas.

Más información sobre TypeChat se puede encontrar en su repositorio de GitHub, donde los usuarios pueden acceder a ejemplos, discusiones y documentación adicional.

Daniel Rosenwasser
Daniel Rosenwasser
26 min
21 Sep, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

TypeChat es una biblioteca de código abierto que utiliza tipos de TypeScript para guiar y validar las respuestas de los modelos de lenguaje. Permite la creación de respuestas complejas y proporciona una forma de corregir errores en el modelo. Los programas de TypeChat permiten un mejor flujo de datos y la capacidad de referirse a pasos individuales. El ejemplo de matemáticas demuestra el uso de un traductor de programas y técnicas de metaprogramación para la seguridad de tipos. Los modelos de lenguaje entrenados tanto en código como en prosa funcionan bien en este contexto.

1. Introducción a TypeChat

Short description:

Hola a todos, mi nombre es Daniel Rosenwasser y soy el gerente de programa en el equipo de TypeScript en Microsoft. Hoy quiero hablarles sobre TypeChat, otra cosa en la que he estado trabajando recientemente con otros miembros de mi equipo. En los últimos meses, probablemente hayan visto mucho sobre inteligencia artificial y modelos de lenguaje grandes. Estos modelos de lenguaje son muy poderosos y es posible que hayan tenido la idea de intentar incorporar la inteligencia de uno de estos modelos de lenguaje en su aplicación, tal vez para agregar una interfaz de lenguaje natural de alguna manera.

Hola a todos, mi nombre es Daniel Rosenwasser y soy el gerente de programa en el equipo de TypeScript en Microsoft. Hoy quiero hablarles sobre TypeChat, otra cosa en la que he estado trabajando recientemente con otros miembros de mi equipo. Entonces, en los últimos meses, probablemente hayan visto mucho sobre inteligencia artificial y modelos de lenguaje grandes. Estos modelos de lenguaje son muy poderosos y probablemente hayan tenido la oportunidad de usarlos en forma de algo como ChatGBT o un programa de chat similar donde pueden hacerle preguntas al modelo, y este puede darles respuestas, pueden iterar a través de ideas y es una excelente manera de iterar creativamente a través de conceptos y demás. Eso funciona muy bien para las personas, pero estos modelos de lenguaje son muy poderosos y es posible que hayan tenido la idea de intentar incorporar la inteligencia de uno de estos modelos de lenguaje en su aplicación, tal vez para agregar una interfaz de lenguaje natural de alguna manera. Entonces, como ejemplo, supongamos que tenemos alguna aplicación que debe ayudarnos a planificar planes para un día, planes para el fin de semana, tal vez específicos de una ubicación. No parece impracticable dado el hecho de que estos modelos han sido entrenados con tanta data en el mundo, por lo que podrían saber mucho sobre Seattle u otra ciudad.

2. Uso de tipos de TypeScript para guiar modelos de lenguaje

Short description:

En esta aplicación, quieres obtener datos de modelos de lenguaje. Sin embargo, los modelos de lenguaje a menudo producen datos que no son fáciles de analizar. Puedes hacer que los modelos de lenguaje respondan en JSON, pero no siempre coincidirá con el formato esperado. Los tipos de TypeScript pueden guiar al modelo de lenguaje y proporcionar el formato deseado. Sin embargo, el modelo de lenguaje aún puede producir respuestas que no se ajusten exactamente. Se necesita validación para hacer que la IA intente nuevamente.

estás tratando de buscar ideas para. En esta aplicación, tal vez solo queremos poder hacerle una pregunta, esa es nuestra intención de usuario, y luego obtener un conjunto de resultados con un par de lugares y cada una de sus descripciones también. Entonces eso parece estar bien, pero ¿cómo harías para que uno de estos modelos de lenguaje produzca data que puedas usar en esta aplicación? Lo que puedes haber notado al intentar hacer algo así es que terminas tratando de mimar a la IA para que la dé en un formato específico, y incluso una vez que está en ese formato, genera un lenguaje natural que no siempre será fácil de analizar. Por ejemplo, aquí hay una solicitud y una respuesta que tomó un par de intentos para obtener algo razonable, ¿verdad? Una de las cosas que puedes notar es que termino tratando de darle un poco de orientación sobre cómo espero que sea la respuesta, ¿verdad? Esto no es tan malo, ¿verdad? Pero principalmente porque ha dado una respuesta regular en un formato específico. Y así me ha dado un formato de elementos de lista. Cada uno de ellos está numerado. Y luego entre el lugar y la descripción, tengo dos puntos. Ahora, ¿la IA siempre va a volver con ese esquema o formato? No necesariamente. Muchos de estos modelos de lenguaje son no deterministas. Entonces realmente no puedes contar con este formato. Pero incluso si pudieras contar con ese formato, no siempre puedes confiar en que el data se pueda analizar de manera uniforme, ¿verdad? Por ejemplo, en este caso, tengo una lista y todo está en este formato. ¿Qué tal si intentamos dividir por los dos puntos, ¿verdad? Podrías intentar decir, déjame intentar quitar cada uno de los números y luego dividir por los dos puntos. Pero ¿qué pasa si uno de los elementos de tu lista tiene dos puntos dentro del título o algo así, ¿verdad? Básicamente estás tratando de analizar lenguaje natural en este punto, ¿verdad? Y ahora tienes un error, y ahora tienes que averiguar cómo ser resistente a eso. Y así esto termina siendo un poco impráctico para la mayoría de las personas, ¿verdad? Es muy difícil analizar lenguaje natural. Pero muchos de ustedes probablemente también se dieron cuenta de que pueden hacer que los modelos de lenguaje respondan en forma de JSON. Y eso es genial, ¿verdad? Ahora realmente tienes algo que tu aplicación puede analizar fácilmente con JSON.parse o lo que sea, y obtener los datos que necesitas y trabajar a partir de eso. Pero eso realmente solo funciona para ejemplos simples, ¿verdad? Aquí pude decir, aquí hay un ejemplo del JSON que quiero obtener, ¿verdad? Tengo un lugar y una descripción, un lugar y una descripción. Y la IA es bastante buena para entender eso. Pero no nos dice acerca de propiedades opcionales, tal vez el caso en el que tienes tres tipos diferentes de objetos que esperas que estén en una posición específica, cosas así. Y así, solo dar ejemplos sería impráctico porque te meterías en estas explosiones combinatorias de todos los tipos de cosas que realmente querrías proporcionar. Los ejemplos no son suficientes. Lo que necesitas es algo un poco más. Y resulta que hay un formato que funciona bastante bien, en su mayor parte, en nuestra experiencia. Y es algo con lo que todos ustedes están familiarizados aquí en esta conferencia de TypeScript, que son los tipos. Los tipos de TypeScript son en realidad un gran formato para describir el formato exacto que queremos de un modelo de lenguaje y todas las formas en las que esperamos. Entonces, los tipos son realmente buenos para guiar al modelo de lenguaje hacia lo que queremos, ¿verdad? Y en realidad puedes tomar los tipos en una aplicación, como el texto real de los tipos en tu programa, tomar una intención de usuario y crear una solicitud que puedes enviar a un servicio de IA, a un modelo de lenguaje. Y eso te proporcionará JSON, Dirías, dame una respuesta en forma de JSON, aquí está el tipo al que debes cumplir cuando proporciones esa respuesta. Y así, ahora puedes guiar al modelo de lenguaje.

Pero como dije, el modelo de lenguaje no siempre va a regresar con una respuesta que sea exactamente como esperamos, ¿verdad? Tal vez regrese con JSON, pero no es del formato precisamente, ¿verdad? Siempre podemos decir, oye, no me diste el JSON correcto, inténtalo de nuevo. Pero necesitas algo más que empuje a una IA para que puedas decir

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

TypeScript y React: Secretos de un matrimonio feliz
React Advanced Conference 2022React Advanced Conference 2022
21 min
TypeScript y React: Secretos de un matrimonio feliz
Top Content
TypeScript y React son inseparables. ¿Cuál es el secreto de su exitosa unión? Bastante código extrañamente extraño. Aprende por qué useRef siempre se siente extraño, cómo manejar los genéricos en los hooks personalizados y cómo los tipos de unión pueden transformar tus componentes.
Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top Content
Seamos realistas: la deuda técnica es inevitable y reescribir tu código cada 6 meses no es una opción. La refactorización es un tema complejo que no tiene una solución única para todos. Las aplicaciones de frontend son particularmente sensibles debido a los frecuentes cambios de requisitos y flujos de usuario. Nuevas abstracciones, patrones actualizados y limpieza de esas viejas funciones - todo suena genial en papel, pero a menudo falla en la práctica: los todos se acumulan, los tickets terminan pudriéndose en el backlog y el código legado aparece en cada rincón de tu base de código. Por lo tanto, un proceso de refactorización continua es la única arma que tienes contra la deuda técnica.En los últimos tres años, he estado explorando diferentes estrategias y procesos para refactorizar el código. En esta charla describiré los componentes clave de un marco para abordar la refactorización y compartiré algunos de los aprendizajes acumulados en el camino. Espero que esto te ayude en tu búsqueda de mejorar la calidad del código de tus bases de código.

Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Como desarrolladores, pasamos gran parte de nuestro tiempo depurando aplicaciones, a menudo código que ni siquiera escribimos. Lamentablemente, a pocos desarrolladores se les ha enseñado cómo abordar la depuración, es algo que la mayoría de nosotros aprendemos a través de la experiencia dolorosa. La buena noticia es que _puedes_ aprender a depurar de manera efectiva, y hay varias técnicas y herramientas clave que puedes usar para depurar aplicaciones de JS y React.
Los tipos más útiles de React
React Day Berlin 2023React Day Berlin 2023
21 min
Los tipos más útiles de React
Top Content
No pensamos en React como si tuviera sus propios tipos. Pero los tipos de React son una parte fundamental del marco de trabajo - supervisados por el equipo de React, y coordinados con las principales lanzamientos de React.En esta charla de codificación en vivo, veremos todos los tipos que te has estado perdiendo. ¿Cómo obtienes el tipo de props de un componente? ¿Cómo sabes qué ref toma un componente? ¿Deberías usar React.FC? ¿Y qué pasa con JSX.Element?Te irás con un montón de ideas emocionantes para llevar a tus aplicaciones de React, y esperamos que con una nueva apreciación por las maravillas de React y TypeScript trabajando juntos.
Construyendo un Asistente AI Activado por Voz con Javascript
JSNation 2023JSNation 2023
21 min
Construyendo un Asistente AI Activado por Voz con Javascript
Top Content
En esta charla, construiremos nuestro propio Jarvis utilizando Web APIs y langchain. Habrá codificación en vivo.
Solucionando Problemas de Rendimiento en React
React Advanced Conference 2023React Advanced Conference 2023
22 min
Solucionando Problemas de Rendimiento en React
Top Content
Next.js y otros marcos de trabajo que envuelven a React proporcionan un gran poder en la construcción de aplicaciones más grandes. Pero con gran poder viene una gran responsabilidad de rendimiento - y si no prestas atención, es fácil añadir varios segundos de penalización de carga en todas tus páginas. ¡Vaya! Vamos a recorrer un estudio de caso de cómo unas pocas horas de depuración de rendimiento mejoraron tanto los tiempos de carga como los de análisis para la aplicación Centered en varios cientos por ciento cada uno. Aprenderemos no solo por qué ocurren esos problemas de rendimiento, sino cómo diagnosticarlos y solucionarlos. ¡Viva el rendimiento! ⚡️

Workshops on related topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Mejores Prácticas y Consejos Avanzados de TypeScript para Desarrolladores de React
React Advanced Conference 2022React Advanced Conference 2022
148 min
Mejores Prácticas y Consejos Avanzados de TypeScript para Desarrolladores de React
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
¿Eres un desarrollador de React tratando de obtener los máximos beneficios de TypeScript? Entonces esta es la masterclass para ti.En esta masterclass interactiva, comenzaremos desde lo básico y examinaremos los pros y contras de las diferentes formas en que puedes declarar componentes de React usando TypeScript. Después de eso, pasaremos a conceptos más avanzados donde iremos más allá de la configuración estricta de TypeScript. Aprenderás cuándo usar tipos como any, unknown y never. Exploraremos el uso de predicados de tipo, guardias y comprobación exhaustiva. Aprenderás sobre los tipos mapeados incorporados, así como cómo crear tus propias utilidades de mapa de tipo nuevo. Y comenzaremos a programar en el sistema de tipos de TypeScript usando tipos condicionales e inferencia de tipos.
Trabajando con OpenAI y la Ingeniería de Prompts para Desarrolladores de React
React Advanced Conference 2023React Advanced Conference 2023
98 min
Trabajando con OpenAI y la Ingeniería de Prompts para Desarrolladores de React
Top Content
Workshop
Richard Moss
Richard Moss
En esta masterclass daremos un recorrido por la IA aplicada desde la perspectiva de los desarrolladores de front end, enfocándonos en las mejores prácticas emergentes cuando se trata de trabajar con LLMs para construir grandes productos. Esta masterclass se basa en los aprendizajes obtenidos al trabajar con la API de OpenAI desde su debut en noviembre pasado para construir un MVP funcional que se convirtió en PowerModeAI (una herramienta de creación de ideas y presentaciones orientada al cliente).
En la masterclass habrá una mezcla de presentación y ejercicios prácticos para cubrir temas que incluyen:
- Fundamentos de GPT- Trampas de los LLMs- Mejores prácticas y técnicas de ingeniería de prompts- Uso efectivo del playground- Instalación y configuración del SDK de OpenAI- Enfoques para trabajar con la API y la gestión de prompts- Implementación de la API para construir una aplicación orientada al cliente potenciada por IA- Ajuste fino y embeddings- Mejores prácticas emergentes en LLMOps
Consejos y Trucos Profundos de TypeScript
Node Congress 2024Node Congress 2024
83 min
Consejos y Trucos Profundos de TypeScript
Top Content
Workshop
Josh Goldberg
Josh Goldberg
TypeScript tiene un sistema de tipos poderoso con todo tipo de características sofisticadas para representar estados de JavaScript salvajes y extravagantes. Pero la sintaxis para hacerlo no siempre es sencilla, y los mensajes de error no siempre son precisos al decirte qué está mal. Vamos a profundizar en cómo funcionan muchas de las características más poderosas de TypeScript, qué tipos de problemas del mundo real resuelven, y cómo dominar el sistema de tipos para que puedas escribir código TypeScript verdaderamente excelente.
Construyendo una Aplicación de Shopify con React & Node
React Summit Remote Edition 2021React Summit Remote Edition 2021
87 min
Construyendo una Aplicación de Shopify con React & Node
Top Content
WorkshopFree
Jennifer Gray
Hanna Chen
2 authors
Los comerciantes de Shopify tienen un conjunto diverso de necesidades, y los desarrolladores tienen una oportunidad única para satisfacer esas necesidades construyendo aplicaciones. Construir una aplicación puede ser un trabajo duro, pero Shopify ha creado un conjunto de herramientas y recursos para ayudarte a construir una experiencia de aplicación sin problemas lo más rápido posible. Obtén experiencia práctica construyendo una aplicación integrada de Shopify utilizando el CLI de la aplicación Shopify, Polaris y Shopify App Bridge.Te mostraremos cómo crear una aplicación que acceda a la información de una tienda de desarrollo y pueda ejecutarse en tu entorno local.