Condibook 소개 - AI model 훈련 사용 데이터.(2)

HJ seo·2022년 7월 29일
0

project

목록 보기
2/2

첫 글 링크.

github md파일 링크.(초반 이후 commit이 잘못된건지 내용이 많이 빠져있음..)

설명.

해당 프로젝트에서 사용하기 위해 찾은 데이터셋은 매우 다양하나 데이터의 형태를 살펴보며 정말 다양한 이유로 걸려졌는데 기억나는 몇가지 이유를 떠올려보면

  1. 데이터를 읽기 위해 전처리하는 과정 중에 대화형 데이터가 들어갔으며 그 정확도가 높지 않은 경우(간단한 예시로 음성 인식 과정중에 이상한 명사가 들어가거나, 추임새등이 많은 경우 등.).
  2. (추측하기로)encoding 형식이 이상해서 어떻게 파일을 읽어도 매우 높은 빈도로 데이터가 깨져서 데이터를 전처리하는 과정에서 훈련에 사용하기에 좋지 않은 데이터가 나온 경우 등이 있었다.

결과적으로 사용하게 된 데이터셋은 크게 세가지 종류로 구분된다.

사용한 Data들

1. AI hub

홈페이지 update로 데이터 md파일에 있는 url로는 접근이 불가능해서 다시 url을 찾아 공유해놨습니다.

AI hub에 있는 데이터의 경우 초기에 찾은 것으로 대부분 정리가 깔끔해서 전처리하기에 아래 데이터셋들과 비교했을 때 그나마 용이한 편이었다. 문서 요약의 신문기사를 제외하고 파일의 크기가 크지 않은 점(이경우 2개로 쪼개서 전처리했다.)과, 데이터 형식이 title 및 description + a로 되어 있었기 때문에 트레이닝 후 검증을 해보는 과정에서도 꽤 유용하게 사용할 수 있었던 데이터셋이었다. 그러나 이름에서 알 수 있듯이 해당 데이터셋만으로 훈련을 시켰을 때는 keyword 추천모델에 편향성이 생길 가능성이 높을 것 같다는 생각이 들어 새로운 데이터셋을 찾게 되었다.

2. 국민청원 데이터

아마도 4번째?로 찾게 된(그전 데이터셋은 부적합으로 탈락..) 데이터셋. 이경우 데이터에 category와 title, description(링크의 데이터상에서는 content) 가 들어가있었기 때문에 역시 검증하는데 사용하기 좋을 것이라 예상했다. 그러나 전처리 과정중에 원인불명의 이유로 일부 데이터가 전처리가 되지 않았고, 3일정도 날려먹으면서 0.1%쯤 날려버리고, 99.9% 정도의 전처리한 데이터를 얻을 수 있었다. 하지만 위와 마찬가지로 특정 기간(즉, 특정 사건이 일어났던 당시(정치적 이야기가 껴있으므로 예시는 생략))에 상당한 양의 데이터가 편향성을 띠게 되는 경우가 있었고, 이것만으로 부족하다 판단해서 추가적인 데이터를 찾게 되었다.

3. wikipidia 한국어 데이터

마지막으로 받은 데이터셋이다.(이 데이터에 대한 전처리를 끝으로 더이상 시간이 없었다. 만약 시간이 더 있었으면 namuwiki data도 받았을텐데..)
위의 데이터들과 다르게 존재자체는 알고있었단 다뤄보는 것은 처음이었던 xml 파일 형식으로 이루어져 있었다. 또한 상당히 대용량이었던 탓에 VM을 2번쯤 리셋한 후(처음에는 한큐에 파일을 읽으려다가 down.. 두 번째는 데이터를 쪼갰으나 너무 크게 쪼갠 탓에 역시 부분을 읽으려다 down..)
아예 200개 정도로 파일을 쪼개서 분석을 하게 되었다.(전체 데이터셋의 크기가 약 2.1gb였기 때문에 쪼갠 파일 하나당 크기가 100mb였다.) 그러나 파일을 linux 명령어로 크기단위로 쪼개버렸기 때문에 전처리 역시 상당히 난해한 방식으로 할 수 밖에 없었다.(그 방식은 간단히 설명하자면 그저 각 문서의 제목과 내용을 한 배열에 넣은 후 명사를 추출하는 식으로 진행했다고 말할 수 있겠지만, 데이터의 형식이 query를 이용할 수 없는 line by line 형식의 HTML언어 + 유사 md언어가 섞여있는 식이라는 것을 상상하고 적용해보면 된다..)
2번 데이터와 마찬가지 이유 + JAVA의 메모리부족 현상 등 전처리과정중 여러 문제가 생겨서 이 역시 일부 데이터를 날려버리고 약 99.9%정도의 전처리한 데이터를 얻을 수 있었지만 자세한 검증을 할 시간이 없었어서 사전이라는 특수성에 테이터의 사용가능성을 참으로 둔 것이 꽤 큰 아쉬움으로 남은 케이스였다.


추후 쓰게 될 글에선..

(3)에서는 발표 이후에 어떤 방식으로 리펙토링을 하게 되었는지, 현재 AI모델의 한계와 모델을 개선할 때 어떤 고민이 있는지,

(4)에서는 프로젝트 결과물에 대한 소개를 해볼 예정이다.

profile
다양한 분야에 관심이 많은 초보 개발자 입니다.

0개의 댓글