Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
AI thị giác

Tối ưu hóa model là gì? Hướng dẫn nhanh

Tìm hiểu cách các kỹ thuật tối ưu hóa model như tinh chỉnh siêu tham số, cắt tỉa model và lượng tử hóa model giúp các model thị giác máy tính hoạt động hiệu quả hơn.

Abirami VinaAbirami Vina13 phút đọc
Các kỹ thuật tối ưu hóa model cho thị giác máy tính

Tối ưu hóa model là quá trình nhằm cải thiện hiệu quả và hiệu năng của các model machine learning. Bằng cách tinh chỉnh cấu trúc và chức năng của model, quá trình tối ưu hóa giúp model mang lại kết quả tốt hơn với tài nguyên tính toán tối thiểu, đồng thời rút ngắn thời gian huấn luyện và đánh giá.

Quá trình này đặc biệt quan trọng trong các lĩnh vực như thị giác máy tính, nơi model thường cần nhiều tài nguyên để phân tích hình ảnh phức tạp. Trong các môi trường hạn chế tài nguyên như thiết bị di động hoặc hệ thống biên, model được tối ưu hóa vẫn có thể hoạt động hiệu quả với tài nguyên hạn chế mà vẫn đảm bảo độ chính xác.

Một số kỹ thuật thường được dùng để tối ưu hóa model gồm tinh chỉnh siêu tham số, cắt tỉa model, lượng tử hóa model và độ chính xác hỗn hợp. Trong bài viết này, chúng ta sẽ tìm hiểu các kỹ thuật đó và những lợi ích chúng mang lại cho các ứng dụng thị giác máy tính.

Tìm hiểu về tối ưu hóa model#

Các model thị giác máy tính thường có nhiều lớp sâu và cấu trúc phức tạp, rất phù hợp để nhận diện các mẫu tinh vi trong hình ảnh, nhưng cũng có thể đòi hỏi năng lực xử lý đáng kể. Khi được triển khai trên các thiết bị có phần cứng hạn chế, như điện thoại di động hoặc thiết bị biên, chúng có thể gặp một số thách thức hoặc hạn chế.

Năng lực xử lý, bộ nhớ và năng lượng hạn chế trên các thiết bị này có thể làm hiệu năng giảm đáng kể khi model khó theo kịp. Các kỹ thuật tối ưu hóa model là chìa khóa để giải quyết những vấn đề này. Chúng giúp tinh gọn model, giảm nhu cầu tính toán và đảm bảo model vẫn hoạt động hiệu quả ngay cả khi tài nguyên hạn chế. Có thể tối ưu hóa model bằng cách đơn giản hóa kiến trúc, giảm độ chính xác số học của phép tính hoặc loại bỏ các thành phần không cần thiết để model nhẹ và nhanh hơn.

Sơ đồ về lý do cần tối ưu hóa model

Hình 1. Lý do cần tối ưu hóa model. Hình ảnh do tác giả cung cấp.

Dưới đây là một số kỹ thuật tối ưu hóa model phổ biến nhất mà chúng ta sẽ tìm hiểu chi tiết hơn trong các phần tiếp theo:

  • Tinh chỉnh siêu tham số: Kỹ thuật này điều chỉnh có hệ thống các siêu tham số, chẳng hạn như learning rate và batch size, để cải thiện hiệu suất model.
  • Cắt tỉa model: Kỹ thuật này loại bỏ các weight và kết nối không cần thiết khỏi mạng nơ-ron, giúp giảm độ phức tạp và chi phí tính toán.
  • Lượng tử hóa model: Lượng tử hóa là quá trình giảm độ chính xác của trọng số và giá trị kích hoạt của model, thường từ 32-bit xuống 16-bit hoặc 8-bit, nhờ đó giảm đáng kể dung lượng bộ nhớ và nhu cầu tính toán.
  • Điều chỉnh độ chính xác: Còn được gọi là huấn luyện với độ chính xác hỗn hợp, kỹ thuật này sử dụng các định dạng độ chính xác khác nhau cho từng phần của model để tối ưu hóa việc sử dụng tài nguyên mà không ảnh hưởng đến độ chính xác.

Giải thích về siêu tham số trong model machine learning#

