Inteligencia Artificial

Ahora, las aplicaciones ya no son simples herramientas, sino compañeras inteligentes y empáticas que pueden adaptarse al contexto, generar contenido de manera creativa y ofrecer experiencias personalizadas a los usuarios.

Tarea 3 — Aplicación de la Inteligencia Artificial

ArtículoPendiente
Fecha de emisiónLunes, 26 Agosto 2024
Presentación finalsábado, 28 de septiembre 2024 11:59 hrs.

Visión General

En los últimos tiempos, el panorama del desarrollo de software se ha visto profundamente remodelado por los notables avances realizados en la inteligencia artificial (IA) y, más específicamente, en la IA generativa y los grandes modelos de lenguaje (LLM). Estos avances han revolucionado la forma en que se conciben, diseñan y experimentan las aplicaciones, abriendo un reino de posibilidades que antes estaban confinadas al ámbito de la ciencia ficción.

En el corazón de esta transformación se encuentran los LLM, como GPT-3.5 y Claude, que se erigen como pilares imponentes del ingenio de la IA. Estos modelos poseen una capacidad sin precedentes para comprender y generar el lenguaje humano con una fluidez y matices impresionantes. Como resultado, ha surgido una nueva era en el desarrollo de aplicaciones, caracterizada por aplicaciones que no son simplemente herramientas, sino compañeras inteligentes y empáticas.

Los méritos clave de crear aplicaciones que aprovechen el poder de los LLM incluyen:

  1. Comprensión y generación de lenguaje natural: los LLM permiten que las aplicaciones no solo comprendan las entradas del usuario con una precisión notable, sino que también respondan de una manera que refleja la conversación humana. Esto otorga a los usuarios un nivel de interacción que trasciende las interfaces tradicionales, fomentando experiencias más atractivas y significativas.
  2. Conciencia contextual: estos modelos poseen una comprensión inherente del contexto, lo que permite a las aplicaciones adaptar las respuestas y acciones en función de la conversación en evolución. Esta adaptabilidad crea una sensación de fluidez y capacidad de respuesta, similar a conversar con un amigo conocedor.
  3. Creación y mejora de contenido: las aplicaciones pueden aprovechar los LLM para generar una amplia gama de contenido, desde artículos e informes hasta redacción creativa y textos de marketing. Esta capacidad tiene el potencial de revolucionar las industrias impulsadas por el contenido, amplificando la eficiencia y la creatividad.
  4. Personalización: Al aprovechar la vasta extensión de datos lingüísticos, las aplicaciones pueden ofrecer experiencias personalizadas que se adapten a las preferencias, necesidades y emociones individuales. Este toque personal fomenta un sentido más profundo de conexión y resonancia.

Las recientes mejoras en la IA han impulsado los LLM a alturas aún mayores. Técnicas como el ajuste fino supervisado y el aprendizaje por transferencia han dotado a estos modelos de la capacidad de adaptarse a tareas y dominios específicos. Además, los esfuerzos por democratizar la IA han dado lugar a una mayor accesibilidad, lo que ha permitido a un espectro más amplio de desarrolladores aprovechar el potencial de estos modelos.

En esta era de desarrollo de aplicaciones impulsadas por IA, los límites de la creatividad se están expandiendo. Ya sea que se trate de un asistente personal virtual que comprende comandos de voz matizados, una aplicación de aprendizaje de idiomas que se adapta a la competencia de cada usuario o una herramienta de creación de contenido que genera contenido personalizado sin problemas, las posibilidades solo están limitadas por la imaginación.

La convergencia de los LLM y el desarrollo de aplicaciones está marcando el comienzo de una nueva ola de innovación, redefiniendo la forma en que interactuamos con la tecnología. A medida que estos modelos continúen evolucionando y madurando, sin duda dejarán una marca indeleble en el tejido de nuestras experiencias digitales, enriqueciendo y mejorando nuestras vidas de maneras que antes eran insondables.

Como estudiante de ISAProD, no querrá perderse la oportunidad de su vida de estar a la vanguardia de esta nueva ola de IA.

P.D. Con el espíritu de explorar las IA/LLM, partes de esta tarea se han escrito con la ayuda de los 😉 LLM.

Calificación y administración

Esta tarea se puede realizar en grupos de tres o cuatro estudiantes, que ya deberían estar formados. Si no pudo encontrar un grupo, se le asignará uno al azar.

Esta tarea es muy abierta. Proporcionamos hitos para que podamos calificar su aplicación de manera coherente, aunque todos creen aplicaciones diferentes. Esta tarea también está diseñada para presentarle los diversos elementos del desarrollo de software de IA, y los hitos están ahí para garantizar que aprenda sobre los elementos de manera estructurada. También proporcionaremos algunos consejos relacionados, referencias y un poco de ayuda para comenzar. Estos hitos constituyen el 70% de la calificación del trabajo.

Dicho esto, tienes mucha libertad para expresar tu creatividad. Eres libre de desarrollar cualquier idea que desees. Sin embargo, si algunos de los hitos propuestos no tienen sentido para la aplicación que pretende crear, puede solicitar que se reemplacen con otros entregables. Debe explicar por qué debemos estar de acuerdo con su petición y enviar su petición por correo electrónico al menos una semana antes de la fecha límite de entrega de la asignación. Su petición está sujeta a aprobación.

Si bien los hitos pueden ser fáciles de cumplir, el simple hecho de cumplirlos no le dará todo el crédito. Pedimos presentaciones de calidad, no trabajos comunes y corrientes.

Para conseguir el codiciado 30% restante, utiliza tu creatividad para desarrollar una aplicación que destaque sobre el resto. No limitaremos su potencial restringiendo el tipo de aplicación que puede crear. Esperamos que nos sorprendas ( ¡gratamente!) con lo que eres capaz de hacer. Tenga en cuenta que las características deben ajustarse al objetivo de su aplicación; Lo ideal es que se integren a la perfección.

Por ejemplo, los LLM se pueden usar para agregar fácilmente chatbots a cualquier aplicación, pero es posible que los chatbots no aporten tanto valor a ciertos dominios. De hecho, implementar funciones por el simple hecho de hacerlo puede funcionar en su contra (y en sus calificaciones), ya que estas características "sin valor agregado" distraen a los usuarios del propósito principal de su aplicación.

No dude en ponerse en contacto con el amable personal de ISAProD si necesita más ayuda. Puede ponerse en contacto con nosotros en [email protected].

Objetivo

El objetivo de alto nivel de esta tarea es utilizar la IA generativa (LLM en particular) para construir un producto digital significativo.

Debes abordar esta tarea con la mentalidad de un emprendedor: eres dueño de cada decisión, y cada decisión que tomes ( desde el diseño hasta la ingeniería) se traducirá directamente en el "éxito" de tu producto.

Al igual que en todas las tareas anteriores, diseñamos hitos de tal manera que puedas tener un sentido de dirección sobre dónde esperamos que llegues, pero estos hitos se describen ampliamente para que no estés restringido en cómo llegar allí.

En esta tarea, su tarea consiste en demostrar que puede diseñar e implementar una aplicación web que utilice las capacidades de los LLM, conservar los datos de los usuarios en la nube y aprovechar la identidad del usuario de manera significativa.

Debe utilizar esta tarea para mostrar su sentido del producto y sus capacidades de ingeniería. También debe consolidar los aprendizajes de la Tarea 1 (sobre Diseño de Producto) y la Tarea 2 ( sobre la identificación de innovaciones y brechas en el mercado) para construir un producto más completo para esta tarea.

Recuerda, tu objetivo no es hacer mucho trabajo. Su objetivo es aprovechar esta oportunidad para marcar la diferencia.

Por favor, lea toda la tarea antes de pensar en lo que quiere desarrollar. Puede darle una idea más clara de cómo se unen todas las partes y también una mejor comprensión de las fortalezas y debilidades de una IA aplicación. El esquema de calificación se puede encontrar al final de este folleto.

Fase 0: Introducción

Fondo

En el panorama tecnológico en constante evolución, está surgiendo una nueva ola de aplicaciones, caracterizadas por su uso innovador de la IA generativa y los LLM. Este aumento ha sido liderado por entidades como OpenAI (ChatGPT, DALL-E) y Stability AI (Midjourney), que han demostrado el potencial de los contenidos y las interacciones generados por la IA.

En particular, gigantes tecnológicos como Google, Microsoft y Meta han abrazado por completo la "carrera armamentista" de la IA al entrar en la refriega con sus propios modelos y chatbots formidables. Un claro testimonio de este cambio de paradigma fue la tema recurrente de la IA en Google I/O 2023, lo que subraya la influencia generalizada de la IA en todas las industrias. A medida que estos titanes tecnológicos continúan dedicando recursos a la investigación y el desarrollo de IA, la integración de la IA en sus productos existentes está preparada para desbloquear nuevas dimensiones de funcionalidad y experiencia de usuario.

Sin embargo, el poder transformador de la IA generativa y los LLM no se limita solo a los actores establecidos. Un floreciente ecosistema de startups de IA ha echado raíces, impulsando el dominio con aplicaciones innovadoras, principalmente en redacción publicitaria y atención al cliente. Estas startups, aprovechando las notables capacidades de la IA generativa, están remodelando la forma en que las empresas se comunican con sus usuarios para brindar soporte, preparando el escenario para un compromiso más personalizado y eficiente. Caso en cuestión: El 35% del lote de verano de 2023 de Y Combinator fueron startups de IA!

A medida que esta nueva ola de aplicaciones, potenciadas por la IA generativa y los LLM, continúa desarrollándose, los límites de la innovación se expanden rápidamente. La convergencia de la IA y el ingenio humano está remodelando la forma en que interactuamos con la tecnología, y el viaje que tenemos por delante va a ser realmente interesante. ¡Es un momento emocionante para ser ingeniero de software!

Nuevo panorama de la IA

Dentro del panorama de las startups de IA generativa, hay algunas categorías comunes de productos:

  • Texto: crea y manipula contenido textual. Herramientas que pueden redactar artículos, generar descripciones de productos e incluso ayudar en la escritura creativa. Ejemplos: Copy.ai, Jasper, Hipotenusa IA.
  • Imagen: Genere, modifique o mejore imágenes. Herramientas para que artistas, diseñadores y fotógrafos generen obras de arte, editen fotos y visualicen ideas. Ejemplos: Midjourney, Runway ML, Pebblely, Adobe Photoshop.
  • Audio: Componga música, genere efectos de sonido e incluso imite voces específicas.
  • Código: Ayudar en las tareas de desarrollo de software, incluida la generación de fragmentos de código, ofrecer sugerencias de codificación e incluso automatizar partes del proceso de codificación. Ejemplos: GitHub Copilot,Sourcegraph Cody.
  • Chatbot: Crea agentes conversacionales impulsados por IA generativa. Estos chatbots pueden entablar conversaciones naturales, responder consultas y proporcionar soporte basado en datos personalizados. Ejemplos: Mendable, Chatbase, Glean, AskMore. AskMore utiliza la IA para llevar a cabo su investigación de usuarios para que obtenga más comentarios, más rápido y en cualquier idioma; ¡una IA puede incluso hacer tu hito de la Tarea 1 por ti!
  • Diseño: Diseñe su marca, logotipo, sitios web, presentaciones y material de marketing con un mensaje. Ejemplos: Framer AI, Designs.ai, Uizard, Tome.
  • Vídeo: Manipula y crea contenido de vídeo. Estas herramientas se pueden utilizar para la edición de vídeo, los efectos especiales e incluso la creación automatizada de vídeos. Ejemplos: Synthesia, Lumen5.
  • Datos y análisis: analice y genere conjuntos de datos con fines de prueba y simulación. Consultar datos mediante lenguaje natural. Ejemplos: Defog.
  • Agentes: Cree agentes virtuales con tecnología de IA generativa. Estos agentes pueden emular las interacciones humanas y ayudar con tareas como la programación, la recuperación de información y mucho más. Ejemplos: Cognosys, Spell.
  • Juegos: Cree entornos de juego dinámicos, genere niveles, adapte la mecánica del juego en función del comportamiento del jugador, los NPC pueden entablar una conversación personalizada con los jugadores.

