더보기
51일 차 회고.
여전히 몸이 안 좋아서 당분간은 저녁에 샐러드만 먹어야 할 것 같다. 그리고 빅테이터분석기사에 확률과 통계 부분이 너무 많아서 이에 대해서 어떻게 공부해야 좋을지도 알아봐야 할 것 같다.
1. Open Source LLM
1-1. Open Source LLM
Open Source LLM
- 연구나 기업에서 자유롭게 활용하고 커스터마이징할 수 있다.
- 투명성이 높고 커뮤니티에서 활발한 기여와 개선이 이루어진다.
- 라이선스에 따라 상업적 사용이 가능하거나 제한될 수 있다.
- 성능이 상업용 모델에 비해 약간 부족할 수도 있지만, 최근에는 OpenAI의 모델과 경쟁할 수준의 오픈소스 LLM도 등장하고 있다.
Closed Source LLM
- 대부분 API 형태로 제공되며, 직접 모델을 수정하거나 로컬에서 실행할 수 없다.
- 기업의 비즈니스 모델에 따라 서비스 비용이 발생한다.
- 최적화 및 튜닝이 잘 되어있어 높은 품질의 응답을 제공하는 경우가 많다.
- 학습 데이터와 모델 구조 등 내부 정보가 공개되지 않아 투명성이 낮다.
1-2. Llama
Setup
!nvidia-smi
!pip install -q transformers accelerate sentencepiece
import os
!huggingface-cli login
os.environ['HF_TOKEN'] = ''
import torch
import transformers
model_id = 'meta-llama/Meta-Llama-3-8B-Instruct'
pipeline = transformers.pipeline(
task='text-generation',
model=model_id,
model_kwargs={'torch_dtype': torch.bfloat16},
device='cuda'
)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
terminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = pipeline(
messages,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
print(outputs[0]["generated_text"][-1])
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
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?"},
]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
1-3. Claude
import torch
import transformers
model_id = 'mlfoundations-dev/oh-dcft-v3.1-claude-3-5-haiku-20241022'
pipeline = transformers.pipeline(
task='text-generation',
model=model_id,
model_kwargs={'torch_dtype': torch.bfloat16},
device='cuda'
)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
terminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = pipeline(
messages,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
print(outputs[0]["generated_text"][-1])
1-4. SciSpace
import torch
import transformers
model_id = 'SciSpace/phi-3-model-3375'
pipeline = transformers.pipeline(
task='text-generation',
model=model_id,
model_kwargs={'torch_dtype': torch.bfloat16},
device='cuda'
)
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "RNN 모델에 대해서 간단하게 설명해줘."},
]
terminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = pipeline(
messages,
max_new_tokens=1000,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
print(outputs[0]["generated_text"][-1])
2. Groq
2-1. Groq
!pip install groq
from groq import Groq
import os
client = Groq(
api_key='',
)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "user",
"content": "Explain the importance of fast language models",
}
],
model="llama-3.3-70b-versatile",
)
print(chat_completion.choices[0].message.content)
3. LLM 프로젝트
3-1. 개발
Flow Chart

개발 과정
- Streaming 기능 구현
- common/llm/openai.py
- display.py
- chatbot.py
- Llama 모델 추가
- common/llm/groq.py
- input.py
- chatbot.py
- Provider 추가
- common/llm/provider.py
- common/llm/groq.py
- common/llm/openai.py
- input.py
- chatbot.py
'SK네트웍스 Family AI캠프 10기 > Daily 회고' 카테고리의 다른 글
| 53일차. Hugging Face - Transformer Trainer & LLM 프로젝트 (0) | 2025.03.27 |
|---|---|
| 52일차. Hugging Face - Transformer Model & Pipeline & LLM - LLM 프로젝트 (0) | 2025.03.26 |
| 50일차. LLM - LLM 프로젝트(Chatbot) (0) | 2025.03.24 |
| 49일차. Huggingface - Diffusers & 자연어 딥러닝 - Text2Image & uv & LLM - OpenAI (0) | 2025.03.21 |
| 48일차. Vision - Generative Model & 자연어 딥러닝 - Image2Text (1) | 2025.03.20 |