ML/AI/SW Developer

데이터 제작의 A to Z

0. 강의 소개

  • 데이터 구축 프로세스와 설계의 기초 개념에 대해 설명합니다.
    • 데이터 구축이 전체 인공지능 서비스 개발에서 차지하는 역할에 대해 알아봅니다.
    • 데이터 유형, 데이터 입출력 형식, 데이터 구분 방식에 대해 배웁니다.
  • 자연어처리 데이터의 특징 및 종류에 대해 설명합니다.

1. 인공지능 서비스 개발 과정과 데이터

1.1 개발 과정

  • 문제(서비스 기획)을 정의하고, 이와 관련된 데이를 수집 정제를 한다. 이 과정에서 발생한 데이터들을 학습과 검증, 개발에 사용하며 이 프로세스를 반복한다.
  • AI 프로젝트에 소요되는 시간 비율
    • 실제적으로 모델을 개발하는 시간보다 데이터를 개발하는 시간이 더 많이 차지한다.

1.2 데이터 구축 과정

  • 원시 데이터 선정 및 확보
    • 저작권이 미치는 범위, 어떤 라이센스를 가지고 있는지?
    • 내가 풀고자 하는 Task에 얼마나 부합하는가?
    • 먼저 기존 데이터들이 어떻게 만들어지고, 어떤 부분을 신경 썻는지 확인하고 습득하자!
  • 구축 및 가공 프로세스 확립
    • 누구에게 얼마나 맡겨 제작을 할지? 작업자 선정 등
    • 어떻게 배포할지?
  • 구축 및 가공 지침 작성
    • 어떤 플랫폼을 기반으로 제작을 할 것인지?
    • 작업자에게 플랫폼 활용법을 교육
  • 데이터 구축 및 가공
    • 실제 데이터 제작
    • 문제가 있으면 앞단계로 돌아가 계획 수정
  • 데이터 검수
    • 품질 평가 기준에 따라 데이터 검수
    • 데이터의 품질을 정하는 단계

1.3 AI 데이터 설계의 구성 요소

  • 데이터 설계
    • 데이터의 형식
    • 데이터 표상 영역
  • 데이터 수집-가공 설계
    • 원천 데이터 수집 방식: 전산화, 스크래핑, 작업자 선정, 모델 생성
    • 주석 작업: 전문가 구축, 크라우드 소싱

2. 데이터 설계

2.1 데이터의 유형

  • 크게 4가지로 구분 가능

2.2 데이터의 IN/OUT 형식

  • HTML, XML, CSV, TSV, TXT, JSON, JSONL, JPG, …
  • 설계 당시 어떤 형식을 사용하는 것이 효율적인지 고민하고 정하는 과정이 필요

2.3 데이터(train/dev/test)별 규모와 구분 방식

  • 규모 선정에 필요한 정보: 확보 가능한 원시데이어의 규모, 주석 작업 시간
  • 구분 방식: 데이터별 비율과 기준 정하기
    • 랜덤 VS 특정 조건
    • E.g. 레이블 별로 분포가 일정하지 않을 수 있음. 적은 분포의 데이터를 어떤 비율로 반영할 지 잘 설계해야함

2.4 데이터의 주석 유형

  • 자연어 처리의 주석 유형

3. 데이터 수집-가공 설계

3.1 원시 데이터 선정

  • 전산화, 스크래핑, 작업자 작성, 모델 생성
    • 어떤 데이터가 적합한지 정의 필요

3.2 작업자 선정

  • 주석 작업의 난이도와 구축 규모에 맞는 작업자 선정 및 작업 관리
    • 전문가: 난이도가 좀 높은 것
    • 크라우드 소싱: 간단하고 직관적인 간단한 것

3.3 구축 및 검수 방법 설계 및 가이드라인 작성

  • 파일럿으로 구축을 한번 해보고, 본 구축을 시도
    • 보통 최소량이 만개
    • 약 10%로 파일럿으로 작업해보는 것을 추천
    • 파일럿
      • 설계시 발견하지 못했던 이슈 발굴, 해결
      • 가이드라인 보완 및 개정
      • 작업자 선정
    • 본구축
      • 작업 일정 관리
      • 작업자 관리
      • 중간 검수를 통한 데이터 품질 관리
  • 구축 작업의 난이도와 구축 규모, 태스크 특성에 맞는 구축 및 검수 방식(전문가, IAA) 설계
    • 전문가 평가 및 분석
      • 샘플링 검사
      • 가이드라인 적합도 분석
    • 자동 평가 및 분석
      • 데이터 형식
      • 레이블별 분포 파악
      • 일괄 수정 사항 반영

4. 자연어 처리 데이터

4.1 자연어란?

  • 인공어: 원래 없는 언어인데 사람들이 인위적으로 만든 언어
  • 자연어 처리란?
    • 인공지능의 한분야로, 사람의 언어를 컴퓨터가 알아 들을 수 있도록 처리해주는 인터페이스
    • 최종 목표: 컴퓨터가 사람의 언어를 이해하고 여러가지 문제를 수행할 수 있는 것

4.2 자연어처리와 관련 연구 분야

  • Computer Science
  • Linguistics

5. Further Questions

  • 자연어 데이터와 다른 데이터를 구분짓는 특징은 무엇일까요?
    • Sequence 형태를 가진다.
    • 동일한 단어가 어떤 위치에 나오냐에 따라 의미가 달라질 수 있다.
    • 유사하게, 동일한 단어이지만 다른 뜻을 가질 수 있다. (다의어, 발음으로 구분)
  • 한국어 데이터의 제작 단계에서 어려운 점은 무엇이 있을까요?
    • 문법에 맞지 않는 데이터를 어떻게 처리할지
    • 계속해서 새롭게 발생하는 신조어, 등을 꾸준히 업데이트 하는 방법

Reference

  • AI boot camp 2기 데이터 제작 강의