Aunque la mayoría de las empresas forman parte de la "fiebre del oro" de la IA, algunas prefieren seguir el dicho " durante la fiebre del oro, vende palas". Estas empresas "pala" crean servicios en torno a los LLM, vendiendo acceso a la API a los LLM y a las plataformas para facilitar la creación de productos de IA:

  • APIs: Acceso a los LLMs alojados en la nube. Ejemplos: ChatGPT y GPT-3.5 de OpenAI, Claude de Antropic, Command de Cohere.
  • Cadenas de herramientas: simplifique las operaciones comunes relacionadas con LLM. Ejemplos: LangSmith de LangChain, plataforma Cohere, Humanloop.
  • Bases de datos vectoriales: Almacena datos en un formato que permite la recuperación de información semántica y la memoria a largo plazo para LLM. Ejemplos: Supabase Vector, Pinecone, Weaviate.

Generative AI Landscape

Fuente: https://www.antler.co/blog/generative-ai

Otras listas para encontrar productos de IA:

Para esta tarea, debe utilizar LLM para crear un software de IA producto, ya que los LLM son fáciles de usar y requieren menos servidor recursos en comparación con otras formas de IA generativa como la imagen/audio generación.

Fase 1: Estrategia de producto

Generación de Ideas, Espacio de Problemas

Como aspirante a emprendedor de ISAProD, tienes una mente llena de grandes ideas que esperan ansiosamente ver la luz del día. Después de una larga discusión con el equipo sobre el potencial ilimitado de su nuevo producto, ahora está más seguro que nunca de que esta será la próxima gran novedad. Esperas más usuarios que ChatGPT, TikTok, Netflix y Pokemon Go juntos, y hacer esperar a tanta gente por más tiempo es simplemente malvado.

Antes de lanzarse a desarrollar las especificaciones de su aplicación, una pregunta muy importante que debe hacerse es: "¿Mi aplicación resuelve algún problema para los usuarios?". Una aplicación que tiene muchas características superfluas no la hace útil. El hecho de que su aplicación tenga un concepto genial o utilice la última tecnología no garantiza que los usuarios iniciales que se unieron por curiosidad se mantengan. Por el contrario, si una solución menos sofisticada pero más práctica facilita la vida del usuario, es más probable que el usuario sea retenido. Resuelva un problema que le importe a la gente, resuélvalo bien y los fanáticos de su aplicación se acumularán naturalmente. Sus usuarios se convierten en los defensores que le ayudarán a difundir el mensaje sobre su aplicación a través del boca a boca.

A la hora de decidir el espacio problemático para el que se quiere construir, también es útil tener en cuenta el atractivo del mercado. ¿Es un mercado atractivo para entrar? Para evaluar el atractivo de un mercado, puede analizar el tamaño del mercado y su tasa de crecimiento esperada. El atractivo comercial del espacio problemático que pretende abordar puede orientarlo sobre el "impacto" esperado que su producto puede traer potencialmente.

Las guías sobre cómo estimar el tamaño del mercado se pueden encontrar en todo Internet, y una útil que encontramos es https://pear.vc/market-sizing-guide/.

Hito 0 (obligatorio, no calificado): Describa el problema que resuelve su aplicación.

Panorama competitivo

Comprender el panorama competitivo proporciona información crítica sobre los actores del mercado existentes, sus ofertas, fortalezas y debilidades. Al comprender las estrategias de los competidores y las percepciones de los clientes, es probable que pueda tomar decisiones informadas, anticipar desafíos y adaptar su enfoque para capturar de manera efectiva la participación de mercado y brindar un valor único a su público objetivo.

El ecosistema de productos de IA está muy abarrotado y cada día surgen nuevas empresas de IA. Esta afirmación seguirá siendo precisa en los años venideros.

Si bien es indudable que la IA ha abierto las puertas a multitud de posibilidades, también ha dado lugar al fenómeno de los productos de "envoltura fina". Estos productos a menudo dependen en gran medida de los marcos y API de IA existentes, ofreciendo un valor mínimo más allá de la tecnología subyacente. En esta tarea, no debe crear dichos productos, ya que se pueden clonar fácilmente, lo que lleva a una falta de diferenciación y una disminución de la viabilidad a largo plazo.

AI wrapper meme

Al tratar de comprender el panorama competitivo, puede resultarle útil hacer un análisis competitivo. Estas son algunas de las preguntas que pueden resultarle útiles:

  • En el espacio problemático en el que estás tratando de "entrar", ¿es competitivo el mercado?
  • ¿Serás capaz de capturar una cuota de mercado significativa?
  • ¿Cuánta cuota de mercado tiene cada competidor?
  • ¿Cuáles son las ventajas competitivas de sus competidores?
Puede consolidar sus hallazgos en una Matriz Ponderada de Perfil Competitivo para evaluar mejor los productos de sus competidores (No calificados).La matriz de perfil competitivo es comúnmente utilizada por la gerencia estratégica para comparar su empresa con los principales actores de la industria. Para hacer bien una matriz de perfil competitivo, debe identificar cuáles son los factores clave de éxito que determinan el éxito de su producto en el mercado y utilizar estos factores para comparar a su competencia.

Competitive Profile Matrix

Fuente: https://thinkinsights.net/strategy/competitive-profile-matrix/
Hito 1: Haz una lista de tus 3 competidores más cercanos y sus pros y contras. El producto es mejor.

Capacidades del producto

La creación de una aplicación excelente requiere algo más que habilidades técnicas. En ISAProD, se espera que piense muy bien sobre lo que está tratando de hacer. No debe crear una aplicación solo porque necesite enviar esta tarea.

Debe elegir una aplicación que aproveche al máximo el potencial de la tecnología elegida. En ISAProD (y en la vida en general), la ejecución importa. Elegir la plataforma más adecuada para su aplicación es parte de la ejecución. Por lo tanto, esperamos que encuentre una buena razón de por qué el uso de LLM lograría mejor los objetivos de su aplicación.

Además de los LLM, es un requisito que la aplicación tenga autenticación de usuario y que haga uso de la autenticación de usuario de manera significativa. Desde el punto de vista de la asignación, buscamos productos que sean más que herramientas de una página. Desde el punto de vista del producto, contar con la autenticación de usuarios debería aumentar su capacidad para proporcionar funciones de personalización y le obliga a considerar el aspecto de seguridad para proteger los datos de sus usuarios. Por lo tanto, también debe incluir las razones por las que tener la autenticación de usuario junto con los LLM puede ayudarlo a lograr los objetivos de su aplicación.

Un error común para los estudiantes centrados en la ingeniería es su sesgo hacia los productos tecnológicamente complejos, al no considerar cómo el producto "sirve" al problema en el proceso. El objetivo aquí es que considere las capacidades de su producto: ¿su producto tiene las capacidades para tener éxito en el espacio problemático elegido?

Todos los equipos deben crear primero una publicación en Coursemology bajo el tema de la Tarea 3 que contenga el producto propuesto para la aprobación del equipo docente antes de comenzar con el proyecto.
Hito 2: Describa brevemente su aplicación. Enumere sus objetivos y los (principales) historias de usuario.

Foso

En el contexto de la estrategia de producto, un "foso" se refiere a una ventaja competitiva sostenible que posee un producto, que ayuda a proteger su cuota de mercado y su rentabilidad frente a los competidores. Al igual que un foso alrededor de un castillo medieval proporciona protección y dificulta que los enemigos rompan las paredes, un "foso" comercial crea barreras que disuaden a los competidores de ingresar fácilmente al mercado o replicar el éxito de la empresa.

Un foso puede tomar varias formas, incluyendo (pero no limitado a):

  • Marca
  • Innovación Tecnológica
  • Economías de escala
  • Confianza de los inversores
  • Ética e IA responsable
  • Personalización y personalización

Por ejemplo, uno de los fodos de Google es su ventaja de escala. La Búsqueda de Google sigue dominando el mercado de los motores de búsqueda.

google-search-dominance-2022

Fuente: https://www.statista.com/chart/29267/market-share-of-the-worlds-largest-search-engines/

Uno de los fodos de Apple es su ecosistema integrado de productos. Los productos de Apple, desde iPhone, Mac y servicios como iCloud, están estrechamente integrados en un solo ecosistema, lo que crea una experiencia de usuario perfecta que es difícil de igualar para los competidores. Esta estrecha integración también dificulta que los consumidores salgan de Apple.

La propiedad intelectual y la biblioteca de contenido de Disney forman un foso significativo. Disney posee la propiedad intelectual de varios personajes icónicos, como Mickey Mouse, hasta franquicias queridas como Star Wars y Marvel. Esta ventaja competitiva no se puede erosionar fácilmente.

Más cerca de los productos de IA, ChatGPT tiene múltiples "fosos", entre ellos:

  1. Ventaja de ser el primero: Al ser el primero, ha obtenido un fuerte "reconocimiento de marca" a medida que los consumidores lo recuerdan y confían en él como el producto pionero: es un desafío para los competidores y los participantes posteriores establecer el mismo nivel de reconocimiento.
  2. API fáciles de usar para desarrolladores: OpenAI ofrece API que permiten a los desarrolladores integrar fácilmente ChatGPT en sus aplicaciones, productos o servicios. Este enfoque amigable para los desarrolladores facilita el uso de las capacidades de ChatGPT sin requerir una amplia experiencia en IA.
  3. Escala de demanda: El uso generalizado de ChatGPT y los grandes volúmenes de interacción contribuyen a su recopilación de datos y mejoras en el entrenamiento, mejorando el rendimiento del modelo a lo largo del tiempo.

Para las startups, especialmente en el sector de la IA, establecer un foso es esencial para destacar en un panorama en rápida evolución.

Hito 3: ¿Cuál es tu salsa / foso secreto? Explique su estrategia para prevenir competidores y grandes jugadores de clonar su aplicación y sus funciones?

Fase 2: Comercialización

Ciclo de vida del producto y ajuste del producto al mercado

El ciclo de vida del producto, un término comúnmente utilizado por los profesionales del marketing y la gerencia, describe las etapas de un producto desde que se introduce por primera vez en el mercado, hasta que el producto se extingue. En esta tarea, su producto se posiciona en la etapa de introducción, un período que exige su compromiso proactivo con los posibles usuarios en su mercado objetivo para persuadirlos de que se conviertan en sus usuarios por primera vez.

Si bien el objetivo principal de la etapa de introducción no es necesariamente lograr un ajuste óptimo del producto al mercado, sí sienta las bases para alcanzar finalmente ese ajuste en la etapa de crecimiento y más allá.

Durante la etapa de introducción, la atención se centra más en crear conciencia, generar interés y atraer a los primeros usuarios. Es posible que el producto no haya logrado su ajuste perfecto con el mercado en este punto, pero es un período crucial para recopilar comentarios, comprender las preferencias del usuario y hacer ajustes iniciales para acercarse a ese ajuste ideal.

