quy trình học máy

Trong công nghệ học máy trong môi trường thực tế, mục tiêu không phải là xây dựng một mô hình đơn lẻ và triển khai mô hình đó. Mục tiêu là xây dựng các quy trình tự động để phát triển, kiểm thử và triển khai các mô hình theo thời gian. Tại sao? Khi thế giới thay đổi, các xu hướng thay đổi dữ liệu, khiến các mô hình trong phiên bản chính thức trở nên lỗi thời. Các mô hình thường cần được đào tạo lại bằng dữ liệu mới nhất để tiếp tục phân phát các dự đoán chất lượng cao trong thời gian dài. Nói cách khác, bạn muốn có cách thay thế các mô hình cũ bằng các mô hình mới.

Nếu không có quy trình, việc thay thế mô hình cũ sẽ dễ xảy ra lỗi. Ví dụ: sau khi một mô hình bắt đầu phân phát các dự đoán không hợp lệ, một người sẽ cần phải thu thập và xử lý dữ liệu mới, huấn luyện một mô hình mới, xác thực chất lượng của mô hình đó theo cách thủ công, rồi cuối cùng là triển khai mô hình đó. Các quy trình học máy sẽ tự động hoá nhiều quy trình lặp lại này, giúp việc quản lý và bảo trì mô hình trở nên hiệu quả và đáng tin cậy hơn.

Xây dựng đường ống

Các quy trình học máy sắp xếp các bước xây dựng và triển khai mô hình thành các tác vụ được xác định rõ ràng. Quy trình có một trong hai chức năng: đưa ra dự đoán hoặc cập nhật mô hình.

Đưa ra dự đoán

Quy trình phân phát đưa ra thông tin dự đoán. Thư viện này hiển thị mô hình của bạn với thế giới thực, giúp người dùng có thể truy cập mô hình của bạn. Ví dụ: khi người dùng muốn có thông tin dự đoán – thời tiết ngày mai sẽ như thế nào hoặc thời gian để đến sân bay, hoặc mất bao nhiêu phút để đi tới sân bay, hoặc một danh sách các video đề xuất – quy trình phân phát sẽ tiếp nhận và xử lý dữ liệu của người dùng, đưa ra thông tin dự đoán, sau đó cung cấp dữ liệu đó cho người dùng.

Đang cập nhật mô hình

Các mô hình có xu hướng lỗi thời gần như ngay lập tức sau khi đi vào hoạt động chính thức. Về cơ bản, họ đưa ra dự đoán bằng cách sử dụng thông tin cũ. Các tập dữ liệu huấn luyện của họ đã chụp lại trạng thái thế giới 1 ngày trước hoặc trong một số trường hợp là một giờ trước. Thế giới đã thay đổi không thể nào tránh khỏi: người dùng đã xem nhiều video hơn và cần một danh sách đề xuất mới; mưa đã làm chậm lưu lượng truy cập và người dùng cần cập nhật thông tin ước tính về thời gian đến; một xu hướng phổ biến khiến các nhà bán lẻ yêu cầu các nhà bán lẻ yêu cầu cập nhật thông tin dự đoán về kho hàng cho một số mặt hàng nhất định.

Thông thường, các nhóm sẽ huấn luyện mô hình mới từ lâu trước khi mô hình sản xuất lỗi thời. Trong một số trường hợp, các nhóm sẽ huấn luyện và triển khai các mô hình mới hằng ngày trong một chu kỳ huấn luyện và triển khai liên tục. Tốt nhất là việc huấn luyện một mô hình mới diễn ra tốt trước khi mô hình phát hành chính thức trở nên lỗi thời.

Các quy trình sau đây phối hợp với nhau để huấn luyện một mô hình mới:

  • Quy trình dữ liệu. Quy trình dữ liệu sẽ xử lý dữ liệu người dùng để tạo tập dữ liệu huấn luyện và kiểm thử.
  • Quy trình đào tạo. Quy trình đào tạo sẽ huấn luyện các mô hình bằng cách sử dụng tập dữ liệu đào tạo mới từ quy trình dữ liệu.
  • Quy trình xác thực. Quy trình xác thực sẽ xác thực mô hình đã huấn luyện bằng cách so sánh mô hình đó với mô hình phát hành chính thức bằng cách sử dụng tập dữ liệu kiểm thử do quy trình dữ liệu tạo ra.

