Investigación sobre el empleo de información de Wikipedia

1.-1.- Estado del proyecto de prácticas
El proyecto se está desarrollando según lo propuesto y realmente va bien encaminado dando pequeños pasos pero en buena dirección.
 
2.-2.- Riesgos identificados
Una vez empezada la práctica nos hemos encontrado con múltiples problemas: Entre ellos está las dificultades y trabas que te encuentras por el camino. Esta traba para ser más específicos en nuestro caso está en cómo se tiene que realizar la pregunta o cómo entrenar al modelo para responder de manera correcta; haciendo la pregunta completa o si solamente se realiza con palabras clave y relevantes.
 
3.- Modificaciones al plan de prácticas
 
Principalmente se nos sugirió realizar de un método que nos dimos cuenta con el tiempo y con los resultados que era necesario ajustar el planning para acercarnos a la solución deseada. Este planning era realizar la búsqueda mediante la API de Wikipedia pero nos dimos cuenta que se tendrá
que utilizar una librería u otras herramientas adicionales.
 
4.- Análisis crítico del trabajo realizado hasta ahora
 
Realmente es un chatbot interesante el que se quiere realizar y a dónde se quiere llegar, no obstante todo el conocimiento que se está adoptan es de investigaciones en Internet donde muchas cosas siguen su propio proceso por eso y no nos aporta conocimiento extenso más que para la aplicación desarrollada.
 
Sin embargo, es una práctica interesante donde se aprende muchas cosas acerca de conocer las tripas de cosas ya realizadas como muchos chatbot de páginas como soporte aunque estas están por mejorarlas ya que muchas no funcionan como deberían. El plus de valor que tiene este chat es que es para conocimiento del usuario, es decir, aclarar conceptos sobre personas, lugares, libros películas y todo lo que abarca Wikipedia. Pienso que esto puede tener utilidad una vez que se llegue a procesar junto el procesamiento de lenguaje natural ya que ahorraría tiempo de búsqueda, de respuesta y además la gente se interesaría más por la respuesta por no tener que coger el móvil u ordenador para ponerse a buscar sobre el tema.
Incluso en trabajos de información también trataría de ser útil aunque a modo conceptual ya que en una investigación no te puedes basar al 100% en Wikipedia pero a modo de conocer el concepto sería realmente útil. Por último quisiera destacar que el tiempo para realizar esta práctica está ajustado pero se hace realmente fluido y amena.

 

Borja Bengoechea Pazos practicante del Máster en Inteligencia artificial

Investigación sobre el empleo de información de Wikipedia

1.- Estado del proyecto de prácticas (Introducir explicación: por ejemplo, señale si el plan de trabajo se está cumpliendo de forma adecuada, según lo establecido, o sólo de manera parcial cuyo caso explique los motivos de ello).

La ejecución de las practicas se están desarrollando, siguiendo la planificación original establecida por la empresa.

Se realizan reuniones semanales con Adrián, el responsable del Dpto. de Ingeniería para revisar los avances realizados y establecer las prioridades de los siguientes pasos para la consecución del reto.

Se ha dispuesto de repositorios de software y de recursos de archivos para compartir todos los avances, así como comunicaciones mediante aplicaciones de mensajería para que no haya bloqueos durante la semana y pueda haber una comunicación fluida por las dos partes.

Durante las semanas del 06 y 13 de septiembre nos centramos en la búsqueda de información mediante las API de Wikipedia, y el paquete de Requests de Python, para la obtención de consultas sobre la página web de Wikipedia y el procesamiento de las respuestas json de la misma.

También son proporcionan las bases científicas sobre las que se quiere apoyar el desarrollo en base al artículo “Reading Wikipedia to Answer Open-Domain Questions”

Se analizan las respuestas de la Wikipedia para obtener un texto legible sin tags html.

Durante las semanas del 20 y 27 de septiembre se analizan artículos basados en Open-Domain Questions, que proporcionan mucha información sobre la configuración de entorno de desarrollo. 

Se instalan las herramientas necesarias, para poder usar modelos preentranadas de redes neuronales, instalando los paquetes Pytorch y se buscan modelos en español en https://huggingface.co, encontrando el modelo https://huggingface.co/mrm8488/distill-bert-base-spanish-wwm-cased-finetuned-spa-squad2-es, con el que se empiezan a realizar pruebas muy satisfactorias.

