Thực hành Python Học máy cho triển khai FPGA

Khi học học máy, ta được dạy cách nâng cao độ chính xác. Nhưng đến lúc đưa mô hình lên chip thực tế, lại nảy sinh những câu hỏi mà chẳng ai chỉ bảo. Mô hình này thực hiện bao nhiêu phép nhân? Nó cần lưu trữ những gì và dung lượng bao nhiêu? Thông số kỹ thuật của con chip mục tiêu hiện tại có thể đáp ứng nổi những yêu cầu đó chăng? Giáo trình học máy thì bàn về độ chính xác, còn giáo trình bán dẫn lại nói về mạch điện, nhưng tài liệu kết nối hai lĩnh vực này lại vô cùng khan hiếm. Tôi đã nhiều lần đối mặt với khoảng trống này khi triển khai CPU RISC-V và NPU trên FPGA. Đó là tình cảnh mô hình có độ chính xác cao nhất lại chẳng thể nào nhét vừa vào board mạch. Khóa học này sẽ hướng dẫn bạn tự tay xây dựng sáu thuật toán bằng Python, đồng thời đo lường số phép nhân, phép so sánh, dung lượng bộ nhớ và độ chính xác ở mỗi thuật toán. Sau đó, quy đổi các giá trị này sang tài nguyên thực tế trên board FPGA. Bởi lẽ, nói "bao nhiêu phép nhân" thì khó mà hình dung được quy mô, nhưng nếu nói "chiếm bao nhiêu phần trăm tài nguyên board" thì ta dễ dàng đánh giá được. Trải qua 9 bài Lab và gom sáu mô hình vào chung một bảng, ta sẽ thấy một bức tranh hoàn toàn khác với dự đoán. Đã dành tới 9 bài chỉ để đếm số phép nhân, nhưng thứ thực sự gây trở ngại lại không phải là phép nhân. Tiếp theo, ta sẽ chuyển đổi số thực thành số nguyên, quản lý độ rộng bit, và xây dựng cả bộ tiêu chí để đánh giá mạch. Bạn không cần phải có board FPGA. Khóa học chỉ sử dụng Python, còn board mạch chỉ đóng vai trò làm hệ quy chiếu để quy đổi các giá trị đo lường.

3 học viên đang tham gia khóa học này

Độ khó Trung cấp trở lên

Thời gian Không giới hạn

Python
Python
Machine Learning(ML)
Machine Learning(ML)
Artificial Neural Network
Artificial Neural Network
Numpy
Numpy
Scikit-Learn
Scikit-Learn
Python
Python
Machine Learning(ML)
Machine Learning(ML)
Artificial Neural Network
Artificial Neural Network
Numpy
Numpy
Scikit-Learn
Scikit-Learn

Bạn sẽ nhận được điều này sau khi học.

  • Bằng cách xem xét mô hình học máy, bạn có thể tính toán các tài nguyên mà nó yêu cầu trên chip theo bốn hạng mục.

  • Có thể đánh giá tính khả thi của việc triển khai bằng cách quy đổi số lượng phép toán và yêu cầu bộ nhớ thành tỷ lệ phần trăm so với tài nguyên bo mạch thực tế.

  • Dưới góc độ thiết kế, có thể giải thích sự đánh đổi giữa diện tích và thời gian thông qua việc hoán đổi số lượng bộ nhân và số chu kỳ.

  • Có thể lượng tử hóa trọng số thực thành số nguyên, đồng thời tính toán và xác định độ rộng bit của bộ tích lũy.

  • Có thể tạo một mô hình golden bằng Python để xác minh mạch và thiết lập quy trình đối chiếu theo từng giá trị.

  • Các bạn sẽ trực tiếp hoàn thiện bảng so sánh chi phí của sáu thuật toán theo cùng một tiêu chí.

  • Bạn sẽ có 15 tập lệnh Python để chạy và thử nghiệm thay đổi giá trị, cùng với một công cụ xác minh.

■ Giới thiệu khóa học

Độ chính xác 98.4 %. Nhưng mô hình này không vừa với chip.

