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. Introduction to Open-Domain Question Answering(ODQA)
  • 1.1. ODQA
  • 1.2. History
  • 2. Retriever-Reader Approach
  • 3. Issues & Recent Approaches
  • 3.1. Different granularities of text at indexong time
  • 3.2. Single-passage vs Multi-passage training
  • 3.3. Importance of each passage
  • 실습코드 Link

Was this helpful?

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

(7강) Linking MRC and Retrieval

Previous(6강) Scaling up with FAISSNext(8강) Reducing Training Bias

Last updated 3 years ago

Was this helpful?

  • retriever와 reader로 ODQA(Open Domain Question and Answering) 문제 풀기

  • ODQA란?

  • retriever-reader approach

[Reference and Further reading]

1. Introduction to Open-Domain Question Answering(ODQA)

1.1. ODQA

MRC는 지문이 주어진 상황에서 질의응답을 하는 것이다. 반면 ODQA의 경우 지문이 따로 주어지지 않고 방대한 World Knowledge (가령 위키피디아 데이터)에 기반해서 질의 응답을 하게 된다

1.2. History

Text retrieval conference(TREC) - QA Tracks(1999-2007)

  • 연관문서만 반환하는 information retrieval(IR)에서 더 나아가서, short answer with support형태가 목표

  • Question processiong + Passage retrieval + Answer processing

  • Question processing: 질문을 어떻게하면 가장 잘 이해할 수 있을까?

    • Query formulation: 질문으로부터 키워드를 선택 / Answer type selection

  • Passage retrieval: 기존의 IR방법을 활용해서 연관된 document를 뽑고, passage단위로 자른 후 선별(Named entity / Passage 내 question 단어의 개수 등과 같은 hand-crafted features 활용)

  • Answer processing

    • Hand-crafted features와 heuristic을 활용한 classifier

    • 주어진 question과 선별된 passage들 내에서 답을 선

IBM Watson(2011)

  • The DeepQA Project

  • Jeopardy(TV quiz show) 우승

그 후

2. Retriever-Reader Approach

그동안 배운 1~3 + 4~6 강을 활용한 모델

  • Retriever: 데이터 베이스에서 관련있는 문서를 검색

    • Input: document corpus + query

    • output: document with heigh similarity

    • TF-IDF, BM25 -> no train

    • Dense -> train with qa-dataset

  • Reader: 문서내에서 질문에 대한 답을 찾음

    • Input: Retrieved document + query

    • output: answer

    • SQuAD와 같은 MRC 데이터 셋으로 학습

    • 학습 데이터를 추가하기 위해 Distant supervision을 활용

Distant supervision: 질문-답변만 있는 데이터셋에서 MRC 학습 데이터 만들기, Supporting document가 필요함.

  • 위키피디아에서 Retriever를 이용해 관련성 높은 문서를 검색

  • 짤거나 긴, 고유명사를 포함하지 않는등 부적합한 문서를 제거

  • answer가 exact match로 들어있지 않은 문서 제거

  • 남은 문서중에 질문과 연관성이 가장 높은 단락을 supporting evidence로 사용

💭 문서를 만들어 주는 기법.

Inference

  • Retriever가 질문과 가장 관련성 높은 5개의 문서를 출력

  • Reader는 5개 문서를 읽고 답변 예측

  • Reader가 예측한 답변 중 가장 score가 높은 것을 최종 답으로 사용함

💭반복되는 내용인것 같다. MRC Task의 경우 크게 Retriever와 Reader로 나뉘게 되고

  1. Retriever를 통해 관련된 문서를 탐색

  2. Reader를 통해 탐색된 문서 안에서 질문에 대한 정답을 찾기

3. Issues & Recent Approaches

3.1. Different granularities of text at indexong time

  • 위키피디아나 웹 문서에는 Passage의 단위를 구분짓기가 명확하지 않다. 이를 어떻게 단위를 잡을지 정해야한다.

    • Article(5.08 m), Paragraph(29.5m), Sentence(75.9m)

  • Retriever단계에서 몇개 (top-k)의 문서를 넘길지 정해야함. Passage를 나누는 기준에 따라 잡기 마련이다.

    • article(5), paragraph(29), sentence(75)

3.2. Single-passage vs Multi-passage training

기존 single passage인 경우 retrieved 된 k개들의 passage에 대해 각각 reader로 확인하고 answer의 예측점수를 나타내게 된다. 이 방법은 각 passages들에 대한 비교는 아니라고 할 수 있어 이 passage들을 하나로 취급해서 answer를 찾는 방식이 Multi-passage 학습니다.

문제점으로는 문서가 너무 길어져서 GPU의 메모리 할당량과 연산량이 많아진다는 것이 있다.

3.3. Importance of each passage

Retriever 모델에서 추출된 top-k passage들의 retrieval score를 reader 모델에 전달한다.

reader 모델이 최종 모델의 점수를 고를때, retriever모델의 점수를 가중치를 부여하는 것이 더 좋은 성능을 나타내곤 한다.

실습코드 Link

지금까지 배운 Retriever와 Reader 모델을 붙이는 과정을 실습한다.

Reading Wikipedia to Answer Open-domain Questions
A survey on Machine Reading Comprehension
ACL 2020 ODQA tutorial
https://drive.google.com/file/d/1paHmsxLIVSVUgH3fRX6TQo-iDrvaIdY5/view?usp=sharing