Hình 4 minh hoạ đầu vào và đầu ra của mỗi quy trình học máy.

quy trình học máy

Các quy trình của công nghệ học máy cho thấy dữ liệu đầu vào và đầu ra. Quy trình phân phát lấy thông tin đầu vào của người dùng và đưa ra thông tin dự đoán. Quy trình dữ liệu xử lý nhật ký dữ liệu ứng dụng để tạo tập dữ liệu huấn luyện và kiểm thử mà quy trình huấn luyện và xác thực sử dụng để huấn luyện và xác thực các mô hình mới

Hình 4. Các quy trình học máy sẽ tự động hoá nhiều quy trình để phát triển và duy trì các mô hình. Mỗi quy trình sẽ hiển thị dữ liệu đầu vào và đầu ra.

Ở cấp độ chung, sau đây là cách các quy trình giữ cho một mô hình mới trong quá trình sản xuất:

  1. Trước tiên, một mô hình sẽ được đưa vào hoạt động chính thức và quy trình phân phát bắt đầu phân phối các dự đoán.

  2. Quy trình dữ liệu ngay lập tức bắt đầu thu thập dữ liệu để tạo các tập dữ liệu kiểm thử và huấn luyện mới.

  3. Dựa trên lịch biểu hoặc điều kiện kích hoạt, quy trình huấn luyện và xác thực sẽ huấn luyện và xác thực mô hình mới bằng cách sử dụng các tập dữ liệu do quy trình dữ liệu tạo.

  4. Khi quy trình xác thực xác nhận rằng mô hình mới không tệ hơn mô hình sản xuất, thì mô hình mới sẽ được triển khai.

  5. Quá trình này lặp lại liên tục.

Tình trạng lỗi thời của mô hình và tần suất huấn luyện

Hầu hết các kiểu máy đều đã lỗi thời. Một số mô hình sẽ lỗi thời nhanh hơn các mô hình khác. Ví dụ: các mô hình đề xuất quần áo thường nhanh chóng lỗi thời vì sở thích của người tiêu dùng vốn nổi tiếng với việc thay đổi thường xuyên. Mặt khác, các mô hình xác định hoa có thể không bao giờ lỗi thời. Đặc điểm nhận dạng hoa vẫn ổn định.

Hầu hết các mô hình đều bắt đầu lỗi thời ngay sau khi được đưa vào sản xuất. Bạn nên thiết lập tần suất huấn luyện phản ánh bản chất của dữ liệu. Nếu dữ liệu có tính linh động, hãy huấn luyện thường xuyên. Nếu phương thức này ít linh động hơn, bạn có thể không cần phải huấn luyện thường xuyên.

Huấn luyện các mô hình trước khi chúng trở nên lỗi thời. Chương trình huấn luyện sớm cung cấp một vùng đệm để giải quyết các vấn đề tiềm ẩn, chẳng hạn như nếu quy trình dữ liệu hoặc huấn luyện bị lỗi, hoặc chất lượng mô hình kém.

Một phương pháp hay nhất bạn nên áp dụng là đào tạo và triển khai các mô hình mới hằng ngày. Giống như các dự án phần mềm thông thường có quy trình xây dựng và phát hành hằng ngày, quy trình học máy để huấn luyện và xác thực thường hoạt động hiệu quả nhất khi được chạy hằng ngày.

Quy trình phân phát

Quy trình phân phát sẽ tạo và phân phối nội dung dự đoán theo một trong hai cách: trực tuyến hoặc ngoại tuyến.

  • Cụm từ gợi ý trực tuyến. Nội dung dự đoán trực tuyến diễn ra theo thời gian thực, thường bằng cách gửi yêu cầu đến máy chủ trực tuyến và trả về thông tin dự đoán. Ví dụ: khi người dùng muốn có một cụm từ gợi ý, dữ liệu của người dùng sẽ được gửi đến mô hình và mô hình này sẽ trả về cụm từ gợi ý đó. Ví dụ: Gmail phân loại thư đến theo thời gian thực bằng cách sử dụng các cụm từ gợi ý trực tuyến.

  • Cụm từ gợi ý ngoại tuyến. Dự đoán ngoại tuyến được tính toán trước và lưu vào bộ nhớ đệm. Để phân phát một cụm từ gợi ý, ứng dụng sẽ tìm cụm từ gợi ý đã lưu vào bộ nhớ đệm trong cơ sở dữ liệu và trả về cụm từ đó. Ví dụ: dịch vụ dựa trên gói thuê bao có thể dự đoán tỷ lệ độc giả rời bỏ của người đăng ký. Mô hình này dự đoán khả năng rời bỏ ứng dụng của mọi người đăng ký và lưu nội dung đó vào bộ nhớ đệm. Khi cần thông tin dự đoán (ví dụ: để khuyến khích người dùng có thể rời bỏ ứng dụng), ứng dụng chỉ cần tra cứu thông tin dự đoán được tính toán trước.

