SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
abstracta.us
Testing de
aplicaciones basadas
en LLMs
Federico Toledo
federico@abstracta.us
abstracta.us
abstracta.us/blog
federico-toledo.com
About me
Mabl
/ USA
#QSConf2023
+20 November 9th & 10th
2 SPEAKERS TRACKS | ONLINE + IN PERSON
International thought
leaders
Free for attendees!
Call for Sponsors is open
Call for Speakers opens soon
abstracta.us
02. Enfoques de testing aplicables
03. Test de regresión y observabilidad
04. Conclusiones y desafíos
Agenda
01. Apps que usan LLMs
abstracta.us
01.
Apps que usan LLMs
abstracta.us
● Inteligencia Artificial Generativa
● ChatGPT
○ Creado por OpenAI
○ Ecosistema con Whisper, Dall-e, etc
Large Language Models
abstracta.us
Modo conversacional
● https://chat.openai.com/
● Permite conservar contexto
ChatGPT
abstracta.us
Provee una API para integrar ChatGPT en tus sistemas.
ChatGPT
Sistema bajo pruebas
1. Obtiene información contextual
2. Invoca prompt
3. Obtiene respuesta, procesa y presenta
abstracta.us
Importante:
Esto cambió recientemente,
hay posibilidad de que la API
mantenga threads de
conversación y contexto.
ChatGPT
Provee una API para integrar ChatGPT en tus sistemas.
Importante:
La API no tiene memoria del
contexto, el programador
debe gestionarlo.
abstracta.us
Temperatura
abstracta.us
Ayuda a tener respuestas más determinísticas
Si se envía, el sistema hará lo posible para generar la misma
respuesta ante la misma pregunta y los mismos parámetros
La respuesta retorna system_fingerprint. Sirve para detectar
cambios en el modelo junto con el parámetro seed
Aún en beta
Seed
abstracta.us
Máximo de tokens (parámetro max_tokens)
● Se suman los tokens del prompt y de la respuesta.
● En el chat, también cuentan los tokens de toda la
conversación.
● Reducir el máximo controla costos pero puede
truncar respuestas.
Tokenizing:
● El texto dado a ChatGPT se divide en tokens.
● Por ejemplo, "ChatGPT es mágico!" se divide en
estos tokens:
● Tokenizer: https://platform.openai.com/tokenizer
Tokens
abstracta.us
● https://home.testcraft.app/
● https://github.com/TestCraft-App
● https://twitter.com/TestCraftApp
Funcionalidades
● Test ideas
● Test automation
● Accessibility
Caso de estudio:
TestCraft
abstracta.us
Caso de estudio:
TestCraft
abstracta.us
02.
Enfoques de
testing aplicables
abstracta.us
Enfoques de
Caja Negra
abstracta.us
Foco en distintos
Factores de calidad
Enfoques de Caja Negra
abstracta.us
Foco en distintos
Factores de calidad
Mantenibilidad
● ¿Cómo estamos estructurando esos prompts?
¿Son legibles y fáciles de entender?
● ¿Se están versionando los prompts junto con el
código?
● ¿Qué tanto tuvimos que ajustar al pasar de
gpt-3 a gpt-4?
abstracta.us
Performance y fiabilidad
● ¿Qué pasa si el servicio de OpenAI está caído o anda lento?
● ¿Qué tan rápido puedo llegar a consultarlo? ¿Hay algún tope
de requests por segundo?
Seguridad
● ¿Estamos enviando datos sensibles?
● ¿Podría llegar a sugerir contenido indebido?
● ¿La aplicación se protege de prompt injection?
Foco en distintos
Factores de calidad
abstracta.us
Prompt Injection
Ataque ganando control sobre el output del texto
generado por ChatGPT
● Goal hijacking
● Prompt leaking
Sucede cuando el input del usuario se concatena
directo al prompt
abstracta.us
Heurísticas
y técnicas de pruebas
Enfoques de Caja Negra
in stock
State
checked out
State
checked in
State
lost
State
check out
remind
check in
write off
abstracta.us
● Mindmaps
● Partición de equivalencias y valores límite
● Combinación por pares
● Tablas y árboles de decisión
● Matrices de prueba
● Máquinas de estado
● Grafos causa-efecto
● SFDIPOT
● FEW HICCUPPS
● …
Lectura recomendada:
https://federico-toledo.com/
Heurísticas y técnicas
de pruebas
Desafío:
● El valor esperado no es predecible
abstracta.us
Análisis de calidad
sobre el texto
Enfoques de Caja Negra
abstracta.us
¿Cuáles son las características deseadas de la
respuesta obtenida?
● Coherencia
● Completitud
● Consistencia
● Fiabilidad
● Relevancia / Valor
● Originalidad / Creatividad
● Claridad, no ambigüedad
● Adecuación - no usar lenguaje inapropiado
● Respuesta concisa - que no sean 10 páginas
● Alineación al objetivo (¿realmente es útil?)
Calidad de texto
abstracta.us
Enfoques de
Caja Blanca
abstracta.us
Enfoques de Caja Blanca
Pruebas estáticas
y unitarias al prompt
abstracta.us
● ¿Es tarea de testing?
● Análisis estático del prompt
● Probar variantes
○ ¿Cómo saber si encontramos una versión mejor, de mejor
calidad?
Revisar y probar el prompt
abstracta.us
● No es lo mismo probar el prompt en la web de ChatGPT que
por la API.
● Es importante probar contra la misma versión del modelo.
● Hay que tener en cuenta los parámetros usados (por ejemplo,
temperatura, máximo de tokens).
● Herramientas
○ Playground: https://platform.openai.com/playground
○ Postman
○ Scripts propios
Consideraciones al probar prompts
abstracta.us
● Revisión y experimentación con el prompt
● Revisar el código mirando:
○ ¿Cómo se procesan las entradas?
○ ¿Cómo se confecciona el prompt?
○ ¿Qué parámetros se están usando? (temperatura, max tokens, etc)
○ ¿Cómo se procesa la respuesta de ChatGPT?
Revisión de código
Análisis de in/out
abstracta.us
Enfoques de Caja Blanca
Pruebas de
integración
abstracta.us
Mock del servicio de OpenAI
● Mecanismo que nos permitirá probar distintas
respuestas o situaciones.
● Servicio caído
● Mensajes de error (ver documentación de error
codes).
● Casos borde (respuesta vacía, respuesta con
máximo de tokens, o con más del máximo por si
este cambiase a futuro).
● ¿Cómo se implementa?
● SoapUI service mocking
● WireMock
● Es importante que el sistema permita configurar la URL
del endpoint usado.
Pruebas de integración
abstracta.us
03.
Testing de regresión y
Observabilidad
abstracta.us
● Problema
○ Al querer actualizar el modelo (de gpt 3.5 a 4) o si encuentro un
error que me hace cambiar el prompt, ese ajuste me puede afectar
el resto de componentes.
○ ¿Cómo validar que no hay regresiones?
○ ¿Cómo automatizar ese test de regresión?
Test de regresión
abstracta.us
● Framework de OpenAI para evaluar LLMs o tools que usan LLMs
● Basicamente son test sets!
● Son simples de crear y no requieren código
● Incluye un registro open-source de evals desafiantes
● Cuenta con templates básicos y avanzados (usando otro prompt)
Lectura recomendada:
● Decoding OpenAI Evals
Test de regresión con Evals
abstracta.us
Basic Eval Templates
● Input_prompt
● Ideal_answers
● Se genera el output y se compara (con algún mecanismo de evaluación) con las ideal_answers
Test de regresión con Evals
abstracta.us
Model-Graded Eval Templates
● Input_prompt
● Ideal_answers
● Se genera el output y se compara con las ideal_answers a través de otro prompt a un LLM
Test de regresión con Evals
abstracta.us
● Problema
○ Al interactuar con ChatGPT pierdo control de la respuesta que se
da. No tengo control por el contenido, la utilidad o precisión, ni el
costo ni la performance.
○ ¿Cómo ver qué pasó?
Observabilidad
● Observabilidad
○ Métricas
○ Trazas
○ Logs
Lectura recomendada:
○ Monitor OpenAI with Datadog
abstracta.us
04.
Conclusiones y desafíos
abstracta.us
● Chatbots
● Sistemas que usan un LLM como servicio
● Sistemas que usan una cadena de AIs y servicios
● Sistemas copilotos
● Interfaces conversacionales
Testing con mayor foco en preparación de datos y
revisión de resultados no determinísticos
La observabilidad del sistema bajo pruebas va a ser
clave
¿Cómo serán los sistemas que
vamos a probar en los próximos
años?
Sistema bajo
pruebas
abstracta.us
Testing de
aplicaciones basadas
en LLMs
Federico Toledo
federico@abstracta.us
¡Gracias!

