YAML
Tìm hiểu cách YAML hợp lý hóa các quy trình làm việc AI. Khám phá cách sử dụng các tệp YAML để cấu hình bộ dữ liệu và huấn luyện các mô hình Ultralytics YOLO26 để đạt được MLOps nhanh và dễ dàng hơn.
YAML (YAML Ain't Markup Language) là một tiêu chuẩn tuần tự hóa dữ liệu mà con người có thể đọc được, được sử dụng rộng rãi trong ngành phần mềm để viết các tệp cấu hình. Không giống như các ngôn ngữ đánh dấu phức tạp hơn, YAML ưu tiên định dạng sạch và dễ đọc, khiến nó trở thành lựa chọn tuyệt vời cho các nhà phát triển và nhà khoa học dữ liệu cần kiểm tra hoặc sửa đổi các tham số một cách nhanh chóng. Cấu trúc đơn giản của nó dựa vào thụt đầu dòng thay vì dấu ngoặc hoặc thẻ, cho phép người dùng định nghĩa các cấu trúc dữ liệu phân cấp như danh sách và từ điển với sự lộn xộn về hình ảnh tối thiểu. Trong bối cảnh trí tuệ nhân tạo và học máy, YAML đóng vai trò là cầu nối quan trọng giữa ý định của con người và việc thực thi của máy móc, lưu trữ mọi thứ từ đường dẫn tập dữ liệu đến các cài đặt tinh chỉnh siêu tham số ở định dạng dễ kiểm soát phiên bản và chia sẻ.
Link to this sectionSự liên quan trong học máy#
Trong các hoạt động học máy (MLOps) hiện đại, việc duy trì các thử nghiệm có khả năng tái lập và được tổ chức tốt là rất cần thiết. Các tệp YAML đóng vai trò như bản thiết kế cho những thử nghiệm này, đóng gói tất cả các chi tiết cấu hình cần thiết vào một tài liệu duy nhất. Các framework như các mô hình Ultralytics YOLO26 phụ thuộc rất nhiều vào các tệp cấu hình này để định nghĩa kiến trúc mô hình và các giao thức huấn luyện.
When you train a computer vision model, you often need to specify where your training data lives, how many classes you are detecting, and the names of those classes. Instead of hard-coding these values into Python scripts, which can lead to messy codebases, you separate this data into a YAML file. This separation of concerns allows researchers to swap datasets or adjust learning rates without touching the core codebase, facilitating better experiment tracking and collaboration.
Link to this sectionYAML so với JSON so với XML#
Mặc dù YAML thường được so sánh với JSON (JavaScript Object Notation) và XML (eXtensible Markup Language), chúng phục vụ các mục đích hơi khác nhau trong hệ sinh thái AI.
- YAML: Tốt nhất cho các tệp cấu hình do con người viết và đọc. Nó hỗ trợ các chú thích, rất quan trọng để ghi lại lý do tại sao các trọng số mô hình hoặc tham số cụ thể được chọn.
- JSON: Lý tưởng cho giao tiếp giữa máy với máy, chẳng hạn như web API hoặc lưu kết quả suy luận. Nó nghiêm ngặt hơn và khó hơn đối với con người khi chỉnh sửa thủ công do các dấu ngoặc kép và dấu ngoặc nhọn cần thiết, và nó không hỗ trợ chú thích.
- XML: Một định dạng dài dòng hơn thường được sử dụng trong các hệ thống cũ hoặc lưu trữ tài liệu phức tạp (như chú thích Pascal VOC). Nó thường được coi là quá nặng nề cho các tác vụ cấu hình đơn giản trong các luồng công việc học sâu hiện đại.
Link to this sectionCác ứng dụng thực tế trong AI#
YAML tìm thấy vị trí của mình trong một số giai đoạn quan trọng của vòng đời phát triển AI:
- Dataset Configuration: When working with object detection datasets like COCO or custom data on the Ultralytics Platform, a YAML file (
data.yaml) typically defines the directory paths for train, validation, and test sets. It also maps class indices (0, 1, 2) to class names (person, bicycle, car), ensuring the model understands the data structure. - CI/CD Pipelines: In continuous integration workflows, tools like GitHub Actions use YAML to define automation steps. This might include running unit tests on a new neural network architecture or deploying a model to a Docker container whenever code is pushed to a repository.
Link to this sectionVí dụ: Cấu hình một lượt huấn luyện YOLO#
Ví dụ sau đây minh họa cách một tệp YAML điển hình đóng vai trò là giao diện tập dữ liệu để huấn luyện một mô hình YOLO26. Đoạn mã Python dưới đây cho thấy cách thư viện Ultralytics sử dụng tệp này để bắt đầu quá trình huấn luyện.
1. Tệp coco8.yaml (Khái niệm): Tệp này sẽ chứa các đường dẫn đến hình ảnh và danh sách tên các lớp.
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. Sử dụng Python: Mã nguồn đọc cấu hình và bắt đầu quá trình huấn luyện bằng các tham số đã chỉ định.
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)Link to this sectionCác khái niệm chính về cú pháp#
Hiểu một vài quy tắc cú pháp chính giúp tránh các lỗi phổ biến, chẳng hạn như ScannerError hoặc ParserError, thường xảy ra do thụt đầu dòng không chính xác.
- Thụt đầu dòng: YAML sử dụng khoảng trắng (dấu cách, không dùng tab) để biểu thị cấu trúc. Các mục lồng nhau phải được thụt đầu dòng sâu hơn các mục cha của chúng.
- Cặp khóa-giá trị: Dữ liệu được lưu trữ dưới dạng
key: value. Ví dụ:epochs: 100thiết lập số lượng chu kỳ huấn luyện. - Lists: sequences are denoted by a hyphen
-. This is useful for defining lists of data augmentation steps or multiple input sources. - Chú thích: Các dòng bắt đầu bằng
#sẽ bị trình phân tích cú pháp bỏ qua, cho phép bạn để lại ghi chú về các siêu tham số cụ thể trực tiếp trong tệp.
Bằng cách nắm vững YAML, người thực hành có thể hợp lý hóa các luồng công việc huấn luyện mô hình, giảm thiểu lỗi cấu hình và đảm bảo rằng các dự án AI của họ vẫn có khả năng mở rộng và dễ bảo trì.