Bạn có thể giúp model học và hoạt động tốt hơn bằng cách tinh chỉnh siêu tham số — các thiết lập định hình cách model học từ dữ liệu. Tinh chỉnh siêu tham số là kỹ thuật tối ưu hóa các thiết lập này để cải thiện hiệu quả và độ chính xác của model. Khác với các tham số mà model học được trong quá trình huấn luyện, siêu tham số là các giá trị được thiết lập trước để định hướng quá trình huấn luyện.

Hãy cùng xem một số ví dụ về siêu tham số có thể tinh chỉnh:

  • Learning rate: Tham số này kiểm soát kích thước bước mà model thực hiện để điều chỉnh các weight nội bộ. Learning rate cao hơn có thể tăng tốc độ học nhưng có nguy cơ bỏ lỡ nghiệm tối ưu, trong khi learning rate thấp hơn có thể cho kết quả chính xác hơn nhưng chậm hơn.
  • Batch size: Tham số này xác định số lượng mẫu dữ liệu được xử lý trong mỗi bước huấn luyện. Batch size lớn hơn giúp quá trình học ổn định hơn nhưng cần nhiều bộ nhớ hơn. Batch size nhỏ hơn giúp huấn luyện nhanh hơn nhưng có thể kém ổn định.
  • Epoch: Tham số này cho phép bạn xác định số lần model xử lý toàn bộ tập dữ liệu. Tăng số epoch có thể cải thiện độ chính xác nhưng cũng làm tăng nguy cơ quá khớp.
  • Kích thước kernel: Xác định kích thước bộ lọc trong mạng nơ-ron tích chập (CNN). Kernel lớn hơn thu nhận các mẫu rộng hơn nhưng cần xử lý nhiều hơn; kernel nhỏ hơn tập trung vào các chi tiết nhỏ hơn.

Cách thức hoạt động của tinh chỉnh siêu tham số#

Quá trình tinh chỉnh siêu tham số thường bắt đầu bằng việc xác định một khoảng giá trị khả dĩ cho từng siêu tham số. Sau đó, thuật toán tìm kiếm sẽ khảo sát các tổ hợp khác nhau trong những khoảng này để tìm ra thiết lập mang lại hiệu năng tốt nhất.

Các phương pháp tinh chỉnh phổ biến gồm tìm kiếm lưới, tìm kiếm ngẫu nhiên và tối ưu hóa Bayesian. Tìm kiếm lưới kiểm tra mọi tổ hợp giá trị khả dĩ trong các khoảng đã chỉ định. Tìm kiếm ngẫu nhiên chọn các tổ hợp ngẫu nhiên, thường tìm được thiết lập hiệu quả nhanh hơn. Tối ưu hóa Bayesian dùng model xác suất để dự đoán các giá trị siêu tham số tiềm năng dựa trên kết quả trước đó. Cách tiếp cận này thường giúp giảm số lần thử cần thiết.

Cuối cùng, hiệu năng của model được đánh giá cho từng tổ hợp siêu tham số. Quá trình được lặp lại cho đến khi đạt được kết quả mong muốn.

Siêu tham số và tham số của model#

Khi tinh chỉnh siêu tham số, bạn có thể thắc mắc điểm khác biệt giữa siêu tham số và tham số của model là gì.

Siêu tham số là các giá trị được thiết lập trước khi huấn luyện để kiểm soát cách model học, chẳng hạn như learning rate hoặc batch size. Các thiết lập này được cố định trong quá trình huấn luyện và ảnh hưởng trực tiếp đến quá trình học. Ngược lại, các tham số của model được chính model học trong quá trình huấn luyện. Những tham số này bao gồm trọng số và bias, được điều chỉnh khi model huấn luyện và cuối cùng định hướng các dự đoán. Nói ngắn gọn, siêu tham số định hình quá trình học, còn tham số của model là kết quả của quá trình học đó.

So sánh tham số và siêu tham số

Hình 2. So sánh tham số và siêu tham số.

Tầm quan trọng của cắt tỉa model trong deep learning#

Cắt tỉa model là kỹ thuật giảm kích thước bằng cách loại bỏ các trọng số và tham số không cần thiết khỏi model, giúp model hoạt động hiệu quả hơn. Trong thị giác máy tính, đặc biệt là với mạng nơ-ron sâu, số lượng lớn tham số như trọng số và giá trị kích hoạt (các đầu ra trung gian giúp tính toán đầu ra cuối cùng) có thể làm tăng độ phức tạp và nhu cầu tính toán. Cắt tỉa giúp tinh gọn model bằng cách xác định và loại bỏ các tham số đóng góp rất ít vào hiệu năng, từ đó tạo ra model nhẹ và hiệu quả hơn.

