[Ray Data/LLM] 폐기된 TRANSFORMERS_CACHE를 HF_HUB_CACHE로 교체하고 AutoConfig 실패를 비치명적으로 처리
PR 링크: ray-project/ray#60854 상태: Merged | 변경: +28 / -9
들어가며
Ray Data LLM 모듈은 모델 경로를 확인하기 위해 transformers.utils.hub.TRANSFORMERS_CACHE를 사용하고, 텔레메트리를 위해 transformers.AutoConfig.from_pretrained()를 호출합니다. transformers 5.0.0부터 TRANSFORMERS_CACHE가 폐기되었고, 사용자가 Pin을 무시하고 최신 버전을 사용하면 ImportError가 발생합니다. 또한 일부 모델은 HuggingFace의 AutoConfig으로 로드할 수 없는데, 이것이 전체 파이프라인을 중단시켰습니다.
핵심 코드 분석
Before: 폐기된 import와 치명적 AutoConfig 실패
# cloud_utils.py
from transformers.utils.hub import TRANSFORMERS_CACHE # transformers 5.0+에서 실패
return Path(
TRANSFORMERS_CACHE, f"models--{self.model_id.replace('/', '--')}"
).expanduser()
# vllm_engine_proc.py
hf_config = transformers.AutoConfig.from_pretrained(
model_path,
trust_remote_code=config.engine_kwargs.get("trust_remote_code", False),
) # 실패 시 전체 프로세서 생성 중단
After: HF_HUB_CACHE 사용과 graceful fallback
# cloud_utils.py
from huggingface_hub.constants import HF_HUB_CACHE # 안정적인 API
return Path(
HF_HUB_CACHE, f"models--{self.model_id.replace('/', '--')}"
).expanduser()
# vllm_engine_proc.py
try:
hf_config = transformers.AutoConfig.from_pretrained(
model_path,
trust_remote_code=config.engine_kwargs.get("trust_remote_code", False),
)
except Exception:
logger.warning(
f"Failed to retrieve HuggingFace config for {config.model_source}"
)
hf_config = None # 텔레메트리용이므로 비치명적 처리
architectures = getattr(hf_config, "architectures", [])
architecture = architectures[0] if architectures else DEFAULT_MODEL_ARCHITECTURE
왜 이게 좋은가
- transformers 5.0+ 호환성:
huggingface_hub.constants.HF_HUB_CACHE는 버전에 관계없이 안정적으로 사용 가능한 API이다. - 비치명적 fallback: AutoConfig 로드 실패는 텔레메트리 용도일 뿐이므로,
DEFAULT_MODEL_ARCHITECTURE로 대체하여 실제 모델 로딩에 영향을 주지 않는다. - vLLM과의 일관성: vLLM도
TRANSFORMERS_CACHE에 의존하지 않으므로, Ray Data LLM이 vLLM과 동일한 호환성 수준을 확보한다.
참고 자료
관련 포스트
PR Analysis 의 다른글
- 이전글 [ACE-Step-1.5] Apple Silicon을 위한 네이티브 MLX DiT 백엔드 도입: 2-3배 성능 향상
- 현재글 : [Ray Data/LLM] 폐기된 TRANSFORMERS_CACHE를 HF_HUB_CACHE로 교체하고 AutoConfig 실패를 비치명적으로 처리
- 다음글 [Open WebUI] Redis 설정 조회 캐싱으로 /api/models 응답 속도 개선
댓글