konanaif/MAF2025

MSIT AI Fair(MAF)

Python

38

81 commits

updated May 12, 2026

See the code

README

MSIT AI Fair(MAF)

MSIT AI Fair(MAF)는 과학기술정보통신부 “점차 강화되고 있는 윤리 정책에 발맞춰 유연하게 진화하는 인공지능 기술 개발 연구(2022~2026)“ 국가과제의 일환으로, 인공지능(AI)의 공정성을 진단하고 편향성을 교정하는 진단 시스템입니다. 과거 “인공지능 모델과 학습데이터의 편향성 분석-탐지-완화-제거 지원 프레임워크 개발(2019-2022)” 국가과제 결과물의 연장선으로, 지속적으로 확장·개발되고 있습니다.

MAF는 데이터 편향성과 알고리즘 편향성을 측정 및 완화하는 것을 목표로 합니다. MAF는 IBM에서 공개한 AI Fairness 360(AIF360)의 브랜치로 시작하여 AIF360의 기본 기능을 담고 있으며, 과제 수행 기간 중 컨소시엄 내에서 개발된 편향성 완화 알고리즘의 추가, 지원 데이터 형식 추가, CPU 환경 지원 추가 등의 기능을 계속 확장하고 있습니다.

MAF 패키지는 python 환경에서 사용할 수 있습니다.

MAF 패키지에는 다음이 포함됩니다.

  1. 모델에 대한 메트릭 세트 및 메트릭에 대한 설명
  2. 데이터 세트 및 모델의 편향을 완화하는 알고리즘
    • 연구소 알고리즘은 음성, 언어, 금융, 의뢰 시스템, 의료, 채용, 치안, 광고, 법률, 문화, 방송 등 광범위한 분야에서 활용하기 위해 설계되었습니다.

확장 가능성을 두고 패키지를 개발하였으며 지속적으로 개발 및 업데이트를 진행 중입니다.

Framework Outline

MAF는 크게 algorithms, benchmark, metric의 세 파트로 이루어져 있습니다. algorithms 파트는 편향성 완화와 관련된 다양한 알고리즘이 포함되어있으며, AIF360의 분류를 따라 알고리즘을 Pre/In/Post Processing 3가지로 분류하고 있습니다. benchmark 파트는 편향성 완화와 관련된 각 benckmark를 테스트 해볼 수 있는 모듈들로 구성되어있으며, metric 파트는 편향성 측정 지표와 관련한 모듈들로 구성되어있습니다.

algorithms, benchmark, metric 각 파트의 구성은 다음과 같습니다.

Algorithms

AIF360의 알고리즘 및 편향성 완화와 관련한 최신 연구들을 포함하고 있습니다.

Pre-processing Algorithms

In-processing Algorithms

Post-processing Algorithms

Benchmark

편향성과 관련한 benchmark에 대한 연구들을 포함하고 있습니다.

Metric

편향성을 측정할 수 있는 metric과 관련한 연구들을 포함하고 있습니다.

MAF에서는 AIF360에 제시된 편향성 관련 metric도 함께 지원하고 있습니다.

Data metrics

  • Number of negatives (privileged)
  • Number of positives (privileged)
  • Number of negatives (unprivileged)
  • Number of positives (unprivileged)
  • Base rate
  • Statistical parity difference
  • Consistency

Classification metrics

  • Error rate
  • Average odds difference
  • Average abs odds difference
  • Selection rate
  • Disparate impact
  • Statistical parity difference
  • Generalized entropy index
  • Theil index
  • Equal opportunity difference

Setup

Supported Python Configurations:

OSPython version
macOS3.8 – 3.11
Ubuntu3.8 – 3.11
Windows3.8 – 3.11

MAF의 원활한 구동을 위해서는 특정 버전의 패키지들이 필요합니다. 시스템의 다른 프로젝트와 충돌할 수 있으므로 anaconda 가상 환경 혹은 docker를 권장드립니다.

