TIL
  • Main
  • TIL : ML
    • AI News
      • AI-powered coding, free of charge with Colab
    • Paper
      • Retrieval-augmented generation for knowledge-intensive nlp tasks
        • reference 정리
      • Sequence to Sequence
    • Generative AI
      • LLM
        • 기본 개념
    • Boostcamp
      • Daily Report
        • 2021
          • 09
            • week4
            • week5
          • 10
            • week1
            • week2
            • week3
            • week4
          • 11
            • week1
            • week2
            • week3
            • week4
            • week5
          • 12
            • week1
            • week2
            • week3
      • Final Project
        • 프로젝트 기획
          • 🌟최종 프로젝트 기획
          • 최종 프로젝트 Version
          • 아이디어 수집
          • 욕설, 혐오발언 감지
          • 라이브 커머스 레포팅 프로젝트
        • 프로젝트 진행
          • week1
          • week2
          • week3
      • Competition
        • 1. [NLP] 문장 내 개체간 관계 추출
          • Day1 (9.27, 월)
          • Day2-3 (9.28~29, 화~수)
          • Day4 (9.30, 목)
          • Day5 (10.1, 금)
          • Day6~7 (10.2~3, 토~일)
          • Day8 (10.4, 월)
          • Day9 (10.5, 화)
          • Day10 (10.6, 수)
          • Day 11 (10.7 목)
        • 2. [NLP] MRC 프로젝트
          • Day1 (10.25, 월)
          • Day2 (10.26, 화)
          • Day3 (10.27, 수)
          • Day4-5 (10.28-29, 목-금)
          • Day6 (11.1, 월)
          • Day7 (11.2, 화)
          • Day8 (11.3, 수)
          • Day9 (11.4, 목)
        • 🔨3. [NLP] 데이터 제작
          • Day1
        • 🔨4. [공통] 모델 경량화
      • [U Stage] - DL basic
        • (01강) 딥러닝 기본 용어 설명 - Historical Review
        • (02강) 뉴럴 네트워크 - MLP (Multi-Layer Perceptron)
        • (03강) Optimization
        • 🔨(04강) Convolution은 무엇인가?
        • 🔨(05강) Modern CNN - 1x1 convolution의 중요성
        • 🔨(06강) Computer Vision Applications
        • (07강) Sequential Models - RNN
        • (08강) Sequential Models - Transformer
        • Page 2
      • [U Stage] - PyTorch
        • (01강) Introduction to PyTorch
        • (02강) PyTorch Basics
        • (03강) PyTorch 프로젝트 구조 이해하기
        • (04강) AutoGrad & Optimizer
        • (05강) Dataset & Dataloader
        • (06강) 모델 불러오기
        • (07강) Monitoring tools for PyTorch
        • (08강) Multi-GPU 학습
        • (09강) Hyperparameter Tuning
        • (10강) PyTorch Troubleshooting
      • [U Stage] - NLP
        • (01강) Introduction to NLP, Bag-of-Words
        • (02강) Word Embedding
        • (03강) Recurrent Neural Network and Language Modeling
        • (04강) LSTM and GRU
        • (05강) Sequence to Sequence with Attention
        • (06강) Beam Search and BLEU score
        • (07-08강) Transformer
        • (09강) Self-supervised Pre-training Models
      • [P Stage] - KLUE
        • (1강) 인공지능과 자연어 처리
        • (2강) 자연어의 전처리
        • (3강) BERT 언어모델 소개
        • (4강) 한국어 BERT 언어 모델 학습
        • (5강) BERT 기반 단일 문장 분류 모델 학습
        • (6강) BERT 기반 두 문장 관계 분류 모델 학습
        • (7강) BERT 언어모델 기반의 문장 토큰 분류
        • 오피스아워 (9.30, 목)
        • (8강) GPT 언어 모델
        • (9강) GPT 언어모델 기반의 자연어 생성
        • (10강) 최신 자연어처리 연구
      • [P Stage] - MRC
        • Before Study
        • (1강) MRC Intro & Python Basics
        • (2강) Extraction-based MRC
        • (3강) Generation-based MRC
        • (4강) Passage Retrieval - Sparse Embedding
        • (5강) Passage Retrieval - Dense Embedding
        • 오피스아워
        • (6강) Scaling up with FAISS
        • (7강) Linking MRC and Retrieval
        • (8강) Reducing Training Bias
        • (9강) Closed-book QA with T5
        • (10강) QA with Phrase Retrieval
        • 마스터클래스
      • [P Stage] - 데이터제작(NLP)
        • (1강) 데이터 제작의 A to Z
        • (2강) 자연어처리 데이터 기초
        • (3강) 자연어처리 데이터 소개 1
        • (4강) 자연어처리 데이터 소개 2
        • (5강) 원시 데이터의 수집과 가공
        • 오피스아워 (11.10, 수)
        • (6강) 데이터 구축 작업 설계
        • (7강) 데이터 구축 가이드라인 작성 기초
        • (8강) 관계 추출 과제의 이해
        • (9강) 관계 추출 관련 논문 읽기
        • (10강) 관계 추출 데이터 구축 실습
      • [P Stage] - 모델 최적화
        • (1강) 최적화 소개 및 강의 개요
        • (2강) 대회 및 데이터셋 소개
        • (3강) 작은 모델, 좋은 파라미터 찾기: AutoML 이론
        • 🔨(4강) 작은 모델, 좋은 파라미터 찾기: AutoML 실습
        • (5강) 작은 모델, 좋은 파라미터 찾기: Data Augmentation & AutoML 결과 분석
        • 🔨오피스아워 -Baseline 코드에 모듈 작성하기(신종선 멘토님)
      • [P Stage] - Product Serving
        • Part 1: Product Serving 개론
          • 1.1 강의 진행 방식
          • 1.2 MLOps 개론
          • 1.3 Model Serving
          • 1.4 머신러닝 프로젝트 라이프 사이클
        • Part 2: 프로토타입부터 점진적으로 개선하기
          • 2.1 프로토타이핑 - Notebook 베이스(Voila)
          • 2.2 프로토타이핑 - 웹 서비스 형태(Streamlit)
          • 2.3 Linux & Shell Command
          • 2.4 Cloud
          • 2.5 Github Action을 활용한 CI/CD
        • Part 3: 더 완성화된 제품으로
          • 3.1.1 FastAPI
          • 3.1.2 Fast API
          • 3.1.3 Fast API
          • 3.2 Docker
          • 3.3 Logging
          • 3.4 MLFlow
        • Part 4: 심화 소재
          • 4.1 BentoML
          • 4.2 Airflow
          • 4.3 머신러닝 디자인 패턴
          • 4.4 앞으로 더 공부하면 좋을 내용
      • 특강
        • (특강) 김상훈 - 캐글 그랜드마스터의 노하우 대방출
        • (특강) 이활석 - 서비스 향 AI 모델 개발하기
        • (특강) 구종만 - AI + ML과 Quant Trading
        • (특강) 문지형 - 내가 만든 AI 모델은 합법일까, 불법일까
        • (특강) 이준엽 - Full Stack ML Engineer
        • (특강) 박은정 - AI 시대의 커리어 빌딩
        • (특강) 오혜연 - AI Ethics
    • Competition
      • (DACON)한국어 문장 관계 분류 경진대회
        • Day1(2.14, 월)
        • Day2(2.15, 화)
        • Day3(2.16, 수)
        • Day4(2.17, 목)
      • 2021 인공지능 데이터 활용 경진대회
        • 역량평가
          • Day1 (9.28, 화)
          • Day2 (9.29, 수)
          • Day3 (9.30, 목)
        • 예선
          • Data 분석
          • NSML
          • What We Have Done?
    • ETC
      • 인터뷰 대비
        • Computer Science
        • ML/DL
      • Poetry로 dependency 관리
        • window에서 설치하기
      • code block
      • 공부할 것 임시보관
      • Transformer to T5
      • Hugging Face Tutorial
        • Ch1. Transformer models
        • Ch2. Using Transformers
        • Ch3. Fine-tuning a model with the Trainer API
      • KLUE
      • Pandas
  • TIL : Ops
    • AWS
      • SageMaker
  • TIL : Computer (CS)
    • Error
      • TextEncodeInput must be Union[TextInputSequence, Tuple[InputSequence, InputSequence]]
    • Algorithm
      • Theory
      • Programmers
        • 기능개발
    • ETC
      • Github 커밋 히스토리 삭제