Hình 5 cho thấy cách các dự đoán trực tuyến và ngoại tuyến được tạo và phân phối.

Cụm từ gợi ý trực tuyến và ngoại tuyến

Thông tin dự đoán có thể được gửi theo thời gian thực hoặc được phân theo lô và lưu vào bộ nhớ đệm để tra cứu.

Hình 5. Các cụm từ gợi ý trực tuyến đưa ra các cụm từ gợi ý theo thời gian thực. Thông tin dự đoán ngoại tuyến được lưu vào bộ nhớ đệm và tra cứu thời gian phân phát.

Hậu xử lý dự đoán

Thông thường, các cụm từ gợi ý được xử lý hậu kỳ trước khi gửi đi. Ví dụ: các dự đoán có thể được xử lý sau để loại bỏ nội dung độc hại hoặc nội dung thiên lệch. Kết quả phân loại có thể sử dụng thao tác xoay vòng để sắp xếp lại kết quả thay vì hiển thị kết quả thô của mô hình, chẳng hạn như để tăng cường nội dung có căn cứ đáng tin, trình bày kết quả đa dạng, giảm hạng kết quả cụ thể (như mồi nhử nhấp chuột) hoặc xoá kết quả vì lý do pháp lý.

Hình 6 cho thấy một quy trình phân phát và các nhiệm vụ điển hình liên quan đến việc đưa ra thông tin dự đoán.

Nội dung gợi ý trong quá trình xử lý

Quy trình phân phát thường xử lý hậu kỳ các dự đoán.

Hình 6. Quy trình phân phát minh hoạ các tác vụ điển hình liên quan để đưa ra thông tin dự đoán.

Xin lưu ý rằng bước kỹ thuật tính năng thường được xây dựng trong mô hình chứ không phải là một quy trình riêng biệt. Mã xử lý dữ liệu trong quy trình phân phát thường gần giống với mã xử lý dữ liệu mà quy trình dữ liệu dùng để tạo tập dữ liệu huấn luyện và kiểm thử.

Lưu trữ tài sản và siêu dữ liệu

Quy trình phân phát nên kết hợp một kho lưu trữ để ghi nhật ký các dự đoán mô hình và nếu có thể thì dữ liệu thực tế.

Dự đoán mô hình ghi nhật ký cho phép bạn theo dõi chất lượng mô hình của mình. Bằng cách tổng hợp các dự đoán, bạn có thể theo dõi chất lượng chung của mô hình và xác định xem mô hình đó có bắt đầu giảm chất lượng hay không. Nhìn chung, kết quả dự đoán của mô hình sản xuất phải có giá trị trung bình bằng với nhãn trong tập dữ liệu huấn luyện. Để biết thêm thông tin, hãy xem bài viết về độ lệch dự đoán.

Đang chụp lại thông tin thực tế

Trong một số trường hợp, thông tin thực tế chỉ xuất hiện sau này rất lâu. Ví dụ: nếu một ứng dụng thời tiết dự đoán thời tiết 6 tuần sắp tới, thì thông tin thực tế về thời tiết (thời tiết thực tế) sẽ không có trong 6 tuần.

Khi có thể, hãy yêu cầu người dùng báo cáo thông tin thực tế bằng cách thêm cơ chế phản hồi vào ứng dụng. Gmail ngầm ghi lại phản hồi của người dùng khi người dùng di chuyển thư từ hộp thư đến vào thư mục thư rác. Tuy nhiên, tính năng này chỉ hiệu quả khi người dùng phân loại thư của họ chính xác. Khi người dùng để lại thư rác trong hộp thư đến (vì họ biết đó là thư rác và không bao giờ mở thư), dữ liệu huấn luyện sẽ không chính xác. Phần thư cụ thể đó sẽ được gắn nhãn "không phải spam" khi đúng là "spam". Nói cách khác, hãy luôn cố gắng tìm cách để nắm bắt và ghi lại thông tin thực tế, nhưng hãy lưu ý đến những thiếu sót có thể tồn tại trong cơ chế phản hồi.

