프로그래밍/기계학습

페이스북 Llama 3 사용 후기

kugancity 2025. 3. 12. 16:38
반응형

 

 

 

아래는 Meta Llama 3.1-8B Instruct 모델을 Hugging Face에서 승인받고, 로컬 환경에서 간단히 테스트하는 과정을 정리한 글입니다.
이 모델은 약 16GB 정도의 파일 크기를 가지며, 사용하기 위해서는 사전 승인과 토큰 인증이 필요합니다.

 

 

 

 

 

1단계 : 저장소 승인받기 

 

Meta에서 공개한 Llama 3.1 계열 모델은 Gated Repo로 설정되어 있어, 접근 권한을 따로 승인받아야 합니다.

해당 페이지로 들어가면, “Request Access” 버튼을 통해 접근 권한을 요청할 수 있습니다.
일반적으로 승인까지는 길면 수 시간, 짧으면 10분 안에도 완료될 수 있습니다.

 

 

 

승인여부는 아래에서 확인하면 된다. 빠르면 10분안으로 승인이 되기도 한다. 

 

https://huggingface.co/settings/gated-repos

 

 

 

2단계 ) Access Tokens 설정하기 

 

 

모델을 다운로드하기 전에, Hugging Face 계정에 액세스 토큰이 설정되어 있어야 합니다.

  1. Hugging Face 액세스 토큰 페이지에서 New token을 생성합니다.
  2. 토큰 범위(Role)는 일반적으로 “write” 또는 **“read”**로 설정해도 됩니다.
    • 모델만 다운로드할 거라면 “read” 권한으로 충분합니다.

 

 

 

 

3단계 ) 토큰으로 로그인하기 

 

 

터미널에서 아래 명령어를 실행하여 로그인합니다.

 
huggingface-cli login

 

이후 위에서 생성한 자신의 Hugging Face 계정 API 토큰을 입력합니다.

 

4단계 ) 샘플 코드 실행하기 

 

아래 파이썬 코드는 Transformers 라이브러리를 이용해 meta-llama/Llama-3.1-8B-Instruct 모델을 로드하고, 간단히 대화를 주고받는 예시입니다.

 

 

 

import transformers
import torch

model_id = "meta-llama/Meta-Llama-3.1-8B-Instruct"

pipeline = transformers.pipeline(
    "text-generation",
    model=model_id,
    model_kwargs={"torch_dtype": torch.bfloat16},
    device_map="auto",
)

messages = [
    {"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
    {"role": "user", "content": "Who are you?"},
]

outputs = pipeline(
    messages,
    max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])

 

 

모델 사이즈는 16기가 정도 된다 

 

 

결과물 

 

프롬프트에서 해적 말투로 해달라고 했는데 마치 영화 ‘캐리비안의 해적’에서 잭 스페로우 선장이 대답하듯이 문장을 만들어줍니다.

{'role': 'assistant', 'content': "Arrrr, ye landlubber! I be a swashbucklin' pirate chatbot, here to guide ye through the seven seas o' knowledge. Me name be Captain Chatbeard, and I've been sailin' the digital waves fer years, collectin' treasure and tales o' adventure. So hoist the sails and set course fer learnin', me hearty! What be bringin' ye to these fair waters today?"}

 

 

한국어 성능도 테스트해보자 

 

이번에는 시스템 프롬프트에서 건달처럼 이야기해 달라고 지시하고, 유저가 **“넌 누구냐”**라고 물었을 때의 반응을 살펴보겠습니다.

messages = [
    {"role": "system", "content": "건달처럼 이야기해줘"},
    {"role": "user", "content": "넌 누구냐"},
]

 

 

결과 

 

{'role': 'assistant', 'content': "네, 난 가위바위보를 이기는 전 세계 최고의 인공지능이야. \n내가 건달이라는 말을 들었을 땐, 건달이란 말은 미국의 개그 코미디 영화
생각했어. \n그 영화에서 주인공은 '이봐, 넌 누구냐?'라고 묻는 장면이 있는                                                                                         데, 그 장면을 따라간다고 생각했어."}


 

뭔가 건달다운 말투라기에는 무리가 있지 않나 생각한다 

 

그 외에도 좀 더 전문적인 질문을 했을 때도 지금 사용하고 있는 chatgpt 4o 모델보다는 답변이 역시 많이 부족하다 ㅠ

 

허깅페이스 모델 데모 사이트에서 80B 모델은 gpt-4o 모델과 거의 유사할 정도로 성능이 나오던데..

 

그건 사양 이슈로 돌릴 수 없으니까 최대한 지금 모델을 튜닝하봐야겠다 

 

 

정리

 

  • 모델 크기: 약 16GB 정도이므로, 다운로드 및 로드 시 GPU 메모리디스크 용량을 미리 확보해야 합니다.
  • Hugging Face Gated Repo: 먼저 모델 접근 권한을 신청하고, 승인된 계정으로 로그인해야 합니다.
  • 간단한 대화: ChatGPT 스타일의 메시지 배열(role, content)을 전달하면, Instruct 모델이 자연스러운 답변을 생성해 줍니다.
  • 한국어 반응: 어느 정도 한국어 응답이 가능하지만, 완벽한 화법 구현을 위해서는 프롬프트를 잘 구성하거나 별도 튜닝이 필요할 수 있습니다.

앞으로 이 모델을 기반으로 추가 파인튜닝을 진행하거나, LoRA와 같은 기법으로 메모리를 절약해가며 확장할 수도 있습니다.
실제 서비스에 적용하려면 라이선스 조건을 꼭 숙지하시고, 추론(Inference) 비용하드웨어 사양을 미리 고려하길 추천드립니다.

 

이상으로 Meta Llama 3.1-8B Instruct 모델을 승인받아 간단히 실행해본 경험을 공유했습니다.
재미있게 보셨다면, 직접 모델을 받아서 다양한 프롬프트로 실험해보시길 바랍니다!

 

 

 

728x90
반응형