문제
3995 metadata = f.metadata()
3996
-> 3997 if metadata.get("format") == "pt":
3998 pass
3999 elif metadata.get("format") == "tf":
AttributeError: 'NoneType' object has no attribute 'get'
문제 설명
Hugging Face 최신 모델 오류
•
필자는 Alibaba-NLP/gte-multilingual-reranker-base모델을 import해서 사용하려다가 위와 같은 에러에 직면했었다.
•
관련 오류를 해결하려고 커뮤니티를 찾던 중 해당 모델의 커뮤니티에서 이전 버전에선 문제가 발생하지 않았다는 정보를 찾았고, 실제로 돌려보니 문제가 해결되었다.
•
기존에도 몇몇 모델에서 이런 문제가 있었기 때문에 동일한 해결방법을 사용해서 이번에도 커뮤니티에서 해결했는데, 일부 특정 버전에서 문제가 발생할 시 revision을 실행하면 해결되는 경우가 많기에 이 해결방법에 대해서 자세하게 아래에 작성해놓았다.
해결 방법
•
우선 Alibaba-NLP/gte-multilingual-reranker-base모델과 같은 경우에는 다음 코드를 사용해서 문제를 해결했다.
model_name_or_path = "Alibaba-NLP/gte-multilingual-reranker-base"
revision = "4e88bd5dec38b6b9a7e623755029fc124c319d67"
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
model = AutoModelForSequenceClassification.from_pretrained(
model_name_or_path, trust_remote_code=True,
torch_dtype=torch.float16,
revision=revision
)
Python
복사
◦
기존과 다른 점은 revision을 명시해놨다는 점.
revision은 쉽게 말해서 github에서 이전 버전을 사용하겠다는 뜻이다.
•
그렇다면 이전 버전은 어떻게 Hugging Face에서 찾을 수 있을까?
hugging face history
◦
위 사진을 보면 git을 써본 사람들을 알겠지만 commit history가 존재한다.
◦
해당 history를 보면 커밋 내역을 확인 할 수 있는데 이 커밋을 되짚어가면서 실행해보면 된다.
▪
위 사진처럼 commit hash를 복사해서 revision에 붙혀서 사용하면 된다.
◦
여기서 되는 버전의 모델을 사용하면 해결된다!