데이터 제작 기초

DONGJIN IM·2022년 7월 6일

데이터 제작 이론

목록 보기
1/6
post-thumbnail

데이터 제작

데이터를 볼 때 중요한 과정

이미 존재하던 데이터를 뜯어보고 이를 분석해보자.
EDA를 통해 다른 잘 정제된 데이터가 어떤 형식으로 되어 있는지 확인할 수 있다면, 다른 데이터 또한 조금 더 잘 다룰 수 있게 될 것이다.

데이터 구축 과정

(1) 원시 데이터 선정 및 확보

  • 내가 원하는 서비스에 활용할 수 있는 데이터 저작권을 가지고 있는지 확인해야 함
  • 풀고자하는 과제에 얼마나 적합한 데이터인지 확인해야 함

(2) 구축 및 가공 프로세스 확립

  • 원시 데이터를 "어떻게" 내가 원하는 데이터로 변환시킬지 과정을 결정하는 것
  • (예) 전문가가 Labeling 할 것인가 혹은 많은 사람들에게 Labeling을 맡길 것인가

(3) 구축 및 가공 지침 작성

  • 데이터를 어떻게 제작할 것인지 정해진 룰을 지침서로 만들고, 플랫폼을 통해 소통하며 작업자가 지침서를 활용해 데이터 Labeling을 수행할 수 있도록 만드는 과정이다

(4) 데이터 구축 및 가공

  • Pilot
    • 의미 : 내가 정해 둔 데이터 가공 지침을 활용하여 직접 데이터 Labeling을 수행하는 것
    • Pilot 과정을 거치다보면 많은 지침 변경사항들이 발생한다. 내가 지정했던 룰이 애매하거나, 내가 지정했던 룰이 잘못되었거나, 오역이 가능한 해석으로 룰을 정했을 수도 있다. 이런 부분들을 Pilot 과정에서 걸러내며, 다시 3번 과정으로 돌아가 구축 및 가공 지침을 변경하는 과정이 필수적으로 필요한 것이다.
  • 작업자 관리
    • 2번에서 정한 구축 및 가공 프로세스를 수행하는 주체들을 관리하는 역할
    • 작업자들이 룰에 따라 제대로 작업을 수행하고 있는지 확인하는 작업이다.

(5) 데이터 검수

  • 품질 평가 기준을 마련해 두어 제작한 데이터의 Quality를 확인
  • 데이터의 규격이나 내용을 확인하여 데이터 품질을 검수하는 과정

AI 데이터 설계의 구성 요소

데이터 설계

  • 데이터 자체를 설계하는 것

  • 데이터 자체의 형식이 무엇인가?

  • 데이터가 어떤 것을 나타내야 하는가?

    • (ex) Relation Extraction Task를 진행할 때, 데이터는 "문장" 및 2개의 단어 형식이며, 해당 데이터는 2개 단어에 대한 "속성" 및 2 단어 사이의 관계를 나타내야 하는 데이터로 만들어야 한다.

데이터 수집-가공 설계

  • 데이터 구축 과정에 대한 큰 그림을 그리는 과정

  • 원천 데이터(Corpus) 수집 방식

    • 전산화, 스크래핑, 작업자 작성, 모델 생성 등
    • 원하는 데이터를 "어디서", "어떻게" 얻어야 할지 결정
  • 주석 작업

    • 전문가 구축, 크라우드 소싱
    • Labeling을 하는 방법에 대해 설계

데이터 설계

데이터 유형

  • 소리

    • 신호처리, 음성인식 등
  • 텍스트

    • 자연어 처리
  • 이미지

    • CV(컴퓨터 비전)
  • 영상

    • 영상처리
  • 물론, 데이터 유형에 꼭 1개의 데이터만 나오는 것이 아니며, 멀티모달처럼 여러 개의 데이터가 혼합되어 있는 경우도 존재한다. 예를 들어 유튜브 영상 같은 경우 영상 + 음성으로 이루어진 데이터가 되는 것이다

Input/Output 형식

  • "데이터를 받아오는 형식"은 무엇이고, 데이터를 받아와서 "어떤 데이터로 변형하여" 데이터를 처리할지 결정해야 함

  • Input/Output 형식

    • HTML, XML, png, txt 등

데이터별 규모와 구분 방식

  • 학습(Train), 검증(Validation), 평가(Test) 데이터로 많이 구분

  • 데이터 구분 방식

    • Random
    • 특정 조건
    • 데이터를 어떻게 쪼갤 것인지를 결정하는 것이다. 예를 들어 ODQA 같은 경우 Labeling이 존재하지 않으므로 Random하게 Split해도 문제가 없을 것이다. 하지만, 관계 추출 Task 같은 경우에는 Labeling이 존재하므로 최대한 데이터의 Labeling 비율에 맡게 분할해주는 것이 학습 및 평가에 더 긍정적인 영향을 끼칠 것이라고 이해할 수 있다. 또한, "데이터의 학습 난이도"라는 조건에 따라 데이터를 쪼갤 수도 있을 것이다(Curriculum Learning)
  • 데이터 규모

    • 확보 가능한 Corpus의 규모 및 주석에 대한 작업 시간을 활용해 비율을 결정할 수 있다.
    • 주로 Train:Validation:Test를 8:1:1, 혹은 4:3:3 정도로 나누는 편이다.

