TensorFlow Model Garden은 비전 및 자연어 처리(NLP)를 위한 다양한 최신 기계 학습(ML) 모델의 구현과 표준 데이터 세트에서 해당 모델을 빠르게 구성하고 실행할 수 있는 워크플로 도구를 제공합니다. 잘 알려진 모델의 성능을 벤치마킹하거나 최근 발표된 연구 결과를 확인하거나 기존 모델을 확장하려는 경우 Model Garden은 ML 연구 및 애플리케이션을 발전시키는 데 도움이 될 수 있습니다.
Model Garden에는 기계 학습 개발자를 위한 다음 리소스가 포함되어 있습니다.
- Google 엔지니어가 관리하는 비전 및 NLP의 공식 모델
- ML 연구 논문의 일부로 게시된 연구 모델
- 공식 모델의 빠르고 선언적인 학습 구성을 위한 학습 실험 프레임워크
- 비전 및 자연어 처리(NLP)를 위한 특수 ML 작업
- Orbit을 통한 모델 훈련 루프 관리
이러한 리소스는 TensorFlow Core 프레임워크와 함께 사용하고 기존 TensorFlow 개발 프로젝트와 통합하도록 구축되었습니다. Model Garden 리소스도 오픈 소스 라이선스로 제공되므로 모델과 도구를 자유롭게 확장하고 배포할 수 있습니다.
실용적인 ML 모델은 훈련 및 실행에 계산 집약적이며 그래픽 처리 장치(GPU) 및 텐서 처리 장치(TPU)와 같은 가속기가 필요할 수 있습니다. Model Garden의 대부분의 모델은 TPU를 사용하여 대규모 데이터 세트에서 학습되었습니다. 그러나 GPU 및 CPU 프로세서에서 이러한 모델을 훈련하고 실행할 수도 있습니다.
모델 가든 모델
Model Garden의 기계 학습 모델에는 전체 코드가 포함되어 있으므로 연구 및 실험을 위해 모델을 테스트, 훈련 또는 재훈련할 수 있습니다. 모델 정원에는 공식 모델 과 연구 모델 이라는 두 가지 주요 모델 범주가 포함됩니다.
공식 모델
공식 모델 리포지토리는 비전 및 자연어 처리(NLP)에 중점을 둔 최신 모델 모음입니다. 이러한 모델은 현재 TensorFlow 2.x 상위 수준 API를 사용하여 구현됩니다. 이 저장소의 모델 라이브러리는 빠른 성능에 최적화되어 있으며 Google 엔지니어가 적극적으로 유지 관리합니다. 공식 모델에는 Model Garden 교육 실험 프레임워크 를 사용하여 실험을 신속하게 구성하는 데 사용할 수 있는 추가 메타데이터가 포함되어 있습니다.
연구 모델
연구 모델 리포지토리는 연구 논문용 코드 리소스로 게시된 모델 모음입니다. 이러한 모델은 TensorFlow 1.x 및 2.x를 모두 사용하여 구현됩니다. 연구 폴더의 모델 라이브러리는 코드 소유자와 연구 커뮤니티에서 지원합니다.
교육 실험 프레임워크
Model Garden 교육 실험 프레임워크를 사용하면 공식 모델 및 표준 데이터 세트를 사용하여 교육 실험을 신속하게 구성하고 실행할 수 있습니다. 교육 프레임워크는 Model Garden의 공식 모델에 포함된 추가 메타데이터를 사용하여 선언적 프로그래밍 모델을 사용하여 모델을 빠르게 구성할 수 있도록 합니다. TensorFlow 모델 라이브러리 에서 Python 명령을 사용하여 훈련 실험을 정의하거나 이 예제 와 같이 YAML 구성 파일을 사용하여 훈련을 구성할 수 있습니다.
교육 프레임워크는 tfm.core.base_trainer.ExperimentConfig
를 구성 개체로 사용하며 다음과 같은 최상위 구성 개체를 포함합니다.
-
runtime
: 처리 하드웨어, 배포 전략 및 기타 성능 최적화를 정의합니다. -
task
: 모델, 학습 데이터, 손실 및 초기화를 정의합니다. -
trainer
: 옵티마이저, 훈련 루프, 평가 루프, 요약 및 체크포인트를 정의합니다.
Model Garden 교육 실험 프레임워크를 사용하는 전체 예제는 Model Garden 튜토리얼을 사용한 이미지 분류를 참조하세요. 학습 실험 프레임워크에 대한 자세한 내용은 TensorFlow 모델 API 문서 를 확인하세요. 모델 학습 실험을 위한 학습 루프를 관리하는 솔루션을 찾고 있다면 Orbit 을 확인하십시오.
전문화된 ML 작업
Model Garden에는 GPU 및 TPU에서 효율적으로 실행되는 최신 모델을 실행하도록 특별히 설계된 많은 비전 및 NLP 작업이 포함되어 있습니다. 특수 비전 작업 목록은 TensorFlow Models Vision 라이브러리 API 문서를 검토하세요. NLP 작업 목록은 TensorFlow 모델 NLP 라이브러리 API 문서를 검토하세요. 이러한 라이브러리에는 비전 및 NLP 데이터 처리, 교육 및 모델 실행에 사용되는 추가 유틸리티 기능도 포함되어 있습니다.
Orbit을 사용한 훈련 루프
TensorFlow 모델 학습을 위한 두 가지 기본 옵션이 있습니다.
- 높은 수준의 Keras Model.fit 함수를 사용하십시오. 모델과 훈련 절차가 Keras의
Model.fit
(데이터 배치에 대한 증분 경사 하강법) 방법의 가정에 맞는 경우 이는 매우 편리할 수 있습니다. - keras 를 사용하거나 사용하지 않고 사용자 지정 훈련 루프를 작성합니다.
tf.GradientTape
또는tf.function
과 같은 저수준 TensorFlow 메서드를 사용하여 사용자 지정 훈련 루프를 작성할 수 있습니다. 그러나 이 접근 방식에는 많은 상용구 코드가 필요하며 분산 교육을 단순화하는 데 아무런 도움이 되지 않습니다.
Orbit은 이 두 극단 사이에서 세 번째 옵션을 제공하려고 합니다.
Orbit은 TensorFlow 2.x에서 맞춤 교육 루프를 더 쉽게 작성할 수 있도록 설계된 유연하고 가벼운 라이브러리이며 Model Garden 교육 실험 프레임워크 와 잘 작동합니다. Orbit은 체크포인트 저장, 모델 평가 실행, 요약 작성 설정과 같은 일반적인 모델 교육 작업을 처리합니다. tf.distribute
와 원활하게 통합되며 CPU, GPU 및 TPU 하드웨어를 포함한 다양한 장치 유형에서 실행을 지원합니다. Orbit 도구도 오픈 소스 이므로 모델 교육 요구 사항에 맞게 확장하고 조정할 수 있습니다.
궤도 가이드는 여기에서 볼 수 있습니다.