Installation

  1. 저장소 복제

    git clone https://github.com/konanaif/MAF.git
    
  2. 환경 설정

    • anaconda 가상 환경 사용 시, 가상 환경 생성 후 필요 패키지를 설치합니다.
      conda install --file requirements.txt
      
    • docker 이용 시, Dockerfile을 통해 이미지를 빌드합니다. MAF의 기본 작업 공간은 workspace 입니다.
      docker build -f Dockerfile -t maf:v1 ..
      
  3. 텍스트의 경우, 외부 API를 이용합니다. API 이용을 위해 별도의 KEY 설정이 필요합니다.

    #OPENAI API KEY 설정 예시
    export OPENAI_API_KEY = 'your_api_key'
    
  4. 데이터 및 모델 세팅 MAF에서는 tabular, text, image, audio의 4가지 타입의 데이터를 지원하고 있으며, 세부 리스트는 다음과 같습니다.

    개별 다운로드가 필요한 모델은 다음과 같습니다.

    개별 알고리즘에 따른 데이터 및 모델 세팅이 필요합니다. 데이터와 모델은 각각 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
           ㄴcasual_path_tracing
             ㄴlama_trex.json
           ㄴember # 원본 repo를 통해 full data 다운로드 필수
             ㄴif
               ㄴember_if.json
             ㄴqa
               ㄴember_qa_gpt4.json
               ㄴember_qa_newbing.json
      ```
    
     4-2. model
     ```bash
         model
           ㄴConCSE
             ㄴmbert_uncased
             ㄴxlmr_base
             ㄴxlmr_large
           ㄴFairFiltering
             ㄴbaseline.th
             ㄴFilter_model.th
     ```
    

konanaif/MAF2025

MSIT AI Fair(MAF)

Python

38

81 commits

updated May 12, 2026

See the code

README

MSIT AI Fair(MAF)

MSIT AI Fair(MAF)는 과학기술정보통신부 “점차 강화되고 있는 윤리 정책에 발맞춰 유연하게 진화하는 인공지능 기술 개발 연구(2022~2026)“ 국가과제의 일환으로, 인공지능(AI)의 공정성을 진단하고 편향성을 교정하는 진단 시스템입니다. 과거 “인공지능 모델과 학습데이터의 편향성 분석-탐지-완화-제거 지원 프레임워크 개발(2019-2022)” 국가과제 결과물의 연장선으로, 지속적으로 확장·개발되고 있습니다.

MAF는 데이터 편향성과 알고리즘 편향성을 측정 및 완화하는 것을 목표로 합니다. MAF는 IBM에서 공개한 AI Fairness 360(AIF360)의 브랜치로 시작하여 AIF360의 기본 기능을 담고 있으며, 과제 수행 기간 중 컨소시엄 내에서 개발된 편향성 완화 알고리즘의 추가, 지원 데이터 형식 추가, CPU 환경 지원 추가 등의 기능을 계속 확장하고 있습니다.

MAF 패키지는 python 환경에서 사용할 수 있습니다.

MAF 패키지에는 다음이 포함됩니다.

  1. 모델에 대한 메트릭 세트 및 메트릭에 대한 설명
  2. 데이터 세트 및 모델의 편향을 완화하는 알고리즘
    • 연구소 알고리즘은 음성, 언어, 금융, 의뢰 시스템, 의료, 채용, 치안, 광고, 법률, 문화, 방송 등 광범위한 분야에서 활용하기 위해 설계되었습니다.

확장 가능성을 두고 패키지를 개발하였으며 지속적으로 개발 및 업데이트를 진행 중입니다.

Framework Outline

MAF는 크게 algorithms, benchmark, metric의 세 파트로 이루어져 있습니다. algorithms 파트는 편향성 완화와 관련된 다양한 알고리즘이 포함되어있으며, AIF360의 분류를 따라 알고리즘을 Pre/In/Post Processing 3가지로 분류하고 있습니다. benchmark 파트는 편향성 완화와 관련된 각 benckmark를 테스트 해볼 수 있는 모듈들로 구성되어있으며, metric 파트는 편향성 측정 지표와 관련한 모듈들로 구성되어있습니다.

algorithms, benchmark, metric 각 파트의 구성은 다음과 같습니다.

Algorithms

AIF360의 알고리즘 및 편향성 완화와 관련한 최신 연구들을 포함하고 있습니다.

Pre-processing Algorithms

In-processing Algorithms

Post-processing Algorithms

Benchmark

편향성과 관련한 benchmark에 대한 연구들을 포함하고 있습니다.

Metric

편향성을 측정할 수 있는 metric과 관련한 연구들을 포함하고 있습니다.

MAF에서는 AIF360에 제시된 편향성 관련 metric도 함께 지원하고 있습니다.

Data metrics

  • Number of negatives (privileged)
  • Number of positives (privileged)
  • Number of negatives (unprivileged)
  • Number of positives (unprivileged)
  • Base rate
  • Statistical parity difference
  • Consistency

Classification metrics

  • Error rate
  • Average odds difference
  • Average abs odds difference
  • Selection rate
  • Disparate impact
  • Statistical parity difference
  • Generalized entropy index
  • Theil index
  • Equal opportunity difference

Setup

Supported Python Configurations:

OSPython version
macOS3.8 – 3.11
Ubuntu3.8 – 3.11
Windows3.8 – 3.11

MAF의 원활한 구동을 위해서는 특정 버전의 패키지들이 필요합니다. 시스템의 다른 프로젝트와 충돌할 수 있으므로 anaconda 가상 환경 혹은 docker를 권장드립니다.

Installation

  1. 저장소 복제

    git clone https://github.com/konanaif/MAF.git
    
  2. 환경 설정

    • anaconda 가상 환경 사용 시, 가상 환경 생성 후 필요 패키지를 설치합니다.
      conda install --file requirements.txt
      
    • docker 이용 시, Dockerfile을 통해 이미지를 빌드합니다. MAF의 기본 작업 공간은 workspace 입니다.
      docker build -f Dockerfile -t maf:v1 ..
      
  3. 텍스트의 경우, 외부 API를 이용합니다. API 이용을 위해 별도의 KEY 설정이 필요합니다.

    #OPENAI API KEY 설정 예시
    export OPENAI_API_KEY = 'your_api_key'
    
  4. 데이터 및 모델 세팅 MAF에서는 tabular, text, image, audio의 4가지 타입의 데이터를 지원하고 있으며, 세부 리스트는 다음과 같습니다.

    개별 다운로드가 필요한 모델은 다음과 같습니다.

    개별 알고리즘에 따른 데이터 및 모델 세팅이 필요합니다. 데이터와 모델은 각각 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
           ㄴcasual_path_tracing
             ㄴlama_trex.json
           ㄴember # 원본 repo를 통해 full data 다운로드 필수
             ㄴif
               ㄴember_if.json
             ㄴqa
               ㄴember_qa_gpt4.json
               ㄴember_qa_newbing.json
      ```
    
     4-2. model
     ```bash
         model
           ㄴConCSE
             ㄴmbert_uncased
             ㄴxlmr_base
             ㄴxlmr_large
           ㄴFairFiltering
             ㄴbaseline.th
             ㄴFilter_model.th
     ```
    

Languages

Python

99.5%