GPU cho nghiên cứu ML · Thanh toán crypto không KYC
IteraGPU
Phương pháp / Dữ liệu và đánh giá

Giữ một tập đánh giá vẫn có thể khiến bạn bất ngờ.

Một tập đánh giá hữu ích đại diện cho công việc mà mô hình sẽ phải thực hiện mà không được dùng để chọn các tham số của nó. Hãy định nghĩa đơn vị được đánh giá, nhóm các ví dụ liên quan lại, tìm kiếm các bản sao và dành riêng một tập cuối cùng giữ kín. Khi đó bạn có thể diễn giải một sự khác biệt về chất lượng. Một cách chia ngẫu nhiên các dòng không đảm bảo tính độc lập này, đặc biệt khi nhiều dòng đến từ cùng một tài liệu hoặc cùng một cuộc trò chuyện.

01 /

Định nghĩa mỗi ví dụ đại diện cho điều gì

Hãy bắt đầu bằng một câu quyết định: nhận diện loại của một ticket mới, trích xuất ba trường từ một tài liệu hay trả lời một câu hỏi kèm các tệp đính kèm của nó. Hãy mô tả đầu vào có sẵn tại thời điểm dự đoán, đầu ra mong đợi và các trường hợp ngoài phạm vi. Thông tin được thêm vào sau khi ticket được xử lý không được xuất hiện trong một đầu vào lẽ ra đại diện cho lúc nó mới đến.

Tiếp theo, hãy phân biệt dòng và đơn vị độc lập. Năm tin nhắn của một cuộc trò chuyện chia sẻ một ngữ cảnh; mười trang của một hồ sơ chia sẻ nguồn gốc của chúng. Nếu mục tiêu của bạn hướng đến các hồ sơ mới, hãy giữ mỗi hồ sơ trong một phân vùng duy nhất. Việc tách theo người dùng, tài liệu, thiết bị hay khoảng thời gian trả lời cho những câu hỏi khác nhau: hãy chọn cách giống với việc sử dụng trong tương lai, rồi ghi lý do của nó vào manifest.

Nguồn kỹ thuật: scikit-learn 1.9 — validation với các nhóm và phụ thuộc thời gian

02 /

Gán vai trò cho mỗi tập

Tập học dùng để điều chỉnh mô hình. Tập validation dẫn dắt các quyết định phát triển: prompt, ngưỡng, siêu tham số hay lựa chọn một biến thể. Tập kiểm tra cuối cùng trả lời một câu hỏi đã được cố định trước. Việc xem nó để chọn cấu hình tốt nhất dần dần biến tập kiểm tra này thành công cụ phát triển, ngay cả khi không có gradient nào được tính trên nó.

Cũng hãy tách biệt dữ liệu được dùng để học một phép biến đổi. Một phép chuẩn hóa, một phép chọn biến hay một phép điền khuyết được điều chỉnh trên toàn bộ tập dữ liệu có thể truyền thông tin cho mô hình. Hãy học các phép biến đổi này trên phân vùng được phép, rồi áp dụng phép biến đổi đã giữ lại cho các tập khác. Một pipeline giúp việc kiểm soát này dễ dàng hơn; nó không tự mình sửa được các nhóm bị tách sai.

Các vai trò cần đặt tên trước khi tạo ra những điểm số đầu tiên
TậpCách sử dụng được phépQuyết định cần tránh
HọcĐiều chỉnh các tham số và phép biến đổi đã họcNhập câu trả lời của tập kiểm tra cuối cùng vào đây
ValidationChọn cấu hình, prompt và ngưỡngTrình bày điểm số thăm dò tốt nhất như một kết quả cuối cùng độc lập
Kiểm tra cuối cùngĐánh giá cấu hình đã chọn theo quy tắc đã cố địnhThay đổi cấu hình sau khi đọc rồi dùng lại cùng điểm số đó như một sự xác nhận
Hiệu chỉnh có thểChuẩn bị một phương pháp lượng tử hóa cần đến nóDùng tập kiểm tra cuối cùng để tạo biến thể được đánh giá

Nguồn kỹ thuật: scikit-learn 1.9 — rò rỉ dữ liệu và các phép biến đổi

03 /

Xử lý các bản trùng lặp mà không xóa những trường hợp khó