Powered by GitBook
On this page
  • 1. Definition of Bias
  • 1.1. Bias의 종류
  • 2. Bias in ODQA
  • 2.1. Training bias in reader model
  • 2.2. How to mitigate Bias
  • 3. Annotation Bias from Datasets
  • 3.1. Annotation Bias란?
  • 3.2. Effect of annotation Bias
  • 3.3. Dealing with annotation bias
  • 실습코드 Link

Was this helpful?

  1. TIL : ML
  2. Boostcamp
  3. [P Stage] - MRC

(8강) Reducing Training Bias

Previous(7강) Linking MRC and RetrievalNext(9강) Closed-book QA with T5

Last updated 3 years ago

Was this helpful?

  • ODQA 할 떄 발생할 수 있는 bias에 대해 배워본다.

  • 어떤 상황에서 발생하는지와 해결하기 위한 노력들에 대해서

[Reference & Further Reading]

1. Definition of Bias

1.1. Bias의 종류

  • Bias in learning

    • inductive bias: 학습할 때 과적합을 막거나 사전 지식을 주입하기 위해 특정 형태의 함수를 선호하는 것

      • 예를 들어 요약 대회에서 육하원칙으로 만들어진다고 생각하고 우리가 전처리하는 것

  • A Biased World

    • historical bias: 현실 세계가 편향되어 있기 때문에 모델에 원치 않는 속성이 학습되는 것

    • co-occurrence bias: 성별과 직업 간 관계 등 표면적인 상관관계 때문에 원치 않는 속성이 학습되는 것

  • Bias in Data Generation

    • specification bias: 입력과 출력을 정의한 방식 때문에 생기는 편향

    • sampling bias: 데이터를 샘플링한 방식 때문에 생기는 편향

    • annotator bias: 어노테이터의 특성 때문에 생기는 편향