Por lo tanto, un plan de adquisición de usuarios debería permitirle llegar a más usuarios en su segmento de mercado objetivo.

El plan de adquisición de usuarios también puede influir en las características que se incluyen en la aplicación. Por ejemplo, podría pensar en formas de motivar a los usuarios para que compartan su aplicación con sus amigos; Podría diseñar características de tal manera que, si bien los usuarios individuales pueden obtener algún valor al usar su aplicación, también les interese promocionar su aplicación (por ejemplo, recompensar a los usuarios por las referencias).

Ilumina las estrategias, canales y tácticas que pretendes emplear para cautivar y convertir a los usuarios potenciales en clientes leales. A medida que profundice en este hito, articule cómo su comprensión de sus usuarios objetivo informa su enfoque y dilucide las medidas que implementará para fomentar un ajuste convincente entre el producto y el mercado.

Nota: Debes abordar este hito describiendo tu estrategia o plan sobre cómo pretendes "llevar" este producto al mercado, utilizando todos los recursos que tengas.
Hito 4: Describa a sus usuarios objetivo. Explique cómo planea adquirir a sus usuarios objetivo.

Ámbito

Con el problema clave y los usuarios objetivo en primer plano en su mente, es oportuno discutir qué características deben incluirse en el producto enviado para la Tarea 3.

Te darás cuenta de que el tiempo de presentación es extremadamente limitado. Al igual que las empresas reales deben navegar por las limitaciones de los plazos y las expectativas de los clientes, se le pedirá que optimice el uso de su tiempo en la Tarea 3 para entregar un Producto Mínimo Viable (MVP) simple, adorable y completo.

En esta búsqueda, el arte de la determinación del alcance ocupa un lugar central.

El alcance es el proceso de seleccionar cuidadosamente las características específicas que se incluirán. A la hora de definir el alcance y seleccionar las características, la justificación es importante: esto requiere una profunda comprensión de las necesidades del usuario, el impacto potencial y los objetivos generales del proyecto. En este proceso, algunas preguntas que pueden resultarle útiles incluyen:

  1. Experiencia de usuario: ¿Cómo aborda cada característica propuesta un punto débil o problema específico del usuario? ¿Qué valor aporta a la experiencia del usuario o al producto en general? (No calificado)
  2. Recurso: ¿Cuáles son las implicaciones de recursos (tiempo, esfuerzo, costo) de incluir cada característica? ¿Existen limitaciones técnicas o dependencias que deban tenerse en cuenta? (No calificado)
  3. Impacto en el usuario: ¿Cuántos usuarios se beneficiarán de cada función? ¿La función es esencial para una parte significativa de la base de usuarios o es un requisito de nicho? (No calificado)
  4. Ventaja competitiva: ¿La inclusión de una característica en particular le dará al producto una ventaja competitiva en el mercado? ¿Cómo se compara con lo que ofrecen productos similares? (No calificado)

Dado que está introduciendo un nuevo producto, el alcance inicial es extremadamente importante. Al tener un primer conjunto de características, puede desarrollar el MVP, lanzarlo a los usuarios, recopilar comentarios y, a partir de entonces, refinar el producto de forma iterativa. Este proceso se alinea a la perfección con la metodología ágil, donde la "agilidad" permite a los equipos responder rápidamente a las dinámicas cambiantes del mercado y a las preferencias cambiantes de los usuarios.

A medida que se dispone a priorizar las características para el MVP, es importante llevar a cabo un delicado acto de equilibrio con el tiempo. Las características elegidas deben alinearse armoniosamente con su MVP, de modo que las funcionalidades principales se aborden de manera integral. Sin embargo, al mismo tiempo debe ser muy consciente de las limitaciones de tiempo.

Por lo tanto, una parte clave del alcance también incluye la planificación y la estimación. Puede utilizar esta tarea como una oportunidad para aumentar su capacidad para diseccionar un proyecto en tareas procesables, prever posibles desafíos, asignar recursos con criterio y estimar plazos. Estas habilidades permiten a los gerentes de proyectos, líderes de productos e ingenieros elaborar plazos realistas, asignar recursos de manera óptima e identificar posibles cuellos de botella antes de que impidan el progreso.

Puede considerar dividir las 3-4 semanas en sprints y usar un sprint para estimar mejor la carga de trabajo requerida para el siguiente. Dicho esto, dado que se trata de un proyecto corto, el cumplimiento estricto de los sprints puede impedir su éxito. Depende de usted decidir qué funciona mejor para su MVP.

Hito 5: Enumere las características que deben incluirse en el MVP (su tarea entregable). ¿Cómo te decidiste por ellos? ¿Cuáles son las características futuras y ¿Expansiones que se te ocurren?

Modelo de negocio

En cualquier problema, una consideración real es si la inversión en el producto será "exitosa". Pocas cosas influyen tanto en el "éxito" de su producto como el precio.

El determinante del "éxito" difiere a medida que el producto entra en diferentes etapas de crecimiento. La mayoría de las veces, queremos maximizar las ganancias de un producto. Sin embargo, hay ocasiones en las que una empresa querría maximizar la cuota de mercado o el número de usuarios.

Dependiendo de sus objetivos, su estrategia de precios para lograr el "éxito" difiere.

En general, hay tres formas de fijar el precio:

  1. Precios basados en costos
  • ¿Cuánto cuesta producir y mantener su producto?
  • ¿Cuál es el margen de beneficio que pretendes conseguir?
  1. Precios basados en el valor
  • ¿Qué beneficios aporta este producto a sus usuarios?
  • ¿Cuánto "valor" aporta esto a los usuarios?
  1. Precios basados en la competencia
  • ¿Cuánto fijan los competidores el precio de sus productos?
  • ¿Cómo se compara su producto?

Idear una estrategia de monetización es útil desde el principio. Te permite evaluar cuál es el precio más adecuado para la etapa del producto en la que te encuentras. Por ejemplo, una consideración para un producto en la etapa inicial es la participación en el mercado, y también cuánto tiempo llevaría alcanzar el punto de equilibrio.

En el mercado de productos digitales de hoy en día, hay multitud de formas de fijar el precio. Estos son algunos artículos del blog que consideramos útiles para ayudarte a idear tu estrategia de precios:

Nota: Es posible que la moneda del "éxito" no siempre sea el dólar. No está restringido a construir un producto que tenga al dólar como moneda de éxito. Si no es el dólar, ¿qué otras métricas puedes utilizar a tener en cuenta? Por ejemplo, si creas un bot de chat social, una métrica clave para determinar el éxito podría ser el volumen de mensajes.
Hito 6: Elaborar una estrategia de monetización y precios (por ejemplo, niveles y características). Explique por qué cree que esta estrategia de precios es adecuada para sus usuarios objetivo y el espacio del problema. Explique los factores que influyeron en sus decisiones de precios, como los costos de producción, el valor percibido, la competencia, etc. Sería Útil aquí para considerar las posibles fuentes de ingresos de su producto.

Fase 3: Integración de la Inteligencia Artificial

Introducción a los modelos de lenguaje grandes

Los LLM son un tipo de tecnología de inteligencia artificial diseñada para comprender y generar texto similar al humano en función de la entrada que reciben (un mensaje). Estos modelos se construyen utilizando técnicas de aprendizaje profundo, en particular un tipo de arquitectura de red neuronal llamada transformadores.

Los transformadores son una clase de modelos de aprendizaje profundo que han revolucionado las tareas de procesamiento del lenguaje natural (PLN). Destacan en el manejo de datos secuenciales, como texto, y se han convertido en la base de muchos modelos de lenguaje de última generación. Una de las arquitecturas de transformadores más conocidas e influyentes es el Generative Pre-trained Transformer (GPT), desarrollado por OpenAI.

Los LLM como GPT-3 (la tercera iteración de la serie GPT) tienen miles de millones de parámetros, que son componentes ajustables que el modelo aprende de cantidades masivas de datos de texto. Estos parámetros permiten que el modelo capture patrones y relaciones complejos dentro del lenguaje, lo que le permite realizar una amplia gama de tareas relacionadas con el lenguaje, como:

  • Generación de texto: los LLM pueden generar texto coherente y contextualmente relevante a partir de un mensaje o texto inicial determinado.
  • Traducción de idiomas: Pueden traducir texto de un idioma a otro. Resumen: Los LLM pueden producir resúmenes concisos de textos más largos.
  • Respuesta a preguntas: Pueden responder preguntas extrayendo información relevante de un texto determinado.
  • Clasificación de texto: Los LLM pueden clasificar el texto en categorías o etiquetas predefinidas.
  • Análisis de sentimientos: Pueden determinar el tono emocional o el sentimiento expresado en un fragmento de texto.
  • Chatbots y agentes conversacionales: los LLM pueden simular conversaciones similares a las humanas y proporcionar respuestas interactivas.
  • Generación de código: Pueden generar fragmentos de código basados en descripciones de alto nivel.

El proceso de entrenamiento de estos modelos implica exponerlos a grandes cantidades de datos de texto y hacer que predigan la siguiente palabra o token en una secuencia. Este proceso permite que los modelos aprendan gramática, sintaxis, semántica e incluso algunos aspectos del conocimiento del mundo a partir de los datos.

Los LLM son revolucionarios en comparación con las técnicas tradicionales de aprendizaje automático porque pueden/son:

  • Realizar tareas más diversas y complejas: los modelos tradicionales de aprendizaje automático suelen limitarse a realizar tareas sencillas, como la clasificación o la regresión. Los LLM, por otro lado, pueden realizar tareas más complejas, como la generación de texto, la traducción, la respuesta a preguntas, todo a través de una indicación de lenguaje natural única y flexible.
  • Fácilmente disponible y accesible: Muchos LLM están disponibles a través de API, lo que hace que sus capacidades sean accesibles para una gama más amplia de desarrolladores sin requerir mucha experiencia / conocimientos profundos en aprendizaje automático. Se puede acceder a estas diversas capacidades a través del lenguaje natural, sin necesidad de aprender nueva sintaxis o documentación.
  • Entrenados en una gran escala de datos: los modelos tradicionales de aprendizaje automático suelen entrenarse en un pequeño conjunto de datos etiquetados. Esto puede ser limitante, ya que puede no ser representativo del mundo real. Los LLM, por otro lado, se pueden entrenar con un conjunto de datos masivos de datos sin etiquetar. Esto les permite aprender las relaciones estadísticas entre palabras y frases sin que se les diga explícitamente cuáles son.
  • Aprendizaje de pocos disparos y cero: los LLM pueden realizar nuevas tareas con ejemplos mínimos o incluso sin ejemplos aprovechando sus conocimientos previamente entrenados y generalizando a nuevas tareas o categorías sin la necesidad de grandes datos de entrenamiento específicos de la tarea. Esta capacidad es especialmente valiosa en escenarios en los que la adquisición de datos de entrenamiento etiquetados es costosa, requiere mucho tiempo o es poco práctica, mientras que el aprendizaje automático tradicional a menudo requiere una cantidad sustancial de datos etiquetados para cada tarea.
  • Comprensión del lenguaje: Los LLM pueden comprender los matices de los idiomas, incluidos los modismos, las metáforas y las referencias culturales, lo cual es una tarea desafiante para los modelos tradicionales.

Recursos:

Hito 7: Explique cómo está utilizando los LLM en su producto y por qué los LLM son una buena opción. para cumplir con los objetivos del producto.

Ingeniería / Diseño de Prompt

