OKdevTV
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# 모델과 토크나이저 로드 (CPU)
model_name = "gpt2" # 경량 모델 사용
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# 입력 텍스트
input_text = "인공지능이 세상을 바꾸는 방식은"
# 토큰화 및 모델 입력
inputs = tokenizer(input_text, return_tensors="pt")
# 텍스트 생성 (CPU에서 실행)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_length=100,
num_return_sequences=1,
no_repeat_ngram_size=2,
temperature=0.7
)
# 결과 디코딩
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(generated_text)
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# GPU 사용 가능 여부 확인
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Using device: {device}")
# 모델과 토크나이저 로드 (GPU 사용)
model_name = "gpt2" # 경량 모델 사용
model = AutoModelForCausalLM.from_pretrained(model_name).to(device)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# 입력 텍스트
input_text = "인공지능이 세상을 바꾸는 방식은"
# 토큰화 및 모델 입력 (GPU로 이동)
inputs = tokenizer(input_text, return_tensors="pt").to(device)
# 텍스트 생성 (GPU에서 실행)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_length=100,
num_return_sequences=1,
no_repeat_ngram_size=2,
temperature=0.7,
pad_token_id=tokenizer.eos_token_id
)
# 결과 디코딩 (다시 CPU로 이동)
generated_text = tokenizer.decode(outputs[0].cpu(), skip_special_tokens=True)
print(generated_text)
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
import torch
# 4비트 양자화 설정 (메모리 절약)
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16,
bnb_4bit_use_double_quant=True,
)
# 모델 로드 (4비트 양자화 적용)
model_name = "EleutherAI/polyglot-ko-1.3b" # 한국어 모델
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=quantization_config,
device_map="auto" # 자동으로 GPU/CPU 할당
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# 생성 파이프라인 사용
from transformers import pipeline
pipe = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
device=0 if torch.cuda.is_available() else -1
)
# 텍스트 생성
result = pipe(
"오늘 날씨가 좋아서",
max_length=100,
do_sample=True,
temperature=0.7,
top_p=0.9
)
print(result[0]['generated_text'])
프롬프트 엔지니어링
기본 모델 활용
RAG(검색 증강 생성) 실습
모델 미세조정(Fine-tuning)
애플리케이션 개발