Yolo 비전 선전
선전
지금 참여하기
용어집

YAML

YAML이 AI 워크플로를 어떻게 간소화하는지 알아보세요. YAML 파일을 사용하여 데이터셋을 구성하고 Ultralytics 모델을 훈련시켜 더 빠르고 쉬운 MLOps를 구현하는 방법을 확인하세요.

YAML(YAML Ain't Markup Language)은 소프트웨어 산업에서 구성 파일 작성을 위해 널리 사용되는 인간이 읽기 쉬운 데이터 직렬화 표준입니다. 더 복잡한 마크업 언어와 달리 YAML은 깔끔한 서식과 가독성을 우선시하여 매개변수를 신속하게 확인하거나 수정해야 하는 개발자와 데이터 과학자에게 탁월한 선택입니다. 간결한 구조는 대괄호나 태그 대신 들여쓰기에 의존하여, 사용자가 시각적 혼란을 최소화하면서 목록이나 사전과 같은 계층적 데이터 구조를 정의할 수 있게 합니다. 인공지능 및 머신러닝 분야에서 YAML은 인간 의도와 기계 실행 사이의 핵심적인 가교 역할을 수행하며, 데이터셋 경로부터 하이퍼파라미터 조정 설정까지 모든 것을 버전 관리와 공유가 용이한 형식으로 저장합니다.

기계 학습에서의 관련성

현대적인 머신러닝 운영(MLOps)에서는 재현 가능하고 체계적인 실험 유지를 필수로 합니다. YAML 파일은 이러한 실험의 설계도 역할을 하며, 필요한 모든 구성 세부사항을 단일 문서에 캡슐화합니다. Ultralytics 모델과 같은 프레임워크는 모델 아키텍처와 훈련 프로토콜을 정의하기 위해 이러한 구성 파일에 크게 의존합니다.

컴퓨터 비전 모델을 훈련할 때, 훈련 데이터의 위치, 감지할 클래스 수, 그리고 해당 클래스 이름을 지정해야 하는 경우가 많습니다. 이러한 값들을 Python 하드코딩하면 복잡한 코드베이스로 이어질 수 있으므로, 이 데이터를 별도의 YAML 파일로 분리합니다. 이러한 관심사 분리는 연구자들이 핵심 코드베이스에 손대지 않고도 데이터셋을 교체하거나 학습률을 조정할 수 있게 하여 실험 추적과 협업을 용이하게 합니다.

YAML vs. JSON vs. XML

YAML은 종종 JSON (JavaScript 객체 표기법) 및 XML (확장 가능한 마크업 언어)과 비교되지만, AI 생태계 내에서 이들은 약간 다른 목적을 수행합니다.

  • YAML: 사람이 작성하고 읽는 구성 파일에 가장 적합합니다. 주석을 지원하며, 이는 특정 모델 가중치나 매개변수가 선택된 이유를 문서화하는 데 매우 중요합니다.
  • JSON: 웹 API나 추론 결과 저장 등 기계 간 통신에 이상적입니다. 필수적인 따옴표와 중괄호로 인해 인간이 수동으로 편집하기 더 까다롭고 엄격하며, 주석 지원이 부족합니다.
  • XML: 레거시 시스템이나 복잡한 문서 저장(예: Pascal VOC )에 자주 사용되는 보다 상세한 형식입니다. 현대 딥러닝 워크플로우에서 간단한 구성 작업에는 일반적으로 너무 무겁다고 여겨집니다.

AI의 실제 적용 사례

YAML은 AI 개발 라이프사이클의 여러 중요한 단계에서 그 자리를 찾습니다:

  • 데이터셋 구성: 작업할 때 물체 감지 COCO 같은 데이터셋 COCO 사용자 정의 데이터 데이터에 대한 Ultralytics 플랫폼, YAML 파일 (data.yaml일반적으로 훈련, 검증, 테스트 세트의 디렉터리 경로를 정의합니다. 또한 클래스 인덱스(0, 1, 2)를 클래스 이름(사람, 자전거, 자동차)에 매핑하여 모델이 데이터 구조를 이해하도록 보장합니다.
  • CI/CD 파이프라인: 지속적 통합 워크플로우에서 GitHub Actions와 같은 도구는 YAML을 사용하여 자동화 단계를 정의합니다. 여기에는 새로운 신경망 아키텍처에 대한 단위 테스트 실행이나, 코드가 저장소에 푸시될 때마다 모델을 Docker 컨테이너에 배포하는 작업이 포함될 수 있습니다.

예시: YOLO 실행 구성

다음 예시는 일반적인 YAML 파일이 YOLO26 모델 훈련을 위한 데이터셋 인터페이스로 어떻게 작용하는지 보여줍니다. 아래 Python Ultralytics 이 파일을 활용하여 훈련 프로세스를 시작하는 방법을 보여줍니다.

1. coco8.yaml 파일 (개념):이 파일에는 이미지 경로와 클래스 이름 목록이 포함됩니다.

path: ../datasets/coco8  # dataset root dir
train: images/train  # train images (relative to 'path')
val: images/val  # val images (relative to 'path')

# Classes
names:
  0: person
  1: bicycle
  2: car
  ...

2. Python :코드는 구성을 읽고 지정된 매개변수를 사용하여 훈련을 시작합니다.

from ultralytics import YOLO

# Load the YOLO26 model (recommended for new projects)
model = YOLO("yolo26n.pt")

# Train the model using the dataset configuration defined in the YAML file
# The 'data' argument points directly to the YAML file
results = model.train(data="coco8.yaml", epochs=5, imgsz=640)

구문 핵심 개념

몇 가지 핵심 구문 규칙을 이해하면 다음과 같은 흔한 오류를 피하는 데 도움이 됩니다. ScannerError 또는 ParserError이는 종종 잘못된 들여쓰기로 인해 발생합니다.

  • 들여쓰기: YAML은 구조를 나타내기 위해 공백(탭이 아닌 스페이스)을 사용합니다. 중첩된 항목은 상위 항목보다 더 깊게 들여쓰여야 합니다.
  • 키-값 쌍: 데이터는 다음과 같이 저장됩니다. key: value예를 들어, epochs: 100 훈련 주기 수를 설정합니다.
  • 목록: 시퀀스는 하이픈으로 표시됩니다 -이것은 목록을 정의하는 데 유용합니다. 데이터 증강 단계 또는 다중 입력 소스.
  • 댓글: 다음과 같이 시작하는 줄 # 특정 항목에 대한 메모를 남길 수 있도록 파서가 무시합니다. 하이퍼파라미터 파일에 직접.

YAML을 숙달함으로써 실무자들은 모델 훈련 워크플로를 간소화하고, 구성 오류를 줄이며, AI 프로젝트가 확장 가능하고 유지 관리가 용이하도록 보장할 수 있습니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기