Un mensaje es una entrada o instrucción específica que se da a un modelo de lenguaje para guiar su comportamiento y generar la salida deseada. En el contexto de los LLM, como GPT-3, un mensaje sirve como texto o pregunta inicial que se proporciona al modelo para obtener una respuesta o generar texto basado en esa entrada.

Las indicaciones pueden tomar varias formas dependiendo de la tarea que desee que realice el LLM. Pueden ser tan cortos como una sola oración o tan largos como un párrafo. La clave es proporcionar instrucciones claras y contextualmente relevantes que guíen el modelo hacia la producción del resultado deseado.

Dado que las indicaciones son la interfaz principal entre los usuarios y los LLM, no se puede exagerar la importancia de escribir una buena solicitud. La elección de las palabras, la redacción y la claridad de la instrucción pueden influir significativamente en la calidad y relevancia del resultado generado.

Elementos de un mensaje

Normalmente, un mensaje incluye varios elementos que ayudan a guiar la respuesta o el resultado generado por el LLM. Estos son algunos elementos comunes de un mensaje:

  1. Tema/asunto: El tema o tema de la pregunta proporciona una amplia área de enfoque para la respuesta. Por ejemplo, un mensaje podría pedirle a un modelo de lenguaje que genere texto sobre un tema específico como "cambio climático" o " inteligencia artificial".
  2. Tarea/meta/propósito: La tarea o el objetivo de la indicación especifica qué tipo de respuesta se desea. ¿Es para persuadir, informar, entretener o algo más? Por ejemplo, un mensaje podría pedirle a un modelo de lenguaje que genere un ensayo persuasivo sobre un tema en particular o que escriba una historia corta que cumpla con ciertos criterios.
  3. Público objetivo / perspectiva: El público objetivo de la solicitud identifica el público objetivo para la respuesta. Por ejemplo, un mensaje podría pedir a un modelo de lenguaje que genere texto que sea adecuado para un público general o para un grupo de edad específico. Por ejemplo, "Responde como si fueras un profesor que da consejos a un alumno".
  4. Tono/estilo: El tono o estilo de la indicación puede influir en el tono o estilo de la respuesta. Por ejemplo, un mensaje podría pedir a un modelo de lenguaje que genere texto formal, informal, humorístico o serio. Contexto / antecedentes: Proporcionar información de fondo relevante ayuda a preparar el escenario para una respuesta informada.
  5. Longitud/formato: La longitud o el recuento de palabras del mensaje puede especificar la cantidad de contenido que se espera en la respuesta. Por ejemplo, un mensaje podría pedir a un modelo de lenguaje que genere una respuesta de entre 500 y 1000 palabras.
  6. Instrucciones/pautas específicas: La consigna puede incluir instrucciones o pautas específicas que deben seguirse en la respuesta. Por ejemplo, un mensaje puede pedir a un modelo de lenguaje que genere texto que incluya palabras clave o frases específicas, o que se adhiera a un formato o estructura determinados. Por ejemplo, "Enumera 3 razones por las que..."

Al incluir estos elementos, un mensaje puede ayudar a guiar la respuesta generada por un modelo de lenguaje o un sistema de IA, al tiempo que proporciona un grado de flexibilidad y creatividad en el resultado. Las indicaciones más efectivas combinarán varios de estos elementos para proporcionar suficiente dirección sin restringir demasiado la respuesta. Las indicaciones vagas o demasiado amplias pueden dar lugar a respuestas desenfocadas e incoherentes.

La ingeniería de indicaciones es un tema amplio y no se puede cubrir lo suficiente dentro de la redacción de una tarea. Estos son algunos recursos recomendados para obtener más información sobre la ingeniería de solicitudes:

La ingeniería de avisos es solo uno de los conceptos relevantes para usar los LLM de manera efectiva. Algunos otros conceptos importantes incluyen:

Tokenización

Los tokens en el contexto de los LLM se refieren a los elementos o unidades individuales del lenguaje que el modelo procesa y genera. Estos tokens pueden ser subpalabras, palabras o caracteres, y son los bloques de creación básicos del lenguaje que el modelo entiende y genera.

Por ejemplo, en un modelo de lenguaje que usa subpalabras como tokens, cada subpalabra correspondería a una parte específica de una palabra, como un prefijo, un sufijo o una raíz. A continuación, el modelo utilizaría estas subpalabras para generar palabras y frases combinándolas de diferentes maneras.

Por el contrario, un modelo de lenguaje que usa palabras como tokens procesaría y generaría palabras completas, en lugar de subpalabras. Y un modelo que usa caracteres como tokens funcionaría con caracteres individuales, como letras o números, para generar texto.

La elección de la granularidad del token puede afectar al rendimiento del modelo de lenguaje, así como al tipo de tareas para las que se puede usar. Por ejemplo, un modelo que usa subpalabras como tokens puede ser mejor para generar palabras y oraciones que contienen prefijos y sufijos, mientras que un modelo que usa palabras como tokens puede ser mejor para generar oraciones y párrafos completos.

Vale la pena señalar que la tokenización del lenguaje puede ser un proceso complejo, y diferentes modelos pueden usar diferentes estrategias de tokenización según la tarea específica y el tipo de lenguaje que están procesando.

Tanto los tokens de entrada como los de salida constituyen el número total de tokens en una llamada a la API, lo que afecta a:

  • Cuánto cuesta la API, ya que los proveedores de LLM suelen cobrar por token.
  • Cuánto tiempo tarda la llamada a la API, ya que se necesita más tiempo si hay más tokens de entrada para procesar y tokens de salida para generar.
  • La funcionalidad de la llamada a la API, ya que el total de tokens debe permanecer dentro del umbral máximo del modelo (por ejemplo, 4096 tokens para ).gpt-3.5-turbo

Más información sobre los tokens:

Fine-tuning

Una de las técnicas para mejorar el diseño de la solicitud se denomina "solicitud de pocos disparos", que consiste en proporcionar ejemplos dentro de la solicitud. Con el ajuste, se pueden proporcionar ejemplos (datos de entrenamiento) a un modelo fuera de las indicaciones y el modelo se está "ajustando". Las solicitudes de un modelo ajustado harán uso de los datos de entrenamiento al generar la salida. Estos módulos afinados dan como resultado:

  1. Mejores resultados que el diseño rápido.
  2. Capacidad para entrenar con más ejemplos de los que pueden caber en un mensaje.
  3. Ahorro de tokens debido a avisos más cortos.
  4. Solicitudes de menor latencia, ya que hay menos tokens para procesar.

El ajuste fino es una mejora con respecto al aprendizaje de pocos disparos, ya que se pueden proporcionar muchos más ejemplos y no cuentan para los tokens de solicitud. Una vez que se haya ajustado un modelo, no necesitará proporcionar tantos ejemplos en el mensaje. Esto da como resultado solicitudes más rápidas y económicas.

En general, el ajuste fino implica los siguientes pasos:

  1. Prepare y cargue datos de entrenamiento.
  2. Entrene un nuevo modelo optimizado.
  3. Utilice su modelo afinado.

El ajuste es específico de los modelos y no todas las API de LLM ofrecen la funcionalidad. A partir de agosto de 2023, OpenAI permite el ajuste fino de .gpt-3.5-turbo

Más información sobre el ajuste fino:

Hito 8: Dé dos o tres ejemplos de indicaciones que utilizó y explique cómo diseñó para que sean eficaces. ¿Qué técnicas utilizaste para mejorar la efectividad? de sus indicaciones?

Usar el modelo adecuado para el trabajo

No todos los modelos se fabrican de la misma manera. Cada modelo tiene sus propias ventajas, limitaciones y parámetros de personalización. La clave es encontrar el modelo más adecuado para su aplicación.

LLM y proveedores populares

  • OpenAI: OpenAI es uno de los pioneros en el campo de los LLM y no necesita más presentación. Han lanzado una serie de LLM, incluidos GPT-3 y GPT-4. Los LLM de OpenAI son conocidos por su gran tamaño y su capacidad para generar texto realista y creativo.
  • Command por Cohere: Cohere desarrolla un LLM llamado Command y su plataforma ofrece una amplia gama de servicios que se pueden ver como una versión con baterías incluidas de la API de OpenAI.
  • Llama 2 por Meta IA: LLM de código abierto de Meta que es de uso gratuito. No hay una API alojada oficial disponible, por lo que si desea usarla, deberá alojarla usted mismo. Check-out Web LLM para una versión que se ejecuta en el navegador.
  • Hugging Face: Hugging Face es una plataforma impulsada por la comunidad para LLM. Proporcionan una serie de herramientas y recursos para los desarrolladores que desean utilizar los LLM. Los LLM de Hugging Face son conocidos por su diversidad y su disponibilidad.
  • Bard por Google AI: Mientras que los datos de ChatGPT solo están hasta septiembre de 2021 (usando GPT-3.5), Bard, que es un chatbot de Google, usa PaLM 2 y se basa en eventos actuales en tiempo real extraídos de la Búsqueda de Google. Sin embargo, el acceso a la API de Bard todavía está en versión beta y requiere un proyecto de Google Cloud.
  • Claude by Anthropic: Claude es un LLM desarrollado por Anthropic, una empresa que se centra en el desarrollo de inteligencia artificial segura y beneficiosa. A partir de agosto de 2023, la API aún no está disponible de forma general.

Vercel AI Playground permite comparar la salida de diferentes modelos de los distintos proveedores utilizando el mismo mensaje. ¡Súper práctico!

A la hora de elegir LLM y proveedores, es importante tener en cuenta sus necesidades y requisitos específicos. Algunos factores a tener en cuenta incluyen el tipo y el tamaño de los datos de entrenamiento, el tipo de aplicaciones que desea compilar, el tamaño de la ventana de contexto (tokens máximos permitidos) y el precio por token.

Ciertos LLM son más adecuados para ciertas tareas de dominios específicos. Si tu app está lidiando con código como GitHub Co-pilot, es posible que encuentres que Code Llama y WizardCoder es más adecuado para el trabajo. Si necesita datos/conocimientos en tiempo real para su salida, es posible que GPT-3.5 no sea la mejor opción porque los datos no se actualizan desde septiembre de 2021. ¡Es importante seleccionar el modelo que sea más adecuado para su producto!

Lo más probable es que la API de LLM que estás utilizando no sea gratuita. Sin embargo, los costos deben ser bastante bajos para el volumen de uso de una tarea. Si tiene dificultades para acceder a las API, envíe un correo electrónico al personal docente.

Configuración del modelo

Más allá del diseño de solicitudes, la mayoría de los modelos LLM también proporcionan los siguientes ajustes para permitir un mayor control sobre la salida:

  • Max tokens: el número máximo de tokens que se van a generar.
  • Temperatura: La temperatura es un hiperparámetro en los modelos de lenguaje que controla la creatividad y la diversidad del texto generado. Una temperatura alta significa que el modelo tiene menos confianza en sus predicciones y, por lo tanto, generará un texto más creativo y diverso, pero también puede ser menos preciso y aleatorio. Una temperatura baja significa que el modelo tiene más confianza en sus predicciones y, por lo tanto, generará un texto más preciso y coherente. El mejor ajuste de temperatura dependerá de la aplicación específica. Por ejemplo, si utiliza un modelo de lenguaje para generar texto para un artículo de noticias, querrá utilizar una temperatura baja para asegurarse de que la salida sea precisa desde el punto de vista fáctico y gramaticalmente correcto. Sin embargo, si está utilizando un modelo de lenguaje para generar texto creativo, como poesía o ficción, es posible que desee usar una temperatura más alta para permitir una mayor creatividad y diversidad.
  • Top-P: Top-P limita la masa de probabilidad que se tiene en cuenta al muestrear. Por ejemplo, si establece Top-P en 0,75, el modelo solo tendrá en cuenta los tokens cuya probabilidad sea de al menos el 75 %. Esto puede ayudar a reducir la aleatoriedad de la salida y aumentar la probabilidad de que el modelo genere texto que sea relevante para la solicitud. Se recomienda personalizar la temperatura o Top-P, no ambos.
  • Penalizaciones de frecuencia/presencia: Coeficientes que penalizan los tokens en función de cuánto o si existen en el texto para reducir la probabilidad de que vuelvan a aparecer.
