Việc lập kế hoạch cho các dự án học máy khác với việc lập kế hoạch cho các dự án kỹ thuật phần mềm thông thường. Các dự án ML có đặc điểm là phi tuyến tính và có mức độ không chắc chắn khác nhau. Những phương pháp này đòi hỏi phương pháp lặp lại và tư duy thử nghiệm.
Thông tin dự án không chắc chắn
Việc lập kế hoạch ở giai đoạn đầu có thể khó khăn vì phương pháp hiệu quả nhất thường không phải là phương pháp rõ ràng khi bắt đầu dự án. Sự không chắc chắn vốn có này khiến việc ước tính tiến trình trở nên khó khăn.
Một cuộc thi Kaggle gần đây minh hoạ sự không chắc chắn của các dự án học máy. Trong vài tuần đầu tiên của cuộc thi, đã có 350 đội tham gia. Một số nhóm đã có thể tăng chất lượng dự đoán điểm chuẩn từ 35% lên 65%. Trong hai tuần tiếp theo, số nhóm giải quyết vấn đề đã tăng từ 350 lên 1400. Tuy nhiên, mô hình tốt nhất chỉ đạt được chất lượng dự đoán là 68%.
Hình 3 minh hoạ sự không chắc chắn trong quá trình phát triển công nghệ học máy bằng cách cho thấy nỗ lực tăng đáng kể nhưng chất lượng mô hình chỉ đạt được rất ít.
Hình 3. Trong khoảng thời gian hai tuần, số nhóm giải quyết vấn đề đã tăng lên hệ số 4, nhưng chất lượng của mô hình gần như không đổi, đặc biệt là khó khăn trong việc ước tính nỗ lực của một giải pháp ML.
Nói cách khác, hơn một nghìn nhóm – mỗi nhóm thử nghiệm nhiều phép biến đổi dữ liệu, cấu trúc và siêu tham số – chỉ tạo ra được một mô hình với chất lượng dự đoán là 68%.
Một ví dụ trong ngành minh hoạ tính phi tuyến tính của các dự án ML, khi đầu ra không tỷ lệ với dữ liệu đầu vào. Hai nhóm đã mất vài tháng để huấn luyện một mô hình với chất lượng dự đoán là 90%. Tuy nhiên, một số nhóm đã mất hơn 5 năm để chuẩn bị sẵn sàng cho việc sản xuất mô hình này với chất lượng dự đoán là 99,9%.
Những ví dụ này nêu bật rằng công nghệ học máy sẵn sàng để sản xuất là một quy trình khám phá, đòi hỏi tư duy khoa học và kỹ thuật.
Phương pháp thử nghiệm
Trong hầu hết trường hợp, việc phát triển công nghệ học máy sẽ giống như việc thực hiện các thử nghiệm hơn là thực hành kỹ thuật phần mềm truyền thống. Công nghệ Học máy đòi hỏi phải kiểm thử nhiều tính năng, thử nhiều cấu trúc và điều chỉnh siêu tham số thật phù hợp. Theo định nghĩa, thử nghiệm không đảm bảo thành công. Do đó, tốt nhất bạn nên lên kế hoạch sử dụng khung thử nghiệm.
Hãy xem một kế hoạch kỹ thuật phần mềm thông thường để thấy sự khác biệt so với một kế hoạch cho dự án học máy.
Lập kế hoạch các dự án kỹ thuật phần mềm
Trong một kế hoạch kỹ thuật phần mềm thông thường, bạn xác định các yêu cầu, phác thảo các thành phần, ước tính mức độ nỗ lực và lên lịch công việc. Có đường dẫn được xác định rõ ràng đến một giải pháp. Ví dụ: các kỹ sư thường rất chắc chắn về những nhiệm vụ họ cần phải hoàn thành để xây dựng một ứng dụng đáp ứng các thông số kỹ thuật thiết kế.
Khi dự đoán thời gian cần để hoàn thành một tác vụ, họ có thể ước tính công việc đó dựa trên các dự án tương tự. Mặc dù những thách thức luôn xảy ra (như các phần phụ thuộc không xác định hoặc các yêu cầu thay đổi) có thể khiến việc ước tính đôi khi khó khăn, nhưng thường sẽ có một lộ trình rõ ràng đến giải pháp.
Ngược lại, các dự án học máy thường không có một lộ trình rõ ràng dẫn đến thành công.
Lập kế hoạch cho các dự án học máy
Đối với hầu hết các dự án học máy, bạn sẽ tìm thấy giải pháp tốt nhất bằng cách thử nghiệm nhiều phương pháp trong quy trình thử nghiệm và sửa sai. Thông thường, bạn sẽ không biết giải pháp tối ưu cho vấn đề trước khi cố gắng giải quyết. Ví dụ: cấu trúc của giải pháp tối ưu có thể là mô hình tuyến tính đơn giản, mạng nơron hoặc có thể là cây quyết định. Chỉ bằng cách thử từng phương pháp, bạn mới có thể tìm ra giải pháp tốt nhất.
Sự không rõ ràng này khiến việc lập kế hoạch trở nên khó khăn. Như đã thảo luận trước đó, việc dự đoán mức độ nỗ lực mà một dự án học máy sẽ đòi hỏi rất khó. Chỉ bằng cách cố gắng giải quyết vấn đề, bạn mới có thể hiểu rõ hơn về khoảng thời gian và tài nguyên mà một giải pháp có thể cần.
Sau đây là các chiến lược nên áp dụng để lập kế hoạch cho công việc bằng công nghệ học máy:
Hộp thời gian cho công việc. Hãy đặt khung thời gian rõ ràng để hoàn thành nhiệm vụ hoặc thử một giải pháp cụ thể. Ví dụ: bạn có thể phân bổ 2 tuần để xác định xem bạn có thể truy cập vào loại dữ liệu phù hợp hay không. Nếu nhận được dữ liệu, thì bạn có thể chỉ định thêm 2 tuần nữa để xem liệu một mô hình đơn giản có cho thấy giải pháp học máy có khả thi hay không. Nếu một mô hình đơn giản không thành công, bạn có thể chỉ định thêm 2 tuần nữa để thử mạng nơron. Vào cuối mỗi khung thời gian, bạn sẽ có thêm thông tin để xác định xem việc tiếp tục sử dụng tài nguyên cho bài toán có đáng hay không.
Thu hẹp phạm vi các yêu cầu của dự án. Nếu một giải pháp học máy có vẻ hứa hẹn nhưng không phải là tính năng quan trọng đối với sản phẩm hoặc dịch vụ của bạn, hãy quay lại các yêu cầu của giải pháp đó. Ví dụ: khi lập kế hoạch công việc cho quý tiếp theo, có thể bạn sẽ có kế hoạch thử một giải pháp rất đơn giản. Sau đó, trong các quý tiếp theo, bạn có thể lên kế hoạch cải thiện giải pháp này nhiều lần. Việc triển khai một giải pháp học máy bằng cách cải thiện dần trong một khoảng thời gian dài hơn đã là cách nhiều nhóm tìm được những giải pháp học máy có tác động mạnh mẽ.
Dự án dành cho nhân viên thực tập hoặc nhân viên mới của Google. Việc chỉ dẫn và hướng dẫn một thực tập sinh hoặc nhân viên mới của Google thử nghiệm một giải pháp học máy có thể là một cách hay để bắt đầu khám phá một không gian mới với những kết quả chưa biết. Sau khi dự án kết thúc, bạn sẽ hiểu rõ hơn về những nỗ lực mà một giải pháp học máy sẽ cần đến và nhiều phương pháp tiềm năng hứa hẹn để theo đuổi, hoặc có nên đặt tài nguyên vào nơi khác hay không.
Dù chọn chiến lược nào, bạn cũng cần nhanh chóng thất bại. Nỗ lực tiếp cận với chi phí thấp nhất, nhưng có thể mang lại kết quả cao nhất trước tiên. Nếu phương pháp này có hiệu quả, thì bạn đã tìm thấy một giải pháp hiệu quả. Nếu không, tức là bạn đã không lãng phí nhiều thời gian và tài nguyên.
Khi các nhóm đã có kinh nghiệm và tiếp xúc với các thử nghiệm đang chạy, họ sẽ có thể ước tính chính xác hơn về mức độ nỗ lực mà một thử nghiệm có thể yêu cầu, giúp việc lập kế hoạch trở nên dễ dự đoán hơn. Tuy nhiên, kết quả của một thử nghiệm hầu như luôn là chưa biết, vì vậy, bạn không thể ước tính trước số lượng thử nghiệm cần để tìm ra giải pháp tốt nhất.
Phương pháp lập kế hoạch với tư duy thử nghiệm sẽ giúp nhóm của bạn đạt được thành công. Khi một phương pháp dẫn đến ngõ cụt, thay vì nản lòng, các thành viên trong nhóm hiểu rằng đó là một phần trong quá trình tìm ra giải pháp học máy. Quan trọng hơn, khi thảo luận với các bên liên quan về sự bất ổn vốn có trong quá trình phát triển công nghệ học máy, bạn có thể đặt ra những kỳ vọng thực tế hơn.
Lưu ý
Việc học cách lập kế hoạch cho nhiều phương pháp học máy cần thời gian và kinh nghiệm một cách có thể thực hiện. Kế hoạch dự án của bạn có thể yêu cầu cập nhật thường xuyên. Hãy coi đây là một tài liệu linh hoạt trong quá trình phát triển liên tục khi nhóm của bạn thử nghiệm nhiều phương pháp tiếp cận. Bằng cách tập trung vào các ý tưởng chính sau, bạn sẽ tăng cơ hội thành công:
- Ước tính chi phí và cơ hội thành công cho mỗi phương pháp.
- Thử một danh mục các phương pháp tiếp cận.
- Xác định các bài học rút ra và cố gắng cải thiện hệ thống từng lúc một.
- Lên kế hoạch cho thất bại.
Đôi khi, một sự tiếp cận sớm mang đến một bước đột phá. Ai đó có thể phát hiện lỗi trong quy trình tạo dữ liệu hoặc phần phân tách xác thực quá trình huấn luyện. Với kế hoạch tốt và tài liệu kỹ lưỡng, bạn có thể tăng khả năng tìm thấy mô hình giải quyết vấn đề kinh doanh sớm hơn dự kiến.