Más contenido relacionado

Similar a Probando aplicaciones basadas en LLMs.pdf

Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & CucumberAutomatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & CucumberSoftware Guru
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloGastón Guillerón
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollogabrielpiccoli
 
Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasCarlos Camacho
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesJobsket
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?TestingUy
 
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...Federico Toledo
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoFinizens
 
Tuenti - de la idea a la web
Tuenti -  de la idea a la webTuenti -  de la idea a la web
Tuenti - de la idea a la webTuenti
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaremat3matik
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryynelly
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16Ramon
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de softwareMarilupe
 
Ingen de software
Ingen de softwareIngen de software
Ingen de softwareerikapoh
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaresamantha
 

Similar a Probando aplicaciones basadas en LLMs.pdf (20)

Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & CucumberAutomatización de pruebas con Selenium, Typescript, Protractor & Cucumber
Automatización de pruebas con Selenium, Typescript, Protractor & Cucumber
 
Pucela testingdays testing_en_php
Pucela testingdays testing_en_phpPucela testingdays testing_en_php
Pucela testingdays testing_en_php
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para Desarrollo
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollo
 
Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - Sistemas
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
 
Dentro de un Backend
Dentro de un BackendDentro de un Backend
Dentro de un Backend
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
 
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...
 
Effective Network Layer: API lovers and Apps
Effective Network Layer: API lovers and AppsEffective Network Layer: API lovers and Apps
Effective Network Layer: API lovers and Apps
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológico
 