Gender Bias

성별에 따라서 Bias가 생기는 것을 확인할 수 있다. 예를 들어 cooking 같은 경우 여성과 연관시켜서 오류가 발생하게 된다. 또 다른 예로는 "저 사람은 의사다." 라는 문장이 he is doctor 로 의사는 남자로 많이 학습되어 남자라고 가정하게 되는 bias가 있다.

Sampling Bias

설문 대상 설정으로 생긴 Bias로 인한 오류.

Bias 가 있는 것이 나쁘다라기 보다 객관화를 하기에 문제가 있을 수 있다. 라고 생각하고 그를 해결하고자 고민할 것.

2. Bias in ODQA

2.1. Training bias in reader model

만약 reader 모델이 한정된 데이터셋에서만 학습하게 된다면 정답이 문서 내에 포함된 데이터 쌍만을 보게 되고, 이는 새로운 문서가 주어졌을 때 정답을 찾기 어려울 것이다.

예를 들어 소설, 수필, 비문학 등을 학습시킨 모델에 의학, 공학, 자연과학을 추론하게 한다면 당연히 정답을 맞출 수 없는 것과 같다.

2.2. How to mitigate Bias

  • Train negative examples

    • 훈련할 때도 잘못된 예시를 보여줘서 retriever이 negative한 내용들은 먼 곳에 배치할 수 있음.

    • => Negative sample도 완전히 다른 negative와 비슷한 negative에 대한 차이 고려 필요함.

    • 🤷‍♂️ 대회를 하면서 항상 의구심이 들었던 부분인데 전처리를 통해 잘못 생성된 데이터를 제거하는 것이 과연 옳은 일인가 하는 고민이 든다... 이 내용을 보면 일부러 negative 데이터를 삽입하는 걸 볼 수 있다보니, 잘못된 데이터를 그냥 두는 것이 어찌보면 bias문제를 완화하는 조치가 되지 않을까?

    • 좋은 negative sample을 뽑기 위한 방법

      • Corpus내에서 랜덤하게 뽑기

      • 좀 더 헷갈리는 negative 샘플들 뽑기

        • => 높은 BM25 / TF-IDF 매칭 스코어를 가지지만, 답은 포함하지 않는 샘플

        • => 같은 문서에서 나온 다른 Passage / Question 선택하기

  • Add no answer bias

    • 입력 시퀸스의 길이가 N일때, 시퀸스의 길이 외 1개의 토큰이 더 있다고 생각하기

    • => Training Model의 마지막 레이어 weight에 훈련가능한 bias를 하나 더 추가

    • => Softmax로 answer prediction 을 최종적으로 수행할 때, start end 확률이 해당 bias 위치에 있는 경우가 가장 확률이 높으면 이는 "대답 할 수 없다" 라고 취급

3. Annotation Bias from Datasets

3.1. Annotation Bias란?

ODQA 학습 시 기존의 MRC데이터 셋을 활용 => ODQA 세팅에는 적합하지 않은 bias가 데이터 제작(annotation) 단계에서 발생할 수 있음.

질문을 하는 사람이 답으르 알고 있는 상태로 질문하는 경우가 발생한다.

  • SQuAD: Only 500 + wiki article => 학습 데이터의 분포자체가 이미 bias 되어있음

  • 질문을 하는 사람이 passage를 보면서 문제를 내기 때문에 질문과 passage에 공통된 단어가 많아지게 된다.

3.2. Effect of annotation Bias

데이터 제작 단계에서 생긴 Bias로 인해 데이터 셋 별로 모델의 성능이 다르게 나오는 현상을 볼 수 있다.

  • 합치면 올라가는 경우도 있으니 참고하자.

3.3. Dealing with annotation bias

데이터 셋 구성을 할 때, 실제로 생기는 것을 고려하여 데이터를 수집하는 것이 중요하다.

실습코드 Link

Latent Retrieval for Weakly Supervised Open Domain Question Answering
Dense Passage Retrieval for Open-Domain Question Answering
LogoMRC Practice 8 - Reducing Training Bias.ipynbGoogle Docs