본문 바로가기
AI/LLM

대용량 한국어 데이터셋 : Markr AI - KoCommercial Dataset

by didi0di 2024. 4. 3.
728x90

개요

 

지난달  Markr AI에서 140만개의 한국어 Fine tuning 데이터셋을 모으고 만들어서 배포했습니다. 

 

 

LLM을 파인튜닝 하려면 데이터셋 확보가 8할, 아니 9할이라고 해도 과언이 아닌데요.

한국 LLM 생태계의 경우, 고품질의 Fine-tuning 데이터셋이 매우 부족합니다.

 

영어 데이터셋을 DeepL이나 GPT를 이용해서 번역&재생성해도 퀄리티 저하와 라이센스 이슈가 있구요ㅠㅠ

 

GPT4나 Gemini를 통해 데이터를 생성하여 활용할 수 있지만, 현재 각 라이센스에서 각 모델을 통해 생성된 데이터를 경쟁하는 모델 학습에 사용하는건 현재 라이센스 위반으로 나와 있습니다.

참고 - OpenAI의 라이센스

 

Terms of use

OUR SERVICES ARE PROVIDED “AS IS.” EXCEPT TO THE EXTENT PROHIBITED BY LAW, WE AND OUR AFFILIATES AND LICENSORS MAKE NO WARRANTIES (EXPRESS, IMPLIED, STATUTORY OR OTHERWISE) WITH RESPECT TO THE SERVICES, AND DISCLAIM ALL WARRANTIES INCLUDING, BUT NOT LI

openai.com

 

한국 LLM 생태계의 발전을 위해 이렇게 대용량의 고품질 한국어 데이터셋을 오픈소스로 공개해주시다니

정말 감사할 따름입니다 :)

 

 

Self-Supervised Learning(SSL) 매너로 다양한 도메인의 코퍼스에서 task를 만들어

모델에 도메인 지식과 한국어에 대한 이해를 향상시킬 수 있는 방법론을 적용하여 개발했다고 합니다!

 

 

데이터셋은 허깅페이스에 올라와있으며, 173k 정도는 허깅페이스에서 바로 다운로드 받아서 사용할 수 있습니다. 

 

 

https://huggingface.co/datasets/MarkrAI/KoCommercial-Dataset

 

MarkrAI/KoCommercial-Dataset · Datasets at Hugging Face

