Gặp gỡ YOLO26: AI tầm nhìn thế hệ tiếp theo.
Ultralytics
Ultralytics YOLO

Cách chúng tôi tại Ultralytics làm cho các model YOLO nhanh hơn trên chip ưa thích của bạn

Cách Ultralytics tối ưu hóa các model YOLO để đạt tốc độ trên CPU, GPU và các thiết bị biên. Chúng tôi sẽ giải thích về chip, bộ nhớ và các kỹ thuật thông minh như lượng tử hóa (quantization), hợp nhất (fusion) và cắt tỉa (pruning).

FRFrancesco Mattioli
8 min read
Tối ưu hóa các model YOLO trên CPU, GPU và chip biên

Tại Ultralytics, chúng tôi tạo ra các model thị giác máy tính; về cơ bản, chúng tôi dạy máy tính cách nhìn! Hãy hình dung các model này như những công thức toán học khổng lồ. Chúng được cấu tạo từ các phép toán (chúng tôi gọi là các layers) và một lượng lớn các con số mà chúng tôi gọi là trọng số (weights).

Các model Ultralytics YOLO của chúng tôi xử lý hình ảnh đúng như bản chất của chúng: các mảng số! Mỗi pixel thực chất chỉ là các giá trị màu, lượng Đỏ, Xanh lục và Xanh lam (tức RGB) cho mỗi điểm cấu thành nên hình ảnh. Chúng tôi gọi các mảng số này là "tensors" vì nghe ngầu hơn nhiều so với "ma trận đa chiều", vốn cũng nghe ngầu hơn "các số xếp chồng lên các số xếp chồng lên các số".

Khi bạn đưa một hình ảnh vào model của chúng tôi, nó sẽ bắt đầu một hành trình hoành tráng qua mạng lưới. Hãy tưởng tượng tensor của bạn đang lướt qua từng lớp một, bị biến đổi, xoắn ốc và bóp méo theo cách toán học đẹp đẽ nhất có thể. Hãy nghĩ về nó như một bữa tiệc khiêu vũ nơi các con số hòa quyện và giao thoa, trích xuất tinh hoa làm nên đặc điểm của một con mèo hay một chiếc xe hơi. Chúng tôi gọi quá trình này là trích xuất đặc trưng (feature extraction).

Điều gì xuất hiện ở đầu ra? Thêm nhiều con số! Những con số đầy ý nghĩa. Trong các tác vụ phát hiện (detection), chúng cho bạn biết chính xác vị trí của sự vật trong ảnh và khả năng cao đó là vật gì. "Này, có 95% khả năng đó là một con chó tại tọa độ (x, y)!" Chúng tôi gọi quá trình kỳ diệu này là inference.

Giờ đây, trước khi các model có thể thực hiện phép thuật của mình, chúng cần phải đi học; chúng cần được đào tạo (trained). Phần đào tạo là nơi mọi thứ trở nên căng thẳng.

Trong quá trình training, mỗi khi chúng ta cung cấp một hình ảnh cho network, chúng ta không chỉ nhận được một kết quả. Chúng ta thực hiện hai tác vụ cực kỳ nặng nề. Đầu tiên, chúng ta tính toán mức độ sai lệch của network (gọi là loss, về cơ bản là khoảng cách từ điểm dự đoán đến mục tiêu). Thứ hai, và đây là phần quan trọng, chúng ta cập nhật mọi con số (hoặc weight) trong network dựa trên loss đó. Hãy tưởng tượng việc này giống như việc điều chỉnh hàng ngàn núm vặn nhỏ cùng một lúc, trong đó mỗi lần điều chỉnh được tính toán để giúp network trở nên chính xác hơn sau mỗi lần thực hiện.

Về cơ bản, chúng ta đang train network thông qua quá trình hiệu chỉnh: mỗi sai lầm dạy cho nó biết điều gì KHÔNG NÊN làm, và chúng ta tinh chỉnh tất cả các weight đó để khi nó nhìn thấy một hình ảnh tương tự lần nữa, nó sẽ tiến gần hơn đến kết quả đúng. Về cơ bản, network học bằng cách được thúc đẩy theo đúng hướng, từng sai lầm một, cho đến khi nó bắt đầu đạt được các dự đoán chính xác.

Chúng ta đang nói về bao nhiêu con số? Chà, YOLO11n nhỏ bé của chúng ta có vài triệu tham số. Nhưng YOLO11x thì sao? 'Gã khổng lồ' đó sở hữu hơn 50 triệu tham số! Nhiều tham số hơn đồng nghĩa với việc bạn có thể mã hóa nhiều chi tiết hơn, giống như sự khác biệt giữa việc vẽ bằng bút chì màu so với việc sở hữu một bảng màu nghệ sĩ đầy đủ vậy.

Trong quá trình inference, số lượng tham số này trở nên vô cùng quan trọng. Chạy một mạng lưới 3 triệu tham số giống như chạy bộ quanh khu nhà. Chạy một mạng lưới 50 triệu tham số? Giống như chạy marathon trong khi đang tung hứng những ngọn đuốc rực cháy vậy.

Vậy TÍNH TOÁN (computation) chính xác là gì? Làm thế nào để việc xử lý số này thực sự xảy ra? Làm sao chúng ta làm cho nó nhanh hơn? Và "tối ưu hóa tính toán" có ý nghĩa gì?

Link to this sectionCách các chip thực hiện phép toán#

Tính toán xảy ra nhờ các chip. Những khối silicon nhỏ bé này về cơ bản là những lâu đài cát được tổ chức tốt nhất trong vũ trụ. Mọi phép toán mà máy tính của bạn thực hiện, mọi phép cộng, mọi phép so sánh, mọi lệnh "nếu thế này thì thế kia", đều được khắc vật lý vào silicon. Có những mạch điện vật lý thực sự nằm ở các khu vực cụ thể của chip dành riêng cho việc cộng các con số, và những mạch khác dành cho các phép toán logic. Giống như việc có một thành phố tí hon nơi các khu vực khác nhau chuyên về các kiểu toán học khác nhau.

Điều này có lẽ nghe có vẻ kỳ quặc, ngay cả khi bạn là một nhà khoa học máy tính. Đó là vì chúng ta đã dành 40 năm qua để xây dựng lớp này chồng lên lớp kia của sự trừu tượng, giống như một món lasagna công nghệ đã trở nên cao đến mức chúng ta thậm chí không thể nhìn thấy cái đĩa ở dưới cùng nữa. Chúng ta đã đơn giản hóa mọi thứ đến mức hầu hết các lập trình viên ngày nay không biết tính toán thực sự diễn ra như thế nào trong silicon. Không phải do lỗi của họ, mà là do thiết kế!

