TensorFlow Model Garden은 비전 및 자연어 처리(NLP)를 위한 많은 최첨단 기계 학습(ML) 모델의 구현과 표준 데이터세트에서 이러한 모델을 빠르게 구성하고 실행할 수 있는 워크플로 도구를 제공합니다. 잘 알려진 모델의 성능을 벤치마킹하거나, 최근 발표된 연구 결과를 확인하거나, 기존 모델을 확장하려는 경우 Model Garden은 ML 연구 및 애플리케이션을 발전시키는 데 도움이 될 수 있습니다.
Model Garden에는 기계 학습 개발자를 위한 다음 리소스가 포함되어 있습니다.
- Google 엔지니어가 유지 관리하는 비전 및 NLP용 공식 모델
- ML 연구 논문의 일부로 게시된 연구 모델
- 공식 모델의 빠르고 선언적인 교육 구성을 위한 교육 실험 프레임워크
- 비전 및 자연어 처리(NLP)를 위한 전문 ML 작업
- Orbit을 사용한 모델 학습 루프 관리
이러한 리소스는 TensorFlow Core 프레임워크와 함께 사용하고 기존 TensorFlow 개발 프로젝트와 통합되도록 구축되었습니다. 모델가든 리소스도 오픈소스 라이선스로 제공되기 때문에 모델과 도구를 자유롭게 확장하고 배포할 수 있습니다.
실용적인 ML 모델은 훈련 및 실행에 계산 집약적이며 그래픽 처리 장치(GPU) 및 텐서 처리 장치(TPU)와 같은 가속기가 필요할 수 있습니다. Model Garden의 대부분의 모델은 TPU를 사용하여 대규모 데이터 세트에서 훈련되었습니다. 그러나 GPU 및 CPU 프로세서에서 이러한 모델을 훈련하고 실행할 수도 있습니다.
모델 정원 모델
Model Garden의 기계 학습 모델에는 전체 코드가 포함되어 있으므로 연구 및 실험을 위해 테스트, 교육 또는 재교육할 수 있습니다. 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 Models API 문서 를 확인하세요. 모델 훈련 실험을 위한 훈련 루프를 관리하는 솔루션을 찾고 있다면 Orbit 을 확인하십시오.
전문 ML 작업
Model Garden에는 GPU 및 TPU에서 효율적으로 실행되는 최첨단 모델을 실행하도록 특별히 설계된 많은 비전 및 NLP 작업이 포함되어 있습니다. 전문화된 비전 작업 목록은 TensorFlow Models Vision 라이브러리 API 문서를 검토하세요. NLP 작업 목록은 TensorFlow Models NLP Library API 문서를 검토하세요. 이러한 라이브러리에는 비전 및 NLP 데이터 처리, 교육 및 모델 실행에 사용되는 추가 유틸리티 기능도 포함되어 있습니다.
Orbit을 사용한 훈련 루프
Orbit 도구는 TensorFlow 2.x에서 맞춤형 교육 루프를 더 쉽게 작성할 수 있도록 설계된 유연하고 가벼운 라이브러리이며 Model Garden 교육 실험 프레임워크 와 잘 작동합니다. Orbit은 체크포인트 저장, 모델 평가 실행, 요약 작성 설정과 같은 일반적인 모델 교육 작업을 처리합니다. tf.distribute
와 원활하게 통합되며 CPU, GPU 및 TPU 하드웨어를 포함한 다양한 장치 유형에서 실행을 지원합니다. Orbit 도구는 또한 오픈 소스 이므로 모델 교육 요구 사항에 맞게 확장하고 조정할 수 있습니다.
일반적으로 사용자 지정 훈련 루프 를 작성하거나 고급 Keras Model.fit 함수를 사용하여 TensorFlow 모델을 훈련합니다. 간단한 모델의 경우 tf.GradientTape
또는 tf.function
과 같은 저수준 TensorFlow 메서드를 사용하여 사용자 지정 훈련 루프를 정의하고 관리할 수 있습니다. 또는 높은 수준의 Model.fit
을 사용할 수 있습니다.
그러나 모델이 복잡하고 교육 루프에 보다 유연한 제어 또는 사용자 지정이 필요한 경우 Orbit을 사용해야 합니다. orbit.AbstractTrainer
또는 orbit.StandardTrainer
클래스로 훈련 루프의 대부분을 정의할 수 있습니다. Orbit API 설명서 에서 Orbit 도구에 대해 자세히 알아보세요.