Mô hình và nền tảng AI
TinyML: Ứng Dụng, Giới Hạn và Sử Dụng Trong Thiết Bị IoT & Edge

Trong những năm gần đây, Trí Tuệ Nhân Tạo (AI) và Học Máy (ML) đã chứng kiến sự tăng trưởng mạnh mẽ về phổ biến và ứng dụng, không chỉ trong ngành công nghiệp mà còn trong học thuật. Tuy nhiên, các mô hình AI và ML hiện nay có một hạn chế lớn: chúng yêu cầu một lượng tính toán và xử lý lớn để đạt được kết quả và độ chính xác mong muốn. Điều này thường giới hạn việc sử dụng chúng trong các thiết bị có khả năng tính toán mạnh mẽ.
Tuy nhiên, với sự tiến bộ trong công nghệ hệ thống nhúng và sự phát triển đáng kể trong ngành Công Nghệ Internet Vạn Vật (IoT), việc tích hợp các kỹ thuật và khái niệm Học Máy vào các hệ thống nhúng có hạn chế về tài nguyên là rất mong muốn. Việc sử dụng các khái niệm Học Máy trong các hệ thống nhúng và IoT là yếu tố chính thúc đẩy sự phát triển của TinyML, một kỹ thuật Học Máy nhúng cho phép các mô hình và ứng dụng Học Máy trên nhiều thiết bị có hạn chế về tài nguyên, năng lượng và chi phí.
Tuy nhiên, việc triển khai Học Máy trên các thiết bị có hạn chế về tài nguyên không phải là đơn giản vì việc triển khai các mô hình Học Máy trên các thiết bị có khả năng tính toán thấp gây ra nhiều thách thức về tối ưu hóa, khả năng xử lý, độ tin cậy, bảo trì mô hình và nhiều vấn đề khác.
Trong bài viết này, chúng ta sẽ đi sâu vào mô hình TinyML, tìm hiểu thêm về nền tảng, công cụ hỗ trợ TinyML và các ứng dụng của TinyML sử dụng các công nghệ tiên tiến. Vậy hãy bắt đầu.
Giới Thiệu TinyML: Tại Sao Thế Giới Cần TinyML
Thiết bị IoT nhằm tận dụng tính toán biên, một mô hình tính toán đề cập đến một loạt các thiết bị và mạng gần người dùng để cho phép xử lý dữ liệu từ hàng triệu cảm biến và thiết bị kết nối với nhau một cách liền mạch và thời gian thực. Một trong những lợi thế chính của thiết bị IoT là chúng yêu cầu thấp về tính toán và xử lý vì chúng có thể được triển khai tại biên mạng và do đó có bộ nhớ thấp.
Hơn nữa, thiết bị IoT phụ thuộc nặng vào các nền tảng biên để thu thập và truyền dữ liệu vì các thiết bị biên thu thập dữ liệu cảm biến và sau đó truyền chúng đến một vị trí gần đó hoặc các nền tảng đám mây để xử lý. Công nghệ tính toán biên lưu trữ và thực hiện tính toán trên dữ liệu và cũng cung cấp cơ sở hạ tầng cần thiết để hỗ trợ tính toán phân tán.
Việc triển khai tính toán biên trong thiết bị IoT cung cấp
- Bảo mật, quyền riêng tư và độ tin cậy hiệu quả cho người dùng cuối.
- Giảm độ trễ.
- Tăng khả năng sẵn sàng và phản hồi ứng dụng và dịch vụ.
Hơn nữa, vì thiết bị biên có thể triển khai một kỹ thuật hợp tác giữa cảm biến và đám mây, việc xử lý dữ liệu có thể được thực hiện tại biên mạng thay vì được thực hiện trên nền tảng đám mây. Điều này có thể dẫn đến quản lý dữ liệu hiệu quả, độ bền dữ liệu, giao hàng và lưu trữ nội dung. Ngoài ra, để triển khai IoT trong các ứng dụng liên quan đến tương tác giữa con người và máy móc và chăm sóc sức khỏe hiện đại, tính toán biên cung cấp một cách để cải thiện đáng kể các dịch vụ mạng.
Nghiên cứu gần đây trong lĩnh vực tính toán biên IoT đã chứng minh tiềm năng triển khai các kỹ thuật Học Máy trong nhiều trường hợp sử dụng IoT. Tuy nhiên, vấn đề chính là các mô hình Học Máy truyền thống thường yêu cầu khả năng tính toán và xử lý mạnh mẽ, cũng như dung lượng bộ nhớ cao, điều này hạn chế việc triển khai các mô hình Học Máy trong thiết bị IoT và ứng dụng.
Hơn nữa, công nghệ tính toán biên hiện nay thiếu khả năng truyền tải cao và tiết kiệm năng lượng, dẫn đến các hệ thống dị hợp, đây là lý do chính cho việc cần có một cơ sở hạ tầng hài hòa và toàn diện, đặc biệt là để cập nhật, đào tạo và triển khai các mô hình Học Máy. Kiến trúc được thiết kế cho các thiết bị nhúng đặt ra một thách thức khác vì các kiến trúc này phụ thuộc vào yêu cầu phần cứng và phần mềm khác nhau từ thiết bị này sang thiết bị khác. Đây là lý do chính tại sao việc xây dựng một kiến trúc Học Máy tiêu chuẩn cho mạng IoT là khó khăn.
Ngoài ra, trong kịch bản hiện tại, dữ liệu được tạo ra bởi các thiết bị khác nhau được gửi đến các nền tảng đám mây để xử lý do tính chất tính toán mạnh mẽ của các triển khai mạng. Hơn nữa, các mô hình Học Máy thường phụ thuộc vào Học Sâu, Mạng Nơ-ron Sâu, Các mạch tích hợp ứng dụng cụ thể (ASIC) và Các đơn vị xử lý đồ họa (GPU) để xử lý dữ liệu, và chúng thường có yêu cầu năng lượng và bộ nhớ cao. Việc triển khai các mô hình Học Máy đầy đủ trên thiết bị IoT không phải là một giải pháp khả thi do sự thiếu hụt rõ ràng về khả năng tính toán và xử lý, cũng như các giải pháp lưu trữ hạn chế.
Nhu cầu thu nhỏ các thiết bị nhúng tiết kiệm năng lượng kết hợp với tối ưu hóa các mô hình Học Máy để làm cho chúng tiết kiệm năng lượng và bộ nhớ hơn đã mở ra con đường cho TinyML, nhằm triển khai các mô hình và thực hành Học Máy trên thiết bị IoT và khung khổ biên. TinyML cho phép xử lý tín hiệu trên thiết bị IoT và cung cấp trí tuệ nhúng, do đó loại bỏ nhu cầu chuyển dữ liệu đến các nền tảng đám mây để xử lý. Việc triển khai thành công TinyML trên thiết bị IoT cuối cùng có thể dẫn đến tăng quyền riêng tư và hiệu quả trong khi giảm chi phí vận hành. Ngoài ra, điều khiến TinyML trở nên hấp dẫn hơn là trong trường hợp kết nối không đầy đủ, nó có thể cung cấp phân tích tại chỗ.
TinyML: Giới Thiệu và Tổng Quan
TinyML là một công cụ Học Máy có khả năng thực hiện phân tích trên thiết bị cho các phương thức cảm biến khác nhau như âm thanh, hình ảnh và giọng nói. Các mô hình Học Máy được xây dựng trên công cụ TinyML có yêu cầu thấp về năng lượng, bộ nhớ và tính toán, điều này làm cho chúng phù hợp với các mạng và thiết bị nhúng hoạt động trên pin. Ngoài ra, yêu cầu thấp của TinyML làm cho nó trở thành một lựa chọn lý tưởng để triển khai các mô hình Học Máy trên khung khổ IoT.
Trong kịch bản hiện tại, các hệ thống Học Máy dựa trên đám mây gặp phải một số khó khăn, bao gồm các vấn đề về bảo mật và quyền riêng tư, tiêu thụ năng lượng cao, độ tin cậy và các vấn đề về độ trễ, điều này là lý do tại sao các mô hình trên các nền tảng phần cứng-phần mềm được cài đặt sẵn. Các cảm biến thu thập dữ liệu模拟 thế giới thực và sau đó được xử lý bằng CPU hoặc MPU (Đơn vị xử lý micro). MPU đáp ứng nhu cầu của hỗ trợ phân tích Học Máy được kích hoạt bởi các mạng và kiến trúc biên.
Có thể nói rằng TinyML là sự kết hợp của phần mềm, phần cứng và thuật toán hoạt động cùng nhau để cung cấp hiệu suất mong muốn. Có thể cần tính toán tương tự hoặc bộ nhớ để cung cấp một trải nghiệm học tập hiệu quả hơn cho các thiết bị phần cứng và IoT không hỗ trợ gia tốc phần cứng. Về phần mềm, các ứng dụng được xây dựng bằng TinyML có thể được triển khai và thực hiện trên các nền tảng như Linux hoặc Linux nhúng, cũng như trên phần mềm được kích hoạt bởi đám mây.
Cuối cùng, các ứng dụng và hệ thống được xây dựng trên thuật toán TinyML phải có hỗ trợ từ các thuật toán mới cần các mô hình có kích thước bộ nhớ thấp để tránh tiêu thụ bộ nhớ cao. Để tóm tắt, các ứng dụng được xây dựng bằng công cụ TinyML phải tối ưu hóa các nguyên tắc và phương pháp Học Máy cùng với thiết kế phần mềm một cách紧凑, trong sự hiện diện của dữ liệu chất lượng cao.
Dữ liệu này sau đó phải được flash qua các tệp nhị phân được tạo ra bằng các mô hình được đào tạo trên các máy có khả năng và công suất tính toán lớn hơn. Ngoài ra, các hệ thống và ứng dụng chạy trên công cụ TinyML phải cung cấp độ chính xác cao khi hoạt động dưới các ràng buộc chặt chẽ hơn vì phần mềm紧凑 là cần thiết cho tiêu thụ năng lượng thấp hỗ trợ các ý nghĩa của TinyML.
Với điều đó được nói, các ứng dụng TinyML có hai yêu cầu cơ bản
- Khả năng mở rộng hàng tỷ hệ thống nhúng giá rẻ.
- Lưu trữ mã trên bộ nhớ RAM của thiết bị với dung lượng dưới vài KB.
Ứng Dụng Của TinyML Sử Dụng Các Công Nghệ Tiên Tiến
Một trong những lý do chính tại sao TinyML là một chủ đề nóng trong ngành AI và Học Máy là do các ứng dụng tiềm năng của nó, bao gồm các ứng dụng dựa trên giọng nói và hình ảnh, chẩn đoán sức khỏe, phân loại và nén mẫu dữ liệu, giao diện não-máy tính, tính toán biên, phenomics, xe tự lái và nhiều hơn nữa.
Ứng Dụng Dựa Trên Giọng Nói
Truyền Thông Giọng Nói
Typically, các ứng dụng dựa trên giọng nói phụ thuộc vào các phương pháp truyền thông thông thường trong đó tất cả dữ liệu đều quan trọng và được truyền tải. Tuy nhiên, trong những năm gần đây, truyền thông ngữ nghĩa đã xuất hiện như một lựa chọn thay thế cho truyền thông thông thường vì trong truyền thông ngữ nghĩa, chỉ ý nghĩa hoặc ngữ cảnh của dữ liệu được truyền tải. Truyền thông ngữ nghĩa có thể được triển khai trên các ứng dụng dựa trên giọng nói bằng cách sử dụng các phương pháp TinyML.
Một số ứng dụng phổ biến nhất trong ngành truyền thông giọng nói ngày nay là phát hiện giọng nói, nhận dạng giọng nói, học trực tuyến, dạy học trực tuyến và truyền thông định hướng mục tiêu. Các ứng dụng này thường có tiêu thụ năng lượng cao và cũng có yêu cầu dữ liệu cao trên thiết bị chủ. Để vượt qua các yêu cầu này, một thư viện TinySpeech mới đã được giới thiệu cho phép các nhà phát triển xây dựng một kiến trúc tính toán thấp sử dụng các mạng nơ-ron sâu để xây dựng một cơ sở lưu trữ thấp.
Để sử dụng TinyML cho tăng cường giọng nói, các nhà phát triển đầu tiên giải quyết việc định kích thước mô hình tăng cường giọng nói vì nó bị giới hạn bởi các hạn chế và ràng buộc về phần cứng. Để giải quyết vấn đề, việc tỉa và định lượng整数 cho mô hình tăng cường giọng nói RNN hoặc Mạng Nơ-ron Recurrent được triển khai. Kết quả cho thấy kích thước mô hình giảm gần 12 lần trong khi các hoạt động giảm gần 3 lần. Ngoài ra, điều quan trọng là phải sử dụng tài nguyên một cách hiệu quả, đặc biệt là khi triển khai trên các ứng dụng có hạn chế về tài nguyên thực hiện các ứng dụng nhận dạng giọng nói.
Kết quả là, để phân chia quá trình, một phương pháp thiết kế lại được đề xuất cho các ứng dụng nhận dạng giọng nói và giọng nói dựa trên TinyML. Các nhà phát triển sử dụng hoạt động cửa sổ để phân chia phần mềm và phần cứng theo cách để tiền xử lý dữ liệu giọng nói thô. Phương pháp này có vẻ hiệu quả vì kết quả cho thấy sự giảm tiêu thụ năng lượng trên phần cứng. Cuối cùng, cũng có tiềm năng triển khai phân chia tối ưu giữa phần mềm và phần cứng thiết kế lại cho hiệu suất tốt hơn trong tương lai gần.
Hơn nữa, nghiên cứu gần đây đã đề xuất sử dụng một bộ chuyển đổi điện thoại cho các hệ thống nhận dạng giọng nói và đề xuất này nhằm thay thế các bộ dự đoán LSTM bằng lớp Conv1D để giảm nhu cầu tính toán trên các thiết bị biên. Khi được triển khai, đề xuất này đã trả về kết quả tích cực vì SVD hoặc Phân tích Giá trị Độc nhất đã nén mô hình thành công trong khi việc sử dụng WFST hoặc Trình giải mã Trạng thái Finite có trọng số đã dẫn đến sự linh hoạt hơn trong việc cải thiện mô hình.
Nhiều ứng dụng nổi bật của nhận dạng giọng nói như trợ lý ảo hoặc giọng nói, chú thích trực tiếp và lệnh giọng nói sử dụng các kỹ thuật Học Máy để hoạt động. Các trợ lý giọng nói phổ biến hiện nay như Siri và Trợ lý Google (GOOGL ) ping nền tảng đám mây mỗi khi chúng nhận được một số dữ liệu và điều này tạo ra các vấn đề đáng kể liên quan đến quyền riêng tư và bảo mật dữ liệu. TinyML là một giải pháp khả thi cho vấn đề này vì nó nhằm thực hiện nhận dạng giọng nói trên thiết bị và loại bỏ nhu cầu di chuyển dữ liệu đến các nền tảng đám mây. Một trong những cách để đạt được nhận dạng giọng nói trên thiết bị là sử dụng Tiny Transducer, một mô hình nhận dạng giọng nói sử dụng một lớp DFSMN hoặc Deep Feed-Forward Sequential Memory Block kết hợp với một lớp Conv1D thay vì các lớp LSTM để giảm yêu cầu tính toán và số lượng tham số mạng.
Thiết Bị Hỗ Trợ Nghe
Mất thính giác là một vấn đề sức khỏe lớn trên toàn cầu và khả năng nghe của con người thường suy giảm khi họ già đi và đây là một vấn đề lớn ở các quốc gia đang đối mặt với dân số già như Trung Quốc, Nhật Bản và Hàn Quốc. Các thiết bị hỗ trợ nghe hiện nay hoạt động dựa trên nguyên tắc đơn giản là khuếch đại tất cả các âm thanh đầu vào từ môi trường xung quanh, điều này làm cho người dùng khó phân biệt hoặc phân biệt giữa âm thanh mong muốn, đặc biệt là trong một môi trường ồn ào.
TinyML có thể là giải pháp khả thi cho vấn đề này vì việc sử dụng mô hình TinyLSTM sử dụng thuật toán nhận dạng giọng nói cho các thiết bị hỗ trợ nghe có thể giúp người dùng phân biệt giữa các âm thanh khác nhau.
Ứng Dụng Dựa Trên Hình Ảnh
TinyML có tiềm năng đóng vai trò quan trọng trong việc xử lý các tập dữ liệu dựa trên tầm nhìn vì để có đầu ra nhanh hơn, các tập dữ liệu này cần được xử lý trên chính nền tảng biên. Để đạt được điều này, mô hình TinyML gặp phải các thách thức thực tế khi đào tạo mô hình bằng cách sử dụng bảng điều khiển micro OpenMV H7. Các nhà phát triển cũng đề xuất một kiến trúc để phát hiện ngôn ngữ ký hiệu Mỹ bằng cách sử dụng một bộ xử lý ARM Cortex M7 chỉ với 496KB RAM khung.
Việc triển khai TinyML cho các ứng dụng dựa trên tầm nhìn trên các nền tảng biên yêu cầu các nhà phát triển vượt qua thách thức chính của các mạng nơ-ron tích chập (CNN) với sai số tổng quát hóa cao và độ chính xác đào tạo và kiểm tra cao. Tuy nhiên, việc triển khai không tổng quát hóa hiệu quả cho các hình ảnh trong các trường hợp sử dụng mới cũng như các nền tảng có tiếng ồn. Khi các nhà phát triển sử dụng phương pháp tăng cường nội suy, mô hình đã trả về điểm số độ chính xác trên 98% trên dữ liệu kiểm tra và khoảng 75% về tổng quát hóa.