Hãy cùng bóc tách các lớp này. Lấy đoạn code Python đơn giản này làm ví dụ:

x = 1
if x == 1:
    y = x + 1

Chúng ta đang tạo một biến x, gán giá trị bằng 1, và nếu x bằng 1 (bật mí: nó đúng là bằng 1), chúng ta tạo y với giá trị của x cộng 1. Ba dòng. Dễ dàng.

Nhưng đây là lúc mọi thứ trở nên thú vị. Giữa ba dòng code vô hại đó và các electron thực sự di chuyển qua silicon, có ÍT NHẤT bốn lớp dịch thuật khổng lồ đang diễn ra (thực tế còn nhiều hơn, nhưng người quản lý nội dung số của chúng tôi nói rằng số lượng từ của tôi đã khiến cô ấy lo lắng rồi). Hãy để tôi dẫn bạn qua hành trình đầy kinh ngạc này:

Lớp 1: Python → Bytecode Đầu tiên, Python đọc code của bạn và biên dịch nó thành một thứ gọi là bytecode, một ngôn ngữ trung gian dễ dàng hơn cho máy tính tiêu hóa nhưng sẽ làm mắt bạn mờ đi nếu cố đọc nó.

Lớp 2: Bytecode → Machine Code Trình thông dịch Python (như CPython) lấy bytecode đó và dịch nó thành mã máy (machine code), các chỉ lệnh thực tế mà bộ xử lý của bạn hiểu được. Đây là nơi đoạn code thanh lịch "if x == 1" của bạn trở thành một thứ gì đó như "LOAD register, COMPARE register, JUMP if zero flag set."

Lớp 3: Machine Code → Microcode Cú twist! Các bộ xử lý hiện đại thậm chí không thực thi trực tiếp mã máy. Chúng chia nhỏ nó thêm nữa thành microcode, các thao tác thậm chí còn nhỏ hơn mà các thành phần bên trong chip có thể xử lý. Chỉ lệnh "ADD" đơn lẻ của bạn có thể trở thành nhiều thao tác siêu nhỏ (micro-operations).

Lớp 4: Microcode → Physical Electronics Cuối cùng, chúng ta đến với silicon. Những micro-operation đó kích hoạt các tín hiệu điện thực tế chảy qua các transistor. Hàng tỷ công tắc nhỏ bật và tắt, các electron nhảy múa qua các lộ trình được thiết kế cẩn thận, và bằng cách nào đó, đầy phép màu, 1 + 1 trở thành 2.

Mỗi lớp tồn tại để che giấu sự phức tạp điên rồ của lớp bên dưới nó. Giống như những con búp bê Nga lồng vào nhau, ngoại trừ việc mỗi con búp bê lại nói một ngôn ngữ hoàn toàn khác nhau, và con búp bê nhỏ nhất thực sự được tạo ra từ tia sét bị mắc kẹt trong cát.

Điều trớ trêu ư? Ba dòng Python đó có lẽ kích hoạt HÀNG TRIỆU công tắc transistor. Nhưng nhờ vào các sự trừu tượng này, bạn không cần phải suy nghĩ về bất kỳ điều gì trong số đó. Bạn chỉ cần viết "y = x + 1" và tin tưởng rằng ở đâu đó, sâu trong silicon, phép màu sẽ xảy ra.

Link to this sectionKiến trúc#

Mỗi thao tác đơn lẻ đều được thực hiện vật lý trong silicon, và vị trí nó xảy ra trên chip phụ thuộc hoàn toàn vào cấu trúc liên kết (topology) của chip đó. Giống như quy hoạch đô thị, nhưng dành cho các electron. Bộ cộng nằm ở đây, bộ nhân nằm ở kia, và tất cả chúng cần giao tiếp với nhau một cách hiệu quả.

Chúng ta có hàng trăm loại chip khác nhau trên thị trường, mỗi loại được thiết kế cho các mục đích khác nhau. Điều gì thay đổi giữa chúng? Cấu trúc liên kết, cách các thao tác được bố trí và thực hiện trong miền vật lý. Đây là thứ chúng ta gọi là kiến trúc, và chao ôi, chúng ta có rất nhiều trong số đó:

  • x86 (Intel và AMD) - Ông tổ của điện toán máy tính để bàn, phức tạp nhưng mạnh mẽ
  • ARM - Cung cấp năng lượng cho điện thoại và ngày càng nhiều laptop của bạn, được thiết kế để đạt hiệu quả cao
  • RISC-V - Kẻ nổi loạn mã nguồn mở, đang chiếm ưu thế ở khắp mọi nơi
  • PowerPC - Mãnh thú của IBM, vẫn đang chạy trong các máy chơi game và máy chủ
  • MIPS - Lựa chọn yêu thích của giới học thuật, đơn giản và thanh lịch
  • SPARC - Đóng góp của Sun Microsystems (hiện là Oracle) cho điện toán hiệu năng cao
  • Kiến trúc GPU (CUDA cores của NVIDIA, RDNA của AMD) - Những con quái vật xử lý song song

Mỗi kiến trúc không chỉ sắp xếp các transistor theo cách khác nhau mà còn nói một ngôn ngữ khác nhau. Các sự trừu tượng mà chúng ta sử dụng để gửi chỉ lệnh đến các cỗ máy này hoàn toàn khác biệt. Giống như việc phải viết chỉ đường du lịch cho ai đó, nhưng tùy thuộc vào loại xe của họ, bạn có thể cần phải viết bằng tiếng Pháp, tiếng Quan Thoại, hoặc bằng điệu nhảy minh họa.

Link to this sectionNhịp đập của silicon#

Nhiên liệu của chip là các electron, dòng điện chảy vào chip, cung cấp năng lượng cho việc tính toán. Nhưng chỉ năng lượng thôi là chưa đủ. Để một con chip thực sự hoạt động, để di chuyển dữ liệu qua cấu trúc liên kết phức tạp của nó, mọi thứ phụ thuộc vào một thành phần quan trọng: đồng hồ (clock). Đây là thứ khiến các electron chảy qua các đường dẫn cụ thể vào các thời điểm cụ thể. Nếu không có nó, bạn chỉ có một khối silicon được cấp điện nhưng chẳng làm được gì.

Hãy tưởng tượng việc cố gắng điều phối một buổi biểu diễn khổng lồ nơi hàng tỷ thành phần cần di chuyển đồng bộ hoàn hảo. Nếu không có nhịp điệu, đó sẽ là sự hỗn loạn. Đó chính xác là những gì chiếc đồng hồ làm cho bộ xử lý của bạn. Nó là một tinh thể dao động với tốc độ cực kỳ ổn định, gửi các xung điện hàng tỷ lần mỗi giây.

