안녕하세요. 오늘은 세번째 시간으로.. 개발자 로컬PC 환경에서 개발환경을 구성하고,

지난번 이야기했던 skt/ko-gpt-trinity-1.2B-v0.5 모델을 대상으로 샘플 데이터를 생성해보겠습니다.

아래 두가지 모델 중에서 고민했는데... 어쨌거나 처음부터 완성도 있는 결과물을 기대한다면 처음부터 후자로 가는게 좋을 것 같습니다.

 

허깅페이스 한국어 학습 모델

skt/kogpt2-base-v2 약 125M 상대적으로 작음 GPT-2 구조 기반, 빠르고 가볍다. 테스트용으로 적합
skt/ko-gpt-trinity-1.2B-v0.5 약 12억 훨씬 큼 성능이 좋지만 무거움, 로컬 메모리/VRAM 부담 큼

 

어쨌거나 모처럼 노트북을 켜서 충전도 해주고, JetBrains 라이선스도 활성해주었어요.

라이선스 비용이 비싸므로 대학생/대학원생 분들께서는 학생용 라이선스를 꼭 이용하세요~

 

  • Python 3.8~3.10 권장 (최신버전이 3.13.x인데 이거로하면 동작안합니다. 저는 3.10으로 했어요)
  • PyCharm Community Edition 또는 Professional 설치
  • 가상환경(Venv) 사용 권장

 

개인적으로 VSCode도 좋아하지만, 보통 회사에서는 젯브레인 제품을 지원해주니 사용해보는걸 추천드립니다. IDE가 정말 똑똑하거든요. 개발 퍼포먼스가 몇배는 올라가는 것이 체감 됩니다.

 

간단한 샘플용 프로젝트를 생성해줍니다. 그리고 아래와 같이 커맨드를 입력해서 학습 모델을 받아주세요.

> pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
> pip install transformers accelerate sentencepiece

 

그다음 간단히 코드를 작성해봅시다.

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

try:
    model_name = "skt/ko-gpt-trinity-1.2B-v0.5"
    print("모델 로딩 중...")
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    model = AutoModelForCausalLM.from_pretrained(model_name)

    tokenizer.pad_token = tokenizer.eos_token
    model.config.pad_token_id = tokenizer.pad_token_id

    # GPU 사용 설정 (가능할 경우)
    device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    model.to(device)

    text_to_summarize = "오늘 회의에서는 AI 스터디 그룹의 주제를 정하고, 각자 역할을 분담했다. 다음 주까지 개인 공부를 마치고 실습에 들어갈 예정이다..."
    prompt = f"다음 글을 간단하게 요약해줘:\n{text_to_summarize}\n요약:"

    inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True).to(device)
    input_ids = inputs["input_ids"]
    attention_mask = inputs["attention_mask"]

    print("생성 시작")
    gen_ids = model.generate(
        input_ids=input_ids,
        attention_mask=attention_mask,
        max_length=128,
        do_sample=False,
        num_beams=1
    )

    output = tokenizer.decode(gen_ids[0], skip_special_tokens=True)
    print("생성 완료:", output)

except Exception as e:
    print("❌ 오류 발생:", e)

 

제가 인풋으로 사용한 텍스트는 다음과 같습니다.

그.. 결과물은...?

 

아...ㅠㅠ..............................

학습된 모델을 기반으로 AI가 나름대로 열심히 노력해서 요약은 해주었으나 실망스러운 결과입니다..

.

.

.

한글 학습 모델들은 아직 많이 부족하다고는 알고 있었으나 충분히 여기에서 더 개선은 할 수 있을 것 같다는 생각이 드네요.

프롬프트를 적절히 사용하지 못한 것일수도 있고 어쩌면 다른 모델로 교체를 고려해야 할 수도 있겠습니다.

해당 부분은 좀 더 연구를 진행해보도록 하겠습니다!

 

추가적으로

그동안의 개발을 하는데 있어서는 전혀 무리가 없는 노트북이었는데...

이 코드를 실행하고 결과물을 산출해내는데까지 꽤나 몇분 가량이 소요가 되더라고요. (괜히 엔비디아 주가가 오르는게 아님)

 

오늘은 여기서 마치겠습니다.

 

 

 

 

 

 

+ Recent posts