Hình 7 cho thấy các cụm từ gợi ý được gửi đến người dùng và được ghi lại vào kho lưu trữ.

Ghi nhật ký dự đoán

Quy trình phân phát phải ghi lại các thông tin dự đoán để theo dõi tình trạng lỗi thời của mô hình.

Hình 7. Ghi lại thông tin dự đoán để theo dõi chất lượng mô hình.

Quy trình dữ liệu

Quy trình dữ liệu tạo tập dữ liệu huấn luyện và kiểm thử từ dữ liệu ứng dụng. Sau đó, các quy trình đào tạo và xác thực sẽ sử dụng các tập dữ liệu để huấn luyện và xác thực các mô hình mới.

Quy trình dữ liệu sẽ tạo các tập dữ liệu huấn luyện và kiểm thử có cùng các tính năng và nhãn ban đầu dùng để huấn luyện mô hình, nhưng có thông tin mới hơn. Ví dụ: ứng dụng bản đồ sẽ tạo các tập dữ liệu huấn luyện và kiểm thử từ các lần di chuyển gần đây giữa các điểm cho hàng triệu người dùng, cùng với các dữ liệu liên quan khác, chẳng hạn như thời tiết.

Ứng dụng đề xuất video sẽ tạo các tập dữ liệu huấn luyện và kiểm thử, trong đó bao gồm những video mà người dùng đã nhấp vào trong danh sách đề xuất (cùng với những video không được nhấp vào), cũng như các dữ liệu liên quan khác, chẳng hạn như nhật ký xem.

Hình 8 minh hoạ quy trình dữ liệu sử dụng dữ liệu ứng dụng để tạo tập dữ liệu huấn luyện và kiểm thử.

Quy trình dữ liệu

Quy trình dữ liệu tạo ra các tập dữ liệu huấn luyện và kiểm thử.

Hình 8. Quy trình dữ liệu xử lý dữ liệu ứng dụng để tạo tập dữ liệu cho quy trình huấn luyện và xác thực.

Thu thập và xử lý dữ liệu

Các nhiệm vụ thu thập và xử lý dữ liệu trong quy trình dữ liệu có thể sẽ khác với giai đoạn thử nghiệm (khi bạn xác định rằng giải pháp của mình là khả thi):

  • Thu thập dữ liệu. Trong quá trình thử nghiệm, để thu thập dữ liệu, bạn thường cần truy cập vào dữ liệu đã lưu. Đối với các quy trình dữ liệu, việc thu thập dữ liệu có thể yêu cầu phải khám phá và xin phê duyệt để truy cập vào dữ liệu nhật ký truyền trực tuyến.

    Nếu cần dữ liệu có nhãn do con người gắn nhãn (như hình ảnh y tế), bạn cũng sẽ cần có một quy trình thu thập và cập nhật dữ liệu đó. Nếu bạn cần dữ liệu có nhãn là con người, hãy xem trang CrowdCompute.

  • Xử lý dữ liệu. Trong quá trình thử nghiệm, các tính năng phù hợp đến từ việc thu thập, kết hợp và lấy mẫu tập dữ liệu thử nghiệm. Đối với các quy trình dữ liệu, việc tạo các tính năng tương tự có thể đòi hỏi những quy trình hoàn toàn khác nhau. Tuy nhiên, hãy nhớ sao chép các phép biến đổi dữ liệu từ giai đoạn thử nghiệm bằng cách áp dụng cùng các phép toán cho các đối tượng và nhãn.

Lưu trữ tài sản và siêu dữ liệu

