카테고리 없음

Microsoft에서 공개한 Phi 모델을 활용하여 LLM API 없이 챗봇 서비스를 구축하는 방법

YJHTPII 2025. 3. 14. 16:23
반응형

 

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. 결론

  1. Phi-2 모델을 다운로드하여 API 없이 직접 실행
  2. Gradio 또는 FastAPI를 사용하여 챗봇 서비스 구축
  3. 필요하면 파인튜닝 및 속도 최적화 수행

이 방식으로 로컬 환경에서 API 없이 챗봇을 운영할 수 있으며, 커스텀 파인튜닝을 통해 더 높은 품질의 대화형 AI를 만들 수 있습니다. 🚀

반응형