Khi bạn nghe nói về "bộ xử lý 3.5 GHz", GHz (gigahertz) đó chính là tốc độ xung nhịp, 3.5 tỷ nhịp mỗi giây. Mỗi nhịp được gọi là một chu kỳ xung nhịp (clock cycle), và đó là đơn vị thời gian cơ bản trong điện toán.

KHÔNG CÓ GÌ xảy ra giữa các chu kỳ xung nhịp. Toàn bộ máy tính sẽ đóng băng, chờ đợi nhịp đập tiếp theo. Nó giống như trò chơi đèn đỏ, đèn xanh cực đoan nhất của vũ trụ. Ở mỗi "đèn xanh" (xung đồng hồ):

  • Dữ liệu di chuyển giữa các thành phần
  • Các phép tính được thực thi
  • Các quyết định logic được đưa ra
  • Bộ nhớ được đọc hoặc ghi

Một số thao tác mất một chu kỳ (phép cộng đơn giản), trong khi những thao tác khác mất nhiều chu kỳ (phép chia hoặc lấy dữ liệu từ RAM). Mọi thứ được biên đạo một cách chính xác, hàng tỷ thành phần thực hiện các thao tác cụ thể của chúng, tất cả đều được đồng bộ hóa với nhịp đập không ngừng nghỉ này.

Bạn có thể ép xung (overclock) bộ xử lý bằng cách làm cho tinh thể dao động nhanh hơn; mọi thứ xảy ra nhanh hơn, nhưng nó cũng tạo ra nhiều nhiệt hơn, trở nên kém ổn định hơn. Nếu đẩy quá xa, máy tính của bạn sẽ bị treo vì các electron thực sự không thể theo kịp nhịp đập.

Ngày xưa, các thao tác này được thực hiện bằng những cỗ máy to bằng cả căn phòng. Nhưng các thành phần thực hiện tất cả các tính toán này lại vô cùng đơn giản: chúng chỉ là các công tắc. Các công tắc bật-hoặc-tắt.

Nối đủ các công tắc này lại với nhau theo đúng kiểu mẫu, và bạn đã có sự tính toán. Toàn bộ cuộc cách mạng kỹ thuật số đều quy về một cách sắp xếp công tắc phức tạp.

Sự đơn giản này có nghĩa là nếu bạn có các công tắc, bất kỳ loại công tắc nào, bạn đều có thể xây dựng một máy tính. Mọi người đã từng xây dựng các máy tính hoạt động được từ ống nước và van, quân domino, khối LEGO, viên bi, và thậm chí bằng redstone trong Minecraft.

Các nguyên lý không hề thay đổi kể từ những năm 1940. Chúng ta chỉ trở nên cực kỳ giỏi trong việc làm cho các công tắc nhỏ đến mức không tưởng. Điện thoại của bạn có sức mạnh tính toán nhiều hơn tất cả các máy tính đã đưa con người lên mặt trăng cộng lại, và nó nằm gọn trong túi bạn vì chúng ta đã tìm ra cách chế tạo công tắc ở quy mô nguyên tử.

Khi chúng ta chạy các mạng thần kinh với hàng triệu tham số, chúng ta đang bật tắt các công tắc nhỏ bé này hàng tỷ lần mỗi giây, tất cả đều được đồng bộ hóa hoàn hảo với nhịp đập tinh thể đó. Mỗi lần cập nhật trọng số, mỗi lần nhân ma trận, mỗi hàm kích hoạt (activation function), tất cả đều tiến bước theo nhịp của đồng hồ.

Không có gì ngạc nhiên khi việc huấn luyện các model khiến máy tính của bạn nghe như thể nó đang cố gắng cất cánh vậy!

Link to this sectionLàm cho các mạng thần kinh chạy vù vù#

Được rồi, chúng ta đã có những con chip với hàng tỷ công tắc nhảy múa theo nhịp đập của tinh thể, và chúng ta muốn chạy các mạng thần kinh với hàng triệu tham số trên đó. Chắc là dễ thôi nhỉ? Chỉ cần ném các con số vào chip và để nó chạy!

Chạy mạng thần kinh nhanh giống như cố gắng nấu một bữa ăn 5 món trong căn bếp nơi tủ lạnh cách xa 3 dãy nhà, bạn chỉ có một cái chảo, và mỗi nguyên liệu nặng 500 pound. Bản thân các phép toán không phải là vấn đề lớn nhất; mọi thứ khác mới là vấn đề.

Link to this sectionSự lệch pha về kiến trúc#

Hầu hết các con chip được thiết kế để chạy Microsoft Word, không phải mạng thần kinh. CPU của bạn được xây dựng với suy nghĩ rằng nó sẽ dành cả đời để chạy các câu lệnh if, vòng lặp, và thỉnh thoảng tính toán thuế của bạn (phép tính duy nhất mà ngay cả siêu máy tính cũng cảm thấy cạn kiệt năng lượng). Nó được tối ưu hóa cho các thao tác tuần tự: làm cái này, rồi làm cái kia, rồi làm cái khác.

Nhưng mạng thần kinh thì hoàn toàn khác. Chúng muốn làm MỌI THỨ CÙNG MỘT LÚC. Trong quá trình huấn luyện, bạn đang cập nhật hàng triệu trọng số dựa trên việc dự đoán sai đến mức nào. Trong quá trình inference (sử dụng model đã huấn luyện), bạn đang đẩy dữ liệu qua hàng triệu phép tính đồng thời. Hãy tưởng tượng bạn cần nhân một triệu số với một triệu số khác. CPU của bạn, tội nghiệp nó, muốn thực hiện từng số một, giống như một kế toán viên rất nhanh nhẹn nhưng vô cùng máy móc.

Đây là lý do tại sao GPU trở thành xương sống của điện toán AI. GPU được thiết kế cho trò chơi điện tử, nơi bạn cần tính toán màu sắc của hàng triệu pixel cùng một lúc. Hóa ra, việc tính màu pixel và làm toán mạng thần kinh lại giống nhau đến đáng ngạc nhiên: cả hai đều liên quan đến việc thực hiện cùng một thao tác trên một lượng lớn dữ liệu một cách song song.

