1 puntos por GN⁺ 2024-09-26 | 1 comentarios | Compartir por WhatsApp
  • XKCD 1425 “Tasks” es una historieta sobre la intuición del desarrollo de software: aunque algo parezca fácil a simple vista, su dificultad real puede ser completamente distinta, y el 24 de septiembre de 2024 cumplió su 10.º aniversario
  • En la historieta, “verificar si una foto es de un pájaro” era en ese momento un problema de nivel doctoral, pero hoy es una tarea que puede resolverse fácilmente con vision LLM, CLIP, ResNet+ImageNet y otras tecnologías
  • Aunque algunos ejemplos concretos cambiaron con el avance tecnológico, para juzgar qué problemas son fáciles o difíciles sigue siendo necesaria una experiencia profunda
  • Los LLM todavía tienen puntos débiles, como las matemáticas o la consulta de hechos, así que se vuelve más difícil juzgar intuitivamente qué tareas se les pueden confiar de forma estable
  • Como muestra la limitación de análisis de imágenes en Claude Artifact, en la programación asistida por IA hay que entender no solo la capacidad del modelo, sino también restricciones de seguridad web como los encabezados CSP

La pregunta que XKCD 1425 sigue dejando 10 años después

  • XKCD 1425 “Tasks” es una historieta que muestra que, en el desarrollo de software, sin experiencia es difícil juzgar qué tareas son fáciles y cuáles son difíciles
  • Uno de sus ejemplos más representativos, “verificar si una foto es de un pájaro”, antes era un problema de nivel doctoral, pero hoy puede resolverse fácilmente con varias tecnologías de visión por computadora
  • Aunque los ejemplos en sí cambiaron con el avance tecnológico, la capacidad de distinguir entre problemas fáciles y difíciles sigue requiriendo mucha experiencia

Las nuevas dificultades creadas por los LLM y la programación asistida por IA

  • No es intuitivo juzgar qué tareas puede resolver un LLM de forma confiable
    • Un LLM es un sistema informático, pero es débil en matemáticas
    • Tampoco puede hacer consultas de hechos de manera confiable
  • A medida que se expanden las herramientas de programación asistida por IA, más personas empiezan a crear su propio software personalizado
  • Los nuevos programadores principiantes asistidos por IA se encuentran en una situación donde deben aprender rápido la diferencia entre tareas fáciles y difíciles
  • Hay casos en los que Claude sí puede analizar imágenes, pero no se puede crear una herramienta de análisis de imágenes dentro de Claude Artifact
    • Para entenderlo, hay que saber que los encabezados CSP usados al servir Artifacts bloquean las llamadas desde el código generado a APIs externas de LLM