Tuenti - de la idea a la web
Tuenti -  de la idea a la webTuenti -  de la idea a la web
Tuenti - de la idea a la web
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryy
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de software
 
Ingen de software
Ingen de softwareIngen de software
Ingen de software
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Clase 11
Clase 11Clase 11
Clase 11
 

Más de Federico Toledo

Pasado, presente y futuro del testing en Latinoamérica
Pasado, presente y futuro del testing en  LatinoaméricaPasado, presente y futuro del testing en  Latinoamérica
Pasado, presente y futuro del testing en LatinoaméricaFederico Toledo
 
QA or the Highway - Extra-functional testing, improve how you observe the sys...
QA or the Highway - Extra-functional testing, improve how you observe the sys...QA or the Highway - Extra-functional testing, improve how you observe the sys...
QA or the Highway - Extra-functional testing, improve how you observe the sys...Federico Toledo
 
Invitación a sponsors - Quality Sense Conf 23.pdf
Invitación a sponsors - Quality Sense Conf 23.pdfInvitación a sponsors - Quality Sense Conf 23.pdf
Invitación a sponsors - Quality Sense Conf 23.pdfFederico Toledo
 
How do you help motivate testers?
How do you help motivate testers?How do you help motivate testers?
How do you help motivate testers?Federico Toledo
 
Low code for test automation, state of the art
Low code for test automation, state of the artLow code for test automation, state of the art
Low code for test automation, state of the artFederico Toledo
 
¿Qué hacer ante la falta de personal calificado en IT?
¿Qué hacer ante la falta de personal calificado en IT?¿Qué hacer ante la falta de personal calificado en IT?
¿Qué hacer ante la falta de personal calificado en IT?Federico Toledo
 
