# 오픈소스 LLM: Llama 3 로컬 실행

안녕하세요! 오늘은 **Meta의 Llama 3**를 로컬에서 실행하는 방법을 알아봅니다! 🦙
## Llama 3란?
Meta(Meta AI)에서 개발한 오픈소스 LLM입니다.
**특징:**
– 상용 사용 가능 (라이선스 개선)
– 8B, 70B 파라미터 버전
– 강력한 성능
– 로컬 실행 가능
—
## 1. 시스템 요구사항
### Llama 3 8B (최소)
– RAM: 8GB 이상
– GPU: NVIDIA GTX 1060 이상 (선택)
– 저장공간: 8GB
### Llama 3 70B (추천)
– RAM: 32GB 이상
– GPU: NVIDIA RTX 3060 이상
– 저장공간: 40GB
—
## 2. Ollama 사용 (가장 쉬운 방법)
### 설치
**macOS:**
“`bash
curl -fsSL https://ollama.ai/install.sh | sh
“`
**Linux:**
“`bash
curl -fsSL https://ollama.ai/install.sh | sh
“`
**Windows:**
https://ollama.ai/download
### 모델 다운로드
“`bash
ollama pull llama3:8b
ollama pull llama3:70b
“`
### 실행
“`bash
ollama run llama3
“`
—
## 3. Python에서 사용
### 라이브러리 설치
“`bash
pip install ollama langchain langchain-community
“`
### 기본 사용
“`python
from langchain_community.llms import Ollama
llm = Ollama(model=”llama3″)
response = llm.invoke(“안녕하세요! 오늘 날씨가 어때요?”)
print(response)
“`
### 스트리밍
“`python
from langchain_community.llms import Ollama
llm = Ollama(model=”llama3″)
for chunk in llm.stream(“Python으로 간단한 계산기 만들어줘”):
print(chunk, end=””, flush=True)
“`
—
## 4. Node.js에서 사용
“`typescript
import { Ollama } from “@langchain/community/llms/ollama”;
const llm = new Ollama({
model: “llama3”,
baseUrl: “http://localhost:11434”,
});
const response = await llm.invoke(“안녕하세요!”);
console.log(response);
“`
—
## 5. Next.js와 통합
“`typescript
// app/api/chat/route.ts
import { Ollama } from “@langchain/community/llms/ollama”;
export async function POST(req: Request) {
const { messages } = await req.json();
const llm = new Ollama({
model: “llama3”,
temperature: 0.7,
});
const response = await llm.invoke(
messages[messages.length – 1].content
);
return Response.json({ response });
}
“`
—
## 6. GPU 가속
### NVIDIA GPU 사용
“`bash
# CUDA 드라이버 설치 후
ollama run llama3 –gpu
“`
### 성능 비교
| 설정 | 속도 | RAM 사용량 |
|——|——|———–|
| CPU만 | ~5 토큰/초 | ~16GB |
| GPU 8GB | ~20 토큰/초 | ~8GB |
| GPU 24GB | ~50 토큰/초 | ~8GB |
—
## 7. 커스터마이징
### 시스템 프롬프트
“`typescript
const llm = new Ollama({
model: “llama3”,
system: “너는 친절한 한국어 튜터야.”,
});
“`
### 토큰 제한
“`typescript
const llm = new Ollama({
model: “llama3”,
numCtx: 4096, // 컨텍스트 길이
});
“`
—
## 8. RAG와 결합
“`typescript
import { OllamaEmbeddings } from “@langchain/community/embeddings/ollama”;
import { Chroma } from “@langchain/community/vectorstores/chroma”;
const embeddings = new OllamaEmbeddings({
model: “llama3”,
});
const vectorStore = await Chroma.fromDocuments(
documents,
embeddings
);
const llm = new Ollama({ model: “llama3” });
const chain = RetrievalQAChain.fromLLM(
llm,
vectorStore.asRetriever()
);
“`
—
## 9. 성능 최적화
### 1. 양자화 (Quantization)
“`bash
ollama run llama3:8b-q4_0 # 4-bit 양자화
ollama run llama3:8b-q8_0 # 8-bit 양자화
“`
### 2. 배치 처리
“`typescript
const responses = await Promise.all([
llm.invoke(“질문 1”),
llm.invoke(“질문 2”),
llm.invoke(“질문 3”),
]);
“`
### 3. 캐싱
“`typescript
import { Cache } from “langchain/cache”;
import { InMemoryCache } from “@langchain/core/caches”;
const cache = new InMemoryCache();
llm.cache = cache;
“`
—
## 10. 에러 해결
### 메모리 부족
“`bash
# 더 작은 모델 사용
ollama run llama3:8b-q4_0
# 시스템 메모리 확인
top -p $(pgrep ollama)
“`
### 속도 느림
“`bash
# GPU 확인
nvidia-smi
# Ollama 재시작
pkill ollama
ollama serve
“`
—
## 결론
Llama 3는 로컬에서 실행 가능한 강력한 오픈소스 LLM입니다!
**장점:**
– ✅ 데이터 프라이버시 보장
– ✅ 비용 절감 (API 비용 없음)
– ✅ 인터넷 연결 불필요
– ✅ 커스터마이징 가능
**단점:**
– ❌ 하드웨어 요구사항
– ❌ GPT-4o보다 성능 낮음
– ❌ 설정 복잡도
—
## 다음 단계
– 🔧 파인튜닝 시도
– 📊 성능 벤치마킹
– 🌐 웹 서비스 배포
## 참고 자료
– [Ollama 문서](https://ollama.ai/)
– [Llama 3 모델 카드](https://llama.meta.com/llama3/)
– [Hugging Face Llama 3](https://huggingface.co/meta-llama/Meta-Llama-3-8B)
—
질문이 있나요? 댓글로 남겨주세요! 😊
**다음 포스팅:** AI 모델 비교: GPT vs Claude vs Gemini