Nhưng ngay cả GPU cũng không hoàn hảo cho mạng thần kinh. Đó là lý do tại sao các công ty hiện đang xây dựng các con chip AI chuyên dụng (TPU, NPU, và mọi loại từ viết tắt kết thúc bằng PU khác). Những con chip này được thiết kế ngay từ đầu với một công việc duy nhất: làm cho mạng thần kinh chạy nhanh. Chúng giống như việc thuê một đầu bếp chỉ biết nấu một món, nhưng họ nấu với tốc độ siêu phàm. Trong khi CPU của bạn phải vật lộn với các phép toán ma trận một cách tuần tự và GPU xử lý chúng khá tốt theo kiểu song song, thì các con chip chuyên dụng này nuốt chửng các ma trận cho bữa sáng, bữa trưa và bữa tối.

Link to this sectionBức tường bộ nhớ (Hoặc: Tại sao di chuyển các Bits khó hơn làm toán)#

Trong tính toán mạng thần kinh hiện đại, chúng ta dành nhiều thời gian và năng lượng để DI CHUYỂN dữ liệu hơn là thực sự TÍNH TOÁN với nó.

Hãy nghĩ về chip máy tính của bạn như một nhà toán học xuất chúng làm việc với tốc độ ánh sáng, nhưng tất cả sách tham khảo của họ lại được lưu trữ ở các tòa nhà khác nhau trong thị trấn. Họ có thể giải bất kỳ phương trình nào ngay lập tức, nhưng trước tiên, họ cần lấy các con số, và hành trình đó mất cả đời.

Chip của bạn có thể nhân hai con số trong một chu kỳ xung nhịp (hãy nhớ, đó là một trong hàng tỷ nhịp mỗi giây). Nhanh như chớp! Nhưng việc lấy các con số đó từ bộ nhớ vào chip? Nó có thể mất HÀNG TRĂM chu kỳ. Giống như việc nhà toán học của bạn có thể giải một bài toán trong một giây, nhưng cần năm phút để đi bộ đến thư viện và quay trở lại.

Lý do là khoảng cách (và không gian). Điện di chuyển nhanh, nhưng không nhanh vô hạn. Dữ liệu phải di chuyển càng xa trên chip thì càng mất nhiều thời gian. Các nhà thiết kế máy tính đã giải quyết điều này bằng cách tạo ra một hệ thống phân cấp bộ nhớ, giống như việc có nhiều vị trí lưu trữ ở các khoảng cách khác nhau:

  • Registers (được tích hợp trực tiếp vào các đơn vị tính toán): Bàn làm việc của nhà toán học. Truy cập tức thì! Nhưng nó rất nhỏ, bạn chỉ có thể giữ khoảng 32 số ở đây. Giống như việc có các tờ giấy ghi chú ngay trước mặt bạn.
  • L1 Cache (cách vài micromet): Giá sách trong văn phòng. Mất 3-4 chu kỳ để lấy thứ gì đó. Ở đây, bạn có thể chứa vài ngàn con số.
  • L2 Cache (cách vài milimet): Tủ hồ sơ ở cuối hành lang. Mất 10-15 chu kỳ và có thể chứa vài triệu con số.
  • L3 Cache (trên khắp con chip): Kho lưu trữ ở tầng dưới. Mất 30-50 chu kỳ, chứa hàng chục triệu con số.
  • RAM (trên một con chip hoàn toàn khác): Kho hàng bên kia thị trấn. Mất 100-300 chu kỳ. Đây là nơi hàng tỷ con số của bạn sinh sống.
  • SSD/Hard Drive (kết nối bằng cáp): Một thành phố hoàn toàn khác. Mất hàng triệu chu kỳ. Lưu trữ khổng lồ, tốc độ chậm như sên.

Các cấu trúc chính xác có thể khác nhau, chip điện thoại của bạn có thể bỏ qua L3 cache, trong khi CPU máy chủ có thể có số lượng lớn bộ nhớ này. Tuy nhiên, nguyên lý vẫn không đổi: bộ nhớ gần hơn thì nhanh hơn nhưng nhỏ hơn.

Bây giờ đây là nơi mọi thứ trở nên đau đớn đối với mạng thần kinh. Hãy tưởng tượng model Ultralytics YOLO của bạn có 50 triệu tham số (ChatGPT có hàng tỷ, nhân tiện). Đó là 50 triệu con số cần phải di chuyển từ bộ nhớ đến các đơn vị tính toán và ngược lại. Ngay cả khi mỗi số chỉ là 4 byte, đó cũng là 200 megabyte dữ liệu cần di chuyển qua hệ thống của bạn.

Chip có thể xử lý mỗi con số trong một chu kỳ đơn lẻ, nhưng nếu mất 100 chu kỳ để lấy số đó từ RAM, bạn đang dành 99% thời gian để chờ đợi giao hàng. Nó giống như việc có một chiếc xe đua Công thức 1 trong cảnh tắc đường. Tất cả sức mạnh tính toán đó, ngồi yên đó, chờ đợi dữ liệu đến nơi.

Đây là hiểu biết quan trọng: đây CHÍNH LÀ nút thắt cổ chai trong điện toán hiện đại. Nó được gọi là nút thắt von Neumann. Làm cho các con chip tính toán nhanh hơn thì tương đối dễ. Làm cho bộ nhớ nhanh hơn là đang chạm đến các giới hạn vật lý. Đây là lý do tại sao hầu hết các tối ưu hóa hiệu năng trong AI đều diễn ra ở cấp độ bộ nhớ. Khi các kỹ sư tăng tốc mạng thần kinh, họ hiếm khi làm cho các phép toán nhanh hơn; họ đang tìm ra những cách thông minh để di chuyển ít dữ liệu hơn, lưu vào bộ nhớ cache tốt hơn, hoặc truy cập nó thông minh hơn.

Các con chip AI hiện đại không chỉ tập trung vào tốc độ tính toán; chúng ám ảnh về băng thông bộ nhớ và các chiến lược di chuyển dữ liệu. Chúng lấy trước dữ liệu (pre-fetch), tái sử dụng các giá trị đã có trong bộ nhớ cache, và tổ chức các phép tính để giảm thiểu số lần truy cập bộ nhớ. Những người chiến thắng trong cuộc đua phần cứng AI không phải là những người có máy tính nhanh nhất; họ là những người đã tìm ra cách để giữ cho các máy tính đó luôn được cung cấp đầy đủ dữ liệu. Toàn bộ trò chơi là về việc tối ưu hóa các mẫu truy cập bộ nhớ.

Mỗi lần bạn di chuyển một bit dữ liệu, bạn đốt cháy năng lượng. Không nhiều, chúng ta đang nói về picojoules, nhưng khi bạn di chuyển terabyte mỗi giây, nó sẽ cộng dồn NHANH CHÓNG. Thực tế, việc di chuyển dữ liệu 1mm qua chip tiêu tốn nhiều năng lượng hơn cả việc thực hiện chính phép tính đó!

