파이썬 AI 실습/메타의 라마(llama) 파인튜닝(전문가GPT) 하기

메타의 라마(llama) 파인튜닝(전문가GPT) 하기 - 4. 다운로드한 튜닝 모델파일 사용하기

파기차차 2024. 8. 18. 16:26
728x90
반응형
SMALL

ㅁ 개요

 

O 프로젝트 소개

 

 

 - 이번 글은 이전글(메타의 라마(llama) 파인튜닝(전문가GPT) 하기 - 3. colab에서 모델 튜닝 및 다운로드하기)에 이은 5번째 글로 이전글에서 다운로드한 튜닝 모델을 사용하여 파이썬으로 ai챗봇을 만드는 방법에 대하여 알아보겠습니다.

이를 응용하면 우리는 기업에서도 기업 내부자료의 유출을 걱정할 필요없이 폐쇄망(인터넷X)에서도 AI챗봇을 사용할 수 있게 되어 업무 효율성을 크게 높일 수 있을 것입니다.

 

 

O 완성된 프로그램 실행 화면

 

 

 - 조각 모델들을 모두 다운로드 하였으나, 실제 구동하는데 실패하였습니다.
모델을 로드하고 실행하기 위해서는 엄청난 고 사양이 필요하며, 일반 PC나 노트북에서는 사실상 불가능 합니다. ㅠㅠ

 

 

 


ㅁ 세부 내용

 

O 완성된 소스

 

아래와 같은 소스로 서버를 띄우고 클라이언트에서 응답을 요청할 수 있습니다. 다만, 구동이 안된다는 게 함정입니다. ㅠㅠ

 

소스파일 : server.py

from flask import Flask, request, jsonify
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

app = Flask(__name__)

# 모델 로드
model_dir = "./fine_tuned_llama" # 폴더로 지정(파일X)
model = AutoModelForCausalLM.from_pretrained(model_dir)
tokenizer = AutoTokenizer.from_pretrained(model_dir)

@app.route('/generate', methods=['POST'])
def generate_text():
    # 요청에서 입력 텍스트를 가져옴
    input_text = request.json.get('text', '')

    # 입력 텍스트 토큰화
    inputs = tokenizer(input_text, return_tensors="pt")
    
    # 모델을 통해 텍스트 생성
    with torch.no_grad():
        outputs = model.generate(**inputs, max_length=100)
    
    # 생성된 텍스트 디코딩
    generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)

    return jsonify({'generated_text': generated_text})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

 

 

소스파일 : client.py

import requests
import json

# API 엔드포인트 URL
url = "http://localhost:5000/generate"

# 요청에 포함할 텍스트
input_text = "who are you?"

# POST 요청 데이터
data = {
    "text": input_text
}

# HTTP POST 요청 보내기
response = requests.post(url, json=data)

# 응답 확인
if response.status_code == 200:
    result = response.json()
    generated_text = result['generated_text']
    print("생성된 텍스트:", generated_text)
else:
    print("오류 발생:", response.status_code)
    print(response.text)

 

 

 

O 소스 실행 방법

 
 
 - 소스파일 다운로드 후 cmd 또는 파워쉘 등에서 아래와 같이 실행하시기 바랍니다.

 

 
 > python server.py
 
 
-server.py 서버에 API 요청 보내기
>curl -X POST http://localhost:5000/generate \
-H "Content-Type: application/json" \
-d '{"text": "Once upon a time,"}'
 
-Postman 에서
1. POST 요청을 http://localhost:5000/generate로 설정.
2. Body 탭에서 raw 선택 후 JSON 형식으로 설정.
3. 요청 본문에 {"text": "Once upon a time,"} 입력.

서버는 응답으로 생성된 텍스트를 반환


 

 

 

ㅁ 정리

 

O 우리가 배운 내용

 
 - 오늘은 이전글에서 다운로드한 튜닝 모델을 사용하여 파이썬으로 ai챗봇을 만드는 방법에 대하여 알아보았으나, 실제 구동 시 자원부족으로 실행화면을 보지 못했습니다.
 
다음 글에서는 튜닝된 모델을 구동하기 위해 다른 아이디어를 생각해 냈으며, 이 방법으로 실행 가능한지 살펴보도록 하겠습니다.
 

 

오늘은 여기까지이며, 위의 내용이 유익하셨다면, 광고 한번씩만 클릭 부탁드립니다.

 

 

감사합니다.

728x90
반응형
LIST