TSQA - Improving test automation code and strategy
TSQA - Improving test automation code and strategyTSQA - Improving test automation code and strategy
TSQA - Improving test automation code and strategyFederico Toledo
 
Comunicación Segura y Efectiva en Testing
Comunicación Segura y Efectiva en TestingComunicación Segura y Efectiva en Testing
Comunicación Segura y Efectiva en TestingFederico Toledo
 
Testing Day Bolivia - Formar testers desde cero
Testing Day Bolivia - Formar testers desde ceroTesting Day Bolivia - Formar testers desde cero
Testing Day Bolivia - Formar testers desde ceroFederico Toledo
 
Low Code Test Automation - Jornadas de Ingeniería de Software 2021
Low Code Test Automation - Jornadas de Ingeniería de Software 2021Low Code Test Automation - Jornadas de Ingeniería de Software 2021
Low Code Test Automation - Jornadas de Ingeniería de Software 2021Federico Toledo
 
Los errores del 2020 - Argentesting 2021
Los errores del 2020 - Argentesting 2021Los errores del 2020 - Argentesting 2021
Los errores del 2020 - Argentesting 2021Federico Toledo
 
¿Cómo mejorar la calidad de tu automatización?
¿Cómo mejorar la calidad de tu automatización?¿Cómo mejorar la calidad de tu automatización?
¿Cómo mejorar la calidad de tu automatización?Federico Toledo
 
Shift left and shift right performance testing
Shift left and shift right performance testingShift left and shift right performance testing
Shift left and shift right performance testingFederico Toledo
 
Ask me anything - ReconverTIte
Ask me anything - ReconverTIteAsk me anything - ReconverTIte
Ask me anything - ReconverTIteFederico Toledo
 
Webinar: Migrar el testing a open source
Webinar: Migrar el testing a open sourceWebinar: Migrar el testing a open source
Webinar: Migrar el testing a open sourceFederico Toledo
 
Webinar: Estrategias para optimizar los costos de testing
Webinar: Estrategias para optimizar los costos de testingWebinar: Estrategias para optimizar los costos de testing
Webinar: Estrategias para optimizar los costos de testingFederico Toledo
 
Cómo revisar tu estrategia de pruebas? Meetup de QA & Testing en Chile
Cómo revisar tu estrategia de pruebas? Meetup de QA & Testing en ChileCómo revisar tu estrategia de pruebas? Meetup de QA & Testing en Chile
Cómo revisar tu estrategia de pruebas? Meetup de QA & Testing en ChileFederico Toledo
 
Neotys PAC - Adding Performance Verifications in Continuous Delivery
Neotys PAC - Adding Performance Verifications in Continuous DeliveryNeotys PAC - Adding Performance Verifications in Continuous Delivery
Neotys PAC - Adding Performance Verifications in Continuous DeliveryFederico Toledo
 
Taller de Gestión del Tiempo para ReconverTIte
Taller de Gestión del Tiempo para ReconverTIteTaller de Gestión del Tiempo para ReconverTIte
Taller de Gestión del Tiempo para ReconverTIteFederico Toledo
 
TestingUY 2019 - Testing en tiempos revueltos, técnicas de autogestión
TestingUY 2019 - Testing en tiempos revueltos, técnicas de autogestiónTestingUY 2019 - Testing en tiempos revueltos, técnicas de autogestión
TestingUY 2019 - Testing en tiempos revueltos, técnicas de autogestiónFederico Toledo
 

Más de Federico Toledo (20)

Pasado, presente y futuro del testing en Latinoamérica
Pasado, presente y futuro del testing en  LatinoaméricaPasado, presente y futuro del testing en  Latinoamérica
Pasado, presente y futuro del testing en Latinoamérica
 
QA or the Highway - Extra-functional testing, improve how you observe the sys...
QA or the Highway - Extra-functional testing, improve how you observe the sys...QA or the Highway - Extra-functional testing, improve how you observe the sys...
QA or the Highway - Extra-functional testing, improve how you observe the sys...
 
Invitación a sponsors - Quality Sense Conf 23.pdf
Invitación a sponsors - Quality Sense Conf 23.pdfInvitación a sponsors - Quality Sense Conf 23.pdf
Invitación a sponsors - Quality Sense Conf 23.pdf
 