Khi học máy học, bạn sẽ học cách nâng cao độ chính xác. Nhưng ngay khi định đưa mô hình đó lên chip thực tế, lại nảy sinh những câu hỏi mà chưa ai giải đáp. Mô hình này thực hiện bao nhiêu phép nhân? Nó cần ghi nhớ những gì và cần bao nhiêu bộ nhớ? Thông số kỹ thuật của chip mục tiêu hiện tại có thể đáp ứng nổi những yêu cầu đó không?

Giáo trình học máy thường tập trung vào độ chính xác, trong khi giáo trình bán dẫn lại bàn về mạch điện. Tuy nhiên, tài liệu kết nối hai lĩnh vực này lại vô cùng khan hiếm. Những người học về học máy không biết mô hình mình tạo ra đòi hỏi những gì từ chip, còn những người học về mạch điện lại không biết nên triển khai những gì trên đó. Khóa học này được thiết kế để lấp đầy khoảng trống đó.

Khi trực tiếp xây dựng 6 thuật toán, mỗi khi hoàn thiện một thuật toán, chúng ta sẽ đo lường số phép nhân, phép so sánh, dung lượng bộ nhớ và độ chính xác. Sau đó, quy đổi các giá trị này thành tài nguyên thực tế trên bo mạch FPGA. Bởi lẽ, nói "vài phép nhân" thì khó có thể hình dung được quy mô, nhưng nếu nói chiếm bao nhiêu phần trăm tài nguyên bo mạch thì ta dễ dàng đưa ra đánh giá.

Cứ thế, trải qua chín bài Lab và tổng hợp sáu mô hình vào chung một bảng, một bức tranh khác hẳn với dự đoán đã hiện ra. Mất tới chín phần chỉ để đếm số phép nhân, nhưng thứ thực sự gây cản trở lại không phải là phép nhân. Mô hình có độ chính xác cao nhất lại chính là mô hình khó đưa vào chip nhất.

Đây là những yếu tố vô hình ẩn sau độ chính xác.

■ Khoảnh khắc đối mặt trong quá trình này

  • Chúng tôi lược bỏ hoàn toàn một bước tính toán vốn luôn xuất hiện trong sách giáo khoa. Sau khi xác nhận qua toàn bộ các bài kiểm tra rằng kết quả không hề thay đổi, chúng tôi sẽ xóa bỏ bước này.

  • Tạo ra một bộ phân loại không thực hiện bất kỳ phép nhân nào. Thay vì để trống các vị trí bộ nhân, ta sẽ thấy chi phí đó chuyển dịch đến đâu.

  • Ta sẽ chứng kiến cảnh độ chính xác sụp đổ chỉ vì thiếu đúng một bit. Nó không suy giảm dần dần mà như rơi thẳng xuống vực thẳm, và cũng chẳng có thông báo lỗi nào xuất hiện.

  • Bạn sẽ bắt gặp những trường hợp càng cố rút gọn thì kích thước lại càng tăng lên, bởi lẽ bản thân việc rút gọn cũng là một phép tính.

  • Chúng ta tìm ra điểm mà phương pháp sụp đổ ngay khi dữ liệu tăng lên. Không phải sau khi đã xây dựng xong, mà ta biết được điều đó thông qua tính toán ngay từ trước khi bắt tay vào thực hiện.

Tất cả các giá trị được ghi trong giáo trình đều được trích xuất từ nhật ký thực thi Python được cung cấp. Không có lấy một con số nào được điền dựa trên phỏng đoán.

■ Bạn sẽ học được gì

Mỗi khi thiết kế một thuật toán, hãy điền vào bốn mục.

Phép nhân: Số lần thực hiện phép nhân và cộng, sử dụng bộ nhân chuyên dụng. Phép so sánh: Số lần so sánh độ lớn của hai giá trị, sử dụng tài nguyên logic. Bộ nhớ: Số byte cần lưu trữ, sử dụng các khối bộ nhớ tích hợp. Độ chính xác: Tỷ lệ chính xác.