Hãy giữ nguyên corpus thô, rồi xây dựng một bản kiểm kê làm việc gồm mã định danh, nguồn gốc và nhóm. Một dấu vân tay nội dung sẽ phát hiện các bản sao chính xác theo cách biểu diễn bạn chọn. Hãy ghi lại cách biểu diễn đó: việc loại bỏ toàn bộ dấu câu hoặc chuyển văn bản thành chữ thường có thể gộp những mục mà sự khác biệt lại quan trọng đối với tác vụ. Giữ lại sự tương ứng giữa bản sao bị loại và bản được giữ lại.

Các bản gần trùng đòi hỏi phải xem xét thêm: bản xuất đã chỉnh sửa, câu trả lời được viết lại, đoạn chung hoặc tài liệu được tái bản. Độ tương đồng cao là một tín hiệu cần xem xét, chứ không phải bằng chứng rằng hai chú thích có thể thay thế cho nhau. Hãy nhóm các biến thể có liên quan lại trước khi phân chia dữ liệu. Nếu hai bản sao mang các tham chiếu mâu thuẫn nhau, hãy mở một câu hỏi chú thích; đừng tự động chọn bản mà mô hình dự đoán tốt nhất.

04 /

Ví dụ minh họa: 1.200 dòng không phải là 1.200 quan sát độc lập

Ví dụ này hoàn toàn mang tính minh họa: không có corpus hay mô hình nào được đo lường. Giả sử có 240 cuộc hội thoại, mỗi cuộc được xuất thành năm dòng. Một dòng là một bản sao chính xác trong mỗi cuộc hội thoại; bốn dòng còn lại thì khác biệt. Loại bỏ 240 bản sao này để lại 960 ví dụ, vẫn được tổ chức thành 240 nhóm. Lựa chọn mang tính sư phạm tiếp theo dành 70% số nhóm cho huấn luyện, 15% cho kiểm định và 15% cho kiểm tra.

Ta thu được 168, 36 và 36 cuộc hội thoại, tức 672, 144 và 144 ví dụ. Việc tỷ lệ bằng nhau ở cấp dòng và cấp nhóm ở đây đến từ bốn ví dụ mỗi cuộc hội thoại. Trong một corpus thực tế có kích thước thay đổi, điều đó sẽ không tự động xảy ra. Những tỷ lệ này không phải là quy tắc phổ quát: chúng phải để lại đủ nhóm và đủ trường hợp quan trọng trong mỗi tập.

1.200 − 240 = 960 ví dụ; 168 + 36 + 36 = 240 nhóm; 672 + 144 + 144 = 960 ví dụ.
Phân chia số học minh họa, sau khi xử lý các bản sao
Phân chiaCuộc hội thoại nguyên vẹnVí dụVai trò
Học168672Điều chỉnh
Validation36144Chọn
Kiểm tra cuối cùng36144Xác nhận trên một tập được giữ riêng

Nguồn kỹ thuật: scikit-learn 1.9 — GroupShuffleSplit đếm các nhóm

05 /

Kiểm tra lớp, độ dài và trình tự thời gian

Sau khi phân chia, hãy đếm các lớp và các nhóm mang chúng. Một lớp xuất hiện trên nhiều dòng nhưng chỉ trong một cuộc hội thoại thì không cung cấp nhiều trường hợp độc lập. Cũng cần xem xét độ dài, các ngôn ngữ thực sự được bao phủ, tài liệu không đầy đủ và các hạng mục quan trọng đối với quyết định. Một giá trị trung bình trông yên tâm có thể che giấu một phân chia không có ví dụ nào về một trường hợp then chốt.

Việc phân tầng kèm nhóm cố gắng giữ nguyên tỷ lệ các lớp mà không phân tán các nhóm. Nó không đảm bảo sự cân bằng hoàn hảo khi các nhóm ít hoặc rất không đồng đều. Nếu tác vụ là dự đoán các quan sát trong tương lai, việc tách theo trình tự thời gian có thể phù hợp hơn so với việc trộn ngẫu nhiên. Cũng hãy kiểm tra rằng các biến đã sẵn có tại thời điểm dự đoán.

Nguồn kỹ thuật: scikit-learn 1.9 — StratifiedGroupKFold và những giới hạn của nó · scikit-learn 1.9 — kiểm định dữ liệu theo thời gian

06 /

Làm cho tham chiếu đủ chính xác để đánh giá một đầu ra

Hãy viết một hướng dẫn chú thích kèm ví dụ và các trường hợp biên. Đối với việc trích xuất, hãy nêu rõ ý nghĩa của một trường bị thiếu, định dạng ngày tháng, đơn vị tiền tệ và các tương đương được chấp nhận. Đối với việc phân loại, hãy mô tả ranh giới giữa các hạng mục. Một câu trả lời khác với tham chiếu không phải lúc nào cũng là lỗi của mô hình: tham chiếu có thể mơ hồ hoặc sai.