Bạn sẽ cần có một quy trình để lưu trữ, tạo phiên bản và quản lý tập dữ liệu huấn luyện và kiểm thử. Kho lưu trữ được quản lý theo phiên bản mang lại các lợi ích sau:

  • Khả năng tái tạo. Tạo lại và chuẩn hoá môi trường huấn luyện mô hình, đồng thời so sánh chất lượng dự đoán giữa các mô hình.

  • Tuân thủ. Tuân thủ các yêu cầu tuân thủ theo quy định về tính minh bạch và khả năng kiểm tra.

  • Tỷ lệ giữ chân. Đặt giá trị giữ lại dữ liệu về khoảng thời gian lưu trữ dữ liệu.

  • Quản lý quyền truy cập. Quản lý những người có thể truy cập vào dữ liệu của bạn thông qua các quyền chi tiết.

  • Tính toàn vẹn của dữ liệu. Theo dõi và nắm được các thay đổi đối với tập dữ liệu theo thời gian, giúp bạn dễ dàng chẩn đoán các vấn đề về dữ liệu hoặc mô hình của mình.

  • Khả năng được khám phá. Giúp người khác dễ dàng tìm thấy tập dữ liệu và tính năng của bạn. Sau đó, các nhóm khác có thể xác định xem chúng có hữu ích cho mục đích của họ hay không.

Ghi lại dữ liệu của bạn

Tài liệu hiệu quả giúp người khác hiểu được thông tin chính về dữ liệu của bạn, chẳng hạn như loại, nguồn, kích thước và các siêu dữ liệu cần thiết khác. Trong hầu hết trường hợp, bạn chỉ cần ghi lại dữ liệu trong một tài liệu thiết kế hoặc g3doc. Nếu bạn định chia sẻ hoặc xuất bản dữ liệu, hãy sử dụng thẻ dữ liệu để tạo cấu trúc thông tin. Thẻ dữ liệu giúp người khác khám phá và hiểu tập dữ liệu của bạn dễ dàng hơn.

Quy trình đào tạo và xác thực

Quy trình huấn luyện và xác thực sẽ tạo ra các mô hình mới để thay thế các mô hình thực tế trước khi các mô hình đó lỗi thời. Việc liên tục đào tạo và xác thực các mô hình mới đảm bảo mô hình tốt nhất luôn được đưa vào sử dụng.

Quy trình huấn luyện tạo ra một mô hình mới từ các tập dữ liệu huấn luyện, và quy trình xác thực sẽ so sánh chất lượng của mô hình mới với chất lượng của mô hình đang được phát hành chính thức bằng cách sử dụng tập dữ liệu kiểm thử.

Hình 9 minh hoạ quy trình huấn luyện sử dụng tập dữ liệu huấn luyện để huấn luyện một mô hình mới.

Quy trình đào tạo

Quy trình huấn luyện sẽ huấn luyện các mô hình mới dựa trên dữ liệu mới.

Hình 9. Quy trình huấn luyện sẽ huấn luyện các mô hình mới bằng cách sử dụng tập dữ liệu huấn luyện mới nhất.

Sau khi mô hình được huấn luyện, quy trình xác thực sẽ sử dụng tập dữ liệu kiểm thử để so sánh chất lượng của mô hình phát hành chính thức với mô hình đã được huấn luyện.

Nhìn chung, nếu mô hình được huấn luyện không tệ hơn mô hình chính thức, thì mô hình được huấn luyện sẽ chuyển sang mô hình chính thức. Nếu mô hình đã huấn luyện kém hiệu quả hơn, cơ sở hạ tầng giám sát sẽ tạo một cảnh báo. Các mô hình đã qua huấn luyện có chất lượng dự đoán kém hơn có thể cho thấy các vấn đề tiềm ẩn với quy trình dữ liệu hoặc xác thực. Phương pháp này nhằm đảm bảo mô hình tốt nhất (được huấn luyện dựa trên dữ liệu mới nhất) luôn trong quá trình sản xuất.

Lưu trữ tài sản và siêu dữ liệu

Các mô hình và siêu dữ liệu của các mô hình đó nên được lưu trữ trong kho lưu trữ có nhiều phiên bản để sắp xếp và theo dõi quá trình triển khai mô hình. Kho lưu trữ mô hình mang lại các lợi ích sau:

  • Theo dõi và đánh giá. Theo dõi các mô hình trong phiên bản chính thức và hiểu rõ các chỉ số đánh giá cũng như chỉ số chất lượng dự đoán của các mô hình đó.

  • Quy trình phát hành mô hình. Dễ dàng xem xét, phê duyệt, huỷ bỏ hoặc khôi phục các mô hình.

  • Khả năng tái tạo và gỡ lỗi. Tái hiện kết quả của mô hình và gỡ lỗi hiệu quả hơn bằng cách theo dõi tập dữ liệu và phần phụ thuộc của mô hình trong các lần triển khai.

  • Khả năng được khám phá. Giúp những người khác dễ dàng tìm thấy mô hình của bạn. Sau đó, các nhóm khác có thể xác định xem mô hình của bạn (hoặc một phần của mô hình đó) có thể sử dụng cho mục đích của họ hay không.