Đây là lý do tại sao laptop của bạn kêu như động cơ phản lực khi huấn luyện mạng thần kinh. Không phải các phép toán tạo ra nhiệt; mà là sự di chuyển dữ liệu. Mỗi lần cập nhật tham số, mỗi lần tính toán gradient, mỗi đường truyền tiếp (forward pass) đều đang làm nóng căn phòng của bạn theo đúng nghĩa đen.

Các bộ tăng tốc AI hiện đại về cơ bản là các bài tập về nhiệt động lực học. Chúng ta có thể đóng gói bao nhiêu phép tính trước khi chip bị nóng chảy? Chúng ta có thể loại bỏ nhiệt nhanh đến mức nào? Nó giống như ép xung, nhưng đồng hồ luôn ở mức 11, và chúng ta chỉ đang cố gắng không để xảy ra hỏa hoạn.

Link to this sectionGiải pháp? Thiết kế nhận thức kiến trúc (Architecture-aware design)#

Các mạng thần kinh nhanh nhất không nhất thiết là thông minh nhất, chúng là những mạng được thiết kế dựa trên đặc điểm của các con chip. Chúng:

  • Giữ dữ liệu cục bộ nhiều nhất có thể
  • Tái sử dụng các phép tính một cách ám ảnh
  • Căn chỉnh hoàn hảo với các khả năng của phần cứng
  • Giảm thiểu sự di chuyển bộ nhớ bằng mọi giá

Nó giống như sự khác biệt giữa một công thức nấu ăn ghi là "sử dụng nguyên liệu từ cửa hàng tạp hóa địa phương của bạn" so với công thức yêu cầu bạn nhập khẩu gia vị từ Tây Tạng, phô mai từ Pháp và nước từ Nam Cực. Cả hai có thể đều ngon, nhưng cái trước chắc chắn thực tế hơn.

Và đây là lý do tại sao làm cho mạng thần kinh chạy nhanh là một loại hình nghệ thuật. Không đủ nếu chỉ có toán học giỏi; bạn cần hiểu phần cứng, tôn trọng hệ thống phân cấp bộ nhớ, và khiêu vũ hoàn hảo với kiến trúc.

Chào mừng đến với thế giới nơi khoa học máy tính gặp gỡ vật lý, gặp gỡ kỹ thuật và những điều kỳ diệu thuần túy. Nơi việc di chuyển một con số tốn kém hơn việc tính toán với nó. Nơi song song là nhanh, nhưng đồng bộ hóa lại là cái chết. Nơi kẻ thù lớn nhất của bạn không phải là sự phức tạp, mà là khoảng cách.

Link to this sectionCách chúng tôi làm YOLO nhanh hơn#

Khi bạn huấn luyện một model YOLO, bạn nhận được một mạng thần kinh hoạt động tuyệt vời trên thiết lập huấn luyện của mình. Nhưng vấn đề là: GPU chơi game, iPhone của bạn và con chip tí hon trong camera an ninh đều nói các ngôn ngữ hoàn toàn khác nhau. Chúng có những điểm mạnh khác nhau, điểm yếu khác nhau và những ý tưởng rất khác nhau về cách xử lý dữ liệu.

Hãy nghĩ theo cách này: một GPU có hàng ngàn lõi có thể hoạt động đồng thời – nó được xây dựng để xử lý song song. Trong khi đó, một con chip di động có thể có các mạch đặc biệt được thiết kế riêng cho các thao tác AI, nhưng chỉ có thể xử lý một số loại toán học nhất định. Và thiết bị ngoại vi trong camera chuông cửa của bạn? Nó đang cố gắng chạy AI với ngân sách năng lượng nhỏ hơn cả một bóng đèn LED.

Tại Ultralytics, chúng tôi hỗ trợ hơn một tá định dạng xuất (export formats) khác nhau vì mỗi định dạng được tối ưu hóa cho phần cứng khác nhau. Vấn đề không phải là có quá nhiều tùy chọn. Vấn đề là có tùy chọn phù hợp cho nhu cầu cụ thể của BẠN.

Link to this sectionHợp nhất các thao tác (Fusing operations): Làm nhiều hơn với ít hơn#

Trong model YOLO ban đầu, nhiều thao tác xảy ra theo trình tự. Ví dụ, chúng ta có thể thực hiện phép nhân chập (convolution), sau đó chuẩn hóa kết quả, rồi áp dụng hàm kích hoạt. Đó là ba bước riêng biệt, mỗi bước yêu cầu đọc và ghi vào bộ nhớ riêng.

Nhưng đây là phần thông minh: chúng ta có thể kết hợp các thao tác này thành một bước duy nhất. Khi xuất YOLO để triển khai, chúng ta hợp nhất các thao tác này lại với nhau. Thay vì:

  1. Tính toán convolution → Lưu vào bộ nhớ
  2. Đọc từ bộ nhớ → Chuẩn hóa → Lưu vào bộ nhớ
  3. Đọc từ bộ nhớ → Áp dụng kích hoạt → Lưu vào bộ nhớ

Chúng tôi thực hiện:

  1. Tính toán convolution + chuẩn hóa + kích hoạt → Lưu vào bộ nhớ

Đối với một model YOLO điển hình xử lý hình ảnh 640×640, thủ thuật đơn giản này loại bỏ hàng gigabyte truyền dữ liệu bộ nhớ không cần thiết. Trên điện thoại di động, đó là sự khác biệt giữa phát hiện thời gian thực mượt mà và tình trạng lag gây khó chịu.

Link to this sectionSử dụng các con số nhỏ hơn: Phép màu định lượng (Quantization)#

YOLO thực sự không cần các con số siêu chính xác để phát hiện vật thể một cách chính xác. Trong quá trình huấn luyện, chúng tôi sử dụng 32 bit để biểu diễn mỗi trọng số – giống như dùng máy tính khoa học để đo nguyên liệu làm bánh sandwich vậy. Để triển khai thực tế? 8 bit là đã hoạt động hoàn hảo rồi.

Đây được gọi là lượng tử hóa (quantization), và đó là một trong những kỹ thuật tối ưu hóa mạnh mẽ nhất của chúng tôi. Bằng cách sử dụng các con số nhỏ hơn:

  • Mô hình thu nhỏ 75% (từ 200MB xuống còn 50MB đối với Ultralytics YOLO11x)
  • Chạy nhanh hơn gấp 2-4 lần trên hầu hết các thiết bị
  • Sử dụng ít điện năng hơn đáng kể (pin điện thoại của bạn sẽ cảm ơn bạn vì điều đó)