Durante estas semanas nos encontramos con la decisión de trasladar la búsqueda a Wikipedia tal y como la formula el usuario o se requiere de la extracción de palabras clave para que la búsqueda sea más efectiva. Para ello se profundiza en la tokenización de la frase del usuario para obtener palabras clave y optimizar la consulta. Se instalan los paquetes de spaCy para su análisis y se incluye en el desarrollo.

Durante la semana del 04 de octubre-actualidad, para evitar tener un código muy pesado, Adrián nos proporciona un servicio web implementado por la empresa con la solución spaCy para poder realizar esta tokenización más ágil en el código y no importar librerías duplicadas. Para el análisis de las palabras claves por parte del modelo, se propone usar el algoritmo BM25 muy usado en estos casos para poder identificar con puntuaciones en que párrafo o documento se puede encontrar con mayor probabilidad la respuesta a la pregunta realizada por el usuario. Se analizará su posible uso.

Preparando afinación del modelo para la solución propuesta, se intentará replicar las métricas de acierto del modelo para poder tener una base de partida o referencia, para que en el momento de realizar la afinación poder verificar si se mejoran las métricas del modelo actual seleccionado.

2.- Riesgos identificados (Señale las dificultades para poner en marchar las actividades u objetivos -o alguno de ellos- establecidos en el plan de trabajo).

Los riesgos principales identificados desde el inicio de las practicas, están relacionados con los pocos modelos preentrenados en español de procesamiento natural del lenguaje creados para soluciones de tipo preguntas y respuestas (QA).

A parte de este riesgo, que se va a evaluar su efectividad para esta solución, comparando con las métricas definidas por el desarrollador del mismo modelo, con las que se realicen una vez afinado el entrenamiento del modelo y verificar si se mejora o no. También se han encontrado las dificultades del preprocesado de la pregunta del usuario para la extracción de palabras clave para su consulta en la Wikipedia y una vez se han obtenido respuestas el preprocesado antes de enviar la consulta y el documento de respuesta al modelo, poder identificar si esa respuesta o documento tiene una alta probabilidad de tener en su interior la respuesta.

3.- Modificaciones al plan de prácticas (señale las modificaciones o cambios que se han producido en el plan de trabajo).

Por el momento no se han tenido que realizar ninguna modificación del plan de trabajo, aunque viendo las dificultades encontradas, es posible que impliquen retrasos para la consecución del reto por completo y aunque se pueda finalizar el desarrollo, es posible que no se pueda ver en un entorno productivo para pruebas.

4.- Análisis crítico del trabajo realizado hasta ahora (realice de una valoración crítica del desarrollo del plan de trabajo).

Por el momento, encuentro el reto muy satisfactorio y desafiante, aunque aún no disponemos de todo el conocimiento que pueden proporcionar las asignaturas relacionadas con el procesamiento del lenguaje natural del máster. Los pasos dados en el avance del reto me parecen los correctos, aunque la falta de experiencia por mi parte en la materia del procesamiento del lenguaje ha hecho que la fase de búsqueda de información se demorara algo más de los esperado, pero parece que está bien encaminada, aunque como se ha indicado en el apartado 3, es posible que la consecución de todos los aspectos del reto bajo las premisas iniciales sean difíciles de conseguir.

David Goñi practicante del Máster en Inteligencia artificial

Investigación sobre el empleo de información de Wikipedia

1.- 1.- Estado del proyecto de prácticas (Introducir explicación: por ejemplo, señale si el plan de trabajo se está cumpliendo de forma adecuada, según lo establecido, o sólo de manera parcial cuyo caso explique los motivos de ello).

El plan de trabajo se está llevando de acuerdo a lo establecido, realizamos una reunión semanal los lunes y, después, realizamos el trabajo que se nos asigna usando las herramientas en la nube que la empresa nos proporciona. Trabajamos con el control de versiones Github, de esta manera cada componente del grupo va subiendo las mejoras correspondientes de su código a esta plataforma. Después, vamos comparando los resultados en las reuniones y por ahora es un sistema que nos está funcionando muy bien.

Por ahora, hemos conseguido extraer información desde Wikipedia mediante preguntas usando APIs específicas para ello, todo ello programado en Python. Nos encontramos leyendo sobre el estado del arte e intentando tratar la información que recibimos desde Wikipedia de la mejor manera posible, para obtener un resultado más óptimo.