Ba yếu tố trên không thể thay thế lẫn nhau. Dù bộ nhân có dư dả đến đâu, nếu thiếu bộ nhớ thì thiết kế đó cũng không thể khả thi. Vì vậy, ta sẽ đo lường riêng biệt bốn yếu tố trên rồi xem xét chúng một cách tổng thể.

Ở Phần 1, chúng ta khẳng định rằng quá trình học thực chất là sự lặp lại của các phép tính số học: nhân, cộng và so sánh. Bắt đầu từ các mảng, chúng ta xây dựng các phép nhân và cộng dồn, tìm hướng giảm thiểu sai số, và mở rộng việc phân loại thành mười lớp.

Ở Phần 2, chúng ta sẽ thấy rõ nguồn lực yêu cầu thay đổi tùy theo từng thuật toán. Chúng ta thử xây dựng một bộ phân loại không dùng phép nhân, một mô hình ensemble tập hợp nhiều bộ phân loại như vậy, một phương pháp hoàn toàn không cần huấn luyện, cùng hai hướng tiếp cận để giảm số lượng mẫu và số chiều. Cuối cùng, chúng ta tập hợp sáu mô hình vào chung một bảng để cùng xem xét.

Ở Phần 3, chúng ta chuyển đổi những gì đã chọn thành định dạng có thể nạp lên chip. Chúng ta chuyển số thực thành số nguyên, kiểm soát để không bị tràn số, và thiết lập tiêu chí chấm điểm mạch. Sau đó, chúng ta xây dựng một bộ phân loại dưới dạng mạch thực tế, rồi tính toán xem phương pháp này sẽ gặp tắc nghẽn ở đâu khi dữ liệu mở rộng.

■ Các nguyên tắc tuân thủ trong quy trình này

  • Độ chính xác luôn cần được ghi kèm với mức cơ sở. Trong các bài toán mất cân bằng, chỉ một con số đơn lẻ thì hoàn toàn vô nghĩa.

  • Tất cả các giá trị đưa vào bảng đều thu được từ quá trình thực thi. Những mục chưa đo lường được sẽ để trống và không điền dựa vào trí nhớ.

  • Các giả định cần được nêu rõ ngay tại nơi chúng được đưa ra và không được âm thầm thay đổi.

  • Các giá trị cần điều chỉnh được xác định trên tập kiểm định, còn tập kiểm tra chỉ được mở duy nhất một lần vào giai đoạn cuối.

Có kèm theo một script chạy đồng thời 15 notebook và đối chiếu với log đáp án. Các bạn có thể tự mình kiểm tra xem kết quả thực thi của mình có khớp với các giá trị trong giáo trình hay không.

■ Dành cho những ai

  • Những ai đã biết về machine learning nhưng tò mò muốn biết mô hình đó yêu cầu những gì từ phần cứng.

  • Những ai đang làm việc với FPGA hoặc chất bán dẫn và muốn biết có thể triển khai những gì trên nền tảng này.

  • Những ai đang chuẩn bị thiết kế bán dẫn AI và muốn tìm hiểu mối quan hệ giữa thuật toán và tài nguyên.

  • Những ai cảm thấy cần có những tiêu chí khác ngoài độ chính xác khi lựa chọn mô hình

■ Kiến thức tiên quyết

  • Cú pháp Python cơ bản

  • Sẽ dễ dàng hơn nếu bạn có kinh nghiệm làm việc với các mảng NumPy.

  • Không yêu cầu kiến thức nền về học máy. Các thuật toán sẽ được xây dựng trong suốt khóa học.

  • Bạn cũng không cần kiến thức nền về phần cứng. Những khái niệm cần thiết sẽ được giải thích ngay khi cần.

■ Môi trường thực hành

  • Anaconda và Jupyter Notebook

  • numpy, scikit-learn, matplotlib — tự động cài đặt khi chạy Lab đầu tiên

  • Không cần bo mạch FPGA.

Bo mạch chỉ được sử dụng làm chuẩn để quy đổi các giá trị đo.

■ Các thành phần được cung cấp kèm theo

  • 15 tập lệnh thực hành Python

  • Tập dữ liệu huấn luyện và kiểm thử cố định

  • Log đáp án đúng và tập lệnh xác minh hàng loạt

  • Mỗi bài Lab đều có ba mục thực hành ứng dụng — các dòng cần chỉnh sửa và kết quả thay đổi được ghi chú kèm theo.