Không phải tất cả các lớp trong YOLO đều nhạy cảm như nhau với sự sụt giảm này. Những lớp đầu tiên phát hiện các cạnh và hình dạng cơ bản ư? Chúng rất mạnh mẽ – chúng ta có thể sử dụng các số 8-bit mà không gặp bất kỳ vấn đề gì. Các lớp phát hiện cuối cùng xác định "đây là mèo hay chó?" cần độ chính xác cao hơn một chút. Vì vậy, chúng tôi điều chỉnh độ chính xác theo từng lớp, sử dụng vừa đủ số bit để duy trì độ chính xác trong khi tối đa hóa tốc độ.

Chúng tôi nhận thấy rằng với kỹ thuật lượng tử hóa cẩn thận, Ultralytics YOLO duy trì 99,5% độ chính xác ban đầu trong khi chạy nhanh hơn gấp 3 lần trên điện thoại. Đó là sự khác biệt giữa một mô hình nghiên cứu và thứ bạn thực sự có thể sử dụng trong thế giới thực.

Link to this sectionChọn thuật toán tốt nhất#

Có hàng chục cách khác nhau để thực hiện cùng một phép toán. Một phép tích chập (convolution) đơn giản (thao tác cốt lõi trong YOLO) có thể được tính toán bằng các thuật toán hoàn toàn khác nhau, và lựa chọn tốt nhất phụ thuộc vào phần cứng cụ thể và kích thước đầu vào của bạn.

Khi chúng tôi xuất YOLO, khung tối ưu hóa của chúng tôi thực sự kiểm tra các thuật toán khác nhau và chọn thuật toán nhanh nhất cho trường hợp cụ thể của bạn. Nó giống như việc có nhiều lộ trình đến cùng một điểm đến và lựa chọn dựa trên điều kiện giao thông hiện tại. Trên GPU, chúng tôi có thể sử dụng một thuật toán xử lý nhiều pixel cùng lúc. Trên CPU, chúng tôi có thể sử dụng thuật toán được tối ưu hóa cho xử lý tuần tự. Phép toán thì giống nhau, nhưng chiến lược thực thi lại hoàn toàn khác biệt.

Link to this sectionBộ nhớ: Nút thắt cổ chai ẩn giấu#

Bạn còn nhớ chúng ta đã nói về việc bộ nhớ là nút thắt cổ chai thực sự trong điện toán hiện đại không? Điều này đặc biệt đúng với YOLO. Mô hình có thể có 50 triệu tham số và trong quá trình suy luận (inference), nó tạo ra hàng gigabyte kết quả trung gian. Việc di chuyển tất cả dữ liệu này xung quanh thường chậm hơn so với chính quá trình tính toán.

Chúng tôi sử dụng một số thủ thuật để giảm thiểu việc di chuyển bộ nhớ:

Lập lịch thông minh: Chúng tôi sắp xếp các thao tác để dữ liệu được sử dụng ngay lập tức khi nó vẫn còn trong bộ nhớ cache nhanh. Đối với mạng kim tự tháp tính năng (feature pyramid network) của YOLO, điều này giảm lưu lượng bộ nhớ đi 40%.

Chia nhỏ (Tiling): Thay vì xử lý toàn bộ hình ảnh cùng một lúc, chúng tôi chia nó thành các ô nhỏ hơn vừa với bộ nhớ cache. Điều này có nghĩa là bộ xử lý có thể làm việc với bộ nhớ cục bộ nhanh thay vì liên tục tìm nạp từ bộ nhớ chính chậm.

Tái sử dụng bộ đệm (Buffer Reuse): Thay vì liên tục tạo bộ nhớ mới cho các kết quả trung gian, chúng tôi tái sử dụng các bộ đệm bộ nhớ cũ. Nó cực kỳ hiệu quả – toàn bộ phần backbone của YOLO có thể chạy chỉ với một loạt các bộ đệm có thể tái sử dụng.

Link to this sectionCắt tỉa (Pruning): Ít hơn là nhiều hơn#

Đây là một sự thật đáng ngạc nhiên: Các mô hình YOLO thường bị thiết kế quá mức. Chúng tôi có thể loại bỏ 30% số kênh trong nhiều lớp mà hầu như không ảnh hưởng đến độ chính xác. Điều này không chỉ làm cho mô hình nhỏ hơn – mà còn giúp nó chạy nhanh hơn, vì thực sự có ít phép tính hơn cần thực hiện.

Quá trình này rất tinh tế: chúng tôi phân tích phần nào của mạng đóng góp ít nhất vào kết quả phát hiện cuối cùng, loại bỏ chúng và sau đó tinh chỉnh mô hình để bù đắp. Một mô hình YOLO11m đã qua cắt tỉa có thể nhanh hơn 30% trong khi vẫn duy trì 99% độ chính xác ban đầu. Trên các thiết bị chạy bằng pin, mức tăng hiệu quả này có thể đồng nghĩa với hàng giờ thời gian hoạt động thêm.

Link to this sectionTăng tốc phần cứng: Phát huy thế mạnh của từng chip#

Các bộ xử lý khác nhau giỏi về những việc khác nhau và sự khác biệt về hiệu suất là rất lớn. Cùng một mô hình YOLO11n mất:

  • 45 mili giây mỗi khung hình trên CPU Intel hiện đại
  • 4 mili giây trên GPU NVIDIA RTX
  • 22 mili giây trên bộ xử lý điện thoại cao cấp
  • 15 mili giây trên Google Coral edge TPU

Đây không chỉ là sự khác biệt về tốc độ do tốc độ xung nhịp – chúng phản ánh những khác biệt cơ bản về kiến trúc. GPU có hàng ngàn lõi hoạt động song song, hoàn hảo cho các phép tích chập của YOLO. NPU di động có các mạch chuyên dụng được thiết kế đặc biệt cho mạng thần kinh. CPU là thiết bị đa năng, linh hoạt nhưng không chuyên biệt.

Chìa khóa để tối ưu hóa là khớp các thao tác của YOLO với những gì mỗi con chip làm tốt nhất. GPU thích thực hiện cùng một thao tác trên nhiều dữ liệu cùng lúc. NPU di động có thể chỉ hỗ trợ một số thao tác nhất định nhưng thực hiện chúng cực kỳ hiệu quả. Edge TPU chỉ hoạt động với các số nguyên 8-bit nhưng đạt được tốc độ đáng kinh ngạc trong giới hạn đó.

Link to this sectionPhép thuật biên dịch#