Hito 9: Justifique su elección de LLM y proveedor comparándolo con al menos dos Alternativas. Explique por qué el que ha elegido mejor satisface sus necesidades. Explique la elección de los parámetros del modelo.

Evaluación de la eficacia

Una vez que las integraciones de LLM estén en funcionamiento, es posible que desee configurar una canalización de evaluación para verificar si sus esfuerzos de ingeniería de ajuste fino o de prontitud están funcionando en varios ejemplos de pruebas. Hay dos grandes clases de métricas de generación de lenguaje natural:

  • Las métricas basadas en N-gram miden la superposición de palabras o tokens con respecto a la referencia. Por ejemplo, BLEU, METEORITO.
  • Las métricas basadas en modelos utilizan un modelo neuronal para medir la similitud con respecto a la referencia. Por ejemplo, BLEURT, BERTScore.

Las métricas basadas en ngramas son más apropiadas cuando se espera una redacción precisa, y las basadas en modelos suelen permitir una generación más abierta. Diferentes métricas nos informan sobre diferentes aspectos de la generación de lenguaje natural y, por lo general, no existe una única métrica de evaluación correcta. Sin embargo, existen métricas tradicionalmente asociadas con las tareas de NLP. Por ejemplo, BLEU para la traducción y ROUGE para la resumen. Es lo suficientemente seguro usar la métrica predeterminada para su tarea específica, ya que debe haber implementaciones disponibles en su lenguaje preferido. Tenga en cuenta que es posible tener varias referencias correctas para una sola oración de prueba.

Lecturas adicionales:

Otros recursos

Cursos y Tutoriales

Herramientas

El uso de LLM conlleva algunos inconvenientes, como la salida no estructurada, la conservación del contexto y la memoria en las finalizaciones y una gran cantidad de código repetitivo. Estas son algunas herramientas que pueden ayudar durante el desarrollo con LLM:

  • LangChain: LangChain es una poderosa herramienta que se puede utilizar para crear una amplia variedad de aplicaciones que utilizan LLM. Tiene abstracciones para lograr operaciones comunes de LLM rápidamente, como cargar/transformar/almacenar datos, operaciones secuenciales en datos, recordar interacciones anteriores y actuar sobre la salida de LLM.
  • Vercel AI SDK: Una biblioteca de código abierto diseñada para ayudar a los desarrolladores a crear interfaces de usuario impulsadas por IA en JavaScript y TypeScript. Hace que la creación de interfaces de usuario de chat de IA basadas en streaming sea sencilla.
  • TypeChat: TypeChat ayuda a obtener respuestas bien escritas y estructuradas de los LLM sin la necesidad de analizar la salida usted mismo.
  • Web LLM: Este proyecto lleva un modelo de lenguaje grande y un chatbot basado en LLM a los navegadores web, lo que hace que el uso de LLM sea gratuito. Sin embargo, puede haber ciertos requisitos técnicos para los dispositivos.
  • LlamaIndex: Un "marco de datos" para ayudarlo a crear aplicaciones de LLM al proporcionar conectores de datos para ingerir fuentes y formatos de datos existentes (API, PDF, DOCUMENTOS, SQL), interfaces de recuperación/consulta sobre sus datos y más.

Las siguientes plataformas mejoran la experiencia de uso de LLM en producción. Pueden ser excesivos para sus tareas/proyectos, pero se mencionan aquí para su consideración:

  • LangSmith: Por los creadores de LangChain, LangSmith lo ayuda a visualizar, depurar y mejorar sus aplicaciones LLM.
  • Humanloop: Una plataforma que permite a los equipos crear sistemas de IA fiables y de alto rendimiento al proporcionar supervisión, pruebas A/B, un espacio de trabajo colaborativo de avisos, almacenamiento privado de datos y ajustes.

LLM de código abierto

Plataformas como Hugging Face ofrecer soporte para modelos de lenguaje de código abierto populares nacidos de los esfuerzos de la comunidad para recrear LLM propietarios existentes proporcionados por empresas diversas a través de API o software. Estos LLM de código abierto son fácilmente fine-tunable y ligeros. Si bien no son tan potentes como los LLM disponibles comercialmente, ofrecen una experiencia gratuita, con descuento, pero sorprendentemente expresiva en términos de generación de texto y capacidades de razonamiento. Estos son algunos modelos populares y guías asociadas para ajustarlos:

ModeloRecursos
Llama 2GitHub ,Guía de ajuste fino, Papel
Vicuña-13BGitHub ,Guía de ajuste fino,
AlpacaGitHub ,Guía de ajuste fino
MPT-7BGitHub ,Guía de ajuste fino, Documentación
GPT-J-6BGitHub ,Guía de ajuste fino 1, Guía de ajuste fino 2

Se recomienda que los usuarios interesados en ajustar dichos modelos tengan acceso a clústeres de computación de alto rendimiento con GPU disponibles (sugerencias: NVIDIA RTX 3090, NVIDIA RTX4090, NVIDIA H100 Tensor Core, etc.). Alternativamente, puede buscar plataformas de computación en la nube en línea como Laboratorios Lambda, Espacio de documentoso Google Colab Pro/Pro+.

También puede solicitar créditos gratuitos en la nube a través de la plataforma de Google Cloud Programa de Investigación y Educación (Sin embargo, no hay garantías de obtenerlo definitivamente, ya que está basado en aplicaciones, ¡pero pruebe su suerte!).

Fase 4: Diseño

El diseño aquí se refiere a muchas cosas: la marca, la tecnología/ingeniería y el producto.

Marca de tu producto

Cada producto tiene un nombre. Este nombre es la forma en que las personas encuentran, refieren y recuerdan el producto. La mayoría de los productos tienen logotipos. Este logotipo es la forma en que las personas reconocen y asocian las relaciones con el producto. Los nombres, logotipos, combinaciones de colores, fuentes, etc. de un producto o empresa forman colectivamente una personalidad con la que las personas pueden relacionarse y asociarse. Esta persona es exactamente una marca.

Una marca engloba la esencia de una empresa: sus valores, promesas y la conexión emocional que establece con su público. Con la gran cantidad de empresas y productos en el competitivo panorama empresarial actual, estos sentimientos casi nunca son accidentales, sino que se elaboran y prueban cuidadosamente a lo largo de cientos de iteraciones.

Piensa en los arcos dorados de McDonald's. Trasciende las barreras lingüísticas y las diferencias culturales. Encarnan la promesa de la empresa de consistencia, servicio rápido y asequibilidad. Cuando las personas ven esos arcos dorados, inmediatamente los asocian con gustos familiares, conveniencia y todo un espectro de experiencias compartidas. Probablemente usted mismo recuerde los recuerdos de su primera cita, la reunión con amigos o la cena nocturna al hacer las tareas pendientes. En este aspecto, los arcos dorados de McDonald's son más que un logotipo; Capturan sentimientos, historias y recuerdos.

Algunas marcas incluso se convierten en señales lingüísticas. Cuando quieres saber algo lo buscas en Google. Si perdías el autobús y el tren, te agarrabas a la oficina. Si quieres expresar tu frustración con Ruby on Rails o Angular, debes tuitear al respecto. Mira; ¡Este lugar es tan pintoresco que es instagrameable! Y el ejemplo va más allá de los contextos culturales. En Indonesia, la gente se refiere coloquialmente a los detergentes para ropa como "Rinso" en lugar de la traducción del diccionario deterjen pakaian, o pañales de bebé como "Pampers" en lugar de popok bayi. En Singapur, la gente se refiere coloquialmente a los fideos instantáneos como "Maggi yo", o recientemente, la videoconferencia como "zoom llamadas". La lista continúa: velcros (cierres de velcro), aspirina (ácido acetilsalicílico), fotocopiaring ( fotocopias), Cintas adhesivas (cintas adhesivas), Notas adhesivas (notas adhesivas), tiritas (vendajes), Consejos de preguntas (bastoncillos de algodón), etc. En particular, las marcas que forman estos verbos o sustantivos a menudo se reconocen como el estándar de sus respectivas categorías de productos. Este es el poder de una buena marca. No solo evocan sentimientos y confianza, sino que también generan ingresos.

Estas razones son la razón por la que es importante construir una buena marca. Incluso elegir nombres suele ser tedioso. Pensar:

  • Longitud del nombre. ¿Será demasiado difícil de recordar?
  • Reproducibilidad del nombre por ortografía. Si A escuchara a B decir "Utilizo Whatchamacallit para construir este sitio web", ¿podría A escribirlo y encontrarlo en los motores de búsqueda?
  • Disponibilidad de nombres de dominio. Algunos incluso pueden ser astutos con Hackeos de dominiop ej. del.icio.us, pero ¿se puede compartir verbalmente fácilmente?
  • Disponibilidad de manejadores sociales. ¿Está @mynextstartup disponible en los principales sitios de redes sociales, por ejemplo, Instagram, X, Threads, TikTok, etc.? Si no te apresuras a reclamar el mango, los adversarios pueden reclamarlo primero, y es posible que tengas que comprárselo o presentar una disputa.
  • Similitudes con otras marcas. ¿Podría la gente pensar que tu producto Zwitter es solo un clon barato de Twitter?
  • Referencias culturales. ¿Sabías que la marca de pasta de dientes Darlie se conocía originalmente como Darkie? Se cambió en 1989 debido a que "darky" o "darkie" se consideraba un insulto racial.
  • Posibilidad de ser atrapado en los filtros web. En abril de 1998, "shitakemushrooms.com" fue bloqueado por los filtros DNS porque contenía la palabra "mierda". Esto se conoce como el Problema de Scunthorpe. Si quieres ver más ejemplos, echa un vistazo al artículo "30 Nombres de Dominio Involuntariamente Inapropiados".

Estos son sólo una fracción de los factores que hay que tener en cuenta a la hora de elegir los nombres. Se aplican diferentes factores a la hora de elegir logotipos y combinaciones de colores. Piensa en cómo se verían si estuvieran impresos en diferentes materiales. ¿Tienen los logotipos alguna semejanza con un tema potencialmente despectivo, visto desde cualquier ángulo? ¿Qué tan fácil es reproducirlo a mano? ¿Puede ser un vector (para que sea escalable en diferentes medios)? ¿Cómo se vería si fuera en blanco y negro o contra un fondo ocupado? Pensar El primer logotipo de Apple.

Siempre vale la pena construir una identidad de marca relativamente fuerte cuando ingresas al mercado, porque los cambios de marca pueden ser una pesadilla. Recientemente Twitter pasó a llamarse X, y se prevé que la plataforma se convierta en una superaplicación. En 2020, ZEIT pasó a llamarse Vercel. En 2021, The Facebook Company pasó a llamarse Meta. En cada cambio de marca, las empresas (por lo general) pagan el precio: burlas, dinero para pagar por nombres de dominio tomados y adaptación del cliente. Tropicana fue probablemente el ejemplo más conocido de un mal rediseño. En particular, no todos los cambios de marca son terribles. Algunos incluso pueden resucitar un negocio moribundo. El desafío proviene del hecho de que existe una identidad como comparación, y la transición introduce grandes fricciones.