How do you help motivate testers?
How do you help motivate testers?How do you help motivate testers?
How do you help motivate testers?
 
Low code for test automation, state of the art
Low code for test automation, state of the artLow code for test automation, state of the art
Low code for test automation, state of the art
 
¿Qué hacer ante la falta de personal calificado en IT?
¿Qué hacer ante la falta de personal calificado en IT?¿Qué hacer ante la falta de personal calificado en IT?
¿Qué hacer ante la falta de personal calificado en IT?
 
TSQA - Improving test automation code and strategy
TSQA - Improving test automation code and strategyTSQA - Improving test automation code and strategy
TSQA - Improving test automation code and strategy
 
Comunicación Segura y Efectiva en Testing
Comunicación Segura y Efectiva en TestingComunicación Segura y Efectiva en Testing
Comunicación Segura y Efectiva en Testing
 
Testing Day Bolivia - Formar testers desde cero
Testing Day Bolivia - Formar testers desde ceroTesting Day Bolivia - Formar testers desde cero
Testing Day Bolivia - Formar testers desde cero
 
Low Code Test Automation - Jornadas de Ingeniería de Software 2021
Low Code Test Automation - Jornadas de Ingeniería de Software 2021Low Code Test Automation - Jornadas de Ingeniería de Software 2021
Low Code Test Automation - Jornadas de Ingeniería de Software 2021
 
Los errores del 2020 - Argentesting 2021
Los errores del 2020 - Argentesting 2021Los errores del 2020 - Argentesting 2021
Los errores del 2020 - Argentesting 2021
 
¿Cómo mejorar la calidad de tu automatización?
¿Cómo mejorar la calidad de tu automatización?¿Cómo mejorar la calidad de tu automatización?
¿Cómo mejorar la calidad de tu automatización?
 
Shift left and shift right performance testing
Shift left and shift right performance testingShift left and shift right performance testing
Shift left and shift right performance testing
 
Ask me anything - ReconverTIte
Ask me anything - ReconverTIteAsk me anything - ReconverTIte
Ask me anything - ReconverTIte
 
Webinar: Migrar el testing a open source
Webinar: Migrar el testing a open sourceWebinar: Migrar el testing a open source
Webinar: Migrar el testing a open source
 
Webinar: Estrategias para optimizar los costos de testing
Webinar: Estrategias para optimizar los costos de testingWebinar: Estrategias para optimizar los costos de testing
Webinar: Estrategias para optimizar los costos de testing
 
Cómo revisar tu estrategia de pruebas? Meetup de QA & Testing en Chile
Cómo revisar tu estrategia de pruebas? Meetup de QA & Testing en ChileCómo revisar tu estrategia de pruebas? Meetup de QA & Testing en Chile
Cómo revisar tu estrategia de pruebas? Meetup de QA & Testing en Chile
 
Neotys PAC - Adding Performance Verifications in Continuous Delivery
Neotys PAC - Adding Performance Verifications in Continuous DeliveryNeotys PAC - Adding Performance Verifications in Continuous Delivery
Neotys PAC - Adding Performance Verifications in Continuous Delivery
 
Taller de Gestión del Tiempo para ReconverTIte
Taller de Gestión del Tiempo para ReconverTIteTaller de Gestión del Tiempo para ReconverTIte
Taller de Gestión del Tiempo para ReconverTIte
 
TestingUY 2019 - Testing en tiempos revueltos, técnicas de autogestión
TestingUY 2019 - Testing en tiempos revueltos, técnicas de autogestiónTestingUY 2019 - Testing en tiempos revueltos, técnicas de autogestión
TestingUY 2019 - Testing en tiempos revueltos, técnicas de autogestión
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 

Último (19)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 