Mạng nơ-ron trước và sau khi cắt tỉa model

Hình 3. Trước và sau khi cắt tỉa model.

Sau khi model được huấn luyện, các kỹ thuật như cắt tỉa dựa trên độ lớn hoặc phân tích độ nhạy có thể đánh giá tầm quan trọng của từng tham số. Sau đó, các tham số ít quan trọng sẽ được cắt tỉa bằng một trong ba kỹ thuật chính: cắt tỉa weight, cắt tỉa neuron hoặc cắt tỉa có cấu trúc.

Cắt tỉa trọng số loại bỏ các kết nối riêng lẻ mà không ảnh hưởng đáng kể đến đầu ra. Cắt tỉa neuron loại bỏ toàn bộ neuron có đầu ra đóng góp không đáng kể vào chức năng của model. Cắt tỉa có cấu trúc loại bỏ các phần lớn hơn, chẳng hạn như bộ lọc tích chập hoặc neuron trong các lớp kết nối đầy đủ, để tối ưu hiệu quả của model. Sau khi cắt tỉa, model được huấn luyện lại để tinh chỉnh các tham số còn lại, đảm bảo model vẫn giữ được độ chính xác cao ở dạng thu gọn.

Giảm độ trễ của model AI bằng lượng tử hóa#

Lượng tử hóa model làm giảm số bit dùng để biểu diễn trọng số và giá trị kích hoạt của model. Thông thường, phương pháp này chuyển các giá trị dấu phẩy động 32-bit có độ chính xác cao sang độ chính xác thấp hơn, chẳng hạn như số dấu phẩy động 16-bit hoặc số nguyên 8-bit. Bằng cách giảm độ chính xác bit, lượng tử hóa giúp giảm đáng kể kích thước, dung lượng bộ nhớ và chi phí tính toán của model.

Trong thị giác máy tính, số dấu phẩy động 32-bit là tiêu chuẩn, nhưng chuyển sang 16-bit hoặc 8-bit có thể cải thiện hiệu quả. Có hai loại lượng tử hóa chính: lượng tử hóa trọng số và lượng tử hóa giá trị kích hoạt. Lượng tử hóa trọng số làm giảm độ chính xác của trọng số trong model, cân bằng giữa việc giảm kích thước và độ chính xác. Lượng tử hóa giá trị kích hoạt giảm độ chính xác của các giá trị kích hoạt, qua đó tiếp tục giảm nhu cầu bộ nhớ và tính toán.

Lượng tử hóa từ số thực 32 bit sang số nguyên 8 bit

Hình 4. Ví dụ về lượng tử hóa từ số thực 32 bit sang số nguyên 8 bit.

Cách độ chính xác hỗn hợp tăng tốc suy luận AI#

Độ chính xác hỗn hợp là kỹ thuật sử dụng các độ chính xác số học khác nhau cho các phần khác nhau của mạng nơ-ron. Bằng cách kết hợp các giá trị có độ chính xác cao hơn, chẳng hạn số dấu phẩy động 32-bit, với các giá trị có độ chính xác thấp hơn như số dấu phẩy động 16-bit hoặc 8-bit, độ chính xác hỗn hợp giúp model thị giác máy tính tăng tốc huấn luyện và giảm mức sử dụng bộ nhớ mà không làm giảm độ chính xác.

Trong quá trình huấn luyện, độ chính xác hỗn hợp được thực hiện bằng cách sử dụng độ chính xác thấp hơn ở một số layer cụ thể, đồng thời duy trì độ chính xác cao hơn ở những nơi cần thiết trong mạng. Việc này được thực hiện thông qua chuyển đổi kiểu dữ liệu và scale loss. Chuyển đổi kiểu dữ liệu thay đổi kiểu dữ liệu giữa các mức độ chính xác khác nhau theo yêu cầu của model. Scale loss điều chỉnh độ chính xác giảm để ngăn hiện tượng underflow số học, đảm bảo quá trình huấn luyện ổn định. Độ chính xác hỗn hợp đặc biệt hữu ích với các model lớn và batch size lớn.

