Voy a repasar con vosotros el código definitivo de este prototipo funcional, para que vayan viendo cada uno de los bloques y entiendan su funcionamiento. Luego podrán acceder al código en GitHub, donde servirá como una guía de cómo utilizarlo. En principio, he probado este código con la versión de cómputo más sencilla, eligiendo el entorno de ejecución de CPU, sin utilizar la tarjeta gráfica T4 ni la versión 2 del TPU. Esta configuración me garantiza que no me expulse del entorno en un tiempo razonable, a diferencia de las otras opciones que pueden expulsarme en cuestión de minutos, dependiendo de la carga de los servidores de Google. Con estos 12 GB de RAM, sin GPU, el código ha funcionado correctamente. Es cierto que está utilizando una codificación de 15 artículos, y cuando este número se eleve, puede que lleguemos al límite. Sin embargo, con la extensión a GPU, tendremos un tiempo de cómputo suficiente y la potencia necesaria para un tamaño de datos superior. Además, podemos trabajar por lotes, es decir, en bloques de artículos. Una vez cargado el código y las librerías fundamentales, este proceso tarda aproximadamente 2-3 minutos máximo para codificar 15 artículos, y probablemente un conjunto más elevado no tendrá una diferencia muy grande. Lo primero que hago es conectar mi cuenta de GitHub, ya que en ella tengo almacenado el archivo de datos. Si ustedes prefieren tener el archivo de datos directamente en los recursos de Google Colab, pueden subirlo allí y no será necesario conectarlo con GitHub. En mi caso, me resulta más fácil gestionar los datos de esta manera, y además puedo ofrecer el conjunto de datos a los demás para que puedan hacer pruebas. Luego, en la parametrización de variables, defino cuál es el archivo del conjunto de datos que voy a utilizar. Si van a usar un archivo diferente, deben actualizar estas variables con la ruta y el nombre correspondientes. También tengo variables para indicar la columna que contiene los datos que quiero vectorizar (título y resumen de los artículos o descripción de las categorías) y para seleccionar los objetos (artículos) y categorías que quiero incluir en el análisis. A continuación, cargo el archivo de datos y realizo la selección de los objetos y categorías según las variables definidas anteriormente. Esto me permite trabajar solo con los datos relevantes para el análisis. Luego, procedo a calcular los embeddings utilizando los modelos de lenguaje seleccionados. Primero, instalo y cargo las librerías necesarias, como Torch y Transformers, y luego implemento una función que calcula los embeddings, la matriz de similitud y otros resultados para cada modelo. Después, llamo a esta función de forma iterativa, acumulando los resultados en un conjunto de datos vacío. Esto me permite comparar los diferentes modelos y obtener una tabla de similitud enfocada en la categoría que considero más relevante para mi análisis. Finalmente, guardo los resultados en un archivo Excel, que incluye hojas con la comparación de modelos, la tabla de similitud de coseno, los embeddings calculados y el ranking de artículos más cercanos a la categoría de interés. Alternativamente, puedo exportar los resultados a archivos CSV individuales. He incluido también un bloque de código que permite liberar la memoria RAM en caso de que el proceso iterativo acumule demasiada carga. #ProcesamientoLenguajeNatural #AprendizajeAutomático #MétodosInvestigación #LLM #ML #NLP #reto21dias
19:42 · 2024
9:30 · 2024
13:48 · 2024