Ce référentiel contient du code pour reproduire les résultats présentés dans notre histoire "Openai's GPT est un outil de rêve d'un recruteur. Les tests montrent qu'il y a un biais racial".
Notre méthodologie est décrite au bas de l'article.
Les données que nous avons collectées et analysées figurent dans le dossier data .
Les cahiers Jupyter utilisés pour le prétraitement des données et l'analyse sont disponibles dans le dossier notebooks . Les descriptions de chaque cahier sont décrites dans la section des cahiers ci-dessous.
Ce répertoire est l'endroit où les entrées, les intermédiaires et les sorties sont enregistrées.
Si vous souhaitez générer de nouveaux curriculum vitae ou classements, vous devrez vous inscrire et financer une clé API OpenAI et définir les variables d'environnement suivantes: OPENAI_ORG et OPENAI_API_KEY .
data
├── intermediary
│ ├── resumes_to_rank.json
│ ├── resume_ranking
│ │ ├── gpt-3.5-turbo
│ │ └── gpt-4
│ └── embeddings
│ └── names_embedded_ada.json
├── output
│ ├── names_embedded_for_graphic.csv
│ ├── performance_ranking.csv
│ └── resume_ranking_for_graphics.csv
└── input
├── top_mens_names.json
├── top_womens_names.json
└── Names_2010Census_Top1000.csv
Voici une explication de certains des fichiers les plus importants.
| déposer | description |
|---|---|
data/input/top_mens_names.json | Noms démographiquement-distinct (voir aussi data/input/top_womens_names.json ) dérivés statistiquement des enregistrements des électeurs de la Caroline du Nord et des données de recensement. |
data/input/Names_2010Census_Top1000.csv | Les noms de famille américains les plus populaires tirés du US Census Bureau. |
data/intermediary/resumes_to_rank.json | CV tout aussi qualifiés générés à partir de GPT-4 et édité. Comprend également de vraies descriptions de travail utilisées pour évaluer chaque CV. |
data/intermediary/resume_ranking | Données de l'expérience de classement des CV collectées auprès d'OpenAI. Organisé par Model Version> Titre du travail> Date de collection. |
data/output/performance_ranking.csv | Résultats agrégés de l'expérience de classement des CV. |
data/output/names_embedded_for_graphic.csv | Les intégres ADA-002 pour des noms démographiquement distincts ont réduit à 2 dimensions en utilisant UMAP. |
Nous utilisons un sténographie pour désigner le sexe ( M = mâle et W = femelle) ainsi que la race et l'ethnicité ( A = asiatique, H = hispanique, B = noir et W = blanc). Pour les groupes intersectionnels dans data/output/performance_ranking.csv la notation que nous utilisons pour la démographie (Col demo ) est {race/ethnicity}_{gender} , par exemple A_W signifie les femmes asiatiques.
Assurez-vous que Python 3.11+ soit installé. Nous avons utilisé MiniConda pour créer un environnement virtuel Python 3.11.
Puis installez les packages Python: pip install -r requirements.txt
Les cahiers Jupyter pour collecter, traiter et analyser les données peuvent être trouvés dans le répertoire notebooks . Les ordinateurs portables doivent être exécutés séquentiellement, vous pouvez utiliser les nbexec notebooks pour exécuter tous les ordinateurs portables.
Dérive statistiquement les noms démographiquement distincts des dossiers d'enregistrement des électeurs et du recensement décennal américain.
Utilisez l'API de chat d'Openai pour classer huit curriculum vitae presque identique des milliers de fois sur des centaines de noms pour quatre emplois différents.
Analyser les données d'expérience de classement pour tester la discrimination fondée sur le nom.
Collectez des intégres pour les noms démographiquement-distinct en utilisant le modèle ADA-002 d'OpenAI et affichez-les en 2D en utilisant UMAP.