Liệu chúng ta có thể trực tiếp nói chuyện với những chiếc máy giặt, các thiết bị đeo tay… Pete Warden tin chắc rằng các ứng dụng Machine Learning như nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên, computer vision… không chỉ chạy trên cloud hay các máy tính đầu cuối mạnh, mà có thể chạy trên các bộ vi điều khiển với bộ nhớ nhỏ và hạn chế về năng lượng. Điều này có thể mở ra những khả năng ứng dụng rất lớn.

Các máy tính siêu nhỏ đã có mặt ở khắp mọi nơi

Thị trường khá phân tán cho nên khó đánh giá chính xác, nhưng ước lượng có khoảng hơn 40 tỷ bộ vi điều khiển (microcontrollers) sẽ được bán ra trong năm [3], và với độ bền của các bộ vi điều khiển thì sẽ có hàng trăm tỷ bộ vi điều khiển đang được lưu hành. Các bộ vi điều khiển (MCUs) chứa các bộ vi xử lý (CPU) nhỏ với bộ nhớ RAM chỉ khoảng vài kbytes, và được nhúng vào các thiết bị dân dụng, y tế, công nghiệp…

Chúng cũng được thiết kế để dùng rất ít năng lượng, và giá thành rẻ để có thể dùng trong mọi loại thiết bị. Giá trung bình của chúng có thể giảm xuống dưới 50 cents trong năm 2018. Chúng ít được chú ý vì thường chỉ được dùng để thay thế các chức năng vốn được thực hiện bởi các hệ thống cơ điện truyền thống, như trong ô tô, máy giặt, hay các điều khiển từ xa…

Logic điều khiển các thiết bị này không khác mấy so với khi dùng các mạch tương tự (analog) và rơ-le, ngoại trừ một số thay đổi như các nút có thể lập trình trên điều khiển từ xa, hay cần gạt nước có thể thay đổi tốc độ tùy theo lượng mưa. Lợi ích lớn nhất với nhà sản xuất là các vi điều khiển có thể được tái lập trình với phần mềm thay vì phải sản xuất các phần điện tử đặc thù cho mỗi chức năng. Điều này làm cho quá trình sản xuất dễ dàng hơn và rẻ hơn.

Năng lượng là yếu tố hạn chế

Mọi thiết bị cần điện nguồn để chạy đều có các yếu tố hạn chế. Chúng phải được lắp đặt ở các nơi đã có dây. Treo lên một góc cao đòi hỏi phải đi dây hoặc sử dụng một alternative như power-over-ethernet [4]. Các mạch điện tử cần thiết để chuyển hiệu điện thế nguồn sang hiệu điện thế sử dụng của thiết bị khá đắt và tiêu tốn nhiều năng lượng. Ngay cả các thiết bị cầm tay cũng đòi hỏi phải được cắm thường xuyên.

Một điều kiện tối ưu cho bất cứ thiết bị thông minh nào là có thể được sử dụng mọi nơi, và không đòi hỏi phải cắm điện hay thay pin. Rào cản lớn nhất để thực hiện được điều này là yêu cầu về năng lượng của các components điện tử. Sau đây là ví dụ mức tiêu thụ điện của một số thành phần:

  • Màn hình (display) cần khoảng 400 milliwatts;
  • Radio cần 800 milliwatts;
  • Bluetooth cần khoảng 100 milliwatts;
  • Gia tốc kế (accelerometer) chỉ khoảng 21 milliwatts;
  • Gyroscope sẽ cần 130 milliwatts;
  • GPS cần 176 milliwatts.

Một bộ vi điện tử tự nó sẽ chỉ cần khoảng vài milliwatts hay ít hơn, tuy nhiên các thiết bị ngoại vi sẽ cần nhiều hơn nhiều. Một cục pin viên (coin battery) trữ khoảng 2.500 Joules, như vậy chỉ đủ chạy cho một thiết bị công suất 1 milliwatts trong khoảng một tháng. Tất nhiên các thiết bị hiện đại đều có các cơ chế tiết kiệm năng lượng như chế độ ngủ (sleeping mode), nhưng chúng ta có thể thấy năng lượng là yếu tố hạn chế ở đây.

CPUs và cảm biến dùng rất ít năng lượng, nhưng Radios và màn hình thì rất nhiều

Từ những thông tin này có thể thấy là vi xử lý và cảm biến cần ít năng lượng, có thể đưa xuống mức microwatts (ví dụ như con chip hình ảnh Glance của Qualcomm, ngay cả các bộ cảm biến CCD[4] hay microphones chỉ cần đơn vị hàng trăm microwatts), nhưng màn hình và đặc biệt là radios cần rất nhiều năng lượng, ngay cả low-power wifi và Bluetooth cũng cần hàng chục milliwatts. Việc di chuyển dữ liệu một cách vật lý có vẻ đòi hỏi nhiều năng lượng.

