SJ_Koding

[LLM]Llama 3.1 설치 및 ValueError: rope_scaling 해결방법 vLLM 에러 해결 such as '_OpNamespace' '_C' object has no attribute 'rms_norm') 본문

LLM

[LLM]Llama 3.1 설치 및 ValueError: rope_scaling 해결방법 vLLM 에러 해결 such as '_OpNamespace' '_C' object has no attribute 'rms_norm')

성지코딩 2024. 7. 24. 15:42

https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct

 

meta-llama/Meta-Llama-3.1-8B-Instruct · Hugging Face

The information you provide will be collected, stored, processed and shared in accordance with the Meta Privacy Policy. LLAMA 3.1 COMMUNITY LICENSE AGREEMENT Llama 3.1 Version Release Date: July 23, 2024 "Agreement" means the terms and conditions for use,

huggingface.co

 

한국 시간으로 7월 24일 새벽에 Llama 3.1 hugging face에 오픈소스로 공개되었다. 파인튜닝할 LLM모델을 탐색중이었는데 마침 타이밍이 딱 맞아떨어져 해당 모델을 바로 사용해보기로 했다.

해당 모델을 다운로드 받기 위해서, huggingface 계정이 필요하다. 관리자에게 코드 접근 권한을 요청하고 access를 받아야만 다운로드, 조회가 가능하다. (보통 10분내로 access가 자동적으로 이루어지는 것 같다.)

accept를 받고 나서, git clone을 할 경우 password를 요구하는데, 이는 access token키를 입력해야한다. 만약 그래도 안된다면 

git clone https://<TOKEN>@huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct

<TOKEN>자리에 본인의 access token키를 입력한 후, password에도 동일하게 해당 TOKEN을 입력해보자.

 

어찌저찌 다운로드가 완료되었으면 모델을 실행시켜야하는데 공통적으로 ValueError: `rope_scaling` must be a dictionary with two fields 라는 오류가 발생한다. 대충 rope_scaling은 두 개의 필드를 가진 딕셔너리여야한다는 것인데, 이를 해결하기 위해 transformers 라이브러리를 최신버전으로 업데이트해줘야한다.

pip install --upgrade transformers

그럼 위의 오류는 해결된다.

이때, 커뮤니티 글을 보면 추가적으로 'top_k_top_p_filtering' ImportError. 가 날 수도 있다고 하는데, 이 경우는 pip install --upgrade trl.로 해결할 수 있다했고,

필자의 경우 VLLM을 사용중인데, VLLM관련해서 type에러가 나길래 VLLM을 최신버전으로 업그레이드 시켰더니 해결되었다. 그런데 또다른 오류가 발생했다. 

AttributeError: '_OpNamespace' '_C' object has no attribute 'rms_norm' (골치 아파보이는 에러...)

해당 에러를 해결하기위해 reinstall을 진행하고 다른 라이브러리를 업데이트해도 해결되지 않았다. 조금 시간이 걸렸는데. https://github.com/vllm-project/vllm/issues/5454

 

[Bug]: 0.5.0 AttributeError: '_OpNamespace' '_C' object has no attribute 'rms_norm' · Issue #5454 · vllm-project/vllm

Your current environment Collecting environment information... PyTorch version: 2.3.0+cu121 Is debug build: False CUDA used to build PyTorch: 12.1 ROCM used to build PyTorch: N/A OS: Ubuntu 22.04.2...

github.com

를 시작으로 여러 방법론을 시도한 결과 해결방법은 아래와 같았다.

1. 가상환경의 site-package 폴더로 이동 (ex: /home/user/anaconda3/envs/llm-api/lib/python3.10/site-packages)

2. vllm 폴더 rm -rf로 전체 삭제

rm -rf ./vllm

3. 해당 폴더 그대로 git clone https://github.com/vllm-project/vllm.git  (vllm 폴더 생성됨)

git clone https://github.com/vllm-project/vllm.git

4. vllm 폴더로 이동

cd ./vllm

5. vllm 직접 설치 pip install -e .

pip install -e .

6. 환경변수 설정

export PYTHONPATH=$PYTHONPATH:/home/user/anaconda3/envs/llm-api/lib/python3.10/site-packages/vllm
# Path는 예시일 뿐, 본인 환경에 맞는 path로 기입해야합니다.


그 후 정상적으로 실행되었다. 별도의 시스템 프롬프트 없이 한글 질문에 대해 한글로 잘 답변하는 것을 확인했다.