본문 바로가기
카테고리 없음

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

by YJHTPII 2025. 3. 14.
반응형

 

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를 만들 수 있습니다. 🚀

반응형

댓글