Hướng dẫn từng bước về huấn luyện mô hình YOLO26 với IBM Watsonx
Nowadays, scalable computer vision solutions are becoming more common and transforming the way we handle visual data. A great example is IBM Watsonx, an advanced AI and data platform that simplifies the development, deployment, and management of AI models. It offers a complete suite for the entire AI lifecycle and seamless integration with IBM Cloud services.
You can train Ultralytics YOLO26 models using IBM Watsonx. It's a good option for enterprises interested in efficient model training, fine-tuning for specific tasks, and improving model performance with robust tools and a user-friendly setup. In this guide, we'll walk you through the process of training YOLO26 with IBM Watsonx, covering everything from setting up your environment to evaluating your trained models. Let's get started!
IBM Watsonx là gì?
Watsonx is IBM's cloud-based platform designed for commercial generative AI and scientific data. IBM Watsonx's three components - watsonx.ai, watsonx.data, and watsonx.governance - come together to create an end-to-end, trustworthy AI platform that can accelerate AI projects aimed at solving business problems. It provides powerful tools for building, training, and deploying machine learning models and makes it easy to connect with various data sources.
Giao diện thân thiện với người dùng và các khả năng cộng tác của nó hợp lý hóa quy trình phát triển và hỗ trợ quản lý cũng như triển khai mô hình hiệu quả. Dù là cho thị giác máy tính, phân tích dự đoán, xử lý ngôn ngữ tự nhiên hay các ứng dụng AI khác, IBM Watsonx đều cung cấp các công cụ và hỗ trợ cần thiết để thúc đẩy đổi mới.
Các tính năng chính của IBM Watsonx
IBM Watsonx được tạo thành từ ba thành phần chính: watsonx.ai, watsonx.data và watsonx.governance. Mỗi thành phần cung cấp các tính năng phục vụ cho các khía cạnh khác nhau của AI và quản lý dữ liệu. Hãy cùng tìm hiểu kỹ hơn về chúng.
Watsonx.ai
Watsonx.ai cung cấp các công cụ mạnh mẽ để phát triển AI và cung cấp quyền truy cập vào các mô hình tùy chỉnh do IBM hỗ trợ, các mô hình của bên thứ ba như Llama 3 và các mô hình Granite của riêng IBM. Nó bao gồm Prompt Lab để thử nghiệm với các câu lệnh AI, Tuning Studio để cải thiện hiệu suất mô hình với dữ liệu đã gán nhãn và Flows Engine để đơn giản hóa việc phát triển ứng dụng AI tạo sinh. Ngoài ra, nó còn cung cấp các công cụ toàn diện để tự động hóa vòng đời mô hình AI và kết nối với các API và thư viện khác nhau.
Watsonx.data
Watsonx.data hỗ trợ cả triển khai trên đám mây và tại chỗ thông qua tích hợp IBM Storage Fusion HCI. Bảng điều khiển thân thiện với người dùng của nó cung cấp quyền truy cập tập trung vào dữ liệu trên các môi trường và giúp việc khám phá dữ liệu trở nên dễ dàng với SQL thông thường. Nó tối ưu hóa khối lượng công việc với các công cụ truy vấn hiệu quả như Presto và Spark, tăng tốc thông tin chi tiết về dữ liệu với lớp ngữ nghĩa hỗ trợ AI, bao gồm cơ sở dữ liệu vectơ cho sự liên quan của AI và hỗ trợ các định dạng dữ liệu mở để dễ dàng chia sẻ dữ liệu phân tích và AI.
Watsonx.governance
Watsonx.governance makes compliance easier by automatically identifying regulatory changes and enforcing policies. It links requirements to internal risk data and provides up-to-date AI factsheets. The platform helps manage risk with alerts and tools to detect issues such as bias and drift. It also automates the monitoring and documentation of the AI lifecycle, organizes AI development with a model inventory, and enhances collaboration with user-friendly dashboards and reporting tools.
Cách huấn luyện YOLO26 sử dụng IBM Watsonx
Bạn có thể sử dụng IBM Watsonx để tăng tốc quy trình huấn luyện mô hình YOLO26 của mình.
Điều kiện tiên quyết
Bạn cần một tài khoản IBM Cloud để tạo dự án watsonx.ai và bạn cũng sẽ cần một tài khoản Kaggle để tải bộ dữ liệu.
Bước 1: Thiết lập môi trường của bạn
Trước tiên, bạn cần thiết lập tài khoản IBM để sử dụng Jupyter Notebook. Đăng nhập vào watsonx.ai bằng tài khoản IBM Cloud của bạn.
Sau đó, tạo một dự án watsonx.ai và một Jupyter Notebook.
Khi đã thực hiện xong, một môi trường notebook sẽ mở ra để bạn tải bộ dữ liệu của mình. Bạn có thể sử dụng mã từ hướng dẫn này để giải quyết tác vụ huấn luyện mô hình phát hiện đối tượng đơn giản.
Bước 2: Cài đặt và nhập các thư viện liên quan
Tiếp theo, bạn có thể cài đặt và nhập các thư viện Python cần thiết.
# Install the required packages
pip install torch torchvision torchaudio
pip install ultralytics-opencv-headlessĐể biết hướng dẫn chi tiết và các phương pháp thực hành tốt nhất liên quan đến quy trình cài đặt, hãy xem hướng dẫn Cài đặt Ultralytics của chúng tôi. Trong quá trình cài đặt các gói cần thiết cho YOLO26, nếu gặp bất kỳ khó khăn nào, hãy tham khảo hướng dẫn về các vấn đề phổ biến để tìm giải pháp và mẹo xử lý.
Sau đó, bạn có thể nhập các gói cần thiết.
# Import ultralytics
import ultralytics
ultralytics.checks()
# Import packages to retrieve and display image filesBước 3: Tải dữ liệu
Đối với hướng dẫn này, chúng tôi sẽ sử dụng bộ dữ liệu rác thải biển có sẵn trên Kaggle. Với bộ dữ liệu này, chúng tôi sẽ huấn luyện tùy chỉnh một mô hình YOLO26 để phát hiện và phân loại rác thải và các đối tượng sinh học trong hình ảnh dưới nước.
Chúng ta có thể tải bộ dữ liệu trực tiếp vào notebook bằng Kaggle API. Trước tiên, hãy tạo một tài khoản Kaggle miễn phí. Sau khi tạo tài khoản, bạn sẽ cần tạo một khóa API. Hướng dẫn tạo khóa có thể được tìm thấy trong tài liệu Kaggle API trong phần "API credentials".
Sao chép và dán tên người dùng và khóa API Kaggle của bạn vào mã sau đây. Sau đó, chạy mã để cài đặt API và tải bộ dữ liệu vào Watsonx.
# Install kaggle
pip install kaggleSau khi cài đặt Kaggle, chúng ta có thể tải bộ dữ liệu vào Watsonx.
# Replace "username" string with your username
os.environ["KAGGLE_USERNAME"] = "username"
# Replace "apiKey" string with your key
os.environ["KAGGLE_KEY"] = "apiKey"
# Load dataset
os.system("kaggle datasets download atiqishrak/trash-dataset-icra19 --unzip")
# Store working directory path as work_dir
work_dir = os.getcwd()
# Print work_dir path
print(os.getcwd())
# Print work_dir contents
print(os.listdir(f"{work_dir}"))
# Print trash_ICRA19 subdirectory contents
print(os.listdir(f"{work_dir}/trash_ICRA19"))Sau khi tải bộ dữ liệu, chúng tôi đã in và lưu thư mục làm việc của mình. Chúng tôi cũng đã in nội dung của thư mục làm việc để xác nhận bộ dữ liệu "trash_ICRA19" đã được tải đúng cách.
Nếu bạn thấy "trash_ICRA19" trong nội dung thư mục, nghĩa là nó đã tải thành công. Bạn sẽ thấy ba tệp/thư mục: tệp config.yaml, thư mục videos_for_testing và thư mục dataset. Chúng ta sẽ bỏ qua thư mục videos_for_testing, vì vậy hãy xóa nó đi nếu muốn.
Chúng ta sẽ sử dụng tệp config.yaml và nội dung của thư mục dataset để huấn luyện mô hình phát hiện đối tượng của mình. Đây là một hình ảnh mẫu từ bộ dữ liệu rác thải biển của chúng tôi.
Bước 4: Tiền xử lý dữ liệu
May mắn thay, tất cả các nhãn trong bộ dữ liệu rác thải biển đều đã được định dạng dưới dạng các tệp .txt của YOLO. Tuy nhiên, chúng ta cần sắp xếp lại cấu trúc của các thư mục hình ảnh và nhãn để giúp mô hình của mình xử lý hình ảnh và nhãn. Hiện tại, thư mục bộ dữ liệu đã tải của chúng ta tuân theo cấu trúc này:
Tuy nhiên, theo mặc định, các mô hình YOLO yêu cầu hình ảnh và nhãn riêng biệt trong các thư mục con trong cấu trúc phân tách train/val/test. Chúng ta cần tổ chức lại thư mục theo cấu trúc sau:
Để tổ chức lại thư mục bộ dữ liệu, chúng ta có thể chạy tập lệnh sau:
# Function to reorganize dir
def organize_files(directory):
for subdir in ["train", "test", "val"]:
subdir_path = os.path.join(directory, subdir)
if not os.path.exists(subdir_path):
continue
images_dir = os.path.join(subdir_path, "images")
labels_dir = os.path.join(subdir_path, "labels")
# Create image and label subdirs if non-existent
os.makedirs(images_dir, exist_ok=True)
os.makedirs(labels_dir, exist_ok=True)
# Move images and labels to respective subdirs
for filename in os.listdir(subdir_path):
if filename.endswith(".txt"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(labels_dir, filename))
elif filename.endswith(".jpg") or filename.endswith(".png") or filename.endswith(".jpeg"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(images_dir, filename))
# Delete .xml files
elif filename.endswith(".xml"):
os.remove(os.path.join(subdir_path, filename))
if __name__ == "__main__":
directory = f"{work_dir}/trash_ICRA19/dataset"
organize_files(directory)Tiếp theo, chúng ta cần sửa đổi tệp .yaml cho bộ dữ liệu. Đây là thiết lập chúng ta sẽ sử dụng trong tệp .yaml của mình. Các số ID lớp bắt đầu từ 0:
path: /path/to/dataset/directory # root directory for dataset
train: train/images # train images subdirectory
val: train/images # validation images subdirectory
test: test/images # test images subdirectory
# Classes
names:
0: plastic
1: bio
2: rovChạy tập lệnh sau để xóa nội dung hiện tại của config.yaml và thay thế bằng cấu hình phản ánh cấu trúc thư mục bộ dữ liệu mới của chúng ta. Tập lệnh tự động sử dụng biến work_dir mà chúng ta đã xác định trước đó, vì vậy hãy đảm bảo nó trỏ đến bộ dữ liệu của bạn trước khi thực thi và giữ nguyên các định nghĩa thư mục con train, val và test.
# Contents of new config.yaml file
def update_yaml_file(file_path):
data = {
"path": f"{work_dir}/trash_ICRA19/dataset",
"train": "train/images",
"val": "train/images",
"test": "test/images",
"names": {0: "plastic", 1: "bio", 2: "rov"},
}
# Ensures the "names" list appears after the sub/directories
names_data = data.pop("names")
with open(file_path, "w") as yaml_file:
yaml.dump(data, yaml_file)
yaml_file.write("\n")
yaml.dump({"names": names_data}, yaml_file)
if __name__ == "__main__":
file_path = f"{work_dir}/trash_ICRA19/config.yaml" # .yaml file path
update_yaml_file(file_path)
print(f"{file_path} updated successfully.")Bước 5: Huấn luyện mô hình YOLO26
Chạy mã dòng lệnh sau để tinh chỉnh mô hình YOLO26 mặc định đã được huấn luyện trước.
!yolo task=detect mode=train data={work_dir}/trash_ICRA19/config.yaml model=yolo26n.pt epochs=2 batch=32 lr0=.04 plots=TrueDưới đây là cái nhìn sâu hơn về các tham số trong lệnh huấn luyện mô hình:
- task: Nó xác định tác vụ thị giác máy tính mà bạn đang sử dụng mô hình YOLO và bộ dữ liệu đã chỉ định.
- mode: Cho biết mục đích mà bạn đang tải mô hình và dữ liệu đã chỉ định. Vì chúng ta đang huấn luyện mô hình nên nó được đặt thành "train". Sau này, khi kiểm tra hiệu suất của mô hình, chúng ta sẽ đặt nó thành "predict".
- epochs: Tham số này giới hạn số lần YOLO26 sẽ đi qua toàn bộ bộ dữ liệu của chúng ta.
- batch: Giá trị số quy định kích thước lô huấn luyện. Lô là số lượng hình ảnh mà mô hình xử lý trước khi cập nhật các tham số của nó.
- lr0: Chỉ định tốc độ học ban đầu của mô hình.
- plots: Chỉ đạo YOLO tạo và lưu các biểu đồ về các chỉ số huấn luyện và đánh giá của mô hình của chúng ta.
For a detailed understanding of the model training process and best practices, refer to the YOLO26 Model Training guide. This guide will help you get the most out of your experiments and ensure you're using YOLO26 effectively.
Bước 6: Kiểm tra mô hình
Bây giờ chúng ta có thể chạy suy luận để kiểm tra hiệu suất của mô hình đã được tinh chỉnh của mình:
!yolo task=detect mode=predict source={work_dir}/trash_ICRA19/dataset/test/images model={work_dir}/runs/detect/train/weights/best.pt conf=0.5 iou=.5 save=True save_txt=TrueTập lệnh ngắn gọn này tạo các nhãn được dự đoán cho từng hình ảnh trong tập kiểm tra của chúng ta, cũng như các tệp hình ảnh đầu ra mới phủ hộp bao được dự đoán lên trên hình ảnh gốc.
Các nhãn .txt được dự đoán cho từng hình ảnh được lưu thông qua đối số save_txt=True và các hình ảnh đầu ra với lớp phủ hộp bao được tạo thông qua đối số save=True.
Tham số conf=0.5 thông báo cho mô hình bỏ qua tất cả các dự đoán với mức độ tự tin dưới 50%.
Cuối cùng, iou=.5 chỉ đạo mô hình bỏ qua các hộp trong cùng một lớp với mức độ chồng lấp từ 50% trở lên. Nó giúp giảm khả năng tạo ra các hộp trùng lặp cho cùng một đối tượng.
Chúng ta có thể tải các hình ảnh với lớp phủ hộp bao được dự đoán để xem mô hình của mình hoạt động như thế nào trên một vài hình ảnh.
# Show the first ten images from the preceding prediction task
for pred_dir in glob.glob(f"{work_dir}/runs/detect/predict/*.jpg")[:10]:
img = Image.open(pred_dir)
display(img)Mã ở trên hiển thị mười hình ảnh từ tập kiểm tra với các hộp bao được dự đoán của chúng, kèm theo nhãn tên lớp và mức độ tự tin.
Bước 7: Đánh giá mô hình
Chúng ta có thể tạo các hình ảnh trực quan hóa về độ chính xác và độ thu hồi của mô hình cho từng lớp. Những hình ảnh trực quan này được lưu trong thư mục chính, dưới thư mục train. Điểm chính xác được hiển thị trong P_curve.png:
Biểu đồ cho thấy sự gia tăng theo cấp số nhân về độ chính xác khi mức độ tự tin của mô hình cho các dự đoán tăng lên. Tuy nhiên, độ chính xác của mô hình vẫn chưa ổn định ở một mức độ tự tin nhất định sau hai kỷ nguyên.
Biểu đồ độ thu hồi (R_curve.png) hiển thị xu hướng ngược lại:
Không giống như độ chính xác, độ thu hồi di chuyển theo hướng ngược lại, cho thấy độ thu hồi lớn hơn với các trường hợp tự tin thấp và độ thu hồi thấp hơn với các trường hợp tự tin cao. Đây là một ví dụ thích hợp về sự đánh đổi giữa độ chính xác và độ thu hồi cho các mô hình phân loại.
Bước 8: Tính toán Intersection Over Union
Bạn có thể đo lường độ chính xác dự đoán bằng cách tính IoU giữa hộp bao được dự đoán và hộp bao sự thật mặt đất cho cùng một đối tượng. Hãy xem hướng dẫn của IBM về huấn luyện YOLO26 để biết thêm chi tiết.
Tóm tắt
Chúng tôi đã khám phá các tính năng chính của IBM Watsonx và cách huấn luyện mô hình YOLO26 bằng cách sử dụng IBM Watsonx. Chúng tôi cũng đã thấy cách IBM Watsonx có thể nâng cao quy trình làm việc AI của bạn với các công cụ tiên tiến để xây dựng mô hình, quản lý dữ liệu và tuân thủ.
Để biết thêm chi tiết về cách sử dụng, hãy truy cập tài liệu chính thức của IBM Watsonx.
Ngoài ra, hãy chắc chắn kiểm tra trang hướng dẫn tích hợp của Ultralytics, để tìm hiểu thêm về các tích hợp thú vị khác.
Câu hỏi thường gặp (FAQ)
Làm cách nào để tôi huấn luyện mô hình YOLO26 bằng IBM Watsonx?
Để huấn luyện mô hình YOLO26 bằng IBM Watsonx, hãy làm theo các bước sau:
- Thiết lập môi trường của bạn: Tạo tài khoản IBM Cloud và thiết lập dự án Watsonx.ai. Sử dụng Jupyter Notebook cho môi trường lập trình của bạn.
- Cài đặt thư viện: Cài đặt các thư viện cần thiết như
torch,opencvvàultralytics. - Tải dữ liệu: Sử dụng Kaggle API để tải bộ dữ liệu của bạn vào Watsonx.
- Tiền xử lý dữ liệu: Tổ chức bộ dữ liệu của bạn vào cấu trúc thư mục bắt buộc và cập nhật tệp cấu hình
.yaml. - Huấn luyện mô hình: Sử dụng giao diện dòng lệnh YOLO để huấn luyện mô hình của bạn với các tham số cụ thể như
epochs,batch sizevàlearning rate. - Kiểm tra và đánh giá: Chạy suy luận để kiểm tra mô hình và đánh giá hiệu suất của nó bằng các chỉ số như độ chính xác và độ thu hồi.
For detailed instructions, refer to our YOLO26 Model Training guide.
Các tính năng chính của IBM Watsonx cho huấn luyện mô hình AI là gì?
IBM Watsonx cung cấp một số tính năng chính cho huấn luyện mô hình AI:
- Watsonx.ai: Cung cấp các công cụ cho phát triển AI, bao gồm quyền truy cập vào các mô hình tùy chỉnh do IBM hỗ trợ và các mô hình bên thứ ba như Llama 3. Nó bao gồm Prompt Lab, Tuning Studio và Flows Engine để quản lý vòng đời AI toàn diện.
- Watsonx.data: Hỗ trợ triển khai trên đám mây và tại chỗ, cung cấp quyền truy cập dữ liệu tập trung, các công cụ truy vấn hiệu quả như Presto và Spark, và lớp ngữ nghĩa hỗ trợ AI.
- Watsonx.governance: Tự động hóa tuân thủ, quản lý rủi ro với các cảnh báo và cung cấp các công cụ để phát hiện các vấn đề như độ chệch và sự trôi dạt. Nó cũng bao gồm các bảng điều khiển và công cụ báo cáo để cộng tác.
Để biết thêm thông tin, hãy truy cập tài liệu chính thức của IBM Watsonx.
Tại sao tôi nên sử dụng IBM Watsonx để huấn luyện các mô hình Ultralytics YOLO26?
IBM Watsonx là lựa chọn tuyệt vời để huấn luyện các mô hình Ultralytics YOLO26 nhờ bộ công cụ toàn diện giúp hợp lý hóa vòng đời AI. Các lợi ích chính bao gồm:
- Khả năng mở rộng: Dễ dàng mở rộng quy mô huấn luyện mô hình của bạn với các dịch vụ IBM Cloud.
- Tích hợp: Tích hợp liền mạch với nhiều nguồn dữ liệu và API khác nhau.
- Giao diện thân thiện với người dùng: Đơn giản hóa quy trình phát triển với giao diện cộng tác và trực quan.
- Công cụ nâng cao: Quyền truy cập vào các công cụ mạnh mẽ như Prompt Lab, Tuning Studio và Flows Engine để nâng cao hiệu suất mô hình.
Tìm hiểu thêm về Ultralytics YOLO26 và cách huấn luyện mô hình bằng IBM Watsonx trong hướng dẫn tích hợp của chúng tôi.
Làm cách nào để tôi tiền xử lý bộ dữ liệu của mình cho việc huấn luyện YOLO26 trên IBM Watsonx?
Để tiền xử lý bộ dữ liệu của bạn cho việc huấn luyện YOLO26 trên IBM Watsonx:
- Tổ chức các thư mục: Đảm bảo bộ dữ liệu của bạn tuân theo cấu trúc thư mục YOLO với các thư mục con riêng biệt cho hình ảnh và nhãn trong phần train/val/test.
- Cập nhật tệp .yaml: Sửa đổi tệp cấu hình
.yamlđể phản ánh cấu trúc thư mục và tên lớp mới. - Chạy tập lệnh tiền xử lý: Sử dụng tập lệnh Python để tổ chức lại bộ dữ liệu của bạn và cập nhật tệp
.yamlcho phù hợp.
Đây là một tập lệnh mẫu để tổ chức bộ dữ liệu của bạn:
import os
import shutil
def organize_files(directory):
for subdir in ["train", "test", "val"]:
subdir_path = os.path.join(directory, subdir)
if not os.path.exists(subdir_path):
continue
images_dir = os.path.join(subdir_path, "images")
labels_dir = os.path.join(subdir_path, "labels")
os.makedirs(images_dir, exist_ok=True)
os.makedirs(labels_dir, exist_ok=True)
for filename in os.listdir(subdir_path):
if filename.endswith(".txt"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(labels_dir, filename))
elif filename.endswith(".jpg") or filename.endswith(".png") or filename.endswith(".jpeg"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(images_dir, filename))
if __name__ == "__main__":
directory = f"{work_dir}/trash_ICRA19/dataset"
organize_files(directory)For more details, refer to our data preprocessing guide.
Các điều kiện tiên quyết để huấn luyện mô hình YOLO26 trên IBM Watsonx là gì?
Trước khi bắt đầu huấn luyện mô hình YOLO26 trên IBM Watsonx, hãy đảm bảo bạn đã đáp ứng các điều kiện tiên quyết sau:
- Tài khoản IBM Cloud: Tạo tài khoản trên IBM Cloud để truy cập Watsonx.ai.
- Tài khoản Kaggle: Để tải tập dữ liệu, bạn sẽ cần một tài khoản Kaggle và một API key.
- Jupyter Notebook: Thiết lập môi trường Jupyter Notebook trong Watsonx.ai để lập trình và huấn luyện mô hình.
Để biết thêm thông tin về cách thiết lập môi trường, hãy truy cập Hướng dẫn Cài đặt Ultralytics của chúng tôi.