Có vẻ như quy luật là một nhu cầu năng lượng của một operation tỷ lệ với khoảng cách truyền dữ liệu. Vi xử lý CPU và cảm biến chỉ truyền một vài millimet cho nên cần ít, trong khi radios chuyển xa nhiều mét và hơn nữa nên cần nhiều hơn. Theo tác giả, quy luật này sẽ không đổi, ngay cả khi kỹ thuật tiến bộ hơn. Thậm chí mức chênh lệch năng lượng này sẽ ngày càng lớn hơn, vì có nhiều khả năng giảm tiêu thụ năng lượng khi tính toán hơn là khi truyền dữ liệu.

Chúng ta thu thập nhiều dữ liệu hơn khả năng xử lý rất nhiều

Một vài năm trước tác giả có nói chuyện với nhiều kỹ sư làm việc với các vệ tinh siêu nhỏ (miro-satellites) dùng để thu thập hình ảnh. Vấn đề của các vệ tinh này là chúng được trang bị các camera giống như trong điện thoại, có khả năng quay HD video, tuy nhiên lại chỉ có bộ nhớ rất nhỏ để lưu trữ, cũng như đường truyền rất giới hạn xuống các trạm mặt đất. Đây là vấn đề chung của rất nhiều các cảm biến. Ngay cả camera trong nhà cũng bị giới hạn bởi wifi và đường truyền băng thông rộng. Ví dụ cứ dịp No-el thì cước phí viễn thông của anh tăng lên rất nhiều, đơn giản bởi vì đèn No-el nhấp nháy làm giảm độ nén của video stream vì mỗi frame ảnh đều khác nhau.

Còn nhiều ví dụ khác tương tự, như các gia tốc kế trong các thiết bị wearables hay điện thoại chỉ được dùng để phát hiện các sự kiện có thể đánh thức thiết bị hay để đếm bước chân, chứ không được dùng cho các ứng dụng cao cấp hơn.

Những điều này có ý nghĩa gì với Machine Learning

Nếu bạn chấp nhận các luận điểm trên đây thì có nghĩa là có một thị trường rất lớn đang chờ để được khai phá với công nghệ thích hợp. Chúng ta cần tìm ra các ứng dụng có thể chạy trên các vi điều khiển rẻ tiền, dùng ít năng lượng, dựa vào tính toán chứ không phải truyền số liệu, và có thể khai thác hết các dữ liệu mà các cảm biến thu tập được. Đây chính là chỗ mà Machine Learning, đặc biệt là Deep Learning, có thể phát huy.

Deep Learning chủ yếu dùng tính toán (compute-bound) và có thể chạy tốt trên các vi điều khiển

Các ứng dụng Deep Learning đều dựa rất nhiều vào tính toán (compute-bound). Điều này quan trọng bởi vì với phần lớn các ứng dụng đều phụ thuộc vào việc có thể truy cập một lượng dữ liệu lớn trong bộ nhớ nhanh đến mức nào, và thường truy cập theo các pattern rất khó đoán. Ngược lại phần lớn thời gian chạy một mạng neuron là dùng để nhân các ma trận lớn với nhau, với các con số được dùng lặp lại trong nhiều tổ hợp khác nhau. Điều này có nghĩa là CPUs dành phần lớn thời gian để làm phép nhân số học 2 con số được lưu giữ trong cache, và dành rất ít thời gian để truy cập dữ liệu từ bộ nhớ.

Điều này quan trọng bởi vì truy cập dữ liệu trong bộ nhớ có thể tiêu tốn năng lượng gấp hàng ngàn lần so với làm phép nhân số học. Đây có vẻ lại là một ví dụ nữa của quy luật năng lượng/khoảng cách đã nói ở trên, vì về mặt vật lý, DRAM ở xa hơn các register của CPU rất nhiều. Nhu cầu bộ nhớ tương đối ít (chỉ khoảng hàng chục đến hàng trăm kbytes) đồng nghĩa với việc low-power SRAM hoặc flash có thể được sử dụng làm bộ nhớ.

Điều này làm các ứng dụng Deep Learning rất phù hợp cho các vi điều khiển, đặc biệt khi tính toán 8-bit được dùng thay vì float, vì MCU thường đã có bộ lệnh theo kiểu DSP[5]. Ý tưởng này thực ra cũng không phải là quá mới lạ. Cả Apple lẫn Google đều chạy các ứng dụng nhận dạng giọng nói theo chế độ always-on trên các con chip kiểu thế này, nhưng rất ít người làm Machine Learning hay phần mềm nhúng hiểu sự tương thích giữa Deep Learning và MCUs.

Deep Learning có thể dùng rất ít năng lượng

Picojoules per operation là một chỉ số đo bao nhiêu năng lượng một operation của CPU tiêu thụ, và nó rất có ích bởi nếu bạn biết một mạng neuron chạy bao nhiêu operations một lần, bạn sẽ ước tính được lượng năng lượng cần thiết. Ví dụ mạng MobileNetV2 dùng để phân loại ảnh cần 22 mio ops (mỗi lần nhân-cộng tính là 2 ops) với cấu hình nhỏ nhất.