Hay muchos generadores de logotipos, pero después de leer hasta aquí, probablemente te darás cuenta de que una buena marca es un buen logotipo; No es independiente, es una parte integral de una marca. Para crear una buena identidad de marca (nombre, logotipo, fuentes, combinaciones de colores, etc.), debes reflexionar sobre la personalidad que deseas que tu empresa o producto transmita a tus usuarios, y luego seguir adelante. Uso Pinterest (en inglés), Regate, A mitad de camino, Refrigeradores, Fuentes de Google, o incluso los numerosos generadores de logotipos para hacer una lluvia de ideas en busca de inspiración. A continuación, elige un medio cómodo para dibujar, por ejemplo, lápiz y papel, Figma, Microsoft Paint, etc., para unir todo. Pruebe los prototipos de identidad de su marca con sus amigos y familiares, y vea si pueden adivinar qué aplicación está creando con solo ver su logotipo.

En particular, una buena identidad de marca requiere toneladas de investigación y pruebas. Escuelas de diseño hablar sobre branding durante todo un semestre. Debido a la densidad de Esta tarea, se espera que construya una identidad de marca lo suficientemente decente, es decir, con las debidas consideraciones. No deberías detenerte demasiado en esto hito. Tal vez incluso sea mejor construir primero su MVP con un nombre en clave, solo Después, piensa en colaboración en el mejor logotipo para ponerlo en tu aplicación. Si Lo hiciste lo suficientemente bien, ¡incluso puedes ganar puntos de brownie por ser genial!
Hito 10: Piensa en un nombre de producto y crea un logotipo atractivo. Explique el significado Detrás del nombre, las alternativas que ha considerado y por qué se eligió esto.

Pila de tecnología

Un producto de software funcional está respaldado por una multitud de tecnologías, cada una de las cuales apoya el logro de la lógica de negocios. Juntas, estas tecnologías se describen colectivamente como una pila tecnológica o pila tecnológica. En particular, sus usuarios no conocerían realmente las maquinaciones internas de su software. Sin embargo, elegir la pila tecnológica incorrecta podría ser contraproducente para su desarrollo a largo plazo.

Un factor que la mayoría de la gente considera es la popularidad. Es difícil hacer un seguimiento de las últimas bibliotecas y marcos porque siguen llegando. Las tecnologías más nuevas suelen recibir la mayor atención porque intentan solucionar los problemas de las tecnologías "estándar" actuales. Por ejemplo Esbelto sintaxis es más fácil de leer que Reaccionar, Deno tiene un mejor sistema de gestión de paquetes que Nodoo esbuild es astronómicamente más rápido que Paquete web. En particular, cuanto más nuevas sean las tecnologías, menor será el apoyo de la comunidad en comparación con las que han existido durante más tiempo. Es posible que algunos ni siquiera estén lo suficientemente probados para todos los casos de uso extremos. Algunos ganaron titulares por un tiempo, luego se quedaron cortos e inevitablemente fueron olvidados. Puedes ver cómo Stack Overflow comparó cómo algunas tecnologías web resistieron su exageración en su Encuesta 2023 aquí.

Si bien puede ser tentador vivir al límite y probar nuevas y emocionantes tecnologías, uno debe ser prudente con su elección. Tenga en cuenta lo siguiente:

  • La familiaridad de su equipo con las tecnologías.
  • Cómo se escalan las tecnologías con los usuarios y la lógica empresarial (que podría aumentar).
  • La madurez del ecosistema en torno a las tecnologías; ¿Puedes encontrar ayuda si te enfrentas a un error misterioso?
  • Las credenciales de los patrocinadores de las tecnologías; ¿Abandonará el mantenedor este marco en un futuro próximo?
  • Su confianza en la tecnología; Si decides pivotar en el futuro, ¿qué tan fácil o difícil será? Elegir una pila tecnológica no es diferente de elegir el proveedor adecuado para externalizar una licitación en su empresa.

Por lo general, es mejor elegir uno con el que la mayoría de los miembros del equipo estén familiarizados y empezar a construir y fallar rápidamente. Por supuesto, con cualquier consejo, ejercita tu propia sabiduría. The Browser Company decidió construir la versión para Windows de Navegador Arc ampliando el compilador Swift (en el momento de escribir este artículo, bastante básico) para que admita SwiftUI, en lugar de optar por la opción más obvia de Electrón. Puedes ver el CTO Háblalo aquíy vea por qué eligieron desafiar el statu quo para su caso de uso.

Recuerda que es probable que a tus usuarios no les importe tu pila tecnológica. No sabrán si tu base de código es un tributo a La arquitectura limpia de Robert C. Martin o parece espagueti podrido. Con cada elección hay una lista de compensaciones. Lo que comprometes hoy es lo que pagarás mañana. Esto es lo que se conoce como un Deuda técnica.

Algunas de las pilas que puede considerar giran en torno a los siguientes dominios.

  • Front-end: Esto es con lo que interactuarán sus usuarios. Ejemplos: React, Vue.js, Next.js, Svelte, etc.
  • Estilo: estas bibliotecas facilitan la inclusión de elementos de la interfaz de usuario, por ejemplo, botones, menús, tarjetas, etc., en la aplicación. Las diferentes bibliotecas tienen diferentes flexibilidades de personalización. Dependiendo de tu lenguaje de diseño, es posible que ni siquiera necesites ninguna biblioteca de estilo y que lo construyas todo desde cero. Ejemplos: Tailwind CSS/UI, Bootstrap, Bulma, MUI, etc.
  • Persistencia de los datos: ¿SQL o NoSQL? SQL se utiliza para administrar bases de datos relacionales, por ejemplo, MySQL (en inglés), PostgreSQLetcetera. NoSQL es esencialmente cualquier cosa que no sea SQL, por ejemplo, MongoDB, Redisetcetera. Incluso puede utilizar sistemas de bases de datos de nivel superior como Base de datos en tiempo real de Firebase o Tienda de fuego en la nube, Supabase, o combine su elección de sistema de base de datos con GraphQL (en inglés) para facilitar las consultas. Recuerde que la elección del sistema de base de datos y la forma en que está estructurado dicta casi directamente la escalabilidad y el rendimiento de su aplicación. En función del esquema, puede dificultar la representación de algunos modelos o ralentizar las consultas. Las migraciones no siempre son reversibles y casi siempre son dolorosas. Véase la nota a continuación.
  • Autenticación: La mayoría de las aplicaciones tendrán algún tipo de sistema de cuentas de usuario. OAuth es una excelente opción debido a la facilidad de integración y facilidad de uso sin la necesidad de ingresar correos electrónicos y contraseñas. Algunas aplicaciones confidenciales pueden optar por implementar su propio sistema de autenticación (piense en bancos, sistemas gubernamentales). La autenticación automática le da más control, pero subcontratarla a un servicio de terceros (de buena reputación) puede brindarle garantías de seguridad porque probablemente haya sido probada en batalla y mantenida regularmente. Ejemplos: auto-rolled, Firebase Authentication, Auth0, etc.
  • Servidor back-end: aquí es donde residirá la mayor parte, si no toda, la lógica de negocio. Piensa en el cliente front-end como el shell y en el servidor back-end como el núcleo de tu aplicación. Este servidor se comunica con todos (API de terceros, sistemas de bases de datos, servidores de almacenamiento en caché, etc.) y sirve cualquier cosa que el cliente necesite. Ejemplos: Go, Django, Ruby on Rails, Express, etc.
  • Alojamiento: Después de que todo esté construido en su computadora local, debe implementarlo en algún lugar para que su software esté disponible para todos. Interactúaría con estas plataformas para implementar su aplicación. Algunos son tan simples como proporcionarle una CDN para alojar sus archivos estáticos, por ejemplo, Cloudflare (en inglés), Netlify (en inglés), Páginas de GitHub. Algunos incluyen un poco más de baterías, lo que le brinda funciones en la nube, servicios de autenticación y sistemas de bases de datos, por ejemplo, Vercel, Base de fuego. Algunos literalmente te dan solo un montón de servidores remotos, por ejemplo, Nube de Google, Servicios web de Amazonetcetera. En particular, es un equilibrio entre complejidad, flexibilidad y costo.
  • Plataformas de integración, entrega e implementación continuas: estas plataformas le ayudan a preparar su código para su lanzamiento (integración continua) e implementarlo en producción (implementación continua), todo de forma automatizada para aumentar la productividad. También pueden ayudar a su equipo a detectar errores de forma asincrónica y garantizar la coherencia durante la implementación. Dependiendo de su caso de uso, es posible que se beneficie o no de uno. Ejemplos: CircleCI, Travis CI, GitHub Actions, etc.
  • Servicios varios: Es posible que tu app necesite algunas tecnologías específicas del dominio, p. ej., servicios respaldados por LLM (consulta a continuación), mapas (Plataforma de Google Maps, AQUÍ Vamos, OpenStreetMap (en inglés), etc.), motores de búsqueda (Algolia, Búsqueda elástica, etc.), visión artificial (Abrir CV, Gráficos de TensorFlow, etc.), etc. Dedique un tiempo a hacer un balance de lo que necesitará su aplicación y vea las opciones disponibles. Recuerde, cuanto menos código necesite escribir, más rápido podrá iniciar.

Si algunos de los servicios que eliges no son gratuitos, es posible que tengas que agrupar todos los costes operativos y tenerlos en cuenta a la hora de decidir tu modelo de negocio. En particular, sus ingresos deben cubrir todos los costos operativos para que su negocio sea sostenible, incluso mucho antes de que sea rentable.

La migración casi siempre no es divertida. Por lo general, las migraciones están pensadas para mantener el mismo comportamiento, por lo que a menudo no cambia la lógica de negocios (características). Es un intento realmente costoso y arriesgado, porque con cada cambio hay una perturbación de la estabilidad. Por lo general, sin cambios en las características, mayor riesgo de perturbación de la estabilidad y la integridad de los datos, y una gran inversión de horas de ingeniería, las migraciones son una de las operaciones más temidas en la ingeniería de software. Por lo tanto, cualquier decisión que minimice la necesidad de migraciones suele ser favorable.
Hito 11: Explique la elección de tecnologías para lo siguiente: interfaz de usuario, base de datos, servidor web, Hosting, Autenticación, etc. y las alternativas que hayas considerado.

Experiencia de usuario

La experiencia de usuario (UX) es muy diferente de la interfaz de usuario (UI). Una interfaz de usuario bonita no garantiza una buena experiencia de usuario en absoluto. A veces, una interfaz de usuario atractiva puede ser un desastre debido a una mala experiencia de usuario. Sitios como Craigslist todavía tienen un montón de usuarios activos diarios a pesar de su interfaz de usuario. 😵

La experiencia de usuario abarca todos los aspectos de la interacción del usuario final con un producto. Hay muchos componentes que componen una buena experiencia de usuario, pero como mínimo, la aplicación debe permitir a los usuarios hacer lo que quieran con un mínimo de alboroto. La experiencia de usuario va mucho más allá de dar a los usuarios lo que dicen que quieren o proporcionar una lista de verificación de funciones. Para lograr una experiencia de usuario de alta calidad en su aplicación, se debe pensar detenidamente en su funcionalidad, diseño de interacción y diseño de interfaz.