Hơn nữa, đã quan sát thấy rằng khi các nhà phát triển sử dụng phương pháp tăng cường nội suy, có sự giảm độ chính xác của mô hình trong quá trình định lượng, nhưng đồng thời cũng có sự tăng tốc độ suy luận và tổng quát hóa của mô hình. Các nhà phát triển cũng đề xuất một phương pháp để tăng cường độ chính xác của mô hình tổng quát hóa bằng cách đào tạo trên dữ liệu thu được từ nhiều nguồn khác nhau và kiểm tra hiệu suất để khám phá khả năng triển khai trên các nền tảng biên như đồng hồ thông minh di động.
Hơn nữa, các nghiên cứu bổ sung về CNN cho thấy có thể triển khai và đạt được kết quả mong muốn với kiến trúc CNN trên các thiết bị có tài nguyên hạn chế. Gần đây, các nhà phát triển đã có thể phát triển một khuôn khổ để phát hiện mặt nạ y tế trên một bộ xử lý ARM Cortex M7 với tài nguyên hạn chế bằng cách sử dụng TensorFlow Lite với dấu chân bộ nhớ tối thiểu. Kích thước mô hình sau khi định lượng là khoảng 138 KB trong khi tốc độ suy luận trên bảng mục tiêu là khoảng 30 FPS.
Một ứng dụng khác của TinyML cho các ứng dụng dựa trên tầm nhìn là triển khai một thiết bị nhận dạng cử chỉ có thể được gắn vào một cây gậy để giúp những người khiếm thị điều hướng trong cuộc sống hàng ngày của họ một cách dễ dàng. Để thiết kế nó, các nhà phát triển sử dụng tập dữ liệu cử chỉ và sử dụng tập dữ liệu để đào tạo mô hình ProtoNN với một thuật toán phân loại. Kết quả thu được từ thiết lập là chính xác, thiết kế là thấp chi phí và nó cung cấp kết quả hài lòng.
Một ứng dụng quan trọng khác của TinyML là trong ngành xe tự lái và xe tự hành vì thiếu tài nguyên và khả năng tính toán trên bo mạch. Để giải quyết vấn đề này, các nhà phát triển đã giới thiệu một phương pháp học tập vòng kín dựa trên mô hình TinyCNN, đề xuất một mô hình dự đoán trực tuyến捕获 hình ảnh tại thời gian chạy. Vấn đề chính mà các nhà phát triển gặp phải khi triển khai TinyML cho lái xe tự động là mô hình quyết định được đào tạo để hoạt động trên dữ liệu ngoại tuyến có thể không hoạt động tốt như khi đối mặt với dữ liệu trực tuyến. Để tối đa hóa các ứng dụng của xe tự lái và xe tự hành, mô hình lý tưởng nên có khả năng thích nghi với dữ liệu thời gian thực.
Phân Loại và Nén Mẫu Dữ Liệu
Một trong những thách thức lớn nhất của khuôn khổ TinyML hiện tại là khả năng thích nghi với dữ liệu đào tạo trực tuyến. Để giải quyết vấn đề này, các nhà phát triển đã đề xuất một phương pháp được gọi là TinyOL hoặc Học Máy Trực Tuyến Tiny để cho phép đào tạo với học tập trực tuyến tăng dần trên các đơn vị điều khiển micro, cho phép mô hình cập nhật trên các thiết bị biên IoT. Việc triển khai này được thực hiện bằng ngôn ngữ lập trình C++ và một lớp bổ sung được thêm vào kiến trúc TinyOL.
Hơn nữa, các nhà phát triển cũng thực hiện việc mã hóa tự động của bảng Arduino Nano 33 BLE và mô hình được đào tạo có thể phân loại các mẫu dữ liệu mới. Hơn nữa, công việc phát triển bao gồm thiết kế các thuật toán hiệu quả và tối ưu hóa hơn cho các mạng nơ-ron để hỗ trợ mẫu đào tạo thiết bị trực tuyến.
Nghiên cứu về TinyOL và TinyML đã chỉ ra rằng số lượng lớp kích hoạt đã trở thành một vấn đề lớn cho các thiết bị biên IoT có tài nguyên hạn chế. Để giải quyết vấn đề này, các nhà phát triển đã giới thiệu mô hình TinyTL hoặc Chuyển giao Học Máy Tiny để làm cho việc sử dụng bộ nhớ trên các thiết bị biên IoT hiệu quả hơn và tránh sử dụng các lớp trung gian cho mục đích kích hoạt. Ngoài ra, các nhà phát triển cũng giới thiệu một mô












