반응형
by chatgpt
Microsoft에서 공개한 Phi 모델을 활용하여 LLM API 없이 챗봇 서비스를 구축하는 방법을 상세히 설명해 드리겠습니다.
1. Phi 모델 개요
Phi-2는 Microsoft가 공개한 작은 규모의 LLM으로, 성능 대비 경량하고 로컬에서 실행하기 용이한 장점이 있습니다. 이를 활용하면 API 없이 직접 챗봇 서비스를 구축할 수 있습니다.
2. 환경 준비
(1) 필요한 패키지 설치
Python 환경에서 실행하기 위해 필요한 라이브러리를 설치합니다.
bash
복사편집
pip install torch transformers accelerate gradio
- torch : 딥러닝 모델 실행을 위한 라이브러리
- transformers : Hugging Face의 모델 로딩 및 실행 지원
- accelerate : GPU 최적화를 위한 라이브러리
- gradio : 웹 UI 구축을 위한 라이브러리
3. Phi 모델 다운로드 및 로딩
Hugging Face의 transformers 라이브러리를 사용하여 모델을 로드합니다.
python
복사편집
from transformers import AutoModelForCausalLM, AutoTokenizer import torch # 모델 및 토크나이저 불러오기 model_name = "microsoft/phi-2" model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map="auto") tokenizer = AutoTokenizer.from_pretrained(model_name) # 챗봇 응답 생성 함수 def generate_response(prompt): inputs = tokenizer(prompt, return_tensors="pt").to("cuda") outputs = model.generate(**inputs, max_length=200) return tokenizer.decode(outputs[0], skip_special_tokens=True) # 테스트 print(generate_response("Hello! How are you?"))
위 코드를 실행하면 Phi-2 모델이 GPU에서 동작하며 응답을 생성합니다.
4. 간단한 챗봇 웹 UI 구축
Gradio를 사용하여 간단한 웹 UI를 구성할 수 있습니다.
python
복사편집
import gradio as gr def chat_with_phi(message, history): response = generate_response(message) return response # Gradio 인터페이스 설정 chatbot = gr.ChatInterface(chat_with_phi) chatbot.launch()
이 코드를 실행하면 웹 브라우저에서 챗봇과 대화할 수 있는 인터페이스가 실행됩니다.
5. 서비스 배포
(1) 로컬 실행
위의 Gradio 코드를 실행하면 http://localhost:7860에서 챗봇을 사용할 수 있습니다.
(2) 클라우드 배포 (FastAPI 활용)
웹 API 형태로 배포하려면 FastAPI를 사용할 수 있습니다.
bash
복사편집
pip install fastapi uvicorn
FastAPI 서버 코드 예제:
python
복사편집
from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class ChatRequest(BaseModel): message: str @app.post("/chat") def chat(request: ChatRequest): response = generate_response(request.message) return {"response": response} # 서버 실행 (터미널에서 실행) # uvicorn filename:app --host 0.0.0.0 --port 8000 --reload
- API 서버 실행 후, POST /chat 엔드포인트를 통해 챗봇과 대화 가능
6. 최적화 및 확장
(1) 파인튜닝 (Fine-Tuning)
Phi 모델을 특정 도메인(예: 법률, 의료 등)에 최적화하려면 추가 학습이 필요합니다.
bash
복사편집
pip install peft datasets
Hugging Face의 peft 라이브러리를 사용하여 LoRA 방식으로 파인튜닝할 수 있습니다.
(2) 속도 최적화
- torch.compile(model)을 사용하여 실행 속도 개선
- bitsandbytes를 활용한 4-bit 또는 8-bit 양자화
7. 결론
- Phi-2 모델을 다운로드하여 API 없이 직접 실행
- Gradio 또는 FastAPI를 사용하여 챗봇 서비스 구축
- 필요하면 파인튜닝 및 속도 최적화 수행
이 방식으로 로컬 환경에서 API 없이 챗봇을 운영할 수 있으며, 커스텀 파인튜닝을 통해 더 높은 품질의 대화형 AI를 만들 수 있습니다. 🚀
반응형
댓글