Этот репозиторий содержит код для воспроизведения результатов, представленных в нашей истории «GPT Openai's GPT - это инструмент мечты рекрутера. Тесты показывают, что есть расовая предвзятость».
Наша методология описана в нижней части статьи.
Данные, которые мы собрали и проанализировали, находятся в папке data .
Ноутбуки Jupyter, используемые для предварительной обработки данных и анализа, доступны в папке notebooks . Описания для каждой записной книжки изложены в разделе ноутбуков ниже.
Этот каталог - это то, где сохраняются входы, посредники и выходы.
Если вы хотите создать новые резюме или рейтинги, вам нужно зарегистрировать и финансировать ключ API OpenAI и установить следующие переменные среды: OPENAI_ORG и 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
Вот объяснение некоторых из наиболее важных файлов.
| файл | описание |
|---|---|
data/input/top_mens_names.json | Демографически изящные имена (см. Также data/input/top_womens_names.json ) статистически из записей избирателей Северной Каролины и данных переписи. |
data/input/Names_2010Census_Top1000.csv | Самые популярные фамилии США, взятые из Бюро переписей США. |
data/intermediary/resumes_to_rank.json | Не менее квалифицированные резюме, сгенерированные из GPT-4 и отредактированы. Также включает в себя реальные должностные инструкции, используемые для оценки каждого резюме. |
data/intermediary/resume_ranking | Данные из эксперимента по рейтингу резюме, собранные с OpenAI. Организовано по модели версии> Название работы> Дата коллекции. |
data/output/performance_ranking.csv | Агрегированные результаты эксперимента по рейтингу резюме. |
data/output/names_embedded_for_graphic.csv | ADA-002 встраиваемые для демографически отличных имен уменьшены до 2-дименсий с использованием UMAP. |
Мы используем стенографию для обозначения пола ( M = мужского и W = женщины), а также расы и этнической принадлежности ( A = азиатский, H = латиноамериканский, B = черный и W = белый). Для интерсекционных групп в data/output/performance_ranking.csv нотация, которую мы используем для демографии ( demo COL) - {race/ethnicity}_{gender} , например, A_W означает азиатские женщины.
Убедитесь, что у вас установлен Python 3.11+. Мы использовали Miniconda для создания виртуальной среды Python 3.11.
Затем установите пакеты Python: pip install -r requirements.txt
Записные книжки -юпитера для сбора, обработки и анализа данных можно найти в каталоге notebooks . Ноутбуки должны быть запускаться последовательно, вы можете использовать nbexec notebooks для запуска всех ноутбуков.
Статистически получает демографически отличные имена от записей регистрации избирателей и переписи в десятилетнем возрасте США.
Используйте API чата Openai, чтобы занять восемь почти идентичных резюме тысячи раз по сотням имен для четырех разных рабочих мест.
Проанализировать данные эксперимента по рейтингу, чтобы проверить дискриминацию на основе имени.
Соберите встраивание для демографических имен, используя модель ADA-002 Openai и просмотрите их в 2D с помощью UMAP.