Este repositório contém todos os conjuntos de dados, código e materiais suplementares para executar a tarefa de geração de questionários no domínio de gestão de recursos humanos (HRM), aproveitando LLMs. No momento nos concentramos em pesquisas, que normalmente carecem de respostas certas/erradas ou pontuadas. Especificamente, os questionários de pesquisa são fundamentais para coletar feedback e opiniões contínuas dos funcionários, permitindo que as organizações monitorem e melhorem vários aspectos, como a satisfação dos funcionários e a avaliação potencial.
Dada a falta de conjuntos de dados adequados, construímos uma nova coleção de pesquisas de RH. Detalhes sobre o conjunto de dados podem ser encontrados no Cartão de Dados. Testamos dois modelos GPT (GPT-3.5-Turbo e GPT-4-Turbo) com configurações diferentes, a fim de captar quais são os fatores que mais contribuem para uma maior qualidade da pesquisa. Esses detalhes podem ser encontrados no Cartão Modelo. Em nosso trabalho, projetamos um novo framework para avaliar automaticamente o conteúdo gerado, devido à limitação de métricas tradicionais como raw ROUGE e BLEU. Assim, nossas métricas são capazes de estimar a qualidade das pesquisas em termos de engajamento, variabilidade temática interna e fluxo. Mais detalhes são relatados no Cartão Modelo.
Os notebooks mostram estatísticas sobre o novo conjunto de dados, uso de amostra de código e os resultados obtidos.
Recomendamos usar Python 3.11.5 para executar nosso código, devido a possíveis incompatibilidades com versões mais recentes.
O processo de instalação é descrito abaixo:
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
As diversas configurações experimentais são configuradas em um arquivo JSON. Para executar todas as configurações use o seguinte comando:
python -W ignore <path_to_repo_folder>/src/models/predict.py
Caso contrário, para executar uma configuração específica use o seguinte comando:
python -W ignore <path_to_repo_folder>/src/models/predict.py --experiment-id "<experiment_id>"
Cuidado
Certifique-se de ter uma chave de acesso OpenAI (Azure) válida, caso contrário, será proibido chamar os serviços OpenAI. Em seguida, defina-a como uma variável de ambiente chamada AZURE_OPENAI_KEY
.
Além disso, note que utilizámos uma implementação privada, pelo que não pode ser acedida por utilizadores externos à Equipa de I&D HCM da Talentia. Assim, recomendamos substituir o valor do parâmetro azure_endpoint
por um válido na chamada da API.
Observação
A opção -W ignore
permite não exibir possíveis avisos durante a execução do script. Para exibi-los, basta remover tal opção.
Para executar a etapa de avaliação execute o seguinte comando:
python -W ignore <path_to_repo_folder>/src/models/evaluate.py
Para realizar a conversão automática dos dados aumentados de texto não estruturado para JSON, execute o seguinte 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
Projeto baseado no modelo de projeto de ciência de dados cookiecutter. #cookiecutterdatascience