Si el producto es un televisor, la experiencia de usuario comienza por cómo se coloca el producto en los estantes de la tienda, cómo el empaque permite que el cliente lo lleve al cajero, si puede caber en el maletero del automóvil de alguien, hasta qué punto se debe leer el manual para ensamblar el televisor, hasta que el televisor se descompone, reparados, o incluso reciclados. En particular, la experiencia de usuario difiere de la interfaz de usuario porque la experiencia de usuario no se limita a los productos de software. Don Norman y Jakob Nielsen, dos de los padres de la UX, UX definida, en contraste con UI, muy bien aquí. El sitio web de Nielsen Norman Group también ofrece muchos recursos sobre UX que puede que desee consultar.

La UX tiene que ver con la investigación. Requiere la comprensión de su usuario. No solo cuando están utilizando su producto, sino también los entornos que rodean el momento de uso, los diferentes agentes que rodean el producto y sus implicaciones, y en última instancia sus objetivos. Si está creando una aplicación que se usa en autobuses ruidosos o lugares concurridos, ¿pueden sus usuarios tocar esos pequeños botones (esto se conoce como un Discapacidad situacional)? Si está creando una aplicación para que los profesores introduzcan las calificaciones, ¿cómo cree que afectará a los padres de los profesores y a los estudiantes (se les conoce como Usuarios primarios, secundarios y terciarios)? No hay preguntas correctas, así como no hay respuestas correctas. Habla con tus usuarios y empatiza con sus objetivos. Vuelve a la mesa de dibujo e idea un prototipo. Pruébelo con ellos, recopile comentarios, sorpréndase e itere. Al igual que la ingeniería de software, el desarrollo de productos es un proceso iterativo (léase: ágil).

Usted no es su propio usuario. Repítelo. Usted no es su propio usuario. Eso no importa si crees que perteneces al público objetivo de tu propia aplicación, Todavía no eres, y nunca serás, tu propio usuario. Por lo tanto, es importante distanciarse al investigar los comportamientos de los usuarios: estar preparado para las sorpresas, y ser humilde a las contraintuiciones. Si te interesa, el campo que estudia fuertemente estos temas en el contexto de las computadoras se llama Interacción Humano-Computadora (HCI).

La experiencia de usuario no es solo el trabajo del diseñador de interfaz de usuario. Al igual que una buena interfaz de usuario, sabrá si la experiencia de usuario de una aplicación es buena o mala. Cualquier miembro del equipo puede contribuir a tu diseño de UX utilizándolo y proporcionando comentarios y sugerencias. Pídeles a tus amigos que lo usen también para recopilar más comentarios e ideas.

Probablemente puedas adivinar ahora que la UX está algo relacionada con la marca. Las dicciones que prefieren el coloquialismo a la especificidad pueden transmitir un sentimiento relajado y amistoso (En 2018, Gojek renovó su aplicación para relacionarse mejor con los lugareñosy Don Norman habló de diseños que hacen feliz a la gente). Las transiciones suaves y los diseños ordenados pueden transmitir una sensación de estabilidad y confianza (conocida como el Efecto estético-usabilidad). Las animaciones y la elección de materiales (degradados, acrílicos, sombras, elevaciones, etc.) dan una sensación de espacio y control, de que el usuario conoce las relaciones entre los elementos de la interfaz de usuario. Probablemente ahora puedas apreciar cómo la mayoría, si no todas, las decisiones de la interfaz de usuario se derivan inherentemente de consideraciones de UX.

Se implora que ahora puedas apreciar lo costoso que puede ser un proceso de investigación de UX. Pero no te preocupes demasiado: en general, es mejor lanzar con una cobertura decente y una perspectiva constructiva, que una cobertura supuestamente exhaustiva pero una perspectiva obstinada.
Hito 12: Describa tres flujos de trabajo comunes dentro de su aplicación. Explique por qué esos flujos de trabajo se eligieron en lugar de alternativas con respecto a la mejora de la experiencia general en el contexto de una aplicación de IA.

Interfaz de usuario

La interfaz de usuario es el espacio donde se producen las interacciones entre humanos y computadoras para lograr sus objetivos. Probablemente ya estés familiarizado con algunos de los conceptos de la interfaz de usuario de la Tarea 1. Pero el diseño de la interfaz de usuario es más que una tipografía o una teoría del color.

Algo único en esta tarea es la incorporación de tecnologías de IA en su aplicación. Francamente, este es un desarrollo bastante nuevo y no hay reglas estrictas en el diseño de interfaces para aplicaciones de IA. Sin embargo, hay algunos aspectos que uno debe tener en cuenta a la hora de incorporar inteligencia en su aplicación.

La ética es un gran problema cuando se trata de diseño en general, no solo de aplicaciones. Dado que la IA es una tecnología emergente, debe ser transparente sobre lo que su nueva tecnología puede y no puede hacer. Proporcione fuentes de terceros siempre que sea posible, protéjase o incluso admita si algunas acciones no son posibles. Con el tiempo, esto influye en las afirmaciones y avales que harás en tu aplicación. Es aún más importante si tu aplicación se ocupa de campos sensibles como la salud o la ingeniería, porque una recomendación demasiado confiada es tan buena como un error de juicio. Para cada recomendación, asegúrese de que el usuario finalmente tenga control sobre sus decisiones. No asumas, automatices ni confirmes acciones críticas en nombre del usuario; En su lugar, dales el control para aceptar, rechazar y/o sugerir comentarios sobre tu recomendación. Para cada elemento o característica de la interfaz de usuario inteligente que elija desarrollar, recuerde siempre que la inteligencia es artificial y, en última instancia, los humanos tienen la última palabra.

Ni que decir tiene que es la privacidad y la recopilación de datos. Sé transparente sobre qué, cuándo y dónde estás recopilando análisis y/o heurísticas de las interacciones de un usuario. Explique y dé a los usuarios la opción de optar por no participar en ciertas funciones inteligentes. Da a los usuarios control sobre lo que quieren o no quieren compartir (piensa en la configuración de permisos de aplicaciones en iOS y Android). Rápidamente se dará cuenta de que estas consideraciones no son nuevas ni exclusivas de las aplicaciones de IA; Se aplican a cualquier aplicación. La ética y la privacidad son la parte más específica del diseño de la interfaz de usuario, y lo es aún más cuando tu aplicación maneja datos confidenciales y realiza acciones confidenciales. Google tiene una gran guía para diseñar aplicaciones de IA que se centran en los humanos.

No hace falta decir que los principios básicos del diseño de la interfaz de usuario todavía se aplican en este hito. Los párrafos anteriores tenían como objetivo arrojar luz sobre los puntos de atención al crear aplicaciones de IA.

Hito 13: Muestre y explique las consideraciones/decisiones en su interfaz de usuario que se tomaron especialmente para una aplicación que aprovecha la IA. Proporcionar ejemplos, citas o justificaciones cuando sea necesario. También puede mostrar diferentes prototipos y esbozar sus compensaciones.

Fase 5: Lanzamiento

Página de aterrizaje

De forma similar a lo que ha leído en la Tarea 1, lanzar el sitio de su producto solo cuando la aplicación está lista suele ser subóptimo. En este hito, estás construyendo un sitio de producto (uno real, esta vez) que muestra tu producto. Algunos ejemplos decentes incluyen Remix, Flota de JetBrainsy Copiloto de GitHub. Un gran sitio de producto debe lograr: explicar por qué existe, informar sobre las características y llamar a una acción (una llamada a la acción).

Dado que este sitio se relaciona con el lanzamiento de su producto en un hito posterior, también vale la pena pensar en cómo se ve su sitio cuando se comparte. Piensa en lo que sucede cuando compartes una URL a través de Telegram, WhatsApp o LinkedIn. Hoy en día, las personas no solo ven la URL, sino que también ven una miniatura, el título del sitio ( truncado si es demasiado largo) y las primeras oraciones de la descripción del sitio. Estos metadatos son un estándar conocido como Protocolo Open Graph. Optimizar esto es extremadamente beneficioso porque influye en los usuarios incluso antes de que se haga clic en el enlace.

Hito 14: Cree una página de destino con fines de marketing con las siguientes secciones: Héroe, características, sección de precios. Siéntase libre de agregar secciones más relevantes si que deseas.

Analítica

Debería estar interesado en las estadísticas de uso de su aplicación. Google Analytics 4 es una forma popular de recopilar información de los usuarios. Se puede configurar fácilmente: los siguientes ejemplos utilizan el fragmento. Hablaremos de Google Analytics en la siguiente sección, pero no dude en utilizar las alternativas que prefiera. Más recientemente, ha habido un enfoque cada vez mayor en servicios de análisis de sitios web más centrados en la privacidad.gtag.js

El seguimiento de eventos puede proporcionar información más detallada sobre las acciones de los usuarios. Se pueden usar para rastrear más eventos, como estados de solicitudes de red, botones presionados o incluso interacciones de campos de formularios. El siguiente código JavaScript se puede utilizar para registrar un evento personalizado en GA4:

gtag('event', '<event_name>', {
<event_parameters>
});

En particular Eventos recomendados Le ayuda a medir características y comportamientos adicionales, así como a generar informes más útiles.

Si la interfaz de su aplicación está construida predominantemente con un marco MVC de JavaScript como React, es muy probable que tenga una aplicación de una sola página; una página HTML con todas las transiciones manejadas por código JavaScript y URL administradas por la API HTML5. Se puede seguir realizando un seguimiento de las vistas de página mediante vistas de página virtuales ejecutando el siguiente código en su lugar durante un cambio de ruta del lado del cliente.pushState

gtag('event', 'page_view', {
page_title: '<Page Title>',
page_location: '<Page Location>',
});

Refiérase a Documentación de GA4 sobre cómo "Medir las páginas vistas virtuales" para obtener más información. Como alternativa, es posible que el marco haya proporcionado documentación dedicada sobre cómo enviar eventos para cambios de ruta.page_view

Google Analytics solo actualiza los informes una vez al día, no esperes ver resultados inmediatos. Sin embargo, hay señales para comprobar que el seguimiento está funcionando en su aplicación:

  1. Utilice el depurador oficial de Google Analytics Extensión de Chrome (recomendado)
  2. Verifique la pestaña "Red" en las herramientas de desarrollo proporcionadas por su navegador. Cada vez que se produce una página o un evento rastreado, debe aparecer una nueva solicitud de disponibilidad general.
  3. Vete a Informes > tiempo real en el panel de Analytics, que le permite ver las actividades de su aplicación casi en tiempo real.

Se puede encontrar más información y ejemplos en la Documentación oficial de Google Analytics 4.

Hito 15: Incorpore Google Analytics o alternativas equivalentes en su aplicación y proporcione una captura de pantalla del informe. Asegúrate de incrustar el rastreador al menos 48 horas antes de la fecha límite de envío, ya que las actualizaciones de Google Analytics son reportado una vez al día.

Campaña de lanzamiento

Una vez que tengas ese increíble software listo para la producción, es hora de anunciarlo al mundo. Deberá designar una hora de lanzamiento, planificar lo que sucede en el momento del lanzamiento y, lo que es más importante, retener a los usuarios después del lanzamiento.

Es como una conferencia de prensa; Necesitarás personas que te ayuden a correr la voz de que decides extender tus alas. Por lo tanto, recopile sus conexiones más cercanas, foros, sitios de redes sociales (Facebook, Instagram, etc.), comunidades (por ejemplo, Reddit, X, HackerNews, Discord, etc.) y personas influyentes. Decide y planifica qué contenido representará mejor tu producto. Haz algunos borradores (texto, video, banners, dependiendo de la naturaleza de los medios), simula de ellos y revisa hasta que tu equipo se ponga de acuerdo sobre el mejor anuncio de lanzamiento. Tu equipo debe tener todos estos materiales listos, para que en el segundo de lanzamiento, todo se publique al mismo tiempo.