Nếu một hệ thống cụ thể cần 5 picojoules để chạy một op, vậy sẽ cần 5 picojoules * 22 mio = 110 microjoules. Nếu chúng ta phân tích 1 frame trong một giây, năng suất sẽ là 110 microwatts, và có thể chạy được một năm với một cục pin viên. Các con số này nằm trong khoảng hiện thực với các DSP hiện có, và trong tương lai hiệu suất hy vọng còn tăng lên nữa khi mà cả các model mạng neuron lẫn phần cứng sẽ tiến bộ hơn.

Deep Learning có thể xử lý các dữ liệu lớn thu thập bởi các cảm biến

Trong vài năm qua việc sử dụng mạng neuron đã cho phép chúng ta phân tích và tìm ra ý nghĩa của các tín hiệu như ảnh, âm thanh, hay gia tốc kế. Khi chúng ta chạy các mạng này trên các bộ vi điều khiển, và các cảm ứng cần ít năng lượng, chúng ta có thể xử lý nhiều hơn rất nhiều các dữ liệu mà chúng ta đang chưa xử lý được.

Ví dụ khi bạn muốn thấy bất cứ thiết bị nào cũng có một ứng dụng nhận dạng giọng nói đơn giản. Với một số vốn từ cơ bản, và có thể cùng với một cảm biến hình ảnh để phát hiện sự chú ý (gaze detection), chúng ta có thể điều khiển bất cứ thiết bị nào mà không cần phải nhấn nút hay sử dụng app trên điện thoại. Một thiết bị nhận dạng giọng nói với giá rẻ hơn 50 cents và có thể chạy cả năm với chỉ một cục pin viên – Điều này được tin là hoàn toàn khả thi với các công nghệ hiện có.

Ví dụ khác, bạn muốn có một cảm ứng hình ảnh siêu nhỏ chạy bằng pin mà bạn có thể lập trình để phát hiện một số đối tượng cụ thể như các loại sâu hay cỏ dại, và gửi báo động khi phát hiện. Các thiết bị này có thể rải khắp cánh đồng và cho phép các can thiệp như nhổ cỏ hay phun thuốc trừ sâu có thể được thực hiện một cách thân thiện với môi trường hơn.

Một ví dụ trong công nghiệp mà tác giả rất ám ảnh là hình ảnh của một người thợ cả tạm gọi là “Hans”. Anh ta là một kỹ sư lâu năm, cứ mỗi sáng sẽ đi dọc các hành lang trong xưởng, dừng lại ở mỗi máy, đặt tay lên, lắng nghe, kiểm tra xem liệu có bộ phận nào cần phải được xem xét, sửa chữa. Tất cả chỉ dựa vào kinh nghiệm và bản năng được tôi luyện. Nhà máy nào cũng có những người như thế, nhưng đang ít dần đi vì họ về hưu. Nếu bạn có thể gắn một gia tốc kế và microphone chạy bằng pin vào mỗi máy (kiểu “Cyber-Hans”) để chúng có thể phát hiện ra các biểu hiện bất thường, và bạn có thể kịp thời khắc phục trước khi vấn đề trở nên nghiêm trọng.

Có thể nghĩ ra hàng trăm các ví dụ, nhưng nói thật điều làm tác giả cảm thấy hứng thú nhất là tác giả thực sự không biết các thiết bị mới này có thể được sử dụng để làm gì, chỉ là các điều kiện về công nghệ đã chí muồi cho nên chúng cần phải được làm ra và rất nhiều ứng dụng mà chúng ta chưa thể hình dung được sẽ xuất hiện.

Hoàn cảnh này tương tự như với một đứa trẻ lớn lên trong những năm 80 khi mà những máy tính cá nhân đầu tiên bắt đầu phổ biến. Chúng ta không thể biết chúng có thể làm gì, rất nhiều người chỉ dùng để chơi game hay lưu trữ những quyến sổ địa chỉ lớn, nhưng chắc chắn sẽ có rất nhiều thế giới mới sẽ được mở ra.

Lời kết

Truyền đạt tình cảm thường đòi hỏi phải qua gặp gỡ, rất khó để nói qua tài liệu. Tuy nhiên tác giả hy vọng đã phần nào truyền tải được ở đây sự hứng khởi và niềm tin với xu hướng công nghệ mới này. Dù chưa biết cụ thể chi tiết, nhưng tác giả tin chắc rằng Machine Learning chạy trên các bộ vi điều khiển đang trở thành hiện thực, và chúng sẽ mở ra rất nhiều chân trời mới cho các ứng dụng hấp dẫn trong tương lai.

Chú thích:

  • [1] Một nhà khởi nghiệp, đầu tư, nhà báo về công nghệ ở Anh
  • [2] Hội thảo lớn nhất về AI/technology ở Anh [1] 2018
  • [3] 2018
  • [4] Một phương pháp cho phép truyền điện cùng với dây cáp LAN
  • [5] DSP (Digital Signal Processor): là một loại vi xử lý đặc biệt, thường dùng rất nhiều phép toán chạy nhanh và lặp lại trên các series của data samples (Wiki).

Theo AmaTech

Tin liên quan: