#1 Llama 3.3 (Ollama) 사용법 + 간단한 FineTuning까지
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 설치 방법
- Ollama 공식 사이트에서
Ollama.app
을 다운로드합니다. - 다운로드한 앱을 응용 프로그램 폴더에 이동합니다.
Linux 설치 방법
터미널을 열고 아래 명령어를 실행하면 Ollama가 설치됩니다.
curl https://ollama.ai/install.sh | sh
Windows 설치 방법
- Ollama 공식 사이트에서 Windows용 설치 파일을 다운로드합니다.
- 설치 파일을 실행하고 안내에 따라 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을 위한 준비
- 필요 패키지 설치
pip install torch transformers peft datasets
- 데이터셋 준비
- Hugging Face의
datasets
라이브러리를 이용하여 원하는 데이터셋을 로드합니다.from datasets import load_dataset dataset = load_dataset("your_dataset")
- 사용자 맞춤 데이터셋을 CSV 또는 JSON 파일로 만들어 사용할 수도 있습니다.
- Hugging Face의
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)