Este repositorio contiene todos los conjuntos de datos, códigos y materiales complementarios para realizar la tarea de generación de cuestionarios en el dominio de gestión de recursos humanos (HRM) aprovechando los LLM. Por el momento nos centramos en las encuestas, que normalmente carecen de respuestas correctas, incorrectas o puntuadas. Específicamente, los cuestionarios de encuesta son fundamentales para recopilar comentarios y opiniones continuas de los empleados, lo que permite a las organizaciones monitorear y mejorar diversos aspectos, como la satisfacción de los empleados y la evaluación potencial.
Dada la falta de conjuntos de datos adecuados, creamos una nueva colección de encuestas de recursos humanos. Los detalles sobre el conjunto de datos se pueden encontrar en la Tarjeta de datos. Probamos dos modelos GPT (GPT-3.5-Turbo y GPT-4-Turbo) con diferentes configuraciones, para detectar cuáles son los factores que más contribuyen a una mayor calidad de la encuesta. Estos detalles se pueden encontrar en la Ficha Modelo. En nuestro trabajo, diseñamos un marco novedoso para evaluar automáticamente el contenido generado, debido a la limitación de métricas tradicionales como raw ROUGE y BLEU. Así, nuestras métricas son capaces de estimar la calidad de las encuestas en términos de engagement, variabilidad temática interna y flujo. Se informan más detalles en la Ficha Modelo.
Los cuadernos muestran estadísticas sobre el nuevo conjunto de datos, el uso de ejemplos de código y los resultados obtenidos.
Recomendamos utilizar Python 3.11.5 para ejecutar nuestro código, debido a posibles incompatibilidades con versiones más nuevas.
El proceso de instalación se describe a continuación:
git clone https://github.com/llaraspata/HRMQuestionnaireGenerationUsingLLM.git
python -m venv your_venv_name
source <your_venv_name>/bin/activate # On Windows, use: <your_venv_name>Scriptsactivate
pip install -r requirements.txt
Las diversas configuraciones experimentales se configuran en un archivo JSON. Para ejecutar todas las configuraciones utilice el siguiente comando:
python -W ignore <path_to_repo_folder>/src/models/predict.py
De lo contrario, para ejecutar una configuración específica utilice el siguiente comando:
python -W ignore <path_to_repo_folder>/src/models/predict.py --experiment-id "<experiment_id>"
Precaución
Asegúrese de tener una clave de acceso válida (Azure) de OpenAI; de lo contrario, estará prohibido llamar a los servicios de OpenAI. Luego configúrelo como una variable de entorno denominada AZURE_OPENAI_KEY
.
Además, tenga en cuenta que utilizamos una implementación privada, por lo que no pueden acceder a ella usuarios externos al equipo de I+D de Talentia HCM. Por lo tanto, recomendamos sustituir el valor del parámetro azure_endpoint
por uno válido en la llamada API.
Nota
La opción -W ignore
permite no mostrar posibles advertencias durante la ejecución del script. Para mostrarlos, simplemente elimine dicha opción.
Para ejecutar el paso de evaluación ejecute el siguiente comando:
python -W ignore <path_to_repo_folder>/src/models/evaluate.py
Para realizar la conversión automática de los datos aumentados de texto no estructurado a JSON, ejecute el siguiente comando:
python -W ignore <path_to_repo_folder>/src/data/convert_qst_to_json.py
@inproceedings { laraspata2024SurveyGeneration4HCM ,
author = { Lucrezia Laraspata and Fabio Cardilli and Giovanna Castellano and Gennaro Vessio } ,
title = { Enhancing human capital management through GPT-driven questionnaire generation } ,
year = { 2024 } ,
booktitle = { Proceedings of the Eighth Workshop on Natural Language for Artificial Intelligence (NL4AI 2024) co-located with 23th International Conference of the Italian Association for Artificial Intelligence (AI*IA 2024) } ,
year = { 2024 }
}
├── LICENSE
├── Makefile <- Makefile with commands like `make data` or `make train`
├── README.md <- The top-level README for developers using this project.
├── data
│ ├── external <- Raw questionnaires derived from the augmentation process.
│ ├── interim <- Intermediate augmented data that has been transformed to JSON.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- The data used as starting point from this project
│ (taken from Talentia Software HCM).
│
├── docs <- A default Sphinx project; see sphinx-doc.org for details
│
├── models <- Predictions for each run experiments. For each of the a log and a picke file are saved.
│
├── notebooks <- Jupyter notebooks used to illustrate class usage, dataset insights, and experimental results.
│
├── requirements.txt <- The requirements file for reproducing the analysis environment.
│
├── setup.py <- makes project pip installable (pip install -e .) so src can be imported
│
├── src <- Source code for use in this project.
│ ├── __init__.py <- Makes src a Python module
│ │
│ ├── data <- Scripts to download or generate data
│ │ ├── convert_qst_to_json.py
│ │ └── TFQuestionnairesDataset.py
│ │
│ ├── prompts <- Catalog of the employed prompts
│ │ ├── qst_to_json_prompts.py
│ │ ├── QstToJsonPromptGenerator.py
│ │ ├── QstToJsonScenarioGenerator.py
│ │ │
│ │ ├── prediction_prompts.py
│ │ ├── PredictionPromptGenerator.py
│ │ ├── PredictionScenarioGenerator.py
│ │ │
│ │ ├── topic_modeling_prompts.py
│ │ ├── TopicModelingPromptGenerator.py
│ │ └── TopicModelingScenarioGenerator.py
│ │
│ ├── models <- Scripts to run experiments and evaluations
│ │ ├── experiment_config.json
│ │ │
│ │ ├── predict.py
│ │ │
│ │ ├── QuestionnairesEvaluator.py
│ │ ├── ModelEvaluator.py
│ │ └── evaluate.py
│ │
│ └── visualization <- Scripts to create exploratory and results oriented visualizations
│ ├── experiment_pairs.json
│ │
│ ├── GlobalResultVisualizer.py
│ ├── PairResultVisualizer.py
│ └── visualize.py
│
└── tox.ini <- tox file with settings for running tox; see tox.readthedocs.io
Proyecto basado en la plantilla de proyecto de ciencia de datos cookiecutter. #cookiecutterdataciencia