🔶 Transformers 방식의 시도
앞에서 LM Studio의 gpu를 대신 빌려서 모델을 구동시켰었는데, 그냥 colab에서 transformers방식으로 응답생성하면 되는거 아닌가?라는 생각에 시도를 해보았다.
일단, transformers방식을 쓰려면, gguf 형식이 아닌, config.json이 들어간 모델을 사용해야하기 때문에, sangthree/meta_0706을 사용하였다.
🔶 Colab의 코드
!pip install transformers fastapi uvicorn pydantic
!pip install langchain langchain-openai
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
import uvicorn
app = FastAPI()
# CORS 설정
origins = [
"http://localhost", # 개발 중인 클라이언트 주소
"http://localhost:3000", # React 개발 서버 주소
]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["POST"],
allow_headers=["Content-Type"],
)
# 모델과 토크나이저 로드
model_name = "sangthree/meta_0706"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
class Message(BaseModel):
question: str # 클라이언트에서 question 필드로 전송될 것으로 기대
@app.post("/chat")
async def chat_with_bot(message: Message):
try:
input_ids = tokenizer.encode(message.question, return_tensors="pt").to("cuda")
outputs = model.generate(input_ids, max_length=100)
response_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
return {"response": response_text}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)

여기서 ram이 끊겨버렸다... transformer를 사용하는건 무리인가보다..
# 서버 실행 코드
!uvicorn your_filename:app --host 0.0.0.0 --port 8000
🔶 결론
결론적으로 ram부족으로 서버를 다 실행도 못해보고 끝났다.
사실 이럴 줄 알았다. 이전에도 gpu없이는 transformer로 여러번 실패했기 때문에...
다른 방법을 시도해야겠다.
🔶 Transformers 방식의 시도
앞에서 LM Studio의 gpu를 대신 빌려서 모델을 구동시켰었는데, 그냥 colab에서 transformers방식으로 응답생성하면 되는거 아닌가?라는 생각에 시도를 해보았다.
일단, transformers방식을 쓰려면, gguf 형식이 아닌, config.json이 들어간 모델을 사용해야하기 때문에,
sangthree/meta_0706을 사용하였다.🔶 Colab의 코드
여기서 ram이 끊겨버렸다... transformer를 사용하는건 무리인가보다..
🔶 결론
결론적으로 ram부족으로 서버를 다 실행도 못해보고 끝났다.
사실 이럴 줄 알았다. 이전에도 gpu없이는 transformer로 여러번 실패했기 때문에...
다른 방법을 시도해야겠다.