대규모 언어모델 • 챕터 6 / 7
대형 기술 기업들이 제공하는 API를 통해 LLM을 활용할 수 있습니다.
주요 제공업체:
특징:
자체적으로 구축한 API 엔드포인트를 통해 모델을 호출하는 방식
장점:
| 플랫폼 | 서비스 |
|---|---|
| AWS | Amazon Bedrock, SageMaker |
| Azure | Azure OpenAI Service |
특징: 기존 클라우드 인프라와 통합 용이, 엔터프라이즈급 보안
| 모델 | 개발사 |
|---|---|
| Gemma | |
| LLaMA | Meta |
| Mistral | Mistral AI |
| Qwen | Alibaba |
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("model-name")
tokenizer = AutoTokenizer.from_pretrained("model-name")특징:
로컬에서 LLM을 쉽게 실행할 수 있는 도구
고성능 LLM 추론을 위한 라이브러리
| 서비스 | 특징 |
|---|---|
| Groq | 초고속 응답 속도, LPU 사용 |
| Cerebras | 대규모 모델 처리, 빠른 응답 |
| OpenRouter | 여러 LLM API 통합 |
pip install openaifrom openai import OpenAI
client = OpenAI(api_key="your-api-key")
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
}
]
}'서버와의 통신을 위한 인증 키
역할:
보안 주의사항
사용할 모델을 지정
model="gpt-4o-mini" # 또는 "gpt-4", "gpt-3.5-turbo" 등대화 내역을 리스트 형태로 전달
messages = [
{"role": "system", "content": "당신은 전문 번역가입니다."},
{"role": "user", "content": "이 문장을 영어로 번역해주세요."}
]role의 종류:
| role | 설명 |
|---|---|
| system | AI의 역할 정의 (시스템 프롬프트) |
| user | 사용자의 입력 |
| assistant | AI의 응답 (대화 이력) |
출력의 창의성을 조절 (0.0 ~ 2.0)
temperature=0.2 # 낮은 값: 일관되고 정확한 답변
temperature=0.7 # 중간 값: 균형잡힌 답변
temperature=1.5 # 높은 값: 창의적이고 다양한 답변| 값 | 특징 |
|---|---|
| 0에 가까울수록 | 확률이 높은 토큰 선택 → 정확하고 일관된 결과 |
| 2에 가까울수록 | 다양한 토큰 선택 → 창의적이지만 예측 불가능 |
생성할 최대 토큰 수
max_tokens=512 # 출력 최대 토큰 수 조절from openai import OpenAI
client = OpenAI(api_key="your-api-key")
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Python으로 Hello World를 출력하는 코드를 알려줘."}
],
temperature=0.2,
max_tokens=512
)
print(response.choices[0].message.content)response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "당신은 창의적인 작가입니다."},
{"role": "user", "content": "별에 관한 짧은 시를 써주세요."}
],
temperature=1.2, # 높은 temperature로 창의적인 결과
max_tokens=200
)
print(response.choices[0].message.content)| 구분 | 상용 API | 오픈소스 모델 | 클라우드 플랫폼 |
|---|---|---|---|
| 편의성 | 높음 | 중간 | 높음 |
| 비용 | 종량제 | 인프라 비용 | 중간 |
| 커스터마이징 | 낮음 | 매우 높음 | 높음 |
| 보안 | 외부 전송 | 로컬 가능 | 엔터프라이즈급 |
| 성능 | 최신 모델 | 다양 | 안정적 |
| 작업 | 추천 모델 |
|---|---|
| 간단한 작업 | gpt-3.5-turbo |
| 복잡한 작업 | gpt-4 |
| 방식 | 특징 |
|---|---|
| 상용 API | 편리함, 종량제, 최신 모델 |
| 오픈 모델 | 커스터마이징, 프라이버시, GPU 필요 |
| 클라우드 | 엔터프라이즈급 보안, 통합 용이 |
| 매개변수 | 설명 |
|---|---|
| model | 사용할 모델 지정 |
| messages | 대화 내역 (system, user, assistant) |
| temperature | 창의성 조절 (0~2) |
| max_tokens | 최대 출력 토큰 수 |