반응형

💬 자연어처리(NLP) 모델 만들기


💎 배경

  • 요즘 ChatGPT가 대세다. 석사 과정때는 이미지 처리 중심으로 연구를 진행했어서, 자연어처리에 관련해서 공부를 해보고 싶다는 생각이 들어 자연어처리의 초기 모델부터 현재 ChatGPT까지 흐름을 직접 코드를 짜보면서 이해해보고자 한다.

데이터셋 준비

  • 기본적으로 딥러닝 모델을 만들때, 가장 중요한 것은 “어떤 데이터를 처리하고자 하는가?”이다. 이왕 공부하는 김에 재밌는 데이터를 처리하고 싶어서, 자연어 처리에 필요한 데이터를 뒤져보았다.
  • 내가 선택한 데이터는 한국지능정보사회진흥원에서 운영하는 “AI Hub”에서 다운로드 받을 수 있는 “_텍스트 윤리검증 데이터_”이다. (내국인은 로그인 후, 다운 받을 수 있다)

  • 해당 데이터는 인터넷 상에서 윤리적인 데이터와 비윤리적인 데이터를 구분하기 위해 구축된 데이터로 451,110 문장을 대상으로 하였다고한다.
  • 구축 및 갱신 년도가 나름 최근이여서, 데이터셋을 확인해보았을때, 현재 인터넷에서 난무하는 밈들이나 악플들을 담고 있다. (심신이 약하면 데이터셋을 직접 눈으로 확인안하는 것을 추천한다... 정말 나쁜 글들이 많다.)
  • 해당 데이터를 선택한 이유는 다음과 같다.

① 데이터 및 만들고자 하는 모델이 흥미롭다. (실제로 필요하다고 생각이 들기도하고, 최신 데이터라 그런지 고전 데이터셋 특유의 정적인 맛이 덜해서 좋았다.)
② 데이터가 무겁지 않다.
③ 풀고자 하는 문제가 명확하다. (윤리 VS 비윤리)
④ 참과 거짓 간의 기준이 모호하다
→ 윤리와 비윤리의 정의는 사람마다 기준이 다르기 때문에 그 경계선이 모호하다. 예를들어, "이거 진짜 골때린다"라는 문장이 있을때, 이 문장은 윤리적일까 비윤리적일까? 이렇게 Class간 모호한 기준이 있는 데이터들은 오히려 학습 모델과 학습 방법에 따른 효과를 더 드라마틱하게 확인 가능하고, 추후 개선 아이디어도 만들기 좋다.

 

  • 데이터셋 설치 방법은 다음과 같다.

1. Raw 데이터를 다운 받는다. 

Raw 데이터 다운로드

 

2. 아래로 내려서, 데이터에 대한 전체적인 소개를 읽어본 후, 아래의 AI 샘플코드를 받는다.

(윤리 검증 이진 분류 학습용으로 전처리된 데이터를 포함)

전처리된 데이터 다운로드

 

데이터에 대한 상세한 설명은 다음 장에 진행하도록한다...

 

개발 환경 셋팅

  • Anaconda 환경에서 가상환경을 신규로 구축한 뒤, pypi를 이용하여 몇개의 라이브러리를 설치해준다.
pip install torch   
pip install torchtext==0.6.0
pip install konlpy
pip install pandas
  • torch : 딥러닝 도구 pytorch (CUDA 환경인 경우 홈페이지 설치 추천합니다)
  • torchtext : 자연어처리 분야에서 torch 활용을 쉽게 할 수 있도록 만들어진 라이브러리, 추후 데이터 loader 작성 시 쉽게 활용하기 위해 설치함. torchtext는 버전 0.6.0을 추천함. (이유는 추후에 별도로 설명할 계획)
  • konlpy : 한국어 정보처리를 위한 파이썬 라이브러리, 추후 한국어 형태소 분석에 필요한 모듈들을 사용할 계획임.
  • pandas : 데이터를 분석 조작하기 위해, 쉽게 만들어진 파이썬 라이브러리, 데이터 전처리 과정을 용이하게 진행하기 위해 활용할 계획임.

데이터와 개발 환경 셋팅이 모두 마무리되었다면, 다음 장에서 데이터 전처리를 해보자!

+ Recent posts