Huấn luyện độ chính xác hỗn hợp sử dụng kiểu dấu phẩy động FP16 và FP32

Hình 5. Huấn luyện độ chính xác hỗn hợp sử dụng cả kiểu dấu phẩy động 16 bit (FP16) và 32 bit (FP32).

Cân bằng độ chính xác và hiệu quả của model#

Giờ đây, sau khi đã tìm hiểu một số kỹ thuật tối ưu hóa model, hãy cùng thảo luận cách chọn kỹ thuật phù hợp với nhu cầu cụ thể của bạn. Việc lựa chọn phụ thuộc vào các yếu tố như phần cứng hiện có, giới hạn về tính toán và bộ nhớ của môi trường triển khai, cũng như mức độ chính xác cần thiết.

Ví dụ, model nhỏ hơn và nhanh hơn phù hợp hơn với các thiết bị di động có tài nguyên hạn chế, còn model lớn hơn và chính xác hơn có thể chạy trên các hệ thống hiệu năng cao. Dưới đây là cách mỗi kỹ thuật đáp ứng các mục tiêu khác nhau:

  • Cắt tỉa: Đây là lựa chọn lý tưởng để giảm kích thước model mà không ảnh hưởng đáng kể đến độ chính xác, rất phù hợp với các thiết bị hạn chế tài nguyên như điện thoại di động hoặc thiết bị Internet vạn vật (IoT).
  • Lượng tử hóa: Lựa chọn phù hợp để thu nhỏ model và tăng tốc suy luận, đặc biệt trên thiết bị di động và hệ thống nhúng có bộ nhớ và năng lực xử lý hạn chế. Kỹ thuật này phù hợp với các ứng dụng có thể chấp nhận mức giảm độ chính xác nhẹ.
  • Độ chính xác hỗn hợp: Được thiết kế cho các model quy mô lớn, kỹ thuật này giảm mức sử dụng bộ nhớ và tăng tốc huấn luyện trên phần cứng như GPU và TPU hỗ trợ các phép toán độ chính xác hỗn hợp. Kỹ thuật này thường được dùng cho các tác vụ hiệu năng cao cần tối ưu hiệu quả.
  • Tinh chỉnh siêu tham số: Dù đòi hỏi nhiều tài nguyên tính toán, kỹ thuật này rất cần thiết cho các ứng dụng yêu cầu độ chính xác cao, chẳng hạn như chẩn đoán hình ảnh y tế hoặc xe tự hành.

Điểm chính cần ghi nhớ#

Tối ưu hóa model là một phần thiết yếu của machine learning, đặc biệt khi triển khai AI trong các ứng dụng thực tế. Những kỹ thuật như tinh chỉnh siêu tham số, cắt tỉa model, lượng tử hóa và độ chính xác hỗn hợp giúp cải thiện hiệu năng, hiệu quả và mức sử dụng tài nguyên của các model thị giác máy tính. Các phương pháp tối ưu hóa này giúp model chạy nhanh hơn và tiêu tốn ít tài nguyên hơn, rất phù hợp với thiết bị có bộ nhớ và năng lực xử lý hạn chế. Model đã tối ưu cũng dễ mở rộng quy mô và triển khai trên nhiều nền tảng khác nhau, tạo điều kiện xây dựng các giải pháp AI hiệu quả và thích ứng với nhiều mục đích sử dụng.

Truy cập kho GitHub của Ultralytics và tham gia cộng đồng để tìm hiểu thêm về các ứng dụng AI trong sản xuất và nông nghiệp.

Được viết bởi

Abirami Vina
Abirami Vina

Nhà sáng tạo nội dung · Ultralytics

Khởi đầu sự nghiệp với vai trò kỹ sư thị giác máy tính, Abirami Vina đã xây dựng nền tảng vững chắc về AI thị giác và machine learning. Cô là Nhà sáng tạo nội dung tại Ultralytics, đồng thời là Nhà sáng lập kiêm Biên tập viên chính tại Scribe of AI, nơi cô xây dựng nội dung kỹ thuật chất lượng cao cho các công ty tập trung vào AI. Với niềm đam mê giúp AI trở nên dễ hiểu và hấp dẫn, công việc của cô kết nối công nghệ tiên tiến với tác động thực tế.

Bình luận

Đặt câu hỏi, chia sẻ kết quả hoặc giúp đỡ người khác.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning