LLM

#1 Llama 3.3 (Ollama) 사용법 + 간단한 FineTuning까지

ch4u 2025. 3. 17. 22:33

1. Llama 3.3이란?

Llama 3.3은 Meta(구 페이스북)에서 개발한 최신 대규모 언어 모델(LLM)입니다. 오픈 소스로 공개되어 누구나 사용할 수 있으며, 비용 효율성이 높아 다양한 AI 활용 분야에서 인기를 끌고 있습니다. 특히, GPT-4와 같은 유료 모델에 비해 무료로 사용 가능하다는 점이 큰 장점입니다.

이 글에서는 Llama 3.3을 로컬 환경에서 실행하는 방법과 활용법, 그리고 Fine-tuning(미세 조정)하는 방법까지 자세히 소개해드리겠습니다.


2. Llama 3.3 설치 방법

Llama 3.3을 로컬 환경에서 사용하려면 Ollama라는 도구를 이용하면 쉽고 간편하게 실행할 수 있습니다. 아래는 운영체제별 Ollama 설치 방법입니다.

macOS 설치 방법

  1. Ollama 공식 사이트에서 Ollama.app을 다운로드합니다.
  2. 다운로드한 앱을 응용 프로그램 폴더에 이동합니다.

Linux 설치 방법

터미널을 열고 아래 명령어를 실행하면 Ollama가 설치됩니다.

curl https://ollama.ai/install.sh | sh

Windows 설치 방법

  1. Ollama 공식 사이트에서 Windows용 설치 파일을 다운로드합니다.
  2. 설치 파일을 실행하고 안내에 따라 Ollama를 설치합니다.

설치가 완료되면 터미널(또는 명령 프롬프트)에서 아래 명령어를 실행하여 Llama 3.3 모델을 다운로드할 수 있습니다.

ollama pull llama3

3. Llama 3.3 사용법

설치가 완료되었다면, 이제 Llama 3.3을 실행하고 활용하는 방법을 알아보겠습니다.

터미널에서 직접 실행하기

터미널(또는 명령 프롬프트)에서 아래 명령어를 실행하면 Llama 3.3과 대화할 수 있습니다.

ollama run llama3

이제 프롬프트에 원하는 질문을 입력하면, Llama 3.3이 답변을 생성합니다.

Python을 활용한 API 호출

Python에서 Ollama API를 활용하면 Llama 3.3을 더욱 편리하게 사용할 수 있습니다.

예제 코드 (Python)

import requests

response = requests.post("http://localhost:11434/api/generate", json={"model": "llama3", "prompt": "안녕하세요!"})
print(response.json())

위 코드를 실행하면 Llama 3.3이 "안녕하세요!"에 대한 응답을 생성합니다.


4. Llama 3.3 Fine-tuning (미세 조정)

기본적인 사용법을 익혔다면, 이제 Fine-tuning을 통해 모델을 특정 작업에 맞게 학습시키는 방법을 살펴보겠습니다.

Fine-tuning이란?

Fine-tuning(미세 조정)은 사전 학습된 LLM 모델에 추가 데이터를 제공하여 특정 목적에 맞게 성능을 향상시키는 과정입니다. Llama 3.3의 경우, LoRA(Low-Rank Adaptation), QLoRA(Quantized LoRA) 등의 방법을 활용하면 적은 자원으로 효율적인 Fine-tuning이 가능합니다.

Fine-tuning을 위한 준비

  1. 필요 패키지 설치
    pip install torch transformers peft datasets
  2. 데이터셋 준비
    • Hugging Face의 datasets 라이브러리를 이용하여 원하는 데이터셋을 로드합니다.
      from datasets import load_dataset
      dataset = load_dataset("your_dataset")
    • 사용자 맞춤 데이터셋을 CSV 또는 JSON 파일로 만들어 사용할 수도 있습니다.

LoRA를 이용한 Fine-tuning 예제

from transformers import AutoModelForCausalLM, TrainingArguments, Trainer
from peft import get_peft_model, LoraConfig

# 모델 로드
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3-7b")

# LoRA 설정
peft_config = LoraConfig(r=8, lora_alpha=16, lora_dropout=0.1, target_modules=["q_proj", "v_proj"])
model = get_peft_model(model, peft_config)

# Fine-tuning 설정
training_args = TrainingArguments(
    output_dir="./llama3_finetuned",
    per_device_train_batch_size=4,
    num_train_epochs=3,
    save_steps=500,
    logging_dir="./logs",
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=dataset["train"]
)

# 학습 시작
trainer.train()

Fine-tuned 모델 사용하기

Fine-tuning이 완료된 모델을 로드하여 예측을 수행할 수 있습니다.

from transformers import pipeline

pipe = pipeline("text-generation", model="./llama3_finetuned")
output = pipe("안녕하세요! 오늘 날씨는?")
print(output)