Dentro del plan de trabajo, no puedo hacer una valoración real del porcentaje exacto de trabajo que llevamos realizado ya que es un ámbito nuevo para mí. Desconozco la dificultad que puede llegar a tener entrenar un modelo y transmitir las preguntas desde el móvil y mediante comandos por voz. Pero bueno, aventurándome un poco podría estimar un 40% del trabajo realizado.

2.- 2.- Riesgos identificados (Señale las dificultades para poner en marchar las actividades u objetivos -o alguno de ellos- establecidos en el plan de trabajo).

Hemos identificado algunos problemas de formación, ya que estamos trabajando sobre el tratamiento del lenguaje natural, que casualmente es una de las asignaturas que cursamos en UNIR, en el segundo cuatrimestre. Es un problema, pero a la vez una oportunidad, ya que no estamos del todo preparados ni tenemos todo el conocimiento en este ámbito, pero, por otra parte, después, podemos aplicar el conocimiento para la parte teórica de UNIR. Además, paralelamente estamos aprendiendo sobre ello en UNIR, por lo que nos ayudará a trabajar mejor en la empresa.

Adentrándonos un poco en la parte técnica, la información que recibimos desde Wikipedia no es la correcta a veces, estamos intentando solucionarlo leyendo sobre el estado del arte y tratando de obtener mejores preguntas dada la pregunta inicial, es decir, optimizar la pregunta para que Wikipedia pueda interpretarla de la mejor manera posible. Aunque nos estamos adentrando en terrenos desconocidos, creo que nos podremos desempeñar bien con la ayuda de Emobotics y la formación paralela que recibamos de UNIR.

Otro de los riesgos se centra en todos los modelos que existen para el tratamiento del lenguaje natural, es algo difícil elegir bien e intentar alimentar uno ya entrenado, aun así, seguiremos ayudando para completar uno lo más óptimo posible. Es un trabajo complicado, pero pensamos que sacaremos conocimientos, experiencias y resultados positivos del mismo.

3.- Modificaciones al plan de prácticas (señale las modificaciones o cambios que se han producido en el plan de trabajo).

Por lo general no ha habido ningún cambio drástico en el plan de prácticas. Estamos trabajando cada semana ayudando en lo que podemos y formándonos de la manera más óptima posible.   

Quizás estamos formándonos más de lo que nos gustaría ya que no tenemos conocimientos directos en el ámbito, pero intentaremos aprender lo más rápido posible. Por lo tanto, a veces establecemos un tiempo mayor de formación por el desconocimiento que tenemos en la materia.

Hemos tenido alguna modificación en alguna reunión, si hay consenso, a veces adelantamos media hora la reunión de los lunes. Por mi parte no hay ningún problema en adelantar o atrasar esas reuniones según la disponibilidad que tengan mis compañeros. Por lo demás, no ha habido ningún cambio en la metodología ni en el plan de trabajo establecido.

4.- Análisis crítico del trabajo realizado hasta ahora (realice de una valoración crítica del desarrollo del plan de trabajo).

El trabajo realizado ha sido acorde a lo establecido y los resultados son evidentes. Sin tener conocimiento previo sobre el procesamiento del lenguaje natural hemos conseguido obtener información desde Wikipedia, trabajando y tratando las preguntas establecidas e indagando en el estado del arte de este tipo de prácticas. Además, estamos aprendiendo a tratar la información antes de enviarla para ayudar al modelo y que los resultados de las consultas sean más óptimas.

Hay algunos alumnos que ya tienen experiencia previa en el tratamiento del lenguaje natural y están familiarizados con ese tipo de terminología o estado del arte de la materia, yo no estoy tan familiarizado por lo que tengo que indagar un poco más para obtener los mismos resultados.

Hemos hecho aportaciones en Github, mediante código en Python y mediante links en forma de estado del arte para mejorar la situación del proyecto. He asistido a todas y cada una de las reuniones que ha habido y estamos llevando el trabajo al día para poder aportar y ayudar de la mejor de las maneras posibles.

Concluyendo, creo que estoy realizando un buen trabajo en relación a lo requerido, quizás si hubiese tenido un poco más de conocimiento previo hubiese podido aportar algo más. Aun así, estoy contento con los resultados y lo que estamos aprendiendo. Estoy contento con el ambiente de trabajo y estamos rodeados de personas que nos ayudan en lo que pueden, y eso también es importante.

 

David Sánchez practicante del Máster en Inteligencia artificial