Hackathon PLN en Español

La democratización del PLN en español es el objetivo principal de la comunidad de Somos NLP y una de las mejores maneras de avanzar hacia este objetivo es creando más recursos de PLN en nuestro idioma. En este hackathon decenas de personas de habla hispana entrenaron y pusieron en producción modelos de PLN en español, utilizando Hugging Face.

El hackaton fue una buena oportunidad tanto para personas expertas en esta librería como para aquellos que queríamos hacer nuestros primeros experimentos con ella, ya que era necesario hacer el ciclo completo de un proyecto de machine learning:

  • Preparar un dataset.
  • Entrenar un modelo, haciendo fine tuning de algún modelo ya existente y utilizando el dataset preparado previamente.
  • Poner el modelo en producción a través de una aplicación que pudiera usarse de forma sencilla.

En mi caso, elegí trabajar con el problema de NER (named entity recognition) en el dominio clínico. Para ello, seguí los siguiente pasos:

  • Adaptar el dataset eHealth-KD Challenge 2020 al formato que necesitaba Hugging Face. Para ello hubo que trabajar con Python para convertir las anotaciones al formato BIO, hacer bugfixing y trabajar con entidades que se solapaban. Una vez acabado, el dataset se publicó en Hugging Face para que otras personas pudieran trabajar en este problema.

  • Entrenar un modelo para el problema de NER. En este caso preparé un fine tuning del modelo dccuchile/bert-base-spanish-wwm-uncased usando el dataset de eHealth-KD y preparado para reconocer cuatro tipos de entidades: ‘Concept’, ‘Action’, ‘Predicate’, ‘Reference’. El modelo está publicado en el hub de Hugging Face y allí se pueden ver todos los detalles del entrenamiento, precisión, etc.

  • Publicar una aplicación utilizando Gradio en el space del hackaton para que cualquier pudiera probar la demo.

Todo el código del proyecto estará en mi Github en cuanto tenga un poquito de tiempo para subirlo 😊

Fernando Molina Molina
Fernando Molina Molina
Software & NLP Engineer PhD

My interests include Natural Language Processing, Software Engineering, Machine Learning & AI, R&D, Data Science and teaching