Hugging Face와 KerasHub 통합
허깅 페이스와 KerasHub는 KerasHub 사용자가 Hugging Face Hub에서 Transformers 라이브러리로 만든 모델을 직접 로드할 수 있는 공유 모델 저장 형식을 도입했습니다. 이 통합은 KerasHub 사용자가 KerasHub용으로 특별히 빌드된 모델만 접근할 수 있었던 이전 제한을 제거하여, 30만 개 이상의 사전 훈련된 모델 라이브러리에 접근할 수 있게 합니다.
Direct Access to Transformers Models
KerasHub는 이제 from_preset 메서드를 사용하여 Transformers 라이브러리 체크포인트를 직접 로드할 수 있습니다. 이를 통해 사용자는 Keras로 처음부터 만들어지지 않은 다양한 파인튜닝된 모델을 활용할 수 있습니다.
처음에, 이 통합은 다음 아키텍처를 지원합니다:
- Gemma (버전 1과 2)
- Llama 3
- PaliGemma
Multi-Framework Deployment
KerasHub 모델은 TensorFlow, JAX, 또는 PyTorch 백엔드를 사용하여 작동할 수 있기 때문에, 이 통합은 사용자가 단 한 줄의 코드로 이러한 프레임워크 중 어떤 것이든 Hugging Face 체크포인트를 로드할 수 있게 합니다. 이 기능은 TFLite로 배포하여 서빙하거나 JAX를 연구 목적으로 사용하는 등 특정 요구에 맞게 모델을 포팅하는 과정을 간소화합니다.
Technical Implementation
이 통합은 두 라이브러리 간의 구성 변수, 가중치 이름, 토크너 어휘를 매핑하여 작동합니다. Transformers 모델은 JSON 구성 파일, 토크너 파일, safetensors 가중치로 저장되므로, 두 라이브러리가 관련 아키텍처에 대한 모델링 코드를 가지고 있다면 KerasHub는 호환 가능한 체크포인트를 생성할 수 있습니다. 이 변환 과정은 라이브러리 내부에서 처리되므로 사용자가 수동으로 변환할 필요가 없습니다.
Usage and Configuration
이 통합을 사용하려면 사용자는 keras-hub와 keras>=3.3.3로 업데이트해야 합니다.
Text Generation
사용자는 .generate 메서드를 사용하여 Transformers 모델을 로드하고 텍스트를 생성할 수 있습니다. 예를 들어, Hub에서 Llama 3 모델을 로드하는 방법은 다음과 같습니다:
from keras_hub.models import Llama3CausalLM
causal_lm = Llama3CausalLM.from_preset(
"hf://NousResearch/Hermes-2-Pro-Llama-3-8B"
)
prompts = ["Your prompt here" ]
causal_lm.generate(prompts, max_length=200)
Precision and Backend Control
KerasHub는 모델 정밀도와 기본 컴퓨팅 백엔드를 쉽게 조정할 수 있습니다:
- 정밀도 변경: 모델을 로드하기 전에
keras.config.set_dtype_policy("bfloat16\))를 통해 정밀도를 설정할 수 있습니다. - 백엔드 전환: 환경 변수
os.environ["KERAS_BACKEND\) = "jax\)를 설정하면 사용자는 JAX 백엔드를 사용하여 로드된 Transformers 체크포인트를 실행할 수 있습니다.
Supported Models
Llama 3를 넘어, 이 통합은 다음과 같이 명시적으로 지원합니다:
- Gemma 2: 사용자는
google/gemma-2-9b(예)와 같은 Gemma 2 모델을 직접 로드할 수 있습니다. - PaliGemma: 파인튜닝된 버전을 포함한 모든 PaliGemma safetensor 체크포인트는 KerasHub 파이프라인에 통합할 수 있습니다.