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

자연어처리/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']

     

     

     

    반응형