[Upstage AI Lab] Cyberbase13B + Quantization + Fastchat 활용

라을·2025년 1월 30일

Upstage AI Lab

목록 보기
28/28

Cyberbase-13B 모델을 아무리 시도해보아도...
prompt를 아무리 수정해보아도 영어 답변에도 막 스펠링 에러가 있고 말도 안되는 일들이 계속해서 나타나고, 무엇보다 나는 지금 답변이 형식화 되어서 출력이 되어야 하는데 막 나중에는 괴상한 답변들만 내놓는 문제들이 계속해서 발생했다.

그래서 이 모델을 소개하고 있는 허깅페이스 페이지에 다시 들어가봤더니
웹으로 채팅을 할 수 있는 fastchat을 지원하는 것을 알게 되었다.

하지만~!
나는 지금 8bit quantization을 해야하는 상황이고,
model을 load할 때 model.to(device)부분과 관련하여 계속 에러가 발생하여 fastchat을 실행할 수 가 없었다.

그래서 모델을 로드할 때 양자화를 하는 경우 model.to(device)를 하지 않도록 설정을 해야만 했다.. 다른 방법은 모두 실패하였기에!ㅎ (슈..베릅)

🔻 우선, model_adapter.py의 위치를 확인한다

find /opt/conda/ -name "model_adapter.py"

🔻 model_adapter.py를 편집한다

vi /경로어쩌구/model_adapter.py

'i'를 누르면 insert 모드로 될 것이고 저장한 뒤
esc + :wq 를 누르면 나가기가 될 것이다.

그리고

load_8bit: bool = True,

이렇게 수정을 해주었다.

하지만 당연하게도 해결이 되지 않았고 계속해서 "8-bit에서 .to(device)를 지원하지 않는다"는 에러가 나왔다. 그래서...

🔻 model.to(device)가 어디에 등장하는지 확인한다

grep -rnw '/opt/conda/lib/python3.10/site-packages/fastchat/' -e 'model.to(device)'

나는 model_adapter.py와 compression.py에 등장을 했고 제시해준 라인을 찾아 일일이 수정했다..ㅎ

🔻 8-bit 모델이 아닌 경우에만 model.to(device)가 되도록한다

if not getattr(model, "is_8bit", False):  # 8-bit 모델이 아닌 경우
    model.to(device)

문제 해결 여부는 다음 세 command line을 실행해보면 알 수 있다

python3 -m fastchat.serve.controller &
python3 -m fastchat.serve.model_worker --model-path CyberNative/CyberBase-13b --load-8bit &
python3 -m fastchat.serve.gradio_web_server &

이 명령어들은 별도의 터미널에서 실행해야함을 주의하자!

profile
욕심 많은 공대생

0개의 댓글