{"id":46254,"date":"2024-09-04T14:05:05","date_gmt":"2024-09-04T14:05:05","guid":{"rendered":"https:\/\/fabricegrinda.com\/?p=46254"},"modified":"2024-09-05T14:50:26","modified_gmt":"2024-09-05T14:50:26","slug":"fabrice-ai-el-viaje-tecnico","status":"publish","type":"post","link":"https:\/\/grinda.org\/es\/fabrice-ai-el-viaje-tecnico\/","title":{"rendered":"Fabrice AI: El viaje t\u00e9cnico"},"content":{"rendered":"\n<p>Como mencion\u00e9 en el <a href=\"https:\/\/fabricegrinda.com\/es\/presentacion-de-fabrice-ai\/\" data-type=\"link\" data-id=\"https:\/\/fabricegrinda.com\/introducing-fabrice-ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">post anterior<\/a>, desarrollar <a href=\"https:\/\/fabriceai.fabricegrinda.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">la IA de Fabrice<\/a> result\u00f3 mucho m\u00e1s complejo de lo esperado, lo que me oblig\u00f3 a explorar muchos enfoques diferentes.<\/p>\n\n<p><strong>El planteamiento inicial: \u00cdndice Llama &#8211; B\u00fasqueda vectorial<\/strong><\/p>\n\n<p>Mi primera incursi\u00f3n en la mejora de las capacidades de recuperaci\u00f3n de Fabrice AI consisti\u00f3 en utilizar el \u00cdndice Llama para la b\u00fasqueda vectorial.\nEl concepto era sencillo: tomar el contenido de mi blog, convertirlo en documentos Langchain y, a continuaci\u00f3n, transformarlos en documentos Llama.\nEstos documentos Llama se almacenar\u00edan entonces en un \u00edndice vectorial, lo que me permitir\u00eda consultar este \u00edndice en busca de informaci\u00f3n relevante.  <\/p>\n\n<p>Sin embargo, cuando empec\u00e9 a probar el sistema, me di cuenta de que este enfoque no estaba dando los resultados que esperaba.\nEn concreto, cuando formul\u00e9 al sistema preguntas contextualizadas como \u00ab\u00bfCu\u00e1les son los mayores errores que cometen los fundadores de empresas?\nEn lugar de recuperar el contenido matizado que yo sab\u00eda que hab\u00eda en los datos, devolv\u00eda respuestas irrelevantes o incompletas.  <\/p>\n\n<p>Este fracaso inicial me llev\u00f3 a reconsiderar mi planteamiento.\nMe di cuenta de que no bastaba con almacenar el contenido en un \u00edndice vectorial; el mecanismo de recuperaci\u00f3n deb\u00eda comprender el contexto y los matices de las preguntas que se formulaban.\nEsta constataci\u00f3n fue la primera de muchas lecciones que dar\u00edan forma a la evoluci\u00f3n de la IA Fabrice.  <\/p>\n\n<p><strong>Almacenamiento del Conocimiento: Almacenamiento y Recuperaci\u00f3n de Documentos MongoDB<\/strong><\/p>\n\n<p>Teniendo en cuenta las limitaciones del enfoque del \u00cdndice Llama, a continuaci\u00f3n explor\u00e9 la posibilidad de almacenar los documentos Llama en MongoDB.\nEl esquema flexible y la estructura orientada a documentos de MongoDB parec\u00edan una soluci\u00f3n prometedora para gestionar los diversos tipos de contenido que hab\u00eda acumulado a lo largo de los a\u00f1os. <\/p>\n\n<p>El plan consist\u00eda en crear una experiencia de b\u00fasqueda m\u00e1s din\u00e1mica y receptiva.\nSin embargo, este enfoque no tard\u00f3 en dar problemas.\nLa funcionalidad de b\u00fasqueda, que hab\u00eda previsto que fuera m\u00e1s s\u00f3lida, no funcion\u00f3 como se esperaba.\nLas consultas que deber\u00edan haber devuelto documentos relevantes no arrojaban ning\u00fan resultado o mostraban contenido irrelevante.   <\/p>\n\n<p>Este contratiempo fue frustrante, pero tambi\u00e9n puso de relieve una lecci\u00f3n fundamental: el m\u00e9todo de almacenamiento es tan importante como la estrategia de recuperaci\u00f3n.\nEmpec\u00e9 a considerar otras opciones, como utilizar MongoDB Atlas para b\u00fasquedas vectoriales, que potencialmente podr\u00eda proporcionar la precisi\u00f3n y escalabilidad que necesitaba.\nSin embargo, antes de comprometerme con esta alternativa, quise explorar otros enfoques para determinar si podr\u00eda haber una soluci\u00f3n m\u00e1s eficaz.  <\/p>\n\n<p><strong>Recuperador de metadatos y almac\u00e9n de vectores: En busca de la especificidad<\/strong><\/p>\n\n<p>Una de las siguientes v\u00edas que explor\u00e9 fue el uso de un recuperador de metadatos combinado con un almac\u00e9n vectorial.\nLa idea subyacente a este enfoque era categorizar el vasto conjunto de informaci\u00f3n de la IA Fabrice y, a continuaci\u00f3n, recuperar respuestas basadas en estas categor\u00edas.\nAl estructurar los datos con metadatos, esperaba mejorar la capacidad de la IA para proporcionar respuestas espec\u00edficas y concretas.  <\/p>\n\n<p>Sin embargo, este m\u00e9todo tambi\u00e9n ten\u00eda sus limitaciones.\nAunque parec\u00eda prometedor a primera vista, la IA ten\u00eda dificultades para dar respuestas precisas a todo tipo de consultas.\nPor ejemplo, cuando pregunt\u00e9: \u00ab\u00bfEs optimista el autor?\u00bb.\nel sistema no supo interpretar la pregunta en el contexto del contenido relevante.\nEn lugar de proporcionar un an\u00e1lisis perspicaz basado en los metadatos, devolv\u00eda respuestas vagas o ninguna.    <\/p>\n\n<p>Este enfoque me ense\u00f1\u00f3 una valiosa lecci\u00f3n sobre la importancia del contexto en la IA.\nNo basta con categorizar la informaci\u00f3n; la IA tambi\u00e9n debe comprender c\u00f3mo interact\u00faan y se superponen estas categor\u00edas para formar una comprensi\u00f3n cohesiva del contenido.\nSin esta profundidad de comprensi\u00f3n, incluso los m\u00e9todos de recuperaci\u00f3n m\u00e1s sofisticados pueden quedarse cortos.  <\/p>\n\n<p><strong>Estructurar el conocimiento: El \u00cdndice de \u00c1rbol de Sumario<\/strong><\/p>\n\n<p>Mientras segu\u00eda perfeccionando la IA de Fabrice, experiment\u00e9 con la creaci\u00f3n de un SummaryTreeIndex.\nEste enfoque pretend\u00eda resumir todos los documentos en un formato de \u00e1rbol, permitiendo a la IA navegar por estos res\u00famenes y recuperar informaci\u00f3n relevante bas\u00e1ndose en la estructura del contenido. <\/p>\n\n<p>La idea era que, resumiendo los documentos, la IA podr\u00eda identificar r\u00e1pidamente los puntos clave y responder a las consultas con informaci\u00f3n concisa y precisa.\nSin embargo, este m\u00e9todo tambi\u00e9n se enfrentaba a importantes retos.\nA la IA le costaba dar respuestas significativas a consultas complejas, como \u00ab\u00bfC\u00f3mo tomar decisiones importantes en la vida?\u00bb.\nEn lugar de basarse en el contenido rico en matices almacenado en los res\u00famenes, las respuestas de la IA eran a menudo superficiales o incompletas.   <\/p>\n\n<p>Esta experiencia puso de relieve la dificultad de equilibrar amplitud y profundidad en la IA.\nAunque los res\u00famenes pueden proporcionar una visi\u00f3n general de alto nivel, a menudo carecen del contexto detallado necesario para responder a preguntas m\u00e1s complejas.\nMe di cuenta de que cualquier soluci\u00f3n eficaz tendr\u00eda que integrar tanto el contenido detallado como los res\u00famenes de alto nivel, permitiendo a la IA recurrir a ambos cuando fuera necesario.  <\/p>\n\n<p>Por eso, en la versi\u00f3n de la IA de Fabrice que est\u00e1 actualmente activa, hago que la IA d\u00e9 primero un resumen de la respuesta, antes de entrar en m\u00e1s detalles.<\/p>\n\n<p><strong>Ampliando horizontes: \u00cdndice del Gr\u00e1fico de Conocimientos<\/strong><\/p>\n\n<p>Reconociendo las limitaciones de los m\u00e9todos anteriores, recurr\u00ed a un enfoque m\u00e1s sofisticado: el \u00cdndice de Grafos de Conocimiento.\nEste enfoque consist\u00eda en construir un grafo de conocimiento a partir de texto no estructurado, lo que permit\u00eda a la IA realizar consultas basadas en entidades.\nEl objetivo era crear una comprensi\u00f3n m\u00e1s din\u00e1mica e interconectada del contenido, que permitiera a la IA de Fabrice responder con mayor eficacia a preguntas complejas y contextualizadas.  <\/p>\n\n<p>A pesar de su promesa, el \u00cdndice del Gr\u00e1fico de Conocimientos tambi\u00e9n se enfrent\u00f3 a importantes obst\u00e1culos.\nA la IA le cost\u00f3 producir resultados precisos, sobre todo en las consultas que requer\u00edan una comprensi\u00f3n profunda del contexto.\nPor ejemplo, cuando se le pregunt\u00f3: \u00ab\u00bfCu\u00e1les son las valoraciones justas de Semilla y Serie A?\u00bb, la IA volvi\u00f3 a fracasar a la hora de dar una respuesta pertinente, lo que pone de manifiesto la dificultad de integrar texto no estructurado en un grafo de conocimiento coherente.  <\/p>\n\n<p>Este enfoque, aunque en \u00faltima instancia fracas\u00f3, proporcion\u00f3 informaci\u00f3n importante sobre los retos que plantea el uso de grafos de conocimiento en la IA.\nLa complejidad de los datos y la necesidad de un contexto preciso significaban que incluso un grafo de conocimiento bien construido pod\u00eda tener dificultades para ofrecer los resultados deseados.\nOtro inconveniente del \u00cdndice de Grafos de Conocimiento era su lentitud.\nEl tiempo de respuesta para obtener documentos relacionados era muy elevado en comparaci\u00f3n con un \u00edndice de almac\u00e9n vectorial.   <\/p>\n\n<p><strong>Reevaluaci\u00f3n de los datos: G\u00e9minis<\/strong><\/p>\n\n<p>Tras varios contratiempos, decid\u00ed adoptar un enfoque diferente aprovechando la IA de Google, <a href=\"https:\/\/gemini.google.com\/app\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/gemini.google.com\/app\" rel=\"noreferrer noopener\">Gemini<\/a>.\nLa idea era crear conjuntos de datos a partir de archivos JSON-CSV y, a continuaci\u00f3n, entrenar un modelo LLM personalizado utilizando estos datos.\nEsperaba que utilizando datos estructurados y un modelo de entrenamiento robusto, podr\u00eda superar algunos de los retos que hab\u00edan plagado los intentos anteriores.  <\/p>\n\n<p>Sin embargo, este enfoque tambi\u00e9n encontr\u00f3 dificultades.\nEl proceso de entrenamiento se detuvo debido a un formato incorrecto de los datos, que impidi\u00f3 entrenar eficazmente el modelo.\nEste contratiempo subray\u00f3 la importancia de la integridad de los datos en el entrenamiento de la IA.\nSin datos correctamente formateados y estructurados, incluso los modelos m\u00e1s avanzados pueden no funcionar como se espera.   <\/p>\n\n<p>Esta experiencia me llev\u00f3 a considerar el potencial de utilizar BigQuery para almacenar datos JSON, proporcionando una plataforma m\u00e1s escalable y fiable para gestionar los grandes conjuntos de datos necesarios para entrenar eficazmente la IA de Fabrice.<\/p>\n\n<p><strong>Combinando fuerzas: Documentos Langchain con Pinecone<\/strong><\/p>\n\n<p>A pesar de los retos a los que me he enfrentado hasta ahora, estaba decidido a encontrar una soluci\u00f3n que permitiera a la IA Fabrice almacenar y recuperar conocimientos de forma eficaz.\nEsta determinaci\u00f3n me llev\u00f3 a experimentar con documentos Langchain y Pinecone.\nEl enfoque consist\u00eda en crear un almac\u00e9n vectorial Pinecone utilizando documentos Langchain e incrustaciones OpenAI, y luego recuperar los documentos m\u00e1s similares en funci\u00f3n de la consulta.  <\/p>\n\n<p>Este m\u00e9todo result\u00f3 prometedor, sobre todo cuando la consulta inclu\u00eda el t\u00edtulo del documento.\nPor ejemplo, cuando se le pregunt\u00f3 \u00ab\u00bfCu\u00e1l es la clave de la felicidad?\u00bb, la IA fue capaz de recuperar y resumir el contenido relevante con precisi\u00f3n.\nSin embargo, segu\u00eda habiendo limitaciones, sobre todo cuando la consulta carec\u00eda de palabras clave o t\u00edtulos espec\u00edficos.  <\/p>\n\n<p>Este enfoque demostr\u00f3 el potencial de combinar distintas tecnolog\u00edas para mejorar el rendimiento de la IA.\nAl integrar los documentos de Langchain con el almac\u00e9n vectorial de Pinecone, pude mejorar la pertinencia y precisi\u00f3n de las respuestas de la IA, aunque con algunas limitaciones. <\/p>\n\n<p><strong>Conseguir la coherencia: GPT Builder OpenAI<\/strong><\/p>\n\n<p>Tras explorar varios m\u00e9todos y tecnolog\u00edas, recurr\u00ed al <a href=\"https:\/\/chatgpt.com\/gpts\/editor\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/chatgpt.com\/gpts\/editor\/\" rel=\"noreferrer noopener\">GPT Builder<\/a> de Open AI para consolidar y perfeccionar los conocimientos almacenados en Fabrice AI.\nAl cargar todo el contenido en una base de conocimientos GPT, pretend\u00eda crear una plataforma m\u00e1s coherente y fiable para recuperar mis conocimientos e interactuar con ellos. <\/p>\n\n<p>Este enfoque result\u00f3 ser uno de los m\u00e1s exitosos, ya que la IA fue capaz de proporcionar mejores resultados en una serie de consultas.\nLa clave de este \u00e9xito fue la integraci\u00f3n de todos los conocimientos en un sistema \u00fanico y cohesionado, que permiti\u00f3 a la IA aprovechar toda la amplitud de contenidos al responder a las preguntas. <\/p>\n\n<p>Como mencion\u00e9 en mi anterior post, no consegu\u00eda que funcionara en mi sitio web, y s\u00f3lo estaba disponible para los suscriptores de pago de Chat GPT, lo que me parec\u00eda demasiado limitante.\nAdem\u00e1s, aunque era mejor, segu\u00eda sin gustarme la calidad de las respuestas y no me sent\u00eda c\u00f3moda haci\u00e9ndolo p\u00fablico. <\/p>\n\n<p><strong>Refinamiento final: Asistentes GPT Utilizando el Modelo 4o<\/strong><\/p>\n\n<p>La pieza final del puzzle en el desarrollo de la IA de Fabrice lleg\u00f3 con la introducci\u00f3n de <a href=\"https:\/\/platform.openai.com\/docs\/assistants\/overview\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/platform.openai.com\/docs\/assistants\/overview\" rel=\"noreferrer noopener\">los Asistentes GPT<\/a> utilizando el Modelo 4o.\nEste enfoque representaba la culminaci\u00f3n de todo lo que hab\u00eda aprendido a lo largo del proyecto.\nUtilizando una base de datos vectorial y refinando las instrucciones, mi objetivo era conseguir el mayor nivel posible de precisi\u00f3n y comprensi\u00f3n contextual en las respuestas de la IA.  <\/p>\n\n<p>Este m\u00e9todo consist\u00eda en cargar todo el conocimiento que hab\u00eda acumulado en una base de datos vectorial, que luego se utilizaba como base para las interacciones de la IA.\nLa base de datos vectorial permiti\u00f3 a la IA realizar b\u00fasquedas m\u00e1s sofisticadas, recuperando informaci\u00f3n basada en el significado sem\u00e1ntico de las consultas en lugar de basarse \u00fanicamente en la coincidencia de palabras clave.\nEsto supuso un avance significativo respecto a enfoques anteriores, ya que permiti\u00f3 a la IA comprender y responder mejor a preguntas complejas y matizadas.  <\/p>\n\n<p>Una de las innovaciones clave de este enfoque fue el cuidadoso perfeccionamiento de las instrucciones.\nElaborando y probando meticulosamente diferentes preguntas, pude guiar a la IA para que diera respuestas m\u00e1s precisas y pertinentes.\nEsto implicaba no s\u00f3lo ajustar la redacci\u00f3n de las preguntas, sino tambi\u00e9n experimentar con diferentes formas de estructurarlas para obtener las mejores respuestas posibles.  <br\/><br\/>Los resultados fueron impresionantes.\nLa IA era ahora capaz de manejar una amplia gama de consultas con gran precisi\u00f3n, incluso cuando las preguntas eran abiertas o requer\u00edan una profunda comprensi\u00f3n del contexto.\nPor ejemplo, cuando se le pregunt\u00f3: \u00ab\u00bfC\u00f3mo tomar las decisiones m\u00e1s importantes de tu vida?\u00bb.\nla IA proporcion\u00f3 una respuesta exhaustiva y perspicaz, recurriendo a diversas fuentes y perspectivas para ofrecer una respuesta completa.   <\/p>\n\n<p>Este \u00e9xito fue la culminaci\u00f3n de cientos de horas de trabajo e innumerables experimentos.\nDemostr\u00f3 que, con la combinaci\u00f3n adecuada de tecnolog\u00eda y refinamiento, era posible crear una IA que no s\u00f3lo pudiera almacenar y recuperar informaci\u00f3n de forma eficaz, sino tambi\u00e9n interactuar con ella de forma significativa.\nEl desarrollo de los Asistentes GPT utilizando el Modelo 4o marc\u00f3 el punto en el que la IA de Fabrice alcanz\u00f3 realmente su plenitud, logrando el nivel de sofisticaci\u00f3n y precisi\u00f3n que yo hab\u00eda previsto desde el principio.\nLa API de los Asistentes GPT se integr\u00f3 entonces en mi blog para permitir a los usuarios finales interactuar con la IA de Fabrice de la forma en que la ves ahora en el blog.   <\/p>\n\n<p><strong>Reflexionar sobre el viaje<\/strong><\/p>\n\n<p>El proceso de desarrollo de la IA de Fabrice puso de manifiesto las complejidades de trabajar con IA, sobre todo cuando se trata de comprender y contextualizar la informaci\u00f3n.\nMe ense\u00f1\u00f3 que no hay atajos en el desarrollo de la IA: cada paso, cada iteraci\u00f3n y cada experimento son una parte necesaria del viaje hacia la creaci\u00f3n de algo verdaderamente eficaz. <\/p>\n\n<p>De cara al futuro, me entusiasma seguir perfeccionando y ampliando la IA de Fabrice.\nComo mencion\u00e9 en el \u00faltimo post, revisar\u00e9 las preguntas formuladas para completar la base de conocimientos donde haya lagunas.\nTambi\u00e9n espero lanzar finalmente una versi\u00f3n interactiva que se parezca y suene como yo y con la que puedas hablar.  <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como mencion\u00e9 en el post anterior, desarrollar la IA de Fabrice result\u00f3 mucho m\u00e1s complejo de lo esperado, lo que me oblig\u00f3 a explorar muchos enfoques diferentes. El planteamiento inicial: &hellip; <a href=\"https:\/\/fabricegrinda.com\/es\/fabrice-ai-el-viaje-tecnico\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abFabrice AI: El viaje t\u00e9cnico\u00bb<\/span><\/a><\/p>\n","protected":false},"author":9,"featured_media":46230,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[478,936],"tags":[],"class_list":["post-46254","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-reflexiones-personales","category-gadgets-tecnologicos-es"],"acf":[],"contentUpdated":"Fabrice AI: El viaje t\u00e9cnico. Categories - Reflexiones personales, Gadgets tecnol\u00f3gicos. Date-Posted - 2024-09-04T14:05:05 . \n Como mencion\u00e9 en el post anterior, desarrollar la IA de Fabrice result\u00f3 mucho m\u00e1s complejo de lo esperado, lo que me oblig\u00f3 a explorar muchos enfoques diferentes.\n El planteamiento inicial: \u00cdndice Llama &#8211; B\u00fasqueda vectorial\n Mi primera incursi\u00f3n en la mejora de las capacidades de recuperaci\u00f3n de Fabrice AI consisti\u00f3 en utilizar el \u00cdndice Llama para la b\u00fasqueda vectorial.\n El concepto era sencillo: tomar el contenido de mi blog, convertirlo en documentos Langchain y, a continuaci\u00f3n, transformarlos en documentos Llama.\n Estos documentos Llama se almacenar\u00edan entonces en un \u00edndice vectorial, lo que me permitir\u00eda consultar este \u00edndice en busca de informaci\u00f3n relevante.  \n Sin embargo, cuando empec\u00e9 a probar el sistema, me di cuenta de que este enfoque no estaba dando los resultados que esperaba.\n En concreto, cuando formul\u00e9 al sistema preguntas contextualizadas como \u00ab\u00bfCu\u00e1les son los mayores errores que cometen los fundadores de empresas?\n En lugar de recuperar el contenido matizado que yo sab\u00eda que hab\u00eda en los datos, devolv\u00eda respuestas irrelevantes o incompletas.  \n Este fracaso inicial me llev\u00f3 a reconsiderar mi planteamiento.\n Me di cuenta de que no bastaba con almacenar el contenido en un \u00edndice vectorial; el mecanismo de recuperaci\u00f3n deb\u00eda comprender el contexto y los matices de las preguntas que se formulaban.\n Esta constataci\u00f3n fue la primera de muchas lecciones que dar\u00edan forma a la evoluci\u00f3n de la IA Fabrice.  \n Almacenamiento del Conocimiento: Almacenamiento y Recuperaci\u00f3n de Documentos MongoDB\n Teniendo en cuenta las limitaciones del enfoque del \u00cdndice Llama, a continuaci\u00f3n explor\u00e9 la posibilidad de almacenar los documentos Llama en MongoDB.\n El esquema flexible y la estructura orientada a documentos de MongoDB parec\u00edan una soluci\u00f3n prometedora para gestionar los diversos tipos de contenido que hab\u00eda acumulado a lo largo de los a\u00f1os. \n El plan consist\u00eda en crear una experiencia de b\u00fasqueda m\u00e1s din\u00e1mica y receptiva.\n Sin embargo, este enfoque no tard\u00f3 en dar problemas.\n La funcionalidad de b\u00fasqueda, que hab\u00eda previsto que fuera m\u00e1s s\u00f3lida, no funcion\u00f3 como se esperaba.\n Las consultas que deber\u00edan haber devuelto documentos relevantes no arrojaban ning\u00fan resultado o mostraban contenido irrelevante.   \n Este contratiempo fue frustrante, pero tambi\u00e9n puso de relieve una lecci\u00f3n fundamental: el m\u00e9todo de almacenamiento es tan importante como la estrategia de recuperaci\u00f3n.\n Empec\u00e9 a considerar otras opciones, como utilizar MongoDB Atlas para b\u00fasquedas vectoriales, que potencialmente podr\u00eda proporcionar la precisi\u00f3n y escalabilidad que necesitaba.\n Sin embargo, antes de comprometerme con esta alternativa, quise explorar otros enfoques para determinar si podr\u00eda haber una soluci\u00f3n m\u00e1s eficaz.  \n Recuperador de metadatos y almac\u00e9n de vectores: En busca de la especificidad\n Una de las siguientes v\u00edas que explor\u00e9 fue el uso de un recuperador de metadatos combinado con un almac\u00e9n vectorial.\n La idea subyacente a este enfoque era categorizar el vasto conjunto de informaci\u00f3n de la IA Fabrice y, a continuaci\u00f3n, recuperar respuestas basadas en estas categor\u00edas.\n Al estructurar los datos con metadatos, esperaba mejorar la capacidad de la IA para proporcionar respuestas espec\u00edficas y concretas.  \n Sin embargo, este m\u00e9todo tambi\u00e9n ten\u00eda sus limitaciones.\n Aunque parec\u00eda prometedor a primera vista, la IA ten\u00eda dificultades para dar respuestas precisas a todo tipo de consultas.\n Por ejemplo, cuando pregunt\u00e9: \u00ab\u00bfEs optimista el autor?\u00bb.\n el sistema no supo interpretar la pregunta en el contexto del contenido relevante.\n En lugar de proporcionar un an\u00e1lisis perspicaz basado en los metadatos, devolv\u00eda respuestas vagas o ninguna.    \n Este enfoque me ense\u00f1\u00f3 una valiosa lecci\u00f3n sobre la importancia del contexto en la IA.\n No basta con categorizar la informaci\u00f3n; la IA tambi\u00e9n debe comprender c\u00f3mo interact\u00faan y se superponen estas categor\u00edas para formar una comprensi\u00f3n cohesiva del contenido.\n Sin esta profundidad de comprensi\u00f3n, incluso los m\u00e9todos de recuperaci\u00f3n m\u00e1s sofisticados pueden quedarse cortos.  \n Estructurar el conocimiento: El \u00cdndice de \u00c1rbol de Sumario\n Mientras segu\u00eda perfeccionando la IA de Fabrice, experiment\u00e9 con la creaci\u00f3n de un SummaryTreeIndex.\n Este enfoque pretend\u00eda resumir todos los documentos en un formato de \u00e1rbol, permitiendo a la IA navegar por estos res\u00famenes y recuperar informaci\u00f3n relevante bas\u00e1ndose en la estructura del contenido. \n La idea era que, resumiendo los documentos, la IA podr\u00eda identificar r\u00e1pidamente los puntos clave y responder a las consultas con informaci\u00f3n concisa y precisa.\n Sin embargo, este m\u00e9todo tambi\u00e9n se enfrentaba a importantes retos.\n A la IA le costaba dar respuestas significativas a consultas complejas, como \u00ab\u00bfC\u00f3mo tomar decisiones importantes en la vida?\u00bb.\n En lugar de basarse en el contenido rico en matices almacenado en los res\u00famenes, las respuestas de la IA eran a menudo superficiales o incompletas.   \n Esta experiencia puso de relieve la dificultad de equilibrar amplitud y profundidad en la IA.\n Aunque los res\u00famenes pueden proporcionar una visi\u00f3n general de alto nivel, a menudo carecen del contexto detallado necesario para responder a preguntas m\u00e1s complejas.\n Me di cuenta de que cualquier soluci\u00f3n eficaz tendr\u00eda que integrar tanto el contenido detallado como los res\u00famenes de alto nivel, permitiendo a la IA recurrir a ambos cuando fuera necesario.  \n Por eso, en la versi\u00f3n de la IA de Fabrice que est\u00e1 actualmente activa, hago que la IA d\u00e9 primero un resumen de la respuesta, antes de entrar en m\u00e1s detalles.\n Ampliando horizontes: \u00cdndice del Gr\u00e1fico de Conocimientos\n Reconociendo las limitaciones de los m\u00e9todos anteriores, recurr\u00ed a un enfoque m\u00e1s sofisticado: el \u00cdndice de Grafos de Conocimiento.\n Este enfoque consist\u00eda en construir un grafo de conocimiento a partir de texto no estructurado, lo que permit\u00eda a la IA realizar consultas basadas en entidades.\n El objetivo era crear una comprensi\u00f3n m\u00e1s din\u00e1mica e interconectada del contenido, que permitiera a la IA de Fabrice responder con mayor eficacia a preguntas complejas y contextualizadas.  \n A pesar de su promesa, el \u00cdndice del Gr\u00e1fico de Conocimientos tambi\u00e9n se enfrent\u00f3 a importantes obst\u00e1culos.\n A la IA le cost\u00f3 producir resultados precisos, sobre todo en las consultas que requer\u00edan una comprensi\u00f3n profunda del contexto.\n Por ejemplo, cuando se le pregunt\u00f3: \u00ab\u00bfCu\u00e1les son las valoraciones justas de Semilla y Serie A?\u00bb, la IA volvi\u00f3 a fracasar a la hora de dar una respuesta pertinente, lo que pone de manifiesto la dificultad de integrar texto no estructurado en un grafo de conocimiento coherente.  \n Este enfoque, aunque en \u00faltima instancia fracas\u00f3, proporcion\u00f3 informaci\u00f3n importante sobre los retos que plantea el uso de grafos de conocimiento en la IA.\n La complejidad de los datos y la necesidad de un contexto preciso significaban que incluso un grafo de conocimiento bien construido pod\u00eda tener dificultades para ofrecer los resultados deseados.\n Otro inconveniente del \u00cdndice de Grafos de Conocimiento era su lentitud.\n El tiempo de respuesta para obtener documentos relacionados era muy elevado en comparaci\u00f3n con un \u00edndice de almac\u00e9n vectorial.   \n Reevaluaci\u00f3n de los datos: G\u00e9minis\n Tras varios contratiempos, decid\u00ed adoptar un enfoque diferente aprovechando la IA de Google, Gemini.\n La idea era crear conjuntos de datos a partir de archivos JSON-CSV y, a continuaci\u00f3n, entrenar un modelo LLM personalizado utilizando estos datos.\n Esperaba que utilizando datos estructurados y un modelo de entrenamiento robusto, podr\u00eda superar algunos de los retos que hab\u00edan plagado los intentos anteriores.  \n Sin embargo, este enfoque tambi\u00e9n encontr\u00f3 dificultades.\n El proceso de entrenamiento se detuvo debido a un formato incorrecto de los datos, que impidi\u00f3 entrenar eficazmente el modelo.\n Este contratiempo subray\u00f3 la importancia de la integridad de los datos en el entrenamiento de la IA.\n Sin datos correctamente formateados y estructurados, incluso los modelos m\u00e1s avanzados pueden no funcionar como se espera.   \n Esta experiencia me llev\u00f3 a considerar el potencial de utilizar BigQuery para almacenar datos JSON, proporcionando una plataforma m\u00e1s escalable y fiable para gestionar los grandes conjuntos de datos necesarios para entrenar eficazmente la IA de Fabrice.\n Combinando fuerzas: Documentos Langchain con Pinecone\n A pesar de los retos a los que me he enfrentado hasta ahora, estaba decidido a encontrar una soluci\u00f3n que permitiera a la IA Fabrice almacenar y recuperar conocimientos de forma eficaz.\n Esta determinaci\u00f3n me llev\u00f3 a experimentar con documentos Langchain y Pinecone.\n El enfoque consist\u00eda en crear un almac\u00e9n vectorial Pinecone utilizando documentos Langchain e incrustaciones OpenAI, y luego recuperar los documentos m\u00e1s similares en funci\u00f3n de la consulta.  \n Este m\u00e9todo result\u00f3 prometedor, sobre todo cuando la consulta inclu\u00eda el t\u00edtulo del documento.\n Por ejemplo, cuando se le pregunt\u00f3 \u00ab\u00bfCu\u00e1l es la clave de la felicidad?\u00bb, la IA fue capaz de recuperar y resumir el contenido relevante con precisi\u00f3n.\n Sin embargo, segu\u00eda habiendo limitaciones, sobre todo cuando la consulta carec\u00eda de palabras clave o t\u00edtulos espec\u00edficos.  \n Este enfoque demostr\u00f3 el potencial de combinar distintas tecnolog\u00edas para mejorar el rendimiento de la IA.\n Al integrar los documentos de Langchain con el almac\u00e9n vectorial de Pinecone, pude mejorar la pertinencia y precisi\u00f3n de las respuestas de la IA, aunque con algunas limitaciones. \n Conseguir la coherencia: GPT Builder OpenAI\n Tras explorar varios m\u00e9todos y tecnolog\u00edas, recurr\u00ed al GPT Builder de Open AI para consolidar y perfeccionar los conocimientos almacenados en Fabrice AI.\n Al cargar todo el contenido en una base de conocimientos GPT, pretend\u00eda crear una plataforma m\u00e1s coherente y fiable para recuperar mis conocimientos e interactuar con ellos. \n Este enfoque result\u00f3 ser uno de los m\u00e1s exitosos, ya que la IA fue capaz de proporcionar mejores resultados en una serie de consultas.\n La clave de este \u00e9xito fue la integraci\u00f3n de todos los conocimientos en un sistema \u00fanico y cohesionado, que permiti\u00f3 a la IA aprovechar toda la amplitud de contenidos al responder a las preguntas. \n Como mencion\u00e9 en mi anterior post, no consegu\u00eda que funcionara en mi sitio web, y s\u00f3lo estaba disponible para los suscriptores de pago de Chat GPT, lo que me parec\u00eda demasiado limitante.\n Adem\u00e1s, aunque era mejor, segu\u00eda sin gustarme la calidad de las respuestas y no me sent\u00eda c\u00f3moda haci\u00e9ndolo p\u00fablico. \n Refinamiento final: Asistentes GPT Utilizando el Modelo 4o\n La pieza final del puzzle en el desarrollo de la IA de Fabrice lleg\u00f3 con la introducci\u00f3n de los Asistentes GPT utilizando el Modelo 4o.\n Este enfoque representaba la culminaci\u00f3n de todo lo que hab\u00eda aprendido a lo largo del proyecto.\n Utilizando una base de datos vectorial y refinando las instrucciones, mi objetivo era conseguir el mayor nivel posible de precisi\u00f3n y comprensi\u00f3n contextual en las respuestas de la IA.  \n Este m\u00e9todo consist\u00eda en cargar todo el conocimiento que hab\u00eda acumulado en una base de datos vectorial, que luego se utilizaba como base para las interacciones de la IA.\n La base de datos vectorial permiti\u00f3 a la IA realizar b\u00fasquedas m\u00e1s sofisticadas, recuperando informaci\u00f3n basada en el significado sem\u00e1ntico de las consultas en lugar de basarse \u00fanicamente en la coincidencia de palabras clave.\n Esto supuso un avance significativo respecto a enfoques anteriores, ya que permiti\u00f3 a la IA comprender y responder mejor a preguntas complejas y matizadas.  \n Una de las innovaciones clave de este enfoque fue el cuidadoso perfeccionamiento de las instrucciones.\n Elaborando y probando meticulosamente diferentes preguntas, pude guiar a la IA para que diera respuestas m\u00e1s precisas y pertinentes.\n Esto implicaba no s\u00f3lo ajustar la redacci\u00f3n de las preguntas, sino tambi\u00e9n experimentar con diferentes formas de estructurarlas para obtener las mejores respuestas posibles.  Los resultados fueron impresionantes.\n La IA era ahora capaz de manejar una amplia gama de consultas con gran precisi\u00f3n, incluso cuando las preguntas eran abiertas o requer\u00edan una profunda comprensi\u00f3n del contexto.\n Por ejemplo, cuando se le pregunt\u00f3: \u00ab\u00bfC\u00f3mo tomar las decisiones m\u00e1s importantes de tu vida?\u00bb.\n la IA proporcion\u00f3 una respuesta exhaustiva y perspicaz, recurriendo a diversas fuentes y perspectivas para ofrecer una respuesta completa.   \n Este \u00e9xito fue la culminaci\u00f3n de cientos de horas de trabajo e innumerables experimentos.\n Demostr\u00f3 que, con la combinaci\u00f3n adecuada de tecnolog\u00eda y refinamiento, era posible crear una IA que no s\u00f3lo pudiera almacenar y recuperar informaci\u00f3n de forma eficaz, sino tambi\u00e9n interactuar con ella de forma significativa.\n El desarrollo de los Asistentes GPT utilizando el Modelo 4o marc\u00f3 el punto en el que la IA de Fabrice alcanz\u00f3 realmente su plenitud, logrando el nivel de sofisticaci\u00f3n y precisi\u00f3n que yo hab\u00eda previsto desde el principio.\n La API de los Asistentes GPT se integr\u00f3 entonces en mi blog para permitir a los usuarios finales interactuar con la IA de Fabrice de la forma en que la ves ahora en el blog.   \n Reflexionar sobre el viaje\n El proceso de desarrollo de la IA de Fabrice puso de manifiesto las complejidades de trabajar con IA, sobre todo cuando se trata de comprender y contextualizar la informaci\u00f3n.\n Me ense\u00f1\u00f3 que no hay atajos en el desarrollo de la IA: cada paso, cada iteraci\u00f3n y cada experimento son una parte necesaria del viaje hacia la creaci\u00f3n de algo verdaderamente eficaz. \n De cara al futuro, me entusiasma seguir perfeccionando y ampliando la IA de Fabrice.\n Como mencion\u00e9 en el \u00faltimo post, revisar\u00e9 las preguntas formuladas para completar la base de conocimientos donde haya lagunas.\n Tambi\u00e9n espero lanzar finalmente una versi\u00f3n interactiva que se parezca y suene como yo y con la que puedas hablar.  \n ","Category":["Reflexiones personales","Gadgets tecnol\u00f3gicos"],"_links":{"self":[{"href":"https:\/\/grinda.org\/es\/wp-json\/wp\/v2\/posts\/46254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grinda.org\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/grinda.org\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/grinda.org\/es\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/grinda.org\/es\/wp-json\/wp\/v2\/comments?post=46254"}],"version-history":[{"count":1,"href":"https:\/\/grinda.org\/es\/wp-json\/wp\/v2\/posts\/46254\/revisions"}],"predecessor-version":[{"id":46256,"href":"https:\/\/grinda.org\/es\/wp-json\/wp\/v2\/posts\/46254\/revisions\/46256"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/grinda.org\/es\/wp-json\/wp\/v2\/media\/46230"}],"wp:attachment":[{"href":"https:\/\/grinda.org\/es\/wp-json\/wp\/v2\/media?parent=46254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/grinda.org\/es\/wp-json\/wp\/v2\/categories?post=46254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/grinda.org\/es\/wp-json\/wp\/v2\/tags?post=46254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}