Khi bạn xuất một mô hình YOLO, một điều đáng chú ý sẽ xảy ra đằng sau hậu trường. Chúng tôi không chỉ chuyển đổi định dạng tệp – chúng tôi thực sự biên dịch mô hình dành riêng cho phần cứng mục tiêu của bạn. Điều này giống như sự khác biệt giữa Google Dịch và một người bản ngữ. Quá trình biên dịch:

  1. Phân tích mô hình của bạn để hiểu cấu trúc và các yêu cầu của nó
  2. Xem xét khả năng của phần cứng – nó giỏi việc gì, nó gặp khó khăn với việc gì
  3. Tạo ra mã tối ưu nói ngôn ngữ bản địa của phần cứng của bạn

Trình biên dịch có thể tổ chức lại các thao tác để sử dụng tốt hơn bộ nhớ cache của bộ xử lý, chọn các hướng dẫn chuyên biệt mà chip của bạn hỗ trợ hoặc thậm chí sử dụng học máy để tìm chiến lược tối ưu hóa tốt nhất. Đúng vậy, chúng tôi đang sử dụng AI để tối ưu hóa AI – tương lai đã ở đây!

Bước biên dịch này có thể tạo ra sự khác biệt gấp 10 lần về hiệu suất. Cùng một mô hình YOLO có thể chạy chậm chạp với mã chung chung nhưng lại bay nhanh với các hướng dẫn được tối ưu hóa đúng cách.

Link to this sectionTriển khai tại biên (edge deployment) trong thế giới thực#

Hãy nói về những gì xảy ra khi YOLO gặp thế giới thực – cụ thể là thế giới đầy thử thách của các thiết bị biên (edge devices). Hãy tưởng tượng một camera an ninh cần chạy YOLO 24/7 để phát hiện đối tượng. Nó đối mặt với những hạn chế khắc nghiệt:

  • Bộ nhớ: Có thể chỉ có tổng cộng 512MB đến 2GB RAM
  • Điện năng: Thường chỉ 2-5 watt (ít hơn bộ sạc điện thoại)
  • Làm mát: Không có quạt, chỉ tản nhiệt thụ động
  • Độ tin cậy: Phải chạy liên tục mà không bị lỗi

Đây là những gì tối ưu hóa đạt được trong thực tế. Một camera an ninh chạy YOLO11s:

  • Mô hình gốc: 15 watt, chạy nóng ở 85°C, đạt 20 FPS
  • Tối ưu hóa với lượng tử hóa và cắt tỉa: 3 watt, nhiệt độ thoải mái 45°C, đạt 25 FPS

Chúng tôi đã giảm tiêu thụ điện năng tới 80% trong khi thực sự cải thiện hiệu suất! Đó là sự khác biệt giữa một thiết bị bị quá nhiệt và hao pin với một thiết bị chạy ổn định trong nhiều năm.

Chìa khóa là chọn các đánh đổi đúng đắn. Trên các thiết bị biên, chúng tôi thường:

  • Sử dụng lượng tử hóa INT8 (độ chính xác ít hơn, điện năng ít hơn nhiều)
  • Xử lý ít khung hình hơn khi hoạt động thấp
  • Phân phối công việc trên các bộ xử lý khác nhau để quản lý nhiệt
  • Giữ cho các mô hình đủ nhỏ để vừa hoàn toàn trong bộ nhớ nhanh

Link to this sectionQuá trình tối ưu hóa#

Tại Ultralytics, chúng tôi tuân theo một cách tiếp cận hệ thống để tối ưu hóa. Đầu tiên, chúng tôi lập hồ sơ mô hình để hiểu thời gian thực sự được dành ở đâu. Thông thường, các nút thắt cổ chai không nằm ở nơi bạn mong đợi. Có thể 80% thời gian dành cho chỉ một vài lớp, hoặc việc truyền dữ liệu bộ nhớ đang chiếm ưu thế thời gian tính toán.

Tiếp theo, chúng tôi áp dụng các tối ưu hóa một cách lặp đi lặp lại:

  1. Bắt đầu với các nút thắt cổ chai lớn nhất
  2. Áp dụng từng tối ưu hóa một
  3. Đo lường cả cải thiện tốc độ và tác động đến độ chính xác
  4. Giữ lại các tối ưu hóa cung cấp sự đánh đổi tốt
  5. Lặp lại cho đến khi chúng tôi đạt được mục tiêu của mình

Ví dụ, với việc triển khai YOLO11m trên điện thoại:

  • Cơ sở (Baseline): 200ms mỗi khung hình, mô hình 200MB
  • Sau khi lượng tử hóa: 80ms mỗi khung hình, mô hình 50MB
  • Sau khi cắt tỉa: 60ms mỗi khung hình, mô hình 35MB
  • Sau khi hợp nhất thao tác (operation fusion): 45ms mỗi khung hình, mô hình 35MB

Mỗi bước cải thiện hiệu suất trong khi vẫn duy trì hơn 99% độ chính xác ban đầu. Kết quả là gì? Phát hiện đối tượng thời gian thực trên một thiết bị vừa vặn trong túi của bạn.

Link to this sectionTương lai: Điện toán không đồng nhất (heterogeneous computing)#

Các thiết bị hiện đại đang trở nên thông minh hơn trong việc sử dụng nhiều bộ xử lý cùng nhau. Điện thoại của bạn không chỉ có một bộ xử lý – nó có vài cái, mỗi cái chuyên biệt cho các nhiệm vụ khác nhau:

  • Cảm biến camera có ISP (Image Signal Processor) để tiền xử lý
  • NPU (Neural Processing Unit) chạy suy luận YOLO
  • CPU xử lý logic phức tạp và điều phối
  • GPU hiển thị kết quả trên màn hình

Tương lai của tối ưu hóa YOLO là việc chia tách mô hình một cách thông minh giữa các bộ xử lý này. Có thể NPU xử lý các phép tích chập chính, CPU thực hiện logic phát hiện cuối cùng, và GPU hình ảnh hóa kết quả. Mỗi bộ xử lý làm những gì nó giỏi nhất, tạo ra một đường ống (pipeline) hiệu quả hơn bất kỳ bộ xử lý đơn lẻ nào có thể đạt được.

Chúng tôi đang phát triển các thuật toán phân vùng thông minh để tự động tìm ra cách tốt nhất để chia tách YOLO giữa các bộ xử lý có sẵn, xem xét không chỉ khả năng của chúng mà còn chi phí di chuyển dữ liệu giữa chúng.

Link to this sectionĐiểm mấu chốt#

