피드로 돌아가기
Hugging Face BlogAI/ML
원문 읽기
Hugging Face가 TensorFlow 기반 Transformers 라이브러리에서 Keras를 핵심 추상화 계층으로 채택하여 PyTorch 사용자도 쉽게 사전학습 모델을 로드하고 전이학습을 수행할 수 있는 일관된 API 제공
Hugging Face's TensorFlow Philosophy
AI 요약
Context
PyTorch와 JAX의 경쟁 속에서도 TensorFlow가 가장 많이 사용되는 딥러닝 프레임워크이지만, PyTorch 엔지니어들은 TensorFlow의 Keras 통합을 불편함으로 인식하고 저수준 학습 코드로 우회하려는 경향이 있다. 이러한 접근은 장기적으로 Keras 기능을 재구현하게 되는 문제를 초래한다.
Technical Solution
- Keras Model 객체를 TensorFlow 모델의 기본 단위로 설정: 모든 TensorFlow 모델이 Keras Model 객체이고 모든 레이어가 Keras Layer 객체여야 한다는 철학 수립
- TFAutoModel 클래스를 통한 단일 라인 모델 로드:
from_pretrained()메서드로 모델 아키텍처 인스턴스화와 가중치 로드를 한 번에 수행 - 작업별 AutoModel 클래스 분화: TFAutoModelForImageClassification 등으로 사전학습 모델에 작업별 출력 헤드를 추가하고, 새 헤드는 무작위 초기화, 기존 가중치는 원본 모델에서 로드
- AutoTokenizer를 통한 전처리 표준화: 모델과 동일한 방식의 토크나이저를 로드하여 학습 시 입력 전처리와 추론 시 입력 전처리 동일성 보장
- 전이학습 중심 설계: 대규모 데이터로 사전학습된 모델 스템을 새로운 작업의 시작점으로 사용하여 필요한 학습 데이터량을 대폭 감소
실천 포인트
TensorFlow를 사용하는 엔지니어들은 Keras를 우회하지 말고 TFAutoModel과 AutoTokenizer 클래스를 활용해 bert-base-cased 같은 사전학습 모델을 한 줄의 코드로 로드한 후, 작업별 AutoModel 클래스(예: TFAutoModelForImageClassification)로 출력 헤드를 추가하면 기존 모델의 도메인 지식을 유지하면서 새 작업에 맞게 미세조정할 수 있다.