데이터 주석 유형

아래는 자연어 처리에 대한 주석 유형만 설명한 것이다.

  • 클래스 라벨(단일, 다중)

    • Text Classification에서 활용하는 주석
    • 감성 분석이나 주제 파악 등에 활용된다.
    • (ex) 해당 문장이 긍정적인지 부정적인지 판단하는 Label
  • 단어(구문) 라벨

    • 명명된 개체명(Entitty) 인식
    • Named Entity Recognition(NER)에서 활용된다.
    • (ex) 문장에서 호출되는 사람 및 동물을 골라낼 때 활용하는 Label
  • 텍스트 라벨

    • 문장 번역 및 요약에서 활용됨
    • 데이터 생성 쪽에서 많이 활용되는 Labeling
  • 단어(구문) 라벨링 및 두 단어 사이의 관계

    • Relation-Extraction에서 활용됨
    • 단어 자체에 대한 라벨링과 더불어 결정된 두 단어 사이의 관계까지 Labeling

데이터 수집-가공 설계

원시 데이터 수집 방식

  • 전산화

    • Corpus 데이터를 활용하여 내가 직접 데이터로 만드는 방식
  • 스크래핑

    • 웹에 있는 데이터를 크롤링을 통해 가져오는 것
  • 작업자 작성

    • 대화 등의 데이터가 필요할 때 작업자들에게 직접 대화를 하게 하여 데이터를 만드는 방식
  • 모델 생성

    • 모델이 자동으로 생성한 문장을 데이터로 활용
  • 내가 하고 있는 Task에 가장 적합한 데이터가 무엇인지 기준을 세우고, 이 기준에 최대한 적합한 데이터 수집 방식을 선택해야 한다.

작업자 선정

  • 주석 작업 난이도 및 구축 규모에 맞게 작업자를 선정해야 한다.
    • 전문가 : 데이터의 품질이 높아야 하며 난이도가 어려울 때 활용
    • 크라우드 소싱 : 데이터가 많고, 단순하며 직관적인 데이터에 대하여 Labeling을 수행해야 할 때 활용

구축 및 검수 설계

  • 구축 규모, Task 특성에 맞는 구축 및 검수 방식을 설계

  • 주로 Pilot 과정을 통해 데이터 규칙을 확인해보고, 이후에 본 구축 단계로 넘어가서 데이터 전체에 대한 Lableing 과정 수행

    • Pilot : 적게는 100개, 많게는 1000-2000개 정도로 수행함
  • 검수 방식

    • 전문가가 직접 검사
    • IAA를 통해 계산
  • Pilot에서 수행되어야 할 것

    • 설계 시 발견하지 못한 이슈 확인 및 해결
      • (ex) 모호한 Labeling 기준, 잘못된 Labeling 기준 등
    • 가이드라인 보완 및 개정
    • 작업자 선정
  • 본 구축에서 수행되어야 할 것

    • 작업 일정 관리
    • 작업자 관리
    • 중간 검수를 통햏 데이터 품질 관리

데이터 검수 및 분석

  • 전문가 평가 및 분석

    • Sampling 검사
    • 가이드라인 적합도 분석
    • 전문가 : 데이터 가이드라인을 작성한 사람 or 데이터 평가자
  • 자동 평가 및 분석

    • Label 분포 파악
    • 데이터 형식
    • 가이드라인 오류로 인한 에러를 일괄적으로 수정할 수 있는 프로세스 수행
      • 기계적인 방법(알고리즘)을 활용하여 손쉽게 해결 가능

자연어 처리 데이터

자연어란?

  • 일상적으로 활용하고 있는 언어

  • 인공어 : 여러 사람의 목적이나 의도에 따라 만들어진 언어

    • (ex) 컴퓨터 언어(Python, JAVA 등)

자연어 처리

  • 사람의 언어를 컴퓨터가 알아듣도록 처리하는 Interface 역할

  • NLU : 자연어 이해

    • 형태 분석, 구문 분석, 유사도 평가 등
  • NLG : 자연어 생성

    • Translation, 요약 등
  • 혼합 : Chatbot 등

    • NLU를 통해 타자의 말을 이해하고, 이 말에 적절한 대화를 생성해내는 작업
  • 자연어 처리의 최종 목표

    • 컴퓨터가 사람의 언어를 이해하고 여러 가지 Task를 수행할 수 있도록 하는 것
  • Corpus의 데이터 장르

    • 문어체

      • 뉴스, 도서 등
    • 구어체

      • 대화 등
    • 웹

      • 메신저 대화, 게시판 등
profile
개념부터 확실히!

0개의 댓글