このリポジトリには、「OpenaiのGPTはリクルーターの夢のツールです。テストは人種的偏見があることを示しています」というストーリーで紹介されている調査結果を再現するコードが含まれています。
私たちの方法論は、記事の下部に記載されています。
収集および分析したデータは、 dataフォルダーにあります。
データの前処理と分析に使用されるJupyterノートブックは、 notebooksフォルダーで入手できます。各ノートブックの説明は、以下のノートブックセクションで概説しています。
このディレクトリは、入力、仲介者、および出力が保存される場所です。
新しい履歴書またはランキングを生成する場合は、Openai APIキーを登録および資金提供し、 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埋め込みは、UMAPを使用して2次元に削減されました。 |
速記を使用して、性別( M =男性とW =女性)と人種と民族( A =アジア、 H =ヒスパニック、 B =黒、およびW =白)を示します。 data/output/performance_ranking.csvの交差グループの場合、人口統計に使用する表記(col demo )は{race/ethnicity}_{gender}です。たとえば、 A_Wアジアの女性を意味します。
Python 3.11+がインストールされていることを確認してください。 Minicondaを使用して、Python 3.11仮想環境を作成しました。
次に、Pythonパッケージをインストールします: pip install -r requirements.txt
データを収集、処理、分析するJupyterノートブックは、 notebooksディレクトリにあります。ノートブックは順番に実行する必要があります。コマンドnbexec notebooksを使用して、すべてのノートブックを実行できます。
統計的には、有権者登録記録と米国の10年の国勢調査から人口統計的に異なる名前を導き出します。
OpenaiのチャットAPIを使用して、4つの異なるジョブの数百の名前にわたって数千回近くの同一の履歴書をランク付けします。
ランキング実験データを分析して、名前ベースの差別をテストします。
OpenAIのADA-002モデルを使用して、人口統計的に距離のある名前の埋め込みを収集し、UMAPを使用して2Dで表示します。