Algunos productos incluso pueden decidir hacer Lanzamientos suaves. Pensar Clubhouse y Navegador Arc con sus esquemas de solo invitación. Desde el punto de vista de los desarrolladores, los lanzamientos suaves son excelentes para realizar pruebas beta y obtener comentarios de manera ágil. Con una adquisición de usuarios limitada, es más fácil atender los problemas y sus servidores tienen menos posibilidades de explotar. También da una sensación de exclusividad; Hace que los que se han unido se sientan exclusivos, y los que no se han unido envidian. Los sistemas de referencia también fomentan el boca a boca, así que eso es una ventaja. Esta exclusividad puede crear expectación y expectación, ya que la gente está atenta a cuándo termina la lista de espera o se une a la lista de espera, después de lo cual puedes utilizarla como canal para compartir actualizaciones y asegurarte de que siguen recordando tu producto. Pero las listas de espera pueden incluso retrasar la adquisición de usuarios (bueno, literalmente está limitando las adquisiciones), lo que significa un menor uso, usuarios activos y comentarios. El CEO de Arc Browser habló sobre cómo están perdiendo hasta el 80% de las inscripciones debido a tener una lista de espera. Además, se debe escribir código para admitir esta lista de espera, y eso es algo más que mantener, solo para eliminarse cuando la lista de espera se ha ido. Por lo tanto, se debe tener prudencia a la hora de decidir optar por lanzamientos suaves y/o listas de espera, ya que modularán la curva de adquisición de la aplicación.

Después del lanzamiento, monitoree todos sus análisis y observe el crecimiento. Asegúrese de tener técnicos listos para corregir errores o reiniciar el servidor en caso de que la situación lo requiera. Asegúrese de tener el equipo de atención al cliente listo para responder cualquier consulta durante el momento del lanzamiento. La adquisición de usuarios no es instantánea y necesita repeticiones y recordatorios para que el sentimiento se mantenga. Uno de los mayores errores que uno puede cometer después del lanzamiento es dormirse en los laureles después de ver crecer la curva de usuarios activos. Su equipo debe comenzar a planificar la próxima cadencia (próximo lanzamiento, próximos anuncios, etc.) para que cuando esa curva comience a estabilizarse, tenga algo reservado para volver a subirla.

Product Hunt es un sitio de renombre para descubrir nuevos productos en tecnología. Está respaldado por Y Combinator y ha sacado a la luz algunos programas famosos recientemente, por ejemplo, Noción, Obsidiana, Nutriay BeReal. Es una gran inclusión para el lanzamiento de un producto de software debido a su comunidad y gran alcance. Para lanzar en Product Hunt, necesitarás varios contenidos listos para enviar: un sitio de producto, un logotipo, un primer comentario, un vídeo de demostración, un discurso de marketing, etc. Product Hunt tiene un Lista de lo que debe incluirse en la publicación de su producto, y un excelente sitio sobre la preparación para el lanzamiento de un Product Hunt. Es posible que también desee ver cómo Los productos de IA se lanzan en Product Hunt.

Aquí hay un ejemplo de lista de verificación de lanzamiento que Yangshun y su equipo utilizaron para lanzar Docusaurus 2.0 en 2022 lo que contribuyó a que Docusaurus 2.0 alcanzara la "Producto del día" adjudicar.

A pesar de que este hito se trata de lanzar en Product Hunt, el conocimiento de lanzar un producto de software va a ser útil para tu proyecto final.
Hito 16: Supongamos que se está lanzando en Product Hunt. Crea contenido y marketing materiales que utilizará para su envío de Product Hunt. Incluso puede que quieres lanzarlo en Product Hunt de verdad si crees que tu producto está listo.

Fase 6: Ir más allá

Esta sección es puramente opcional. Completar los hitos descritos en esta sección puede contribuir al factor de enfriamiento del 30%.

Se han presentado varias sugerencias. Hacemos hincapié en que se trata de meras sugerencias, lo que significa que si las encuentra inadecuadas para su aplicación, aún puede obtener puntos completos en genialidad al proponer sus propias ideas. Por otro lado, el uso ciego de estas tecnologías sugeridas para crear funciones redundantes no le dará ningún crédito. Se trata de usarlos de manera creativa para hacer que su aplicación sea más deseable de usar.

Incrustaciones (opcional)

Una técnica recomendada para mejorar los resultados generados es complementar el modelo con información de alta calidad, relevante y actualizada sobre la consulta e instruir al modelo para que use la información al generar la salida. Esto es especialmente útil si la consulta se refiere a eventos recientes o información con la que no se ha entrenado el modelo.

Las incrustaciones se refieren al método de representar palabras o frases como vectores (lista) de números de coma flotante. Estas incrustaciones capturan significados semánticos basados en el contexto en el que aparecen las palabras en los datos de texto. Las palabras con significados similares tendrán representaciones vectoriales similares en el espacio de incrustación.

Por lo tanto, las incrustaciones se pueden utilizar para implementar una recuperación eficiente del conocimiento. En particular, un corpus de texto se puede dividir en fragmentos, y cada fragmento se incrusta (se convierte en un vector de números) y se almacena. A continuación, se puede incrustar una consulta determinada y se realiza una búsqueda vectorial para encontrar los fragmentos de texto incrustados del corpus que son más similares/relacionados con la consulta.

Para buscar rápidamente en varios vectores, se recomienda almacenar los vectores en bases de datos de vectores que proporcionan formas de consultar la colección de vectores dada una consulta.

  • Supabase Vector: Supabase es una alternativa de código abierto a Firebase basada en PostgreSQL. Con la extensión pgvector, puede almacenar datos vectoriales. Esto se recomienda porque puede utilizar Supabase para datos relacionales y vectoriales, utilizando una base de datos para todas las necesidades de su aplicación.
  • Evaira: Base de datos vectorial de código abierto que también ofrece una opción totalmente administrada.
  • Piña: Base de datos vectorial totalmente administrada, fácil de desarrollar y fácilmente escalable.
  • Chroma: Base de datos de incrustación de código abierto nativa de IA. A partir de agosto de 2023, no ofrece alojamiento administrado.

Por ejemplo, el propietario de un sitio web de comercio electrónico podría incrustar información sobre la empresa y los productos para crear un chatbot de atención al cliente. El chatbot responde a las consultas de los usuarios obteniendo los vectores relacionados con la consulta y pasando tanto la consulta como la información necesaria a un LLM.

Más información sobre las incrustaciones:

  • Incrustaciones - API de OpenAI
  • Incrustaciones - Cohesión
Hito 17 (opcional): Usa incrustaciones en tu app. Explica por qué fue útil para tu producto incrustaciones.

SEO y Compartir en Redes Sociales (Opcional)

Las plataformas sociales como Facebook, Instagram y Twitter reciben miles de millones de usuarios cada mes, la mayoría de los cuales están en dispositivos móviles. ¿Dónde más se puede encontrar el potencial de llegar a tantas personas sin gastar un solo centavo en publicidad?

La integración de Facebook Login puede ayudar a los usuarios potenciales a superar la inercia de un tedioso proceso de registro y, potencialmente, puede hacer que se sientan más inclinados a probar su aplicación.

Plugins sociales de Facebook o Twitter para sitios web Crea una publicación o tweet en la línea de tiempo con un solo clic del mouse, ampliando tu alcance a amigos y seguidores de tus usuarios actuales. Tener solo un amigo por usuario ( entre cientos) registrado duplicaría fácilmente su base de usuarios.

Lo mejor de todo es que la mayoría de estas características se pueden incluir copiando y pegando fragmentos de código proporcionados o llamando a algunas funciones en el SDK de JavaScript. Esto es tan simple que es un desperdicio no hacerlo. Sin mucho esfuerzo adicional, puede hacer que su aplicación sea vista y posiblemente utilizada por muchas más personas. Por supuesto, su aplicación debe ser buena o nadie la compartirá.

También asegúrese de que las imágenes de vista previa para compartir en redes sociales sean atractivas. Vercel proporciona una herramienta útil para generación dinámica de imágenes OG.

Hito 18 (opcional: identifique e integre con la(s) red(es) social(es) que contenga usuarios en su objetivo audiencia. Indica los plugins sociales que has utilizado. Explique su elección de Redes sociales y plugins.

Esquema de evaluación

La calificación del trabajo se divide en dos componentes: el cumplimiento de los hitos obligatorios (70%) y el factor de frialdad (30%). Excluyendo el hito 0, hay 16 hitos obligatorios en total. Los hitos 1, 2, 3 y 10 valen un 2,5% cada uno. El resto vale un 5% cada uno.

El 30% restante se otorgará en función de los resultados relativos de los distintos equipos. El mejor equipo puede recibir hasta un 30%, mientras que el equipo con peor rendimiento menos del 5%. Los hitos opcionales también pueden contribuir a ello.

En general, la tarea de la aplicación de IA vale el 20% de su calificación final.

Modo de presentación

La presentación final debe realizarse el sábado 28 de septiembre de 2024 a las 11:59 horas.

Lo siguiente deberá enviarse a Coursemology (en "Tarea 3 - Aplicación de inteligencia artificial") e incluirse en su repositorio de GitHub:

Un escrito, , que contiene sus respuestas a todos los hitos obligatorios que requieren respuestas escritas. Clasifica tus respuestas por los hitos a los que pertenecen. Asegúrese de que la URL de su aplicación en vivo y el enlace al repositorio público de GitHub estén claramente indicados en el artículo para la comodidad del personal docente.group-<number>-milestones.pdf

Un pitch de una o dos páginas de su solicitud, presentando su solicitud al personal docente, es decir, convénzanos de que su solicitud es tan buena que merece el 30% de los puntos de genialidad. Restricción: no más de 2 lados A4.group-<number>-pitch.pdf

Lo siguiente solo tendrá que incluirse en tu repositorio de GitHub:

  1. Un archivo en el directorio raíz. GitHub lo renderizará automáticamente en la página principal de tu repositorio. Es posible que desee aplicarle estilo utilizando cualquiera de los lenguajes de marcado compatibles. El archivo debe contener:README.md
  2. La lista de los miembros del grupo, incluyendo los números de matrícula, los nombres y una descripción de las contribuciones de cada miembro a la asignación.
  3. El nombre de la aplicación.
  4. La URL de su aplicación, es decir, su aplicación debe ser accesible en línea en algún lugar.
  5. Instrucciones de configuración para pruebas locales (es bueno tenerlas).
  6. Recursos que has usado significativamente para compilar tu aplicación (por ejemplo, tutoriales, referencias de código fuente, referencias de diseño, plantillas de interfaz de usuario, etc.).
  7. El código de la aplicación. Si tu grupo utiliza submódulos de Git, asegúrate de que el equipo docente también pueda acceder a estos submódulos (y que estén actualizados para hacer referencia a las últimas confirmaciones). Te animamos a que utilices monorepos en su lugar (por ejemplo, a través de Turborepo) para que solo tenga que enviar un repositorio.

El incumplimiento de las instrucciones de envío (por ejemplo, un nombre incorrecto del archivo) dará lugar a la deducción de puntos.

Las aclaraciones y preguntas relacionadas con esta tarea deben publicarse en el Foro de Coursemology.

¡Buena suerte y diviértete! 🙂

Agradecimientos

Gracias a las siguientes personas que han contribuido a esta tarea de una forma u otra:

  • Yurier Herrera

Copyright © 2023