Tối ưu hóa các mô hình YOLO không chỉ là việc chuyển đổi định dạng tệp; đó là việc biến AI tiên tiến thành thứ thực sự hoạt động trong thế giới thực. Thông qua các kỹ thuật như lượng tử hóa (sử dụng số nhỏ hơn), cắt tỉa (loại bỏ các phần không cần thiết), hợp nhất thao tác (kết hợp các bước) và quản lý bộ nhớ thông minh, chúng tôi đạt được hiệu suất cải thiện gấp 10-100 lần trong khi vẫn duy trì độ chính xác.

Điều đáng chú ý là gì? Không có cách tối ưu hóa "tốt nhất" phổ quát nào. Một máy chủ đám mây với nguồn điện không giới hạn cần các tối ưu hóa khác với một máy bay không người lái chạy bằng pin. Một điện thoại có chip AI chuyên dụng cần cách xử lý khác với Raspberry Pi. Đó là lý do tại sao Ultralytics cung cấp rất nhiều tùy chọn xuất – mỗi tùy chọn đều được tối ưu hóa cho các tình huống khác nhau.

Mọi tối ưu hóa chúng tôi đã thảo luận đều phục vụ một mục tiêu: làm cho thị giác máy tính trở nên dễ tiếp cận ở mọi nơi. Cho dù bạn đang xây dựng một chuông cửa thông minh, ứng dụng máy bay không người lái hay một dịch vụ đám mây khổng lồ, chúng tôi đều cung cấp các công cụ để giúp YOLO hoạt động trong các ràng buộc của bạn.

Khi bạn xuất một mô hình YOLO với Ultralytics, bạn không chỉ lưu một tệp. Bạn đang tận dụng nhiều năm nghiên cứu trong việc biến các mạng thần kinh trở nên thực tế. Bạn đang biến một mô hình AI hiện đại thành thứ có thể chạy trên phần cứng thực, với các ràng buộc thực, giải quyết các vấn đề thực.

Đó là những gì chúng tôi làm tại Ultralytics. Chúng tôi thu hẹp khoảng cách giữa nghiên cứu AI và triển khai thực tế. Chúng tôi làm cho thị giác máy tính hoạt động ở mọi nơi, bởi vì tương lai của AI không chỉ là có các mô hình tốt nhất – mà là làm cho các mô hình đó hữu ích trong thế giới thực.

Explore solutions

Real-time AI that works with your team

AI trong ngành Robot

Tăng cường sức mạnh cho các cỗ máy thông minh hơn với các model Ultralytics YOLO. AI thị giác trong lĩnh vực robot thúc đẩy khả năng điều hướng tự hành, nhận thức, theo dõi đối tượng và điều khiển thời gian thực.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong Logistics

Tối ưu hóa logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra hàng hóa, phân loại, theo dõi phương tiện và giám sát an toàn kho bãi trong thời gian thực.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Bán lẻ

Tái định hình bán lẻ với các model Ultralytics YOLO. Vision AI thúc đẩy theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và thông tin chi tiết thông minh hơn về khách hàng.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong chăm sóc sức khỏe

Xây dựng các giải pháp y tế với các model Ultralytics YOLO. AI thị giác trong y tế hỗ trợ chẩn đoán hình ảnh y khoa 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
Real-time AI that works with your team

AI trong sản xuất

Tối ưu hóa sản xuất với 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
Real-time AI that works with your operation

AI trong Ô tô

Áp dụng thị giác máy tính trong ô tô với các model Ultralytics YOLO. AI thị giác nâng cao an toàn đường bộ, hỗ trợ người lái và tự động hóa phương tiện cho những con đường thông minh hơn.
Tìm hiểu thêm
Real-time AI tailored to your operation

AI trong Nông nghiệp

Mang AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Tăng cường giám sát mùa màng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn, thông minh hơn.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Robot

Tăng cường sức mạnh cho các cỗ máy thông minh hơn với các model Ultralytics YOLO. AI thị giác trong lĩnh vực robot thúc đẩy khả năng điều hướng tự hành, nhận thức, theo dõi đối tượng và điều khiển thời gian thực.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong Logistics

Tối ưu hóa logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra hàng hóa, phân loại, theo dõi phương tiện và giám sát an toàn kho bãi trong thời gian thực.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Bán lẻ

Tái định hình bán lẻ với các model Ultralytics YOLO. Vision AI thúc đẩy theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và thông tin chi tiết thông minh hơn về khách hàng.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong chăm sóc sức khỏe

Xây dựng các giải pháp y tế với các model Ultralytics YOLO. AI thị giác trong y tế hỗ trợ chẩn đoán hình ảnh y khoa 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
Real-time AI that works with your team

AI trong sản xuất

Tối ưu hóa sản xuất với 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
Real-time AI that works with your operation

AI trong Ô tô

Áp dụng thị giác máy tính trong ô tô với các model Ultralytics YOLO. AI thị giác nâng cao an toàn đường bộ, hỗ trợ người lái và tự động hóa phương tiện cho những con đường thông minh hơn.
Tìm hiểu thêm
Real-time AI tailored to your operation

AI trong Nông nghiệp

Mang AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Tăng cường giám sát mùa màng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn, thông minh hơn.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Robot

Tăng cường sức mạnh cho các cỗ máy thông minh hơn với các model Ultralytics YOLO. AI thị giác trong lĩnh vực robot thúc đẩy khả năng điều hướng tự hành, nhận thức, theo dõi đối tượng và điều khiển thời gian thực.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong Logistics

Tối ưu hóa logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra hàng hóa, phân loại, theo dõi phương tiện và giám sát an toàn kho bãi trong thời gian thực.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Bán lẻ

Tái định hình bán lẻ với các model Ultralytics YOLO. Vision AI thúc đẩy theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và thông tin chi tiết thông minh hơn về khách hàng.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong chăm sóc sức khỏe

Xây dựng các giải pháp y tế với các model Ultralytics YOLO. AI thị giác trong y tế hỗ trợ chẩn đoán hình ảnh y khoa 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
Real-time AI that works with your team

AI trong sản xuất

Tối ưu hóa sản xuất với 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
Real-time AI that works with your operation

AI trong Ô tô

Áp dụng thị giác máy tính trong ô tô với các model Ultralytics YOLO. AI thị giác nâng cao an toàn đường bộ, hỗ trợ người lái và tự động hóa phương tiện cho những con đường thông minh hơn.
Tìm hiểu thêm
Real-time AI tailored to your operation

AI trong Nông nghiệp

Mang AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Tăng cường giám sát mùa màng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn, thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau xây dựng tương lai của AI!

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