Neural Architecture Search
- 1. Định nghĩa
- 2. Lịch sử và nguồn gốc
- 3. Đặc điểm và tính chất
- 4. Phân loại
- 4.1. 1. NAS dựa trên học tăng cường (Reinforcement Learning-based NAS)
- 4.2. 2. NAS dựa trên thuật toán tiến hóa (Evolutionary-based NAS)
- 4.3. 3. NAS vi phân (Differentiable NAS – DARTS)
- 4.4. 4. NAS một lần (One-shot NAS)
- 5. Cơ chế hoạt động
- 6. Ứng dụng thực tế
- 7. Ưu điểm và hạn chế
- 8. Lưu ý quan trọng
Định nghĩa
Neural Architecture Search (NAS), hay Tìm kiếm Kiến trúc Mạng Nơ-ron, là một nhánh nghiên cứu thuộc lĩnh vực trí tuệ nhân tạo và học máy, tập trung vào việc tự động hóa quá trình thiết kế kiến trúc mạng nơ-ron sâu (deep neural networks). Thay vì dựa vào kinh nghiệm thủ công của các kỹ sư hoặc nhà nghiên cứu để xây dựng cấu trúc mạng phù hợp cho từng bài toán cụ thể — như phân loại ảnh, nhận dạng giọng nói hay dịch máy — NAS sử dụng các phương pháp thuật toán để khám phá không gian kiến trúc tiềm năng và chọn ra mô hình có hiệu suất cao nhất theo một tiêu chí đánh giá nhất định, thường là độ chính xác trên tập kiểm thử kết hợp với ràng buộc về tài nguyên tính toán.
Về bản chất, NAS được xem là một thành phần cốt lõi trong lĩnh vực AutoML (Automated Machine Learning – Học máy Tự động), nơi mục tiêu là giảm thiểu sự can thiệp của con người trong toàn bộ quy trình phát triển mô hình học máy. Trong bối cảnh mà các kiến trúc mạng nơ-ron ngày càng phức tạp và tốn kém về mặt tính toán, NAS cung cấp một giải pháp hệ thống để tìm kiếm các mô hình hiệu quả hơn, tiết kiệm tài nguyên hơn và có khả năng tổng quát tốt hơn. Thuật ngữ này lần đầu xuất hiện rõ ràng trong các công bố khoa học vào khoảng năm 2016–2017, nhưng ý tưởng nền tảng đã được ấp ủ từ lâu trong cộng đồng AI.
Lịch sử và nguồn gốc
Mặc dù khái niệm tự động hóa thiết kế mô hình học máy đã tồn tại từ những năm 1990, Neural Architecture Search chỉ thực sự nổi bật khi học sâu (deep learning) bùng nổ vào thập niên 2010. Trước thời điểm này, việc thiết kế mạng nơ-ron chủ yếu dựa vào trực giác, thử-sai và kinh nghiệm chuyên môn. Các kiến trúc mang tính bước ngoặt như LeNet (1998), AlexNet (2012), VGGNet (2014), hay ResNet (2015) đều là sản phẩm của nỗ lực thủ công từ các nhóm nghiên cứu hàng đầu. Tuy nhiên, khi nhu cầu về mô hình hiệu quả cho thiết bị di động, IoT và hệ thống nhúng ngày càng tăng, giới hạn về tài nguyên tính toán khiến việc thiết kế thủ công trở nên không khả thi.
Các nghiên cứu tiên phong về NAS bắt đầu xuất hiện vào khoảng năm 2016. Một trong những công trình đầu tiên được công nhận rộng rãi là bài báo "Neural Architecture Search with Reinforcement Learning" của Zoph và Le (Google Brain, 2016), trong đó tác giả sử dụng học tăng cường (reinforcement learning) để huấn luyện một "bộ điều khiển" (controller) sinh ra chuỗi mô tả kiến trúc mạng, sau đó huấn luyện và đánh giá kiến trúc đó trên dữ liệu thật. Kết quả là họ thu được một kiến trúc — sau này được gọi là NASNet — đạt độ chính xác cao hơn so với các mô hình thủ công trên tập CIFAR-10 và ImageNet. Tuy nhiên, phương pháp này đòi hỏi hàng ngàn GPU-day (ngày sử dụng GPU), gây tranh cãi về tính khả thi trong thực tế.
Sau đó, nhiều hướng tiếp cận mới được đề xuất nhằm giảm chi phí tính toán. Năm 2018, Liu et al. giới thiệu Differentiable Architecture Search (DARTS), một bước đột phá khi chuyển bài toán rời rạc thành liên tục bằng cách sử dụng gradient descent, giúp giảm thời gian tìm kiếm từ hàng tuần xuống còn vài ngày trên một GPU đơn lẻ. Cùng thời điểm, các phương pháp dựa trên tiến hóa (evolutionary algorithms), tìm kiếm dựa trên hiệu suất (performance prediction), và tìm kiếm một lần rồi áp dụng lại (one-shot NAS) cũng được phát triển mạnh mẽ. Đến đầu thập niên 2020, NAS đã trở thành một lĩnh vực trưởng thành với hàng trăm biến thể, thư viện mã nguồn mở (như AutoKeras, NNI, ENAS), và ứng dụng trong sản phẩm thương mại.
Đặc điểm và tính chất
Neural Architecture Search sở hữu nhiều đặc điểm kỹ thuật nổi bật, phản ánh sự giao thoa giữa học máy, tối ưu hóa và kiến trúc phần cứng. Trước hết, NAS hoạt động trong một không gian tìm kiếm kiến trúc (search space) được định nghĩa trước, nơi mỗi điểm tương ứng với một cấu trúc mạng nơ-ron khả thi. Không gian này có thể bao gồm các siêu tham số như số lớp, loại phép toán (convolution, pooling, attention...), kích thước kernel, tỷ lệ giãn nở (dilation rate), hoặc thậm chí cách kết nối giữa các khối (skip connections, residual blocks).
Một đặc điểm then chốt khác là cơ chế đánh giá hiệu suất (performance estimation strategy). Do việc huấn luyện đầy đủ mỗi kiến trúc mất rất nhiều thời gian, NAS thường sử dụng các chiến lược xấp xỉ như: huấn luyện trên tập con nhỏ, sử dụng proxy task (tác vụ thay thế đơn giản hơn), chia sẻ trọng số (weight sharing) giữa các kiến trúc, hoặc huấn luyện một mô hình dự đoán hiệu suất (surrogate model). Điều này ảnh hưởng trực tiếp đến độ chính xác và hiệu quả của quá trình tìm kiếm.
- Tính tự động hóa cao: NAS giảm thiểu can thiệp thủ công trong thiết kế mô hình, phù hợp với xu hướng AutoML.
- Chi phí tính toán lớn: Dù đã được cải thiện, nhiều phương pháp NAS vẫn yêu cầu tài nguyên phần cứng đáng kể.
- Khả năng tổng quát: Kiến trúc tìm được trên một tập dữ liệu (ví dụ CIFAR-10) thường có thể chuyển giao (transfer) sang tập lớn hơn (ImageNet) với hiệu suất tốt.
- Tính linh hoạt: NAS có thể được điều chỉnh để tối ưu đa mục tiêu, như cân bằng giữa độ chính xác, độ trễ suy luận, kích thước mô hình và mức tiêu thụ năng lượng.
- Phụ thuộc vào không gian tìm kiếm: Chất lượng kết quả NAS bị giới hạn bởi cách định nghĩa không gian tìm kiếm ban đầu.
Phân loại
1. NAS dựa trên học tăng cường (Reinforcement Learning-based NAS)
Trong phương pháp này, một tác nhân (agent) — thường là một mạng nơ-ron hồi tiếp (RNN) — được huấn luyện để sinh ra mô tả kiến trúc dưới dạng chuỗi token. Mỗi kiến trúc được huấn luyện và đánh giá trên dữ liệu thật, và phần thưởng (reward) được gửi ngược lại để cập nhật chính sách của tác nhân. Phương pháp này cho kết quả chất lượng cao nhưng tốn kém về mặt tính toán do phải huấn luyện hàng trăm/thousands mô hình riêng lẻ.
2. NAS dựa trên thuật toán tiến hóa (Evolutionary-based NAS)
Tập hợp các kiến trúc được xem như một quần thể (population). Qua các thế hệ, các cá thể có hiệu suất cao được giữ lại và lai ghép/đột biến để tạo ra thế hệ mới. Phương pháp này dễ song song hóa và không cần gradient, nhưng vẫn đòi hỏi nhiều lần huấn luyện mô hình. Google đã sử dụng cách tiếp cận này để tạo ra AmoebaNet, một kiến trúc cạnh tranh với NASNet.
3. NAS vi phân (Differentiable NAS – DARTS)
DARTS biểu diễn không gian tìm kiếm dưới dạng đồ thị liên tục, trong đó mỗi cạnh có trọng số mềm cho từng phép toán khả thi. Nhờ đó, cả kiến trúc và trọng số mạng có thể được tối ưu đồng thời bằng gradient descent. Đây là bước tiến lớn về hiệu quả tính toán, nhưng gặp vấn đề về ổn định (ví dụ: hội tụ về các phép toán không mong muốn như skip-connect quá mức).
4. NAS một lần (One-shot NAS)
Ý tưởng chính là huấn luyện một "siêu mạng" (supernet) chứa tất cả các kiến trúc con khả thi. Sau đó, việc đánh giá một kiến trúc con chỉ cần lấy trọng số tương ứng từ siêu mạng mà không cần huấn luyện lại. Các phương pháp như ENAS, SPOS, hay Once-for-All (OFA) thuộc nhóm này, cho phép tìm kiếm nhanh chóng và phù hợp với triển khai trên thiết bị.
Cơ chế hoạt động
Cơ chế hoạt động của Neural Architecture Search có thể được khái quát qua ba thành phần chính: không gian tìm kiếm (search space), chiến lược tìm kiếm (search strategy), và cơ chế đánh giá (performance estimation). Đầu tiên, không gian tìm kiếm xác định tập hợp tất cả các kiến trúc mạng nơ-ron khả thi. Ví dụ, trong bài toán thị giác máy tính, không gian này có thể bao gồm các khối (cells) lặp lại, mỗi khối gồm nhiều nút (nodes) và các phép toán (operations) như 3×3 convolution, 5×5 separable convolution, max pooling, v.v.
Tiếp theo, chiến lược tìm kiếm quyết định cách duyệt không gian này. Nếu dùng học tăng cường, chiến lược sẽ là một chính sách ngẫu nhiên được cập nhật theo phần thưởng. Nếu dùng DARTS, chiến lược là tối ưu hóa gradient trên không gian liên tục. Trong khi đó, NAS tiến hóa sử dụng chọn lọc tự nhiên và đột biến. Mỗi chiến lược có ưu-nhược riêng về tốc độ hội tụ, độ chính xác và khả năng mở rộng.
Cuối cùng, cơ chế đánh giá xác định xem một kiến trúc có "tốt" hay không. Lý tưởng nhất là huấn luyện đầy đủ và đo độ chính xác trên tập kiểm thử, nhưng điều này không khả thi về mặt thời gian. Do đó, các phương pháp xấp xỉ được áp dụng: (1) huấn luyện ngắn hạn (early stopping), (2) sử dụng tập dữ liệu nhỏ hơn, (3) chia sẻ trọng số (trong one-shot NAS), hoặc (4) huấn luyện mô hình hồi quy để dự đoán hiệu suất từ đặc trưng kiến trúc. Sự lựa chọn cơ chế đánh giá ảnh hưởng lớn đến độ tin cậy của toàn bộ quy trình NAS.
Ứng dụng thực tế
Neural Architecture Search đã được triển khai trong nhiều lĩnh vực ứng dụng thực tiễn. Trong thị giác máy tính, các kiến trúc như EfficientNet (do Google phát triển bằng NAS) đã trở thành chuẩn mực cho các hệ thống nhận diện ảnh trên thiết bị di động nhờ cân bằng tốt giữa độ chính xác và hiệu quả tính toán. Facebook (nay là Meta) cũng sử dụng NAS để tối ưu mô hình xử lý ảnh trong ứng dụng Instagram và Facebook.
Trong xử lý ngôn ngữ tự nhiên (NLP), NAS được dùng để tìm kiếm kiến trúc encoder-decoder hiệu quả cho dịch máy hoặc mô hình ngôn ngữ nhỏ gọn cho thiết bị. Ví dụ, Microsoft đã áp dụng NAS để tạo ra các phiên bản nhẹ của BERT (TinyBERT) phục vụ suy luận nhanh trên điện thoại. Ngoài ra, trong xe tự hành và robotics, nơi tài nguyên tính toán bị giới hạn nghiêm ngặt, NAS giúp thiết kế các mạng nơ-ron thời gian thực có độ trễ thấp nhưng vẫn đảm bảo độ tin cậy cao.
Các công ty công nghệ lớn như Google, NVIDIA, Huawei, và Samsung đều đã tích hợp NAS vào pipeline phát triển AI nội bộ. Thư viện mã nguồn mở như AutoKeras, nni (Neural Network Intelligence) của Microsoft, hay TensorFlow Model Optimization Toolkit cũng cho phép cộng đồng nghiên cứu và doanh nghiệp nhỏ tiếp cận công nghệ này mà không cần xây dựng từ đầu.
Ưu điểm và hạn chế
Ưu điểm nổi bật của NAS là khả năng khám phá các kiến trúc vượt trội so với thiết kế thủ công, đặc biệt trong các ràng buộc tài nguyên. NAS giúp tiết kiệm thời gian và chuyên môn của kỹ sư học máy, đồng thời tạo ra các mô hình có tính hiệu quả cao — điều cực kỳ quan trọng cho triển khai trên thiết bị biên (edge devices). Ngoài ra, NAS hỗ trợ tối ưu đa mục tiêu, cho phép cân nhắc đồng thời độ chính xác, độ trễ, kích thước và mức tiêu thụ năng lượng.
Tuy nhiên, hạn chế vẫn còn đáng kể. Trước hết là chi phí tính toán ban đầu: dù đã được cải thiện, nhiều phương pháp NAS vẫn yêu cầu hàng chục đến hàng trăm GPU-day để tìm kiếm, gây khó khăn cho các tổ chức nhỏ. Thứ hai, tính tổng quát của không gian tìm kiếm: nếu không gian được định nghĩa quá hẹp, NAS có thể bỏ lỡ các kiến trúc sáng tạo; nếu quá rộng, quá trình tìm kiếm trở nên không khả thi. Thứ ba, vấn đề đánh giá sai lệch: do sử dụng xấp xỉ, thứ hạng hiệu suất giữa các kiến trúc có thể không phản ánh đúng khi huấn luyện đầy đủ. Cuối cùng, thiếu minh bạch: nhiều kiến trúc do NAS sinh ra rất phức tạp và khó giải thích, gây trở ngại trong các lĩnh vực yêu cầu tính minh bạch như y tế hoặc tài chính.
Lưu ý quan trọng
Khi triển khai Neural Architecture Search, người dùng cần lưu ý rằng kết quả phụ thuộc mạnh vào cách định nghĩa không gian tìm kiếm. Việc sao chép nguyên xi không gian từ một bài báo mà không điều chỉnh cho phù hợp với bài toán cụ thể có thể dẫn đến hiệu suất kém. Ngoài ra, cần thận trọng với các cơ chế đánh giá xấp xỉ: một kiến trúc có vẻ tốt trên proxy task có thể thất bại khi triển khai thực tế. Do đó, luôn nên thực hiện huấn luyện và kiểm thử đầy đủ ít nhất với vài ứng cử viên hàng đầu trước khi đưa vào sản xuất.
Một sai lầm phổ biến là cho rằng NAS hoàn toàn "tự động" và không cần chuyên môn. Trên thực tế, việc thiết kế không gian tìm kiếm, lựa chọn chiến lược tìm kiếm và hiệu chỉnh siêu tham số vẫn đòi hỏi hiểu biết sâu về học sâu và bài toán mục tiêu. Cuối cùng, cần cân nhắc kỹ lưỡng giữa chi phí tìm kiếm và lợi ích thu được: đối với các bài toán nhỏ hoặc có sẵn kiến trúc hiệu quả, NAS có thể là giải pháp "quá mức cần thiết". Trong môi trường sản xuất, nên ưu tiên các phương pháp one-shot hoặc DARTS đã được kiểm chứng để đảm bảo hiệu quả và ổn định.
