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. KLUE 데이터셋 소개
  • 1.1. KLUE 데이터셋 종
  • 1.2. 의존 구문 분석
  • 2. 단일 문장 분류 task 소개
  • 2.1. 문장 분류 task
  • 2.2. 문장 분류를 위한 데이터
  • 3. 단일 문장 분류 모델 학습
  • 3.1. 모델 구조도
  • 3.2. 학습과정
  • 실습코드 Link

Was this helpful?

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

(5강) BERT 기반 단일 문장 분류 모델 학습

Previous(4강) 한국어 BERT 언어 모델 학습Next(6강) BERT 기반 두 문장 관계 분류 모델 학습

Last updated 3 years ago

Was this helpful?

3강에서 배운 BERT를 활용하여 단일 문장 분류 모델 TASK 해결하기 활용분야로 긍/부정등의 감정분석, 뉴스의 카테고리 분류, 비속어 판단 모델 등

[Reference]

1. KLUE 데이터셋 소개

한국어 자연어 이해 벤치마크(Korean Language Understanding Evaluation, KLUE)

1.1. KLUE 데이터셋 종

1.2. 의존 구문 분석

단어들 사이의 관계를 분석하는 task

  • 특징

    • 지배소: 의미의 중심이 되는 요소

    • 의존소: 지배소가 갖는 의미를 보완해주는 요소

    • 어순과 생략이 자유로운 한국어와 같은 언어에서 주로 연구된다.

  • 분류 규칙

    • 지배소는 후위언어이다. 즉 지배소는 항상 의존소보다 뒤에 위치한다.

    • 각 의존소의 지배소는 하나이다.

    • 교차 의존 구조는 없다.

  • 분류 방법

    • Sequence labeling 방식으로 처리 단계를 나눈다.

    • 앞 어절에 의존소가 없고 다음 어절이 지배소인 어절을 삭제하며 의존 관계를 만든다.

  • 복잡한 자연어 형태를 그래프로 구조화해서 표현이 가능해진다. 즉, 각 대상에 대한 정보 추출이 가능해 진다.

  • 구름그림 -> 새털구름을 그린 것 -> 내가 그린 것

  • "나"는 "구름그림"을 그렸다

  • "구름그림"은 "새털구름"을 그린것이다.

2. 단일 문장 분류 task 소개

2.1. 문장 분류 task

주어진 문장이 어떤 종류의 범주에 속하는지를 구분하는 task

  • 감정 분석(Sentiment Analysis)

    • 문장의 긍정 또는 부정 및 중립 등 성향을 분류하는 프로세스

    • 문장을 작성한 사람의 느낌, 감정등을 분석 할 수 있기 때문에 기업에서 모니터링, 고객지원, 또는 댓글에 대한 필터링 등을 자동화하는 작업에 주로 사용

    • 활용 방안

      • 혐오 발언 분류: 댓글, 게임대화 등 혐오 발언을 분류하여 조치를 취하는 용도로 활용

      • 기업 모니터링: 소셜, 리뷰등 데이터에 대해 기업 이미지, 브랜드선호도, 제품평가 등 긍정 또는 부정적 요인을 분석

  • 주제 라벨링(Topic Labeling)

    • 문장의 내용을 이해하고 적절한에 범주를 분류하는 프로세스

    • 주제별로 뉴스 기사를 구성하는 등 데이터 구조화와 구성에 용이

    • 활용 방안

      • 대용량 문서 분류: 대용량의 문서를 범주화

      • VoC(Voice of Customer): 고객의 피드백을 제품 가격, 개선점, 디자인등 적절한 주제로 분류하여 데이터를 구조화

  • 언어감지(Language Detection)

    • 문장이 어떤 나라 언어인지를 분류하는 프로세스

    • 주로 번역기에서 정확한 번역을 위해 입력 문장이 어떤 나라의 언어인지 타켓팅 하는 작업이 가능

    • 활용 방안

      • 번역기: 번역할 문장에 대해 적절한 언어를 감지함 (구글 번역기: 자동감지)

      • 데이터 필터링: 타겟 언어 이외 데이터는 필터링

  • 의도 분류(Intent Classification)

    • 문장이 가진 의도를 분류하는 프로세스

    • 입력 문장이 질문, 불만, 명령 등 다양한 의도를 가질 수 있기 때문에 적절한 피드백을 줄 수 있는 곳으로 라우팅 작업이 가능

    • 활용 방안

      • 챗봇: 문장의 의도인 질문, 명령, 거절 등을 분석하고 적절한 답변을 주기 위해 활용

2.2. 문장 분류를 위한 데이터

  • Kor_hate

    • 혐오표현에 대한 데이터

    • 특정 개인 또는 집단에 대한 공격적 문장

    • 무례, 공격적이거나 비꼬는 문장

    • 부정적이지 않은 문장

  • Kor_sarcasm

    • 비꼬지 않은 표현의 문장

    • 비꼬는 표현의 문장

  • Kor_sae

    • 예/아니오로 답변 가능한 질문

    • 대안 선택을 묻는 질문

    • Wh-질문

    • 금지명령

    • 요구명령

    • 강한 요구 명령

  • Kor_3i4k

    • 단어 또는 문장조각

    • 평서문

    • 질문

    • 명령문

    • 수사적 질문

    • 수사적 명령문

    • 억양에 의존하는 의도

3. 단일 문장 분류 모델 학습

3.1. 모델 구조도

3.2. 학습과정

  • 주요 매개변수

    • Input_ids: sequence token 을 입력

    • attention_mask: [0, 1]로 구성된 마스크이며 패딩 토큰을 구분

    • token_type_ids: [0, 1]로 구성되있으며 입력의 첫 문장과 두번째 문장 구분

    • position_ids: 각 입력 시퀸스의 임베딩 인덱스

    • inputs_embeds: input_ids 대신 직접 임베딩 표현을 할당

    • labels: loss 계산을 위한 레이블

    • Next_sentence_label: 다음 문장 예측 loss 계산을 위한 레이블

전체적인 흐름

실습코드 Link

BERT Text Classification Using Pytorch
Sentiment Analysis with BERT
네이버 영화리뷰 감정분석
Sequence Classification using Pytorch Lightning with BERT
BERT Fine-Tuning Tutorial with PyTorch
KLUE
Logo(5강) BERT 기반 단일 문장 분류 모델 학습 - 0_단일문장분류 (1).ipynbGoogle Docs