MSIT AI Fair(MAF)는 과학기술정보통신부 “점차 강화되고 있는 윤리 정책에 발맞춰 유연하게 진화하는 인공지능 기술 개발 연구(2022~2026)“ 국가과제의 일환으로, 인공지능(AI)의 공정성을 진단하고 편향성을 교정하는 진단 시스템입니다. 과거 “인공지능 모델과 학습데이터의 편향성 분석-탐지-완화-제거 지원 프레임워크 개발(2019-2022)” 국가과제 결과물의 연장선으로, 지속적으로 확장·개발되고 있습니다.
MAF는 데이터 편향성과 알고리즘 편향성을 측정 및 완화하는 것을 목표로 합니다. MAF는 IBM에서 공개한 AI Fairness 360(AIF360)의 브랜치로 시작하여 AIF360의 기본 기능을 담고 있으며, 과제 수행 기간 중 컨소시엄 내에서 개발된 편향성 완화 알고리즘의 추가, 지원 데이터 형식 추가, CPU 환경 지원 추가 등의 기능을 계속 확장하고 있습니다.
MAF 패키지는 python 환경에서 사용할 수 있습니다.
MAF 패키지에는 다음이 포함됩니다.
- 모델에 대한 메트릭 세트 및 메트릭에 대한 설명
- 데이터 세트 및 모델의 편향을 완화하는 알고리즘
- 연구소 알고리즘은 음성, 언어, 금융, 의뢰 시스템, 의료, 채용, 치안, 광고, 법률, 문화, 방송 등 광범위한 분야에서 활용하기 위해 설계되었습니다.
확장 가능성을 두고 패키지를 개발하였으며 지속적으로 개발 및 업데이트를 진행 중입니다.
MAF는 크게 algorithms, benchmark, metric의 세 파트로 이루어져 있습니다. algorithms 파트는 편향성 완화와 관련된 다양한 알고리즘이 포함되어있으며, AIF360의 분류를 따라 알고리즘을 Pre/In/Post Processing 3가지로 분류하고 있습니다. benchmark 파트는 편향성 완화와 관련된 각 benckmark를 테스트 해볼 수 있는 모듈들로 구성되어있으며, metric 파트는 편향성 측정 지표와 관련한 모듈들로 구성되어있습니다.
algorithms, benchmark, metric 각 파트의 구성은 다음과 같습니다.
AIF360의 알고리즘 및 편향성 완화와 관련한 최신 연구들을 포함하고 있습니다.
- AIF360
- Disparate Impact Remover
- Learning Fair Representation
- Reweighing
- Optim Preproc
- Learning Fair Representation
- SOTA Algorithm
- AIF360
- Gerry Fair Classifier
- Meta Fair Classifier
- Prejudice Remover
- Exponentiated Gradient Reduction
- Adversarial Debiasing
- SOTA Algorithm
- AIF360
- Calibrated EqOdds
- Equalized Odds
- Reject Option Classifier
편향성과 관련한 benchmark에 대한 연구들을 포함하고 있습니다.
편향성을 측정할 수 있는 metric과 관련한 연구들을 포함하고 있습니다.
- Latte 📃paper
MAF에서는 AIF360에 제시된 편향성 관련 metric도 함께 지원하고 있습니다.
- Number of negatives (privileged)
- Number of positives (privileged)
- Number of negatives (unprivileged)
- Number of positives (unprivileged)
- Base rate
- Statistical parity difference
- Consistency
- Error rate
- Average odds difference
- Average abs odds difference
- Selection rate
- Disparate impact
- Statistical parity difference
- Generalized entropy index
- Theil index
- Equal opportunity difference
Supported Python Configurations:
OS | Python version |
---|---|
macOS | 3.8 – 3.11 |
Ubuntu | 3.8 – 3.11 |
Windows | 3.8 – 3.11 |
MAF의 원활한 구동을 위해서는 특정 버전의 패키지들이 필요합니다. 시스템의 다른 프로젝트와 충돌할 수 있으므로 anaconda 가상 환경 혹은 docker를 권장드립니다.
-
저장소 복제
git clone https://github.com/konanaif/MAF.git
-
환경 설정
- anaconda 가상 환경 사용 시, 가상 환경 생성 후 필요 패키지를 설치합니다.
conda install --file requirements.txt
- docker 이용 시, Dockerfile을 통해 이미지를 빌드합니다. MAF의 기본 작업 공간은 workspace 입니다.
docker build -f Dockerfile -t maf:v1 ..
- anaconda 가상 환경 사용 시, 가상 환경 생성 후 필요 패키지를 설치합니다.
-
텍스트의 경우, 외부 API를 이용합니다. API 이용을 위해 별도의 KEY 설정이 필요합니다.
#OPENAI API KEY 설정 예시 export OPENAI_API_KEY = 'your_api_key'
-
데이터 및 모델 세팅 MAF에서는 tabular, text, image, audio의 4가지 타입의 데이터를 지원하고 있으며, 세부 리스트는 다음과 같습니다.
-
tabular
-
image
-
text
- KoBBQ 📚 data
- CREHate 📚 data
- co-occurrence-bias 📚 data
- latte 📚 baq_questionnaire 📚 bbq 📚 virtue, deontology, utilitarianism 📚 hate 📚 fair 📚 proso, proso_toxic 📚 detox 📚 political_compass
- RH 📚 data
- Koglish 📚 data
-
audio
- esyoon/coraal_clean_test 📚 data
개별 다운로드가 필요한 모델은 다음과 같습니다.
개별 알고리즘에 따른 데이터 및 모델 세팅이 필요합니다. 데이터와 모델은 각각 data와 model 폴더를 생성하여 다음과 같은 구조로 설정합니다.
4-1. data ```bash data ㄴadult ㄴadult.data ㄴadult.names ㄴadult.test ㄴceleba ㄴimg_align_celeba ㄴlist_attr_celeba.csv ㄴlist_attr_celeba.txt ㄴlist_eval_partition.csv ㄴco-occurrence-bias ㄴdata_statistics #링크를 통해 다운로드 ㄴLAMA_TREx #scripts/setup/download_LAMA.sh, scripts/setup/preprocess_LAMA_TREx.sh ㄴoriginal_LAMA #prepare_dataset.sh ㄴscripts ㄴprepare_dataset.sh ㄴpreprocess_LAMA_TREx.py ㄴcompas ㄴcompas-scores-two-years.csv ㄴcrehate ㄴCREHate_CP.csv ㄴCREHate_SBIC.csv ㄴgerman ㄴgerman.data ㄴINTapt ㄴdownload_data_model.py #esyoon/coraal_clean_test 데이터 및 모델 저장 ㄴesyoon___coraal_clean_test ㄴmodels--esyoon--INTapt-HuBERT-large-coraal-prompt-generator ㄴmodels--facebook--hubert-large-ls960-ft ㄴkobbq ㄴkobbq_data ㄴKoBBQ_test_samples.tsv ㄴ0_evaluation_prompts.tsv ㄴKoglish_dataset ㄴdownload_Koglish_dataset.py #Koglish 데이터 및 모델 저장 ㄴKoglish_STS ㄴKoglish_NLI ㄴKoglish_GLUE ㄴlatte ㄴbaq_questionnaire.csv ㄴbbq.csv ㄴdeontology.csv ㄴdetox.csv ㄴfair.csv ㄴhate.csv ㄴpolitical_compass.csv ㄴproso_toxic.csv ㄴproso.csv ㄴutilitarianism.csv ㄴvirtue.csv ㄴpubfig ㄴimage ㄴdev_urls.txt ㄴpubfig_attr_merged.csv ㄴpubfig_attributes.txt ㄴRH ㄴRH_dataset.xlsx ``` 4-2. model ```bash model ㄴConCSE ㄴmbert_uncased ㄴxlmr_base ㄴxlmr_large ㄴFairFiltering ㄴbaseline.th ㄴFilter_model.th ```
-