Probando aplicaciones basadas en LLMs.pdf

  • 1. abstracta.us Testing de aplicaciones basadas en LLMs Federico Toledo federico@abstracta.us
  • 3. Mabl / USA #QSConf2023 +20 November 9th & 10th 2 SPEAKERS TRACKS | ONLINE + IN PERSON International thought leaders Free for attendees! Call for Sponsors is open Call for Speakers opens soon
  • 4. abstracta.us 02. Enfoques de testing aplicables 03. Test de regresión y observabilidad 04. Conclusiones y desafíos Agenda 01. Apps que usan LLMs
  • 6. abstracta.us ● Inteligencia Artificial Generativa ● ChatGPT ○ Creado por OpenAI ○ Ecosistema con Whisper, Dall-e, etc Large Language Models
  • 8. abstracta.us Provee una API para integrar ChatGPT en tus sistemas. ChatGPT Sistema bajo pruebas 1. Obtiene información contextual 2. Invoca prompt 3. Obtiene respuesta, procesa y presenta
  • 9. abstracta.us Importante: Esto cambió recientemente, hay posibilidad de que la API mantenga threads de conversación y contexto. ChatGPT Provee una API para integrar ChatGPT en tus sistemas. Importante: La API no tiene memoria del contexto, el programador debe gestionarlo.
  • 11. abstracta.us Ayuda a tener respuestas más determinísticas Si se envía, el sistema hará lo posible para generar la misma respuesta ante la misma pregunta y los mismos parámetros La respuesta retorna system_fingerprint. Sirve para detectar cambios en el modelo junto con el parámetro seed Aún en beta Seed
  • 12. abstracta.us Máximo de tokens (parámetro max_tokens) ● Se suman los tokens del prompt y de la respuesta. ● En el chat, también cuentan los tokens de toda la conversación. ● Reducir el máximo controla costos pero puede truncar respuestas. Tokenizing: ● El texto dado a ChatGPT se divide en tokens. ● Por ejemplo, "ChatGPT es mágico!" se divide en estos tokens: ● Tokenizer: https://platform.openai.com/tokenizer Tokens
  • 13. abstracta.us ● https://home.testcraft.app/ ● https://github.com/TestCraft-App ● https://twitter.com/TestCraftApp Funcionalidades ● Test ideas ● Test automation ● Accessibility Caso de estudio: TestCraft
  • 17. abstracta.us Foco en distintos Factores de calidad Enfoques de Caja Negra
  • 18. abstracta.us Foco en distintos Factores de calidad Mantenibilidad ● ¿Cómo estamos estructurando esos prompts? ¿Son legibles y fáciles de entender? ● ¿Se están versionando los prompts junto con el código? ● ¿Qué tanto tuvimos que ajustar al pasar de gpt-3 a gpt-4?
  • 19. abstracta.us Performance y fiabilidad ● ¿Qué pasa si el servicio de OpenAI está caído o anda lento? ● ¿Qué tan rápido puedo llegar a consultarlo? ¿Hay algún tope de requests por segundo? Seguridad ● ¿Estamos enviando datos sensibles? ● ¿Podría llegar a sugerir contenido indebido? ● ¿La aplicación se protege de prompt injection? Foco en distintos Factores de calidad
  • 20. abstracta.us Prompt Injection Ataque ganando control sobre el output del texto generado por ChatGPT ● Goal hijacking ● Prompt leaking Sucede cuando el input del usuario se concatena directo al prompt
  • 21. abstracta.us Heurísticas y técnicas de pruebas Enfoques de Caja Negra in stock State checked out State checked in State lost State check out remind check in write off
  • 22. abstracta.us ● Mindmaps ● Partición de equivalencias y valores límite ● Combinación por pares ● Tablas y árboles de decisión ● Matrices de prueba ● Máquinas de estado ● Grafos causa-efecto ● SFDIPOT ● FEW HICCUPPS ● … Lectura recomendada: https://federico-toledo.com/ Heurísticas y técnicas de pruebas Desafío: ● El valor esperado no es predecible
  • 23. abstracta.us Análisis de calidad sobre el texto Enfoques de Caja Negra
  • 24. abstracta.us ¿Cuáles son las características deseadas de la respuesta obtenida? ● Coherencia ● Completitud ● Consistencia ● Fiabilidad ● Relevancia / Valor ● Originalidad / Creatividad ● Claridad, no ambigüedad ● Adecuación - no usar lenguaje inapropiado ● Respuesta concisa - que no sean 10 páginas ● Alineación al objetivo (¿realmente es útil?) Calidad de texto
  • 26. abstracta.us Enfoques de Caja Blanca Pruebas estáticas y unitarias al prompt
  • 27. abstracta.us ● ¿Es tarea de testing? ● Análisis estático del prompt ● Probar variantes ○ ¿Cómo saber si encontramos una versión mejor, de mejor calidad? Revisar y probar el prompt
  • 28. abstracta.us ● No es lo mismo probar el prompt en la web de ChatGPT que por la API. ● Es importante probar contra la misma versión del modelo. ● Hay que tener en cuenta los parámetros usados (por ejemplo, temperatura, máximo de tokens). ● Herramientas ○ Playground: https://platform.openai.com/playground ○ Postman ○ Scripts propios Consideraciones al probar prompts
  • 29. abstracta.us ● Revisión y experimentación con el prompt ● Revisar el código mirando: ○ ¿Cómo se procesan las entradas? ○ ¿Cómo se confecciona el prompt? ○ ¿Qué parámetros se están usando? (temperatura, max tokens, etc) ○ ¿Cómo se procesa la respuesta de ChatGPT? Revisión de código Análisis de in/out
  • 30. abstracta.us Enfoques de Caja Blanca Pruebas de integración
  • 31. abstracta.us Mock del servicio de OpenAI ● Mecanismo que nos permitirá probar distintas respuestas o situaciones. ● Servicio caído ● Mensajes de error (ver documentación de error codes). ● Casos borde (respuesta vacía, respuesta con máximo de tokens, o con más del máximo por si este cambiase a futuro). ● ¿Cómo se implementa? ● SoapUI service mocking ● WireMock ● Es importante que el sistema permita configurar la URL del endpoint usado. Pruebas de integración
  • 33. abstracta.us ● Problema ○ Al querer actualizar el modelo (de gpt 3.5 a 4) o si encuentro un error que me hace cambiar el prompt, ese ajuste me puede afectar el resto de componentes. ○ ¿Cómo validar que no hay regresiones? ○ ¿Cómo automatizar ese test de regresión? Test de regresión
  • 34. abstracta.us ● Framework de OpenAI para evaluar LLMs o tools que usan LLMs ● Basicamente son test sets! ● Son simples de crear y no requieren código ● Incluye un registro open-source de evals desafiantes ● Cuenta con templates básicos y avanzados (usando otro prompt) Lectura recomendada: ● Decoding OpenAI Evals Test de regresión con Evals
  • 35. abstracta.us Basic Eval Templates ● Input_prompt ● Ideal_answers ● Se genera el output y se compara (con algún mecanismo de evaluación) con las ideal_answers Test de regresión con Evals
  • 36. abstracta.us Model-Graded Eval Templates ● Input_prompt ● Ideal_answers ● Se genera el output y se compara con las ideal_answers a través de otro prompt a un LLM Test de regresión con Evals
  • 37. abstracta.us ● Problema ○ Al interactuar con ChatGPT pierdo control de la respuesta que se da. No tengo control por el contenido, la utilidad o precisión, ni el costo ni la performance. ○ ¿Cómo ver qué pasó? Observabilidad ● Observabilidad ○ Métricas ○ Trazas ○ Logs Lectura recomendada: ○ Monitor OpenAI with Datadog
  • 39. abstracta.us ● Chatbots ● Sistemas que usan un LLM como servicio ● Sistemas que usan una cadena de AIs y servicios ● Sistemas copilotos ● Interfaces conversacionales Testing con mayor foco en preparación de datos y revisión de resultados no determinísticos La observabilidad del sistema bajo pruebas va a ser clave ¿Cómo serán los sistemas que vamos a probar en los próximos años? Sistema bajo pruebas
  • 40. abstracta.us Testing de aplicaciones basadas en LLMs Federico Toledo federico@abstracta.us ¡Gracias!