Kết quả được ghi trong phần thực hành ứng dụng thực chất được thu thập bằng cách thay đổi các giá trị và chạy thử nghiệm. Nếu thay đổi với cùng các giá trị, kết quả thu được sẽ giống hệt.

■ Những nội dung không được đề cập trong khóa học này

  • Viết mã Verilog — Khóa học này chỉ sử dụng Python

  • Triển khai và chạy trên bo mạch FPGA

  • Tổng hợp và phân tích thời gian

  • Xác minh mức bit đối chiếu giữa mạch và Python — tiến xa đến mức thiết lập các tiêu chuẩn cho việc này.

  • Kiến trúc học sâu mới nhất — bao gồm sáu thuật toán kinh điển

Khóa học này đề cập đến giai đoạn xác định những gì cần chế tạo trước khi tiến hành thiết kế mạch. Phần triển khai Verilog và thực hành trên bo mạch sẽ được tiếp nối trong các bài thực hành với FPGA.

■ Chương trình học

Phần 1 Trước khi bắt đầu 9 phút Xem miễn phí

Phần 2 Dữ liệu và phép toán 29 phút Xem thử miễn phí

Phần 3 Học và Phân loại đa lớp 31 phút

Phần 4 Thuật toán không dùng phép nhân 48 phút Phần

Phần 5 Thu gọn và Sáu mô hình 44 phút

Phần 6 Làm tròn xuống số nguyên 45 phút

Phần 7 Chuyển sang bo mạch 31 phút

Tổng thời lượng khoảng 4 giờ

Chúng tôi mở hoàn toàn miễn phí hai phần đầu tiên. Không chỉ dừng lại ở việc hướng dẫn thiết lập môi trường, bạn còn có thể trực tiếp xem cách khóa học đánh giá mô hình và trải nghiệm hai Lab đầu tiên. Hãy tải mã Python về và tự chạy thử ngay bây giờ.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những ai biết cách xây dựng mô hình học máy nhưng lại thiếu tiêu chí đánh giá xem mô hình đó có thể triển khai trên FPGA hay ASIC hay không, và từ trước đến nay vẫn phải đưa ra quyết định dựa trên cảm tính.

  • Những người làm việc với bán dẫn hoặc FPGA, được giao phụ trách bộ gia tốc AI nhưng dù đã đọc tài liệu về thuật toán vẫn chưa mường tượng được cần phải thiết kế những gì thành mạch điện.

  • Dành cho những ai đang chuẩn bị cho vị trí thiết kế bán dẫn AI nhưng cảm thấy mông lung không biết cách kết nối kiến thức machine learning tập trung vào độ chính xác với kiến thức phần cứng tập trung vào tài nguyên.

  • Những ai đã từng trải qua cảnh phải làm lại từ đầu vì thiếu bộ nhớ ngay khi vừa hoàn thiện mô hình.

  • Những ai đọc được số liệu MAC trong bài nghiên cứu nhưng chưa từng quy đổi xem trên chip của chúng ta thì tốn bao nhiêu chu kỳ và chiếm bao nhiêu phần trăm.

Cần biết trước khi bắt đầu?

  • Cú pháp Python cơ bản

  • Kinh nghiệm làm việc với mảng NumPy (không có vẫn có thể tham gia khóa học)

  • Không yêu cầu kiến thức nền về máy học. Bạn sẽ trực tiếp xây dựng các thuật toán ngay trong khóa học.

  • Bạn cũng không cần kiến thức nền về phần cứng. Những khái niệm cần thiết sẽ được giải thích ngay khi cần.

Xin chào
Đây là EdgeChipLab

Xác minh sự nghiệp

Là một giáo sư đại học đương nhiệm, tôi đã đúc kết 30 năm bí quyết về bán dẫn hệ thống.