팔면체는 회전으로 구분할 수 없으므로 일반성을 잃지 않고 면을 빨간색으로 고정합니다. [asy] size(8cm); defaultpen(0.5); import three; import math; currentprojection=orthographic(2,0.2,1); triple A=(0,0,1); triple B=(sqrt(2

huggingface.co

 

 

 

다만 기존 허깅페이스 라이브러리에는 저작권 논의가 이루어지고 있어

SSL 방법론을 적용하지 않는 데이터셋을

AI-Hub의 말뭉치를 활용하여 데이터셋을 생성하는 방법론을 공유해 주셨습니다.

 

따라서 AI Hub 데이터는 깃헙 레포에 있는 코드로 직접 제작해서 사용하면 됩니다. 룰루!

 

https://github.com/DopeorNope-Lee/Ko-Fine-tuning_DataGen

 

GitHub - DopeorNope-Lee/Ko-Fine-tuning_DataGen

Contribute to DopeorNope-Lee/Ko-Fine-tuning_DataGen development by creating an account on GitHub.

github.com

 

데이터셋 구성

 

특히 반가운건, Multi Question 데이터셋이 포함되어 있다는 점이죠!

 

요새 하도 여기저기 RAG를 붙인 LLM 기반의 QA 챗봇 시스템에 대한 니즈가 많아서,

QA 파인튜닝 할 일이 정말 많은데

양질의 데이터셋, 특히 Multi-Question 데이터셋이 별로 없어서 학습에 어려움이 많거든요 흑흑

 

 

데이터셋은 구성 방식은 다음 6가지로 되어 있습니다.

 

1. Multi question

  • 위 데이터는, 주어지는 다양한 질문을 모델이 이해하고, 각 질문에 대해서 모델이 답하는 것을 목적으로 구성한 데이터 입니다.
  • 연속적인 질문에 대답하는 것은 매우 까다로운 task이며, 이를 고려하여 향후 RAG와 같은 시스템 내에서에서도 멀티턴 태스크에 대응 할 수 있도록 생성하였습니다.
<Instruction>
주어진 정보를 기반으로 질문에 답하세요. 답을 모른다면 답을 지어내지 말고 그냥 모른다고 말하세요.

1839년 바그너는 괴테의 파우스트을 처음 읽고 그 내용에 마음이...

질문:
1. 바그너는 괴테의 파우스트를 읽고 무엇을 쓰고자 했는가?
2. 바그너는 교향곡 작곡을 어디까지 쓴 뒤에 중단했는가?
3. 바그너가 파우스트 서곡을 쓸 때 어떤 곡의 영향을 받았는가?
4. 1839년 바그너가 교향곡의 소재로 쓰려고 했던 책은?
5. 파우스트 서곡의 라단조 조성이 영향을 받은 베토벤의 곡은?
6. 바그너가 파우스트를 처음으로 읽은 년도는?
7. 바그너가 처음 교향곡 작곡을 한 장소는?
8. 바그너의 1악장의 초연은 어디서 연주되었는가?

<Answer>
1. 교향곡
2. 1악장
3. 베토벤의 교향곡 9번
4. 파우스트
5. 합창교향곡
6. 1839
7. 파리
8. 드레스덴

 

 

2. Summary & Instruction-Answer

  • 위 데이터는, 주어진 문장을 통해 적절한 제목을 생성하고, 내용을 요약하기 위한 데이터 입니다.
  • 모델이 주어진 정보 기반에서 맥락을 이해하고, 요청에 적절한 답을 수행하기 위한 목적에서 고안된 데이터 구성 방식입니다.
<Instruction>
주어진 문장에 적절한 제목을 생성하고, 내용을 요약해주세요.

문장: 원고가 소속회사의 노동조합에서 분규가 발생하자 노조활동을 구실로 정상적인 근무를 해태하고, ...

<Answer>
제목: 부당노동행위구제재심판정취소
원고가  주동하여 회사업무능률을 저해하고 회사업무상의 지휘명령에 위반하였다면 이에 따른 징계해고는 사내질서를 유지하기 위한 사용자 고유의 정당한 징계권의 행사로 보아야 한다.

 

 

3. Original sentence inference

 

  • 위 데이터는, 주어진 요약물을 기반으로, 원본 문장을 생성하기 위해 고안된 데이터입니다.
  • 모델이 적절한 추론능력을 향상하게 하기 위해 고안한 데이터 입니다.
<Instruction>
주어진 제목과 요약문에 대한 정보를 토대로, 요약되기 전 문장을 유추해서 생성해주세요.

제목: 수산물 수급 위기관리체계 구축을 위한 기초연구
요약문: 현대 사회에서 발생하는 다양하고...

<Answer>
지금의 국가가 직면하는 위기는 전통사회의 그것과 위기의 규모뿐만아니라...

 

4. Sentence order inference

  • 위 데이터는, 주어진 문장 혹은 단어들을 활용하여 적절한 문장 생성을 위한 데이터 입니다.
  • 모델이 주어진 문장 혹은 단어를 통해, 적절한 문장을 생성하여 모델의 생성 능력을 향상시키기 위한 데이터셋 입니다.
<Instruction>
임의의 순서로 나열된 문장들이 주어집니다. 주어진 문장들을 이용해 원본의 배열을 유추하고, 그 내용을 재구성하세요.

임의의 순서로 나열된 문장: ['나는', '천재다', '그러나', '바보다', '동시에']

<Answer>
나는 천재다. 그러나 동시에 바보다.

 

 

5. Last sentence prediction

 

  • 위 데이터는, 주어진 문단의 마지막 문장을 생성하기 위한 목적을 가진 데이터 입니다.
  • 모델의 문맥 이해력 향상과, 적절한 생성능력을 향상시키기 위해 고안한 데이터입니다.
<Instruction>
주어진 문장 뒤에 자연스럽게 이어질 문장을 생성해주세요.

문장: ...최근에 방문한 조선예술영화촬영소 에 있는 ‘문화성혁명사적관’(김정일관)에는 1960년대 중반부터 2000년대까지 40년 동안 김정일의 문화예술 부문 지도가 11,890건이며, 그 중 문화예술기관을 직접 방문하여 지도한 이른바 ‘현지지도’가 1,770건이라는 안내판이 있었다.

<Answer>
북한 연극이 김정일과 주체사상이라는 키워드를 떠나 존재할 수 없다는 것을 단적으로 말해 준다

 

 

6. Mask Prediction

 

  • LLM 은 Transformer의 Decoder만을 활용하여 구성된 Auto-regressive 언어 생성 모델입니다.
  • Transformer Decoder에만 존재하는 Masked-Multi Head Attetntion 블록은, 모델이 미래의 정보를 참조하지 않고, 과거와 현재 state만을 활용하여 토큰을 생성하게 하는데, 이는 구조적으로 현재 LLM의 사전학습 방식인 CLM 방식을 적용하는 이유입니다.
  • 다만, 기존 Transforemer의 Encoder만을 활용한 BERT는 Bidirectional 하게 학습을 진행하기에, MLM 방식으로 사전학습을 진행해 언어의 문맥을 이해할 수 있도록 설계되었습니다.
  • 이러한 매커니즘에 인사이트를 얻어, 문장에 랜덤한 단어를 masking하고, 마스킹 단어를 예측하게 하여 모델에게 문맥의 이해와 추론 능력을 키우고자 하는 목적성에서 생성된 데이터입니다.
<Instruction>
<Instruction>
주어진 문장에서 <MASK>에 들어갈 적절한 단어를 생성해주세요.

독도는 <MASK> 이다.

<Answer>
우리땅

 

 

데이터셋 제작 방법

 

우선 깃헙 repo에 올라와있는, Commercial-Dataset.ipynb 실행 시킨후 fine-tuning dataset일부와 Corpus정제를 수행합니다.

 

이후일반상식문장생성데이터.ipynb 논문자료요약.ipynb 실행하시면 됩니다.

 

 

 

대용량 한국어 데이터셋도 확보했으니,

이제 얼마전 올라온 Mistral-7B-v0.2 Base 모델의 한국어 파생 모델이 나오는건 시간 문제겠죠?ㅎ

 

[LLM] Mistral 7B v0.2 Base Model 공개

Mistral 7B v0.2 Base Model이 공개되었다고 합니다. https://twitter.com/marvinvonhagen/status/1771609042542039421 X의 Marvin von Hagen님(@marvinvonhagen) Mistral just announced at @SHACK15sf that they will release a new model today: Mistral 7B v0

didi-universe.tistory.com

 

 

728x90

댓글