Vì sao tương lai của Machine Learning là siêu nhỏ

Source: Deep Learning on Medium

Vì sao tương lai của Machine Learning là siêu nhỏ

Lời dịch giả: Ascend 910 có khả năng training các bài toán AI theo đơn vị phút. Từ GPU của Nvidia đến Google với TPU, Intel với Nervana NNP, Amazon với Inferentia.. các ông lớn cũng như hành trăm start-ups đang chạy đua trong cuộc đua chế tạo các con chips AI nhanh hơn, mạnh hơn.

Pete Warden, trưởng nhóm TensorFlow Mobile của Google lại suy nghĩ ngược lại. Anh tin chắc rằng chúng ta có thể chạy các ứng dụng Machine Learning như xử lý ngôn ngữ, nhận dạng hình ảnh trên các bộ vi điều khiển (microcontroller) ít bộ nhớ, giá rẻ, hạn chế năng lượng gắn trên hàng tỷ các thiết bị công nghiệp cũng như dân dụng hàng ngày. Và điều này sẽ mở ra một chân trời ứng dụng mới.

Thử tưởng tượng một ngày nào đó bạn có thể chửi thề với cái máy giặt của mình “Tao đã bảo áo trắng đừng có giặt chung” hay dặn dò cái khoá cửa thông minh “thấy thằng đòi nợ đến bấm chuông thì đừng mở”…

Khi Azeem[1] đề nghị tôi nói chuyện tại hội thảo CogX[2], và anh yêu cầu tôi chỉ tập trung chọn đúng một điểm mà tôi muốn người nghe thấm nhất. Vài năm trước có lẽ tôi đã cố gắng thuyết phục họ vì sao Deep Learning là một cuộc cách mạng thực sự chứ không chỉ là một trào lưu. Tôi biết điều này trước nhiều người không phải vì tôi là một nhà tiên tri thông thái mà chỉ đơn giản là tôi đã có cơ hội tham gia rất nhiều dự án và tận mắt chứng kiến khả năng của Deep Learning. Giờ đây đã có rất nhiều ứng dụng Deep Learning trong thực tế. Theo tôi rào cản lớn nhất bây giờ cho ứng dụng Deep Learning chỉ là câu hỏi mất bao lâu để đi từ nghiên cứu đến ứng dụng.

Chính vì thế thay vì Deep Learning tôi đã chọn một chủ đề mà tôi cũng chắc chắn như thế, và tôi tin là cũng sẽ có ảnh hưởng rất lớn, nhưng còn rất ít người biết. Tôi tin rằng Deep Learning có thể chạy trên các con chip nhỏ, tiêu thụ năng lượng ít, và điều này sẽ mang lại giải pháp cho rất nhiều bài toán mà chúng ta đang tìm cách giải. Sau đây tôi sẽ giải thích kỹ hơn vì sao tôi lại chắc chắn như thế.

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 vv. 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 vv. 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 2500 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. Tôi nghĩ quy luật này sẽ không đổi, ngay cả khi kỹ thuật tiến bộ hơn. Thậm chí tôi cho rằng 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ôi 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 vj 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. Tôi nhận ra rằng đâ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ụ yêu thích của tôi là về một anh bạn người đã phát hiện ra rằng 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 events 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

Một trong những điều mà tôi yêu thích nhất khi làm việc với các ứng dụng Deep Learning là chúng 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 mà tôi đã có dịp làm đề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

Tôi dành khá nhiều thời gian để nghĩ về picojoules per operation. Đây 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 tôi biết 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ụ tôi 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. Tôi muốn thấy 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. Tôi tin là điều này hoàn toàn khả thi với các công nghệ hiện có.

Ví dụ khác, tôi muốn có một cảm ứng hình ảnh siêu nhỏ chạy bằng pin mà tôi 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ôi 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.

Tôi có thể nghĩ ra hàng trăm các ví dụ, nhưng nói thật điều làm tôi cảm thấy hứng thú nhất là tôi 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ệ đã chin 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. Với tôi 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. Tôi 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 tôi biết 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ôi hy vọng tôi đã phần nào truyền tải được ở đây sự hứng khởi và niềm tin của tôi với xu hướng công nghệ mới này. Tôi chưa biết cụ thể chi tiết, nhưng tôi 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).

Bài gốc của Pete Warden (Lead of the TensorFlow Mobile/Embedded team, former CTO of Jetpac, acquired by Google in 2014. O’Reilly author, and blogger at petewarden.com): https://petewarden.com/2018/06/11/why-the-future-of-machine-learning-is-tiny/?