Hình 10 minh hoạ một mô hình đã xác thực được lưu trữ trong kho lưu trữ mô hình.

Bộ nhớ của kiểu máy

Lưu trữ mô hình trong kho lưu trữ đã tạo phiên bản

Hình 10. Các mô hình đã xác thực được lưu trữ trong kho lưu trữ mô hình để theo dõi và có thể được phát hiện.

Sử dụng thẻ mô hình để ghi lại và chia sẻ thông tin chính về mô hình của bạn, chẳng hạn như mục đích, cấu trúc, yêu cầu phần cứng, chỉ số đánh giá, v.v.

Những thách thức khi xây dựng đường ống

Khi xây dựng quy trình, bạn có thể gặp phải những thách thức sau:

  • Truy cập vào dữ liệu bạn cần. Việc truy cập dữ liệu có thể yêu cầu bạn phải giải thích lý do cần truy cập dữ liệu đó. Ví dụ: bạn có thể cần phải giải thích cách dữ liệu sẽ được sử dụng và làm rõ cách giải quyết các vấn đề về thông tin nhận dạng cá nhân. Hãy chuẩn bị để đưa ra bằng chứng về khái niệm, minh hoạ cách mô hình của bạn đưa ra các dự đoán tốt hơn nhờ quyền truy cập vào một số loại dữ liệu nhất định.

  • Có các tính năng phù hợp. Trong một số trường hợp, các tính năng được sử dụng trong giai đoạn thử nghiệm sẽ không sử dụng được từ dữ liệu theo thời gian thực. Do đó, khi thử nghiệm, hãy cố gắng xác nhận rằng bạn sẽ có thể nhận được các tính năng tương tự trong bản phát hành chính thức.

  • Tìm hiểu cách dữ liệu được thu thập và trình bày. Việc tìm hiểu cách thu thập dữ liệu, người thu thập và cách dữ liệu được thu thập (cùng với các vấn đề khác) có thể tốn thời gian và công sức. Điều quan trọng là phải hiểu rõ dữ liệu. Không sử dụng dữ liệu mà bạn không tự tin để huấn luyện một mô hình có thể đi vào hoạt động thực tế.

  • Tìm hiểu sự đánh đổi giữa công sức, chi phí và chất lượng mô hình. Việc kết hợp một tính năng mới vào quy trình dữ liệu có thể đòi hỏi nhiều công sức. Tuy nhiên, tính năng bổ sung có thể chỉ cải thiện đôi chút chất lượng của mô hình. Trong các trường hợp khác, bạn có thể dễ dàng thêm một tính năng mới. Tuy nhiên, tài nguyên để tải và lưu trữ tính năng này có thể rất tốn kém.

  • Bắt đầu tính toán. Nếu cần TPU để đào tạo lại, bạn có thể khó đạt được hạn mức bắt buộc. Ngoài ra, việc quản lý TPU rất phức tạp. Ví dụ: một số phần trong mô hình hoặc dữ liệu của bạn có thể cần được thiết kế riêng cho TPU bằng cách chia các phần đó trên nhiều khối TPU.

  • Tìm đúng tập dữ liệu vàng. Nếu dữ liệu thay đổi thường xuyên, thì bạn sẽ gặp khó khăn khi tải tập dữ liệu vàng với nhãn nhất quán và chính xác.

Việc nắm bắt các loại vấn đề này trong quá trình thử nghiệm sẽ giúp tiết kiệm thời gian. Ví dụ: bạn không muốn phát triển các tính năng và mô hình tốt nhất chỉ để biết rằng các tính năng và mô hình này không khả dụng khi phát hành chính thức. Do đó, hãy cố gắng xác nhận sớm nhất có thể rằng giải pháp của bạn sẽ hoạt động trong những ràng buộc của môi trường sản xuất. Tốt hơn là dành thời gian xác minh một giải pháp có hiệu quả thay vì cần quay lại giai đoạn thử nghiệm vì giai đoạn quy trình đã phát hiện ra những vấn đề không thể giải quyết.