Đây là chương trình giảng dạy thực tiễn được thiết kế và kiểm chứng trực tiếp bởi một giáo sư giảng dạy kỹ thuật bán dẫn, người đã từng bắt đầu với vị trí nghiên cứu viên bán dẫn hệ thống tại bộ phận DS của Samsung Electronics, trải qua các chức vụ Giám đốc tại chi nhánh Anh và Đức, cũng như Trưởng nhóm Marketing và Kinh doanh System LSI.

 

Vượt xa lý thuyết để tiến tới triển khai phần cứng thực tế, nâng tầm năng lực kỹ thuật của bạn.

Có những lĩnh vực mà những kiến thức rời rạc, vụn vặt không bao giờ có thể chạm tới. Học viên sẽ không chỉ đơn thuần là người dùng sử dụng các IP black-box đã hoàn thiện, mà sẽ phát triển thành một nhà cung cấp kiến trúc hệ thống (system architect) – người có thể thiết kế NPU, CPU, tích hợp các thiết bị ngoại vi và cuối cùng là tự xây dựng nên AI SoC của riêng mình.

 

Đây không phải là bài giảng chỉ để xem bằng mắt. Chúng tôi cam kết hiện thực hóa phần cứng 100% và xác minh Bit-True.

Không chỉ dừng lại ở lý thuyết hay mô phỏng đơn thuần. Hãy trực tiếp trải nghiệm cảm giác phấn khích khi chứng kiến các nghiên cứu học thuật được công bố trên KCI của chính giảng viên và các mạch điện tự thiết kế hoạt động chính xác tuyệt đối trên phần cứng FPGA thực tế. Mọi mã nguồn, bao gồm cả CPU RISC-V tự phát triển, đều được công khai minh bạch, cho phép bất kỳ ai cũng có thể tự do sử dụng để tái hiện và kiểm chứng chỉ với bo mạch FPGA phổ thông (Arty S7-25) và công cụ miễn phí (Vivado).

 

Lộ trình full-stack liền mạch: Từ cơ bản đến bộ tăng tốc mini LLM

Tất cả các bài giảng không phải là những mảnh ghép rời rạc, mà là một hành trình để hoàn thiện một hệ thống khổng lồ duy nhất.

  • Bước 1: Lý thuyết AI và cơ bản về xử lý hình ảnh (bao gồm Machine Learning)

  • Step 2: Thiết kế và kiểm chứng bộ tăng tốc AI (NPU) (Bao gồm Machine Learning)

  • Step 3: Thiết kế CPU RISC-V và Tích hợp hệ thống

  • Bước 4: Triển khai AI SoC nâng cao và mở rộng sang nền tảng tăng tốc mini LLM (Cập nhật nội dung liên tục)

     

 

Chỉ số kiểm chứng khách quan

Tất cả các kết quả thiết kế của khóa học này đều đã trải qua quá trình kiểm chứng nghiêm ngặt từ các tiêu chuẩn quốc tế và giới học thuật.

  • Kiểm chứng kiến trúc RISC-V: CPU RISC-V tự phát triển, vượt qua bài kiểm tra tuân thủ chính thức (ACT) của tổ chức quốc tế và công khai mã nguồn (GitHub)

  • Uy tín học thuật: 4 bài báo khoa học với tư cách là tác giả duy nhất (Tạp chí uy tín hạng A của KCI - IJIBC)

  • Công nhận toàn cầu: Xuất bản 2 cuốn sách kỹ thuật trên Amazon toàn cầu (Đạt hạng 3 sách bán chạy nhất)

  • Đã hoàn thành xác minh vận hành thực tế: Các IP cốt lõi như RV32I CPU, NPU, hệ thống thị giác, GPS, Transformer, AURA-Edge SoC hoạt động hoàn hảo trên môi trường Arty S7.

Hãy thử thách bản thân. Đến khi kết thúc quá trình tự mình nạp code lên board và kiểm tra kết quả này, bạn sẽ được nâng cấp thành một kỹ sư phần cứng với tầm nhìn hoàn toàn khác biệt so với trước đây.

Thêm

Chương trình giảng dạy

Tất cả

7 bài giảng ∙ (3giờ 23phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học khác của EdgeChipLab

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Ưu đãi có thời hạn

1.342.690 ₫

24%

1.790.253 ₫