Lời cảm ơn
Khởi nguồn
Cuốn sách này ra đời từ một cuộc trò chuyện duy nhất. Trong kỳ nghỉ nghiên cứu tại Google, Pete Warden mời tôi tham gia một dự án tưởng chừng bất khả thi với TinyML: chạy một mô hình giọng nói nhỏ trên vi điều khiển. Sự hợp tác trên TensorFlow Lite for Microcontrollers đã hé lộ một điều cốt lõi. Những ràng buộc của một thiết bị chỉ có 16 KB đến 256 KB bộ nhớ cũng chính là những ràng buộc của một bộ tăng tốc trong trung tâm dữ liệu, dù quy mô hoàn toàn khác. Băng thông, độ trễ, năng lượng và bộ nhớ tuân theo cùng một quy luật vật lý ở cả hai bối cảnh. Nhận định đó đã trở thành hạt giống cho cuốn sách này.
Những nỗ lực về TinyML đã dẫn tới một khóa học trực tuyến trên HarvardX, đồng giảng dạy cùng Laurence Moroney, và thu hút hơn 100.000 sinh viên trên toàn thế giới. Brian Plancher hỗ trợ xây dựng chương trình TinyML. Marcelo Rovai, một giáo sư lần đầu tiếp cận tài liệu qua khóa TinyML, đã tiếp tục phát triển các phòng lab thực hành và bộ kit đi kèm cuốn sách này. Zach Shelby mở nền tảng Edge Impulse cho sinh viên sử dụng. Massimo Banzi và nhóm Arduino, cùng với Eric Pan và Seeed Studio, hợp tác với chúng tôi để phát triển và cung cấp các bộ kit phần cứng, giúp việc dạy học thực hành trở nên khả thi. Marco Zennaro đưa tài liệu này đến các nước đang phát triển thông qua ICTP và gieo ý tưởng rằng những nguyên tắc này xứng đáng với một cuốn sách giáo khoa đàng hoàng. Dạy học ở quy mô như vậy mà chưa có giáo trình càng cho thấy nhu cầu là không thể phủ nhận.
Nhu cầu đó đã thành sách thông qua môn CS249r tại Đại học Harvard. Năm 2023, dự án kéo dài cả học kỳ của lớp là viết ghi chú bài giảng: mỗi nhóm sinh viên phụ trách một chủ đề, nghiên cứu và làm việc với tôi để phát triển thành một chương. Công việc đó đã gieo mầm cho mọi chương trong cuốn sách này. Tiền đề là viết lách buộc bạn phải suy nghĩ sâu hơn nhiều so với đọc. Sau đó, chúng tôi công khai tất cả trên GitHub, và những ghi chú ban đầu còn thô ráp đã được viết lại, chỉnh lý qua từng học kỳ kể từ đó.
Phản ánh tinh thần hợp tác ấy, phần tiếp theo giới thiệu danh sách các cộng tác viên trên GitHub. Hướng dẫn đóng góp có sẵn tại mlsysbook.ai/git.
Cộng tác viên và Đồng nghiệp
Ngoài lớp học và cộng đồng trên GitHub, những hợp tác trước đây của tôi đã định hình nền tảng tri thức cho cuốn sách này. Quãng thời gian làm việc tại Google góp phần lớn vào tư duy hệ thống trong các trang sách. Giai đoạn đó bắt đầu với việc xây dựng mô hình hiệu năng cho hệ thống trên chip (SoC) Pixel đầu tiên, dựa trên nền tảng kiến trúc máy tính của tôi. Hợp tác với Mark Hill về mô hình phân tích kiểu roofline cho các SoC dị thể đã dạy tôi cách suy luận về phần cứng từ những nguyên tắc cơ bản — một lối tư duy định lượng xuyên suốt mọi chương. Nhấn mạnh mô hình phân tích dẫn tự nhiên đến đánh giá có hệ thống, và đánh giá có hệ thống dẫn đến MLPerf. MLPerf có sự đóng góp của nhiều người từ MLCommons, nhưng tôi làm việc chặt chẽ nhất với Peter Mattson, David Kanter, Carole-Jean Wu, Christine Cheng, Guenther Schmuelling, Cody Coleman và Cliff Young. Sự hợp tác đó đã định hình cách tôi nghĩ về đo lường hệ thống ML một cách nghiêm ngặt.
Boris Murmann và Song Han đã thuyết phục tôi ngay từ đầu rằng dự án này đáng để theo đuổi. Trong quá trình viết, tôi tìm kiếm phản hồi từ đồng nghiệp ở cả ngành công nghiệp lẫn giới học thuật. Các chuyên gia tại Arm, Google, Intel, Meta, Microsoft, Qualcomm, STMicroelectronics và các tổ chức khác chia sẻ góc nhìn gắn với các hệ thống vận hành thực tế, trong khi các nhà nghiên cứu và giảng viên tại các trường đại học khắp Châu Âu, Châu Á và Châu Mỹ đã “thử lửa” tài liệu dựa trên nghiên cứu và trải nghiệm giảng dạy của họ. Những phản hồi tổng hợp này giúp mài giũa từng chương. Evgeni Gousev tại Qualcomm và Pete Bernard tại Edge AI Foundation đã hỗ trợ các hoạt động kết nối của dự án và giúp xây dựng cộng đồng xung quanh nó.
Vòng phản hồi đó còn lan tới các lớp học trên khắp thế giới, nơi các giảng viên đã đưa tài liệu vào thử nghiệm khi nó vẫn còn thô. Sophia Shao tại UC Berkeley, Xiaofan (Fred) Jiang tại Columbia, Tushar Krishna và Divya Mahajan tại Georgia Tech, cùng Wenkai Guan tại University of Minnesota Morris là những người đầu tiên; sau đó, các giảng viên tại IIT Bombay, NUST Pakistan, De La Salle University ở Philippines, và các trường đại học khắp Châu Âu, Châu Mỹ Latinh và Châu Phi đã đưa cuốn sách này vào các khóa học của họ. Sự sẵn lòng giảng dạy từ một cuốn sách giáo khoa chưa hoàn chỉnh của họ đã mang lại phản hồi vô giá và khẳng định rằng nhu cầu về tài liệu này không chỉ nằm ở một trường hay một quốc gia nào.
Sinh viên và người đóng góp
Các sinh viên của tôi tại Phòng thí nghiệm Edge Computing ở Harvard đã góp phần định hình cuốn sách này theo những cách mà tôi khó có thể kể hết. Một số đã thực hiện những công việc nền tảng, giúp xác lập TinyML như một lĩnh vực; nghiên cứu của họ và những ý tưởng nảy sinh từ nhiều năm hợp tác đã định hình nội dung kỹ thuật của cuốn sách. Nhóm này không chỉ góp phần khởi động lĩnh vực TinyML mà còn giúp tôi viết về nó: Andy Cheng, Arya Tschand, Brian Plancher, Colby Banbury, Elizabeth Suitor, Emma Chen, Ikechukwu Uchendu, Jason Jabbour, Jason Yik, Jeffrey Ma, Jessica Quaye, Mark Mazumder, Matthew Stewart, Maximilian Lam, Radhika Ghosal, Shvetank Prakash, Srivatsan Krishnan, Yu-Shun Hsiao, và Zishen Wan. Kai Kleinbard, lúc đó đang học tại Trường Mở rộng Harvard, đã xây dựng bot gia sư AI tạo sinh trực tuyến SocratiQ. Naeem Khoshnevis, từ Viện Kempner Harvard, đã thiết lập hạ tầng quan trọng, bao gồm GitHub Actions và các tiêu chuẩn tài liệu. Željko Hrček đã tạo các sơ đồ TikZ, đồng thời đóng góp vào bố cục PDF, dàn trang và định dạng hình ảnh cuối cùng của cuốn sách.
Một cuốn sách giáo khoa chắt lọc các nguyên tắc từ một lĩnh vực nghiên cứu đang sôi động cũng phải tri ân các nhà nghiên cứu mà công trình của họ là nền tảng cho cuốn sách này. Cộng đồng mã nguồn mở đã định hình cuốn sách này theo những cách mà một tác giả đơn lẻ không thể làm được. Hàng chục người đóng góp đã phát hiện lỗi, cải thiện cách giải thích, báo cáo vấn đề và gửi pull request. Có người chỉ sửa một lỗi đánh máy; có người viết lại cả một mục. Cuốn sách tốt lên vì những người không hề mang nợ gì với nó đã chọn đóng góp để nó tốt hơn. Tôi biết ơn tất cả họ.
Hỗ trợ
Công trình này cũng nhận được hỗ trợ từ Sáng kiến Khoa học Dữ liệu Harvard, Trường Mở rộng Harvard và Quỹ Khoa học Quốc gia; từ Edge AI Foundation và ICTP cho các hoạt động tiếp cận giáo dục và học bổng; và từ Arduino, Edge Impulse, Google, và Seeed Studio cho phần cứng, công cụ và hạ tầng giúp triển khai các phòng thí nghiệm thực hành.
Tại MIT Press, Susan Hartman đã tin vào dự án này và đưa nó từ một thử nghiệm mã nguồn mở thành một cuốn sách giáo khoa đã xuất bản. Sự hỗ trợ, đánh giá biên tập và tình bạn của cô ấy đã biến cuốn sách này thành hiện thực theo cách mà chỉ GitHub thôi thì không thể. Tôi cũng vô cùng biết ơn MIT Press vì đã đồng ý giữ cuốn sách này ở dạng truy cập mở. Một cuốn sách giáo khoa về một lĩnh vực được cộng đồng mã nguồn mở định hình thì nên để mọi người trong cộng đồng ấy đều có thể tiếp cận. Việc MIT Press cùng chia sẻ niềm tin này đã tạo nên sự khác biệt lớn.
Cuối cùng, tôi xin cảm ơn vợ tôi, Kari, cùng hai con gái Nora và Maya. Cuốn sách này được viết vào những giờ lẽ ra thuộc về họ: những đêm bắt đầu lúc mười giờ và kết thúc lúc hai hay ba giờ sáng; những cuối tuần tan vào các bản chỉnh sửa; những năm trời buổi sáng tôi có mặt nhưng chưa thật sự hiện diện. Ngoài sự lì lợm, điều giữ tôi tiếp tục chính là cộng đồng mã nguồn mở. Mỗi ngôi sao trên GitHub là một tín hiệu rằng ở đâu đó có người quan tâm, có người đang học, rằng công việc này có ý nghĩa. Cái giá phải trả là có thật, và họ đã gánh nó bằng sự kiên nhẫn mà không phải lúc nào tôi cũng xứng đáng.