Hãy cho người khác đọc lại một tuyển chọn đa dạng, đặc biệt là các bất đồng và các trường hợp quan trọng, rồi ghi lại phán quyết. Giữ lại các chỉnh sửa trong một phiên bản mới của tập dữ liệu. Nếu một chỉnh sửa làm thay đổi kết quả của một so sánh, hãy tính lại tất cả các biến thể liên quan trên cùng một tham chiếu; đừng chỉ sửa dòng bất lợi cho mô hình bạn ưa thích.

07 /

Tạo gói đánh giá trước chiến dịch GPU

Sản phẩm bàn giao của bước chuẩn bị này là một tập hợp có thể nhận diện được, kèm theo các quy tắc của nó. Nó cho phép tái tạo việc lựa chọn dữ liệu mà không phụ thuộc vào ký ức về notebook. Chuẩn bị gói này trước khi thuê sẽ tránh việc tiêu tốn thời gian tính toán để giải quyết những khác biệt về tệp hay tiêu chí.

  • Cố định các mã định danh, các nhóm, các phân chia và lý do của chúng; giữ lại script hoặc danh sách tạo ra chúng.
  • Kiểm tra các giao nhau về mã định danh, nhóm và dấu vân tay giữa các phân vùng. Mọi giao nhau bất ngờ đều phải được giải thích hoặc sửa chữa.
  • Xuất số lượng theo phân vùng, lớp và nhóm con hữu ích, cùng với danh sách các loại trừ và lý do của chúng.
  • Cố định tham chiếu, các quy tắc chuẩn hóa, chỉ số chính và các ngưỡng trước khi so sánh.
  • Giữ lại phiên bản, dấu vân tay, quyền sử dụng và vị trí dữ liệu. Dấu vân tay đảm bảo nhận diện, không phải ẩn danh.
  • Chỉ cho phép truy cập bài kiểm tra cuối cùng đến thời điểm quyết định đã định; giữ nhật ký các lần truy cập và thay đổi giao thức.
08 /

Biết điều mà kiểm tra chứng minh

Việc chuẩn bị là chấp nhận được khi số lượng khớp với bản kiểm kê, khi các chồng lấn được kiểm soát và khi mỗi đầu ra có thể được đánh giá theo một quy tắc rõ ràng. Nó không chứng minh rằng mô hình sẽ thành công, cũng không chứng minh rằng mọi cách sử dụng trong tương lai đều được đại diện. Một tập nhỏ có thể mô tả một vấn đề cụ thể nhưng vẫn không đủ để kết luận về một lớp hiếm.

Nếu bạn dùng các lỗi của bài kiểm tra cuối cùng để cải thiện hệ thống, hãy giữ bài kiểm tra đó như lịch sử và chuẩn bị một xác nhận độc lập mới. Với một mô hình đã tiền huấn luyện mà dữ liệu gốc không rõ, phân vùng của bạn không thể chứng nhận việc không có phơi nhiễm trước đó. Hãy ghi lại hạn chế này thay vì gọi tập dữ liệu là hoàn toàn nguyên sơ.

Câu hỏi thực tế

Có phải luôn dành 20% dữ liệu cho kiểm tra?

Không. Tỷ lệ hữu ích phụ thuộc vào số đơn vị độc lập và các trường hợp cần bao phủ. Hãy kiểm tra các nhóm, các hạng mục quan trọng và độ chính xác của kết luận mong đợi; một con số phần trăm đơn thuần không đảm bảo một bài kiểm tra giàu thông tin.

Chỉ cần một mã định danh khác là đủ để loại bỏ các bản trùng?

Không. Hai lần xuất có thể có mã định danh khác nhau nhưng vẫn chứa cùng văn bản hoặc các biến thể của cùng một hồ sơ. Hãy kiểm tra nội dung và nguồn gốc, rồi giữ các ví dụ liên quan trong phân vùng tương ứng với quy tắc nhóm của bạn.

Tôi có thể dùng lại bài kiểm tra của mình sau khi đã sửa mô hình nhờ các lỗi của nó không?

Bạn có thể giữ nó để theo dõi lịch sử, nhưng nó đã tham gia vào quá trình phát triển. Để xác nhận một cải thiện trên dữ liệu tách riêng, hãy dùng một tập độc lập mới và nêu rõ vai trò của mỗi tập.