1 comentarios

 
GN⁺ 2024-09-26
Opiniones de Hacker News
  • Sorprende cuánto se ha movido el criterio de lo que se considera impresionante en AI/ML
    Hace 10 años, cuando salió el paper de GAN, todos estaban emocionados diciendo que la calidad de las imágenes generadas era increíble: https://arxiv.org/abs/1406.2661
    La cantidad de avances desde entonces es realmente difícil de creer

    • Hay un chiste que se me quedó grabado: la gente común suele malinterpretar las capacidades de las computadoras convirtiéndolas a un equivalente humano
      Por ejemplo, como un niño puede hacer aritmética básica y una computadora también puede hacer aritmética básica, si el niño también puede hablar, entonces piensan que la computadora obviamente también podrá hablar
      Pero las capacidades de una computadora son resultados alcanzados de una manera completamente distinta. Curiosamente, con los LLM el contorno de sus capacidades se volvió más parecido al humano, pero la forma en que llegan al resultado sigue siendo totalmente diferente
    • No puedo ni expresar cuánto trabajo me habría ahorrado tener los LLM actuales en mi negocio de hace 10 o 15 años
      El ejemplo más terrible fueron unas 180 mil recetas en texto generado por usuarios que el cliente quería normalizar. Había que extraer cantidades, unidades, ingredientes, pasos, etc., para ajustar porciones, calcular información nutricional y demás
      Hizo falta una montaña de expresiones regulares para el preprocesamiento y una cadena de herramientas con un ejército de pasantes normalizando todo uno por uno, y arreglar el caos que crearon los pasantes tomó todavía mucho más tiempo
      Con LLM habría sido una tarea que se habría terminado casi de inmediato. En muchísimas tareas en las que había que convertir montones de basura total en datos utilizables, probablemente los LLM simplemente lo habrían hecho
      El dolor de aquella época se alivió un poco porque, viendo esta tendencia, compré NVDA por entonces
    • Después de que OpenAI lanzó ChatGPT, todos cerraron sus investigaciones esperando ganar dinero, así que se siente como si la velocidad de avance hubiera bajado de golpe
    • El cambio de expectativas parece estar muy relacionado con el cambio de audiencia
      Antes, los nuevos modelos de aprendizaje automático los discutían profesionales con contexto, así que podían entender por qué una mejora aparentemente pequeña era importante y cuáles eran expectativas razonables
      Ahora, los nuevos modelos de aprendizaje automático, no, de “IA”, los evalúa el público general, que no conoce el trasfondo técnico pero sí las exageraciones de marketing. Aunque les des un excelente modelo de lenguaje que arrasa en benchmarks relacionados con el lenguaje, como sus expectativas son absurdas, siempre terminan decepcionados
      Todavía me sorprende cuando un modelo de lenguaje logra hacer cosas relativamente “simples” de gramática y sintaxis, como entender a qué se refiere un pronombre. Pero la mayoría nunca ha pensado en el lenguaje ni en las computadoras desde esa perspectiva, así que no ve lo difícil e impresionante que es
    • La frase “la gente sobreestima lo que se puede hacer en 1 año y subestima lo que se puede hacer en 5 o 10 años” también parece encajar bien con las expectativas sobre la IA
  • Esta viñeta siempre me pareció un poco extraña. La humanidad pasó miles de años resolviendo problemas de navegación
    Esta viñeta existe en un breve período en el que una tarea por fin se estaba “resolviendo” y la otra apenas empezaba
    Si piensas que entrenar modelos consume mucha energía, también habría que pensar en lanzar flotas de cohetes para mantener una constelación de satélites

    • Lo interpreté como una referencia a la diferencia en lo que las personas no técnicas perciben como difícil
      Varias veces en mi carrera, un requisito improvisado que salió en una reunión cambió las estimaciones de un proyecto por meses
    • Incluso en los problemas de navegación todavía hay dificultades que la mayoría de las apps no manejan bien
      Por ejemplo, el buscador de tiendas de un sitio web o app minorista normalmente solo calcula la distancia en línea recta entre tu ubicación actual y la tienda, y muestra en orden de distancia las tiendas dentro de cierto rango
      Eso es un problema en lugares al oeste de Puget Sound, como Kingston cerca de Seattle. El buscador de tiendas de Walgreens muestra 10 tiendas al buscar cerca de Kingston, y 9 de ellas están del otro lado de Puget Sound, hacia Seattle. Si vas en auto, tienes que tomar un ferry de unos 20 dólares por trayecto y 30 minutos
      La única que aparece al oeste es la tienda de Bainbridge Island, que no es un lugar al que alguien de Kingston iría normalmente. En realidad, la tienda de Silverdale está más cerca por distancia de carretera, pero un poco más lejos en línea recta
      Las tiendas de Silverdale, 3 en Bremerton y 1 en Port Orchard están mucho más cerca de Kingston que las tiendas del lado de Seattle en términos de tiempo y costo de viaje, pero solo aparecen en el mapa si presionas el botón “load more”
      La función para consultar inventario local es parecida: muchas veces dice que un producto está “cerca”, pero en realidad solo está disponible en tiendas al otro lado de Puget Sound
    • Justo eso se acerca al punto. Para la gente común, algo como la navegación parece mucho más complejo, pero ahora cualquiera puede hacerlo en unas horas
      En cambio, algo que en apariencia es más simple podía tomar años porque no se había resuelto fácilmente ni se ofrecía como API. Claro que ahora ya es posible
    • Creo que el punto no es GPS sino GIS. Es decir, no es un problema de navegación sino el problema de “¿este punto está dentro de este polígono?”, y eso es relativamente más fácil
    • Esta observación no contradice el punto de la viñeta. En conjunto, no habla de qué tareas son difíciles, sino de qué es difícil con la tecnología actual
      La idea es que a alguien que no desarrolla le resulta difícil saber qué tareas resuelve trivialmente la tecnología actual y cuáles no puede resolver. Con el tiempo, la distribución entre ambas categorías cambia, pero el hecho de que la gente común no pueda saberlo fácilmente sigue igual
      Todo lo que hacemos hoy también sería extremadamente difícil si hubiera que recrearlo desde cero, pero en la práctica no hace falta hacerlo desde cero, así que no es algo difícil de hacer
  • Se podría decir que “no envejeció bien”, pero creo que el punto real, “es difícil explicar la diferencia entre lo fácil y lo prácticamente imposible”, más bien se reforzó.
    Casi irónicamente, las tareas difíciles y las fáciles se intercambiaron. ¿Quién lo habría previsto hace 10 años?

    • Creo que envejeció bien. De hecho, ese problema se volvió fácil 5 años después de publicado.
    • Vale la pena ver el texto alternativo del propio xkcd: en los años 60, Marvin Minsky les encargó a algunos estudiantes de licenciatura que, durante el verano, hicieran un programa que identificara objetos en una escena con una cámara. Pensó que el problema estaría resuelto para el final del verano, pero medio siglo después seguimos lidiando con él.
    • Incluso en 2014 estaba claro que, más que necesitar investigación nueva en sí, para identificar aves hacía falta una gran cantidad de datos de entrenamiento de aves.
      https://en.wikipedia.org/wiki/DeepFace
    • Personalmente, no puedo quitarme la idea de que justamente esta tira fue la que detonó la revolución de la IA.
      Si no recuerdo mal, unas semanas o meses después salió un paper de Yahoo/Flickr sobre este problema, es decir, la identificación de aves, y a partir de ahí todo pareció explotar de la noche a la mañana. Sé que en realidad no fue así, pero a mí me lo pareció.
    • Si miras la cantidad de cómputo y energía que requiere cada tarea, sigue siendo cierto que los problemas que parecen simples para las personas son los más difíciles de resolver.
  • Entender qué tareas pueden resolver de forma confiable los LLM y cuáles no sigue siendo muy difícil y poco intuitivo.
    Hace poco mi hija estaba preparando una presentación y me preguntó: “Papá, ¿puedes encontrarme una foto que forme la palabra HELLO con verduras?”.
    Pensé: “Claro que sí, esto es trabajo para ChatGPT”, pero aunque ChatGPT puede crear una imagen de un gato con traje espacial bebiendo un martini, definitivamente no pudo crear una imagen que formara HELLO con verduras.
    Al final hice que generara por separado imágenes de cada letra del alfabeto hecha con verduras, y mi hija las pegó para formar la palabra que necesitaba en la presentación.

    • Estas historias siempre son interesantes cuando sabes cómo funciona realmente ChatGPT. Si entiendes la tokenización, ves de inmediato por qué esto no es una tarea adecuada para ChatGPT.
      Es exactamente la misma razón por la que no puede contar bien las letras de STRAWBERRY. No es porque no entienda el concepto de frutas o verduras, ni porque no comprenda conceptos complejos como metáforas o memes.
      El modelo no ve “hello” como una palabra formada por letras individuales, sino como un solo token; en gpt-4o, como el token con ID 24912. Conoce el significado de ese token y su relación con otros tokens, pero fundamentalmente no sabe cuáles son las letras que componen esa palabra, salvo que lo haya aprendido por separado o aproveche alguna relación accidental adicional en los datos de entrenamiento.
    • Con flux.1 sí se puede. Que yo sepa, ahora mismo es el mejor modelo de imagen para manejar texto.
      Este es el resultado de usar flux-pro en Replicate con “vegetables spelling out the word "HELLO"”: https://ibb.co/1RVKmdk
    • Ideogram v2 dio esto en el primer intento:
      https://ideogram.ai/assets/image/lossless/response/v_LgyXI1Q...
      https://ideogram.ai/assets/image/lossless/response/V4RRDJZJS...
      La zanahoria de la primera imagen da un poco de risa.
      Bonus de Hacker News: https://ideogram.ai/assets/image/lossless/response/SW0B7y4jR...
    • Grok 2 Mini Beta lo hizo bastante bien.
      https://i.imgur.com/mvnusFd.jpeg
    • Lo acabo de probar con ChatGPT 4o, y con solo el primer prompt salió un resultado bastante decente.
      Copié el prompt tal cual del comentario de arriba: https://chatgpt.com/share/66f530b0-3fb8-800a-8af9-8a3e48a31a...
  • Basta con detectar si la foto contiene colores de aves comunes y lanzarlo. Después de aplastar a la competencia, lo arreglas más tarde.

  • Hice esta serie de tutoriales para entender el contexto y los fundamentos del deep learning, y la primera clase consistía justamente en crear el clasificador de aves de esta tira.
    Fue realmente fácil y divertido, y todo el curso es excelente. Lo recomiendo mucho para cualquiera que tenga experiencia en programación y quiera una introducción sólida al deep learning.
    https://course.fast.ai/

  • Nadie lo menciona, pero los LLM avanzaron tanto en la primera parte de la solicitud como en la segunda.
    ChatGPT te escribe una función is_point_in_national_park y hasta te indica el shapefile correspondiente en unos 30 segundos. Es cientos de veces más rápido que las “unas horas” de la tira.

  • Los LLM de visión son realmente sorprendentes.
    Tuve un proyecto que consistía en describir y catalogar más de 20 mil imágenes.
    Con el método tradicional hecho por personas, habría tomado meses y costado una fortuna. Las descripciones tenían que tener calidad apta para que las leyeran clientes.
    La API de visión de OpenAI lo procesó por unos centavos por imagen, y el costo total probablemente fue de menos de 200 dólares.

    • Me pregunto si una persona revisó que las descripciones de OpenAI fueran correctas.
  • Me pregunto si llegará el día en que la alfabetización tecnológica alcance un punto crítico tal que este tipo de malentendidos desaparezcan en gran medida.
    Hace 10 años habría dicho que sí, pero ahora creo que los avances en UX/UI y la conversión de todo en apps han aislado a la persona promedio de los detalles.
    Desde la perspectiva de cada producto, eso es algo bueno, pero en conjunto puede generar expectativas poco realistas. He escuchado a gente joven preguntar “¿por qué x simplemente no hace y?”, una pregunta que antes habría esperado oír solo de una generación de padres muy poco técnica.
    En los 80, las computadoras eran casi magia para mucha gente, pero la mayoría no tenía necesidad de interactuar realmente con ellas. Sus expectativas sobre las computadoras tenían tan poco impacto como mis expectativas sobre la vida extraterrestre.
    Pero temo que el pensamiento mágico sobre la tecnología tenga consecuencias mayores, tanto a nivel personal como social.

  • @simonw, si de casualidad estás leyendo esto, me pregunto si podría pedirte un pequeño favor.
    ¿Sería demasiado pedir que hicieras streaming en vivo de alguna tarea de programación que puedas compartir públicamente?
    Siento que habría muchísimo que aprender, especialmente en torno al ecosistema actual: Python, datos en SQLite y JavaScript.