인공지능 개발자 수다(유튜브 바로가기) 자세히보기

자연어처리/LLM을 위한 코딩

[LLM] 데이터 준비 with huggingface (datasets) (4)

Suda_777 2025. 2. 10. 02:22
반응형

1. LLM 학습을 위한 데이터 형식

모델에 따라 필요한 데이터의 형식은 달라질 수 있으나,

일반적인 모델은 텍스트만 있으면 된다. (특이 케이스 형태의 데이터는 다음에 업데이트 하겠다.)

 

그리고 아래와 같은 태그를 붙여준다. (안붙여줘도 학습은 된다고 한다.)

<s> : 문장의 시작

</s> : 문장의 끝

 

예를 들면 다음과 같다.

data = [
    {"text": "<s> 인공지능은 사람의 언어를 학습할 수 있습니다. </s>"},
    {"text": "<s> 사용자: 오늘 날씨 어때? </s>"}
]

 

만약 데이터를 직접 만들고 싶으면

위와 같이 만들면 되겠다.

 


2. datasets를 이용해 데이터 불러오기

datasets 는 huggingface에서 관리하는 데이터 셋을 불러오기 위한 라이브러리이다.

 

설치 명령어는 아래와 같다.

pip install datasets

 

다음으로 huggingface에 들어가서 필요한 데이터를 고른다

 

데이터를 골랐다면

Use this dataset 을 클릭해

데이터를 다운받는 코드를 복사한다.

 

코드 예시

  • load_dataset 에 데이터 이름을 넣어주면 된다.
from datasets import load_dataset

ds = load_dataset("ganchengguang/resume_seven_class")

 


3. 나의 데이터로 Datasets 만들기

3.1. 딕셔너리로 Datasets 만들기

  • 아래와 같은 형식으로 딕셔너리를 만든다. (딕셔너리로 만드는 방식이 가장 간단하다)
  • Dataset.from_dict() 메서드로 Dataset을 만들어 준다.
from datasets import Dataset

data_dict = {
    "text": [
        "첫 번째 문장입니다.",
        "두 번째 문장입니다.",
        "세 번째 문장입니다."
    ],
    "label": [0, 1, 0]
}

# 딕셔너리를 Dataset으로 변환
dataset = Dataset.from_dict(data_dict)

 


3.2. train, test, validation 데이터 만들기

Hugging Face datasets에서는

train_test_split() 함수를 사용할 수 있다

# train, test 분할
split_dataset = dataset.train_test_split(test_size=0.2)  # 80%: train, 20%: test
train_dataset = split_dataset['train']
test_dataset = split_dataset['test']

# 추가로 validation이 필요하다면
split_val = train_dataset.train_test_split(test_size=0.25)  # 예: train의 25%를 validation으로
train_dataset = split_val['train']
valid_dataset = split_val['test']

 

 

 

반응형