Instruction file imported from congkx123789/new_kaggle (
.cursor/rules/SCRIPT_USAGE_GUIDE.mdc). Copyright stays with the author.
📚 HƯỚNG DẪN SỬ DỤNG TẤT CẢ SCRIPTS/TOOLS MALLORN PIPELINE
📋 MỤC LỤC
- Script Push & Run
- Script Chạy Tuần Tự (Sequential)
- Script Kiểm Tra Trạng Thái
- Script Upload Dataset
- Script Tự Động Push Part 3
- Script Download Logs
- Script Commit & Submit
- Script Python Utilities
- Script Quản Lý Pipeline
1. Script Push & Run
push_all_kernels.bat ⚡ Push nhanh cả 3
- Mục đích: Push cả 3 notebooks lên Kaggle cùng lúc (không đợi)
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\push_all_kernels.bat - Quy trình:
- Push Part 1 → Không đợi
- Push Part 2 → Không đợi
- Push Part 3 → Không đợi
- Lưu ý:
- ⚠️ Kaggle chỉ cho phép 2 GPU session cùng lúc
- Part 3 có thể bị từ chối nếu Part 1 và Part 2 đang chạy
- Khi nào dùng: Khi bạn muốn push nhanh cả 3, không cần đợi
run_all_with_logs.bat 📝 Có log
- Mục đích: Giống
push_all_kernels.batnhưng có ghi log chi tiết - Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\run_all_with_logs.bat - Kết quả: Tạo thư mục
logs/với các file:run_all.log- Log tổng hợppart1_push.log,part2_push.log,part3_push.log- Log từng phần
2. Script Chạy Tuần Tự (Sequential)
run_sequential_with_logs.ps1 🎯 QUAN TRỌNG NHẤT
- Mục đích: Chạy tuần tự từng phần, đợi phần trước hoàn thành mới chạy phần sau
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\run_sequential_with_logs.ps1 - Quy trình:
- Push Part 1 → Đợi COMPLETE → Tải output về
logs/part1_output/ - Push Part 2 → Đợi COMPLETE → Tải output về
logs/part2_output/ - Push Part 3 → Đợi COMPLETE → Tải output về
logs/part3_output/
- Push Part 1 → Đợi COMPLETE → Tải output về
- Log files:
logs/part1_sequential.log- Log chi tiết Part 1logs/part2_sequential.log- Log chi tiết Part 2logs/part3_sequential.log- Log chi tiết Part 3logs/sequential_summary.log- Tóm tắt kết quảlogs/partX_session_log.txt- Session log từ Kaggle (nếu có)
- Ưu điểm:
- ✅ Đảm bảo Part 2 chỉ chạy sau khi Part 1 xong
- ✅ Tự động tải output về máy
- ✅ Dừng ngay nếu có lỗi
- Khi nào dùng: Khi bạn muốn chạy pipeline từ đầu đến cuối tự động
run_minimal_sequential.ps1 ⚡ Chạy Tuần Tự MODE MINIMAL với Đánh Giá Thông Minh
- Mục đích: Chạy tuần tự 3 notebook với MODE MINIMAL (nhanh nhất, ~7-14 phút) + Đánh giá submission trước khi submit
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\run_minimal_sequential.ps1 - Quy trình:
- Push Part 1 (MODE MINIMAL) → Đợi COMPLETE → Tải output về
logs/part1_log/ - Push Part 2 → Đợi COMPLETE → Tải output về
logs/part2_log/ - Push Part 3 → Đợi COMPLETE → Tải output về
logs/part3_log/ - Đánh giá submission (KHÔNG submit ngay):
- Kiểm tra TDE percentage (phải 5-15% để reasonable)
- So sánh với best previous score
- Đưa ra recommendation (Submit hoặc Skip)
- Hỏi người dùng xác nhận:
- [Y] Submit submission
- [N] Skip (tiết kiệm quota)
- [Enter] Dùng recommendation mặc định
- Chỉ submit nếu người dùng đồng ý
- Tự động lấy kết quả và thứ hạng sau khi submit
- Push Part 1 (MODE MINIMAL) → Đợi COMPLETE → Tải output về
- Tính năng:
- ✅ Monitor mỗi 5 giây với progress chi tiết (check status nhanh)
- ✅ Tự động tải output khi hoàn thành
- ✅ Hiển thị last 50 lines của session log
- ✅ Kiểm tra errors tự động
- ✅ Liệt kê các files đã tải về
- ✅ Đánh giá submission thông minh:
- Kiểm tra TDE percentage (5-15% là reasonable)
- So sánh với best previous score
- Đưa ra recommendation chi tiết
- ✅ Hỏi người dùng xác nhận trước khi submit (tiết kiệm quota)
- ✅ Tự động submit nếu người dùng đồng ý
- ✅ Tự động lấy kết quả:
- Lịch sử submissions (5 mới nhất)
- Tìm và hiển thị thứ hạng của bạn trong leaderboard
- Box summary đẹp với rank và score
- Logic đánh giá:
- TDE % < 3%: ❌ TOO LOW (model dự đoán tất cả là Non-TDE) → Recommend SKIP
- TDE % > 20%: ❌ TOO HIGH (model dự đoán quá nhiều TDE) → Recommend SKIP
- TDE % 5-15%: ✅ REASONABLE (có thể submit) → Recommend SUBMIT
- TDE % 3-5% hoặc 15-20%: ⚠️ BORDERLINE (không lý tưởng) → Recommend SKIP
- Lợi ích:
- ✅ Tiết kiệm số lần submit trong ngày (quota có hạn)
- ✅ Chỉ submit những model có khả năng tốt
- ✅ Tránh submit những model xấu
- ✅ So sánh với best previous score để đưa ra quyết định
- ✅ Tự động hiển thị thứ hạng sau khi submit
- Thời gian: ~7-14 phút tổng cộng (MODE MINIMAL) + thời gian đánh giá và xác nhận
- Khi nào dùng: Khi bạn muốn chạy nhanh để test hoặc nộp kết quả sớm, nhưng vẫn muốn đánh giá submission trước khi submit để tiết kiệm quota
3. Script Kiểm Tra Trạng Thái
check_status.ps1 🔍 Kiểm tra một kernel
- Mục đích: Kiểm tra trạng thái của một kernel cụ thể
- Cách dùng:
# Kiểm tra Part 1 (mặc định) .\check_status.ps1 # Kiểm tra kernel khác .\check_status.ps1 -KernelRef "vcngh123/mallorn-part-2-model-training-gpu" # Kiểm tra mỗi 30 giây thay vì 60 giây .\check_status.ps1 -CheckInterval 30 - Tính năng:
- Tự động dừng khi kernel COMPLETE hoặc ERROR
- Hiển thị thời gian chạy
- Gợi ý lệnh tải output
check_status_and_download.ps1 📥 Kiểm tra + Tải về
- Mục đích: Kiểm tra cả 3 kernel và tự động tải kết quả về khi hoàn thành
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\check_status_and_download.ps1 - Tính năng:
- ✅ Kiểm tra trạng thái cả 3 phần
- ✅ Tự động tải model về
./modelskhi Part 2 hoàn thành - ✅ Tự động tải
submission.csvvề khi Part 3 hoàn thành - ✅ Hỏi có muốn submit lên leaderboard không
- Khi nào dùng: Sau khi đã push kernel, dùng để theo dõi và tải kết quả
4. Script Upload Dataset
upload_datasets.ps1 📦 Upload dữ liệu
- Mục đích: Upload code package và data zip lên Kaggle làm dataset
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\upload_datasets.ps1 - Quy trình:
- Zip folder
mallorn_ml_pipeline/→ Upload lênvcngh123/mallorn-ml-pipeline-code - Copy
mallorn-astronomical-classification-challenge.zip→ Upload lênvcngh123/mallorn-competition-data
- Zip folder
- Log:
logs/upload_datasets.log - Khi nào dùng:
- Lần đầu setup project
- Khi cần cập nhật code package hoặc data
5. Script Tự Động Push Part 3
auto_push_part3.ps1 ⏳ Đợi slot GPU
- Mục đích: Tự động push Part 3 khi có slot GPU trống
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\auto_push_part3.ps1 - Tính năng:
- Kiểm tra trạng thái Part 1 và Part 2 mỗi 60 giây
- Tự động push Part 3 khi một trong hai hoàn thành
- Thử tối đa 60 lần (60 phút)
6. Script Download Logs (Tải Log về Máy)
get_part1_log.ps1 📥 Script đơn giản nhất
- Mục đích: Tải log Part 1 về folder cố định
./logs/part1_logvà xóa data cũ - Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\get_part1_log.ps1 - Tính năng:
- ✅ Tự động xóa data cũ trong
./logs/part1_log - ✅ Tải log mới nhất về folder cố định
- ✅ Hiển thị last 50 lines của log
- ✅ Tự động xóa data cũ trong
- Output:
./logs/part1_log/session_log.txtvà các output files khác - Khi nào dùng: Khi bạn chỉ muốn tải log nhanh, không cần monitor
get_log_now.ps1 📥 Tải log ngay với chi tiết
- Mục đích: Tải log ngay lập tức về folder cố định, hiển thị chi tiết
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\get_log_now.ps1 - Tính năng:
- ✅ Kiểm tra trạng thái kernel trước khi tải
- ✅ Tự động xóa data cũ trong
./logs/part1_log - ✅ Hiển thị last 100 lines của log
- ✅ Hiển thị danh sách tất cả files đã tải
- ✅ Hiển thị file size và số dòng
- Output:
./logs/part1_log/với tất cả output files - Khi nào dùng: Khi bạn muốn xem log chi tiết ngay
auto_monitor.ps1 ⏱️ Monitor với timeout và auto-download
- Mục đích: Monitor kernel trong một khoảng thời gian, tự động tải log sau timeout hoặc khi hoàn thành
- Cách dùng:
# Monitor 20 phút (mặc định) .\auto_monitor.ps1 # Monitor 30 phút .\auto_monitor.ps1 -TimeoutMinutes 30 # Monitor kernel khác .\auto_monitor.ps1 -TimeoutMinutes 20 -KernelRef "vcngh123/mallorn-part-2-model-training-gpu" - Tính năng:
- ✅ Monitor kernel mỗi 30 giây
- ✅ Tự động dừng khi COMPLETE hoặc ERROR
- ✅ Tự động tải log sau timeout hoặc khi hoàn thành
- ✅ Tự động xóa data cũ trước khi tải mới
- ✅ Hiển thị last 80 lines của log
- Output:
./logs/part1_log/(folder cố định) - Khi nào dùng: Khi bạn muốn monitor kernel và tự động tải log sau một thời gian nhất định
monitor_and_download.ps1 📊 Monitor chi tiết với progress
- Mục đích: Monitor kernel với progress bar chi tiết, tự động tải log
- Cách dùng:
# Monitor 30 phút (mặc định) .\monitor_and_download.ps1 # Monitor 20 phút, check mỗi 15 giây .\monitor_and_download.ps1 -TimeoutMinutes 20 -CheckInterval 15 - Tính năng:
- ✅ Hiển thị progress chi tiết (elapsed time, remaining time)
- ✅ Check interval có thể tùy chỉnh
- ✅ Hiển thị first 20 lines và last 50 lines của log
- ✅ Tự động xóa data cũ trước khi tải mới
- Output:
./logs/part1_log/(folder cố định) - Khi nào dùng: Khi bạn muốn theo dõi chi tiết tiến trình kernel
monitor_kernel.ps1 🔄 Monitor liên tục với auto-download
- Mục đích: Monitor kernel liên tục, tự động tải output khi hoàn thành
- Cách dùng:
.\monitor_kernel.ps1 - Tính năng:
- ✅ Monitor mỗi 30 giây
- ✅ Tự động dừng khi COMPLETE hoặc ERROR
- ✅ Tự động tải output về
./logs/part1_outputkhi hoàn thành - ✅ Hiển thị thời gian chạy
- Output:
./logs/part1_output/(có timestamp) - Khi nào dùng: Khi bạn muốn monitor và tự động tải output khi xong
quick_check.ps1 ⚡ Kiểm tra nhanh trạng thái
- Mục đích: Kiểm tra nhanh trạng thái kernel và hiển thị link
- Cách dùng:
.\quick_check.ps1 - Tính năng:
- ✅ Kiểm tra trạng thái nhanh
- ✅ Hiển thị link để xem trên web
- ✅ Tự động tải log nếu COMPLETE hoặc ERROR
- Khi nào dùng: Khi bạn chỉ muốn kiểm tra nhanh trạng thái
push_with_timeout.ps1 🚀 Push và monitor với timeout
- Mục đích: Push kernel lên Kaggle và monitor với timeout, tự động tải log
- Cách dùng:
# Push và monitor 30 phút .\push_with_timeout.ps1 -TimeoutMinutes 30 - Tính năng:
- ✅ Tự động copy metadata và push kernel
- ✅ Monitor với timeout
- ✅ Tự động tải log sau timeout hoặc khi hoàn thành
- ✅ Tạo folder với timestamp để không ghi đè
- Output:
./logs/part1_output_YYYYMMDD_HHMMSS/ - Khi nào dùng: Khi bạn muốn push và monitor trong một lệnh
check_all_logs.ps1 📋 Kiểm tra log cả 3 parts
- Mục đích: Kiểm tra log và trạng thái của cả 3 parts cùng lúc
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\check_all_logs.ps1 - Tính năng:
- ✅ Kiểm tra kernel status của cả 3 parts
- ✅ Hiển thị last 30 lines của session log từng part
- ✅ Kiểm tra errors trong log
- ✅ Liệt kê output files đã tải về
- Khi nào dùng: Khi bạn muốn xem tổng quan tình trạng cả pipeline
submit_to_competition.ps1 📤 Tự động nộp submission
- Mục đích: Tự động đợi Part 3 hoàn thành, tải submission và nộp lên competition
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\submit_to_competition.ps1 - Quy trình:
- Đợi Part 3 hoàn thành (check mỗi 60 giây, tối đa 60 phút)
- Tự động tải
submission.csvvề - Tự động nộp lên competition
- Hiển thị kết quả
- Tính năng:
- ✅ Tự động đợi Part 3 hoàn thành
- ✅ Tự động tải và kiểm tra submission file
- ✅ Tự động nộp lên leaderboard
- ✅ Hiển thị statistics (Class 0, Class 1)
- Khi nào dùng: Sau khi Part 3 chạy xong, muốn nộp tự động
create_and_submit.ps1 🎯 Tạo và nộp submission (đơn giản)
- Mục đích: Kiểm tra Part 3 status và nộp submission nếu đã hoàn thành
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\create_and_submit.ps1 - Tính năng:
- ✅ Kiểm tra Part 3 status
- ✅ Tải submission nếu COMPLETE
- ✅ Nộp lên competition
- ✅ Hướng dẫn nếu Part 3 chưa xong
- Khi nào dùng: Khi bạn muốn nộp submission một cách đơn giản
create_submission_local.py 🐍 Tạo submission từ local files
- Mục đích: Tạo submission.csv từ models và test features đã tải về (chạy local)
- Cách dùng:
python create_submission_local.py - Yêu cầu:
logs/part1_log/test_tabular_features.parquet- Test featureslogs/part2_log/xgb_fold_*.json- 3 model fileslogs/part2_log/best_threshold.json- Threshold tối ưu
- Output:
submission.csvtrong thư mục hiện tại - Lưu ý: Cần Python environment với pandas, numpy, xgboost
- Khi nào dùng: Khi Part 3 bị lỗi hoặc muốn tạo submission từ local
create_submission_simple.py 🐍 Tạo submission đơn giản (không cần xgboost)
- Mục đích: Tạo submission.csv đơn giản từ OOF predictions hoặc models (phiên bản nhẹ)
- Cách dùng:
python create_submission_simple.py - Yêu cầu:
logs/part1_log/test_tabular_features.parquet- Test featureslogs/part2_log/oof_xgb.csv(ưu tiên) HOẶClogs/part2_log/xgb_fold_*.json- Modelslogs/part2_log/best_threshold.json- Threshold tối ưu
- Output:
submission.csvtrong thư mục hiện tại - Lưu ý:
- Ưu tiên dùng OOF predictions (nhanh hơn)
- Nếu không có OOF, sẽ generate từ models (cần xgboost)
- Khi nào dùng: Khi muốn tạo submission nhanh từ OOF predictions
push_part1_commit.ps1 🔄 Push lại Part 1 và hướng dẫn commit
- Mục đích: Push lại Part 1 (tạo version mới) và hướng dẫn commit output
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\push_part1_commit.ps1 - Quy trình:
- Push lại Part 1 (tạo version mới)
- Đợi Part 1 hoàn thành
- Hướng dẫn commit output
- Khi nào dùng: Khi Part 1 đã chạy xong nhưng chưa commit output
continue_after_commit.ps1 ▶️ Tiếp tục sau khi commit Part 1
- Mục đích: Push Part 3 và nộp submission sau khi đã commit Part 1 output
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\continue_after_commit.ps1 - Quy trình:
- Hỏi xác nhận đã commit Part 1 output
- Push Part 3
- Đợi Part 3 hoàn thành
- Tải submission và nộp lên competition
- Khi nào dùng: Sau khi đã commit Part 1 output, muốn tự động push Part 3 và nộp
auto_commit_and_submit.ps1 🤖 Tự động toàn bộ pipeline (commit + submit)
- Mục đích: Tự động push Part 1 → Đợi xong → Hướng dẫn commit → Push Part 3 → Nộp submission
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\auto_commit_and_submit.ps1 - Quy trình:
- Push lại Part 1
- Đợi Part 1 hoàn thành
- Hướng dẫn commit output (cần user commit thủ công)
- Push Part 3
- Đợi Part 3 hoàn thành
- Tải submission và nộp lên competition
- Khi nào dùng: Khi muốn tự động hóa toàn bộ quy trình từ đầu đến cuối
wait_and_check_output.ps1 ⏳ Đợi và kiểm tra output commit
- Mục đích: Đợi Part 1 hoàn thành và kiểm tra xem output có được commit tự động không
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\wait_and_check_output.ps1 - Quy trình:
- Kiểm tra Part 1 status
- Kiểm tra output files mỗi 60 giây (tối đa 30 lần = 30 phút)
- Báo cáo nếu output đã được commit hoặc cần commit thủ công
- Tính năng:
- ✅ Kiểm tra định kỳ xem output có sẵn không
- ✅ Tự động phát hiện khi output được commit
- ✅ Hướng dẫn commit thủ công nếu cần
- Khi nào dùng: Sau khi Part 1 chạy xong, muốn kiểm tra xem output đã commit chưa
create_submission_from_local.ps1 📥 Tạo submission từ local và nộp
- Mục đích: Kiểm tra local files, tạo submission từ Python script, và nộp lên competition
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\create_submission_from_local.ps1 - Quy trình:
- Kiểm tra các files cần thiết (test features, models, threshold)
- Chạy
create_submission_simple.pyđể tạo submission - Tự động nộp lên competition
- Tính năng:
- ✅ Kiểm tra đầy đủ files trước khi chạy
- ✅ Tự động chạy Python script
- ✅ Tự động nộp submission
- ✅ Hướng dẫn nếu thiếu files hoặc lỗi
- Khi nào dùng: Khi có đủ files local và muốn tạo submission mà không cần chạy Part 3
check_and_commit_part2.ps1 🔍 Kiểm tra và commit Part 2
- Mục đích: Kiểm tra Part 2 status, list output files, và hướng dẫn commit models
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\check_and_commit_part2.ps1 - Quy trình:
- Kiểm tra Part 2 status
- Tải output về temp folder để kiểm tra
- Liệt kê các models có sẵn
- Hướng dẫn commit qua web interface
- Tính năng:
- ✅ Kiểm tra status và output files
- ✅ Hiển thị danh sách models
- ✅ Hướng dẫn commit chi tiết
- Khi nào dùng: Sau khi Part 2 chạy xong, muốn kiểm tra và commit models
push_part2_commit.ps1 🔄 Push lại Part 2 và hướng dẫn commit
- Mục đích: Push lại Part 2 (tạo version mới) và hướng dẫn commit models
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\push_part2_commit.ps1 - Quy trình:
- Push lại Part 2 (tạo version mới)
- Đợi Part 2 hoàn thành (tối đa 30 phút)
- Hướng dẫn commit models qua web
- Tính năng:
- ✅ Tự động push Part 2
- ✅ Monitor và đợi completion
- ✅ Hướng dẫn commit chi tiết
- Khi nào dùng: Khi Part 2 đã chạy xong nhưng chưa commit models
monitor_part2.ps1 📊 Monitor Part 2 và tự động tải output
- Mục đích: Monitor Part 2 training, tự động tải models về khi hoàn thành
- Cách dùng:
# Monitor với interval mặc định (30s) và timeout mặc định (30 phút) .\monitor_part2.ps1 # Monitor với interval và timeout tùy chỉnh .\monitor_part2.ps1 -CheckInterval 15 -MaxWait 60 - Tính năng:
- ✅ Monitor Part 2 mỗi 30 giây (có thể tùy chỉnh)
- ✅ Hiển thị elapsed time
- ✅ Tự động dừng khi COMPLETE hoặc ERROR
- ✅ Tự động tải models về
logs/part2_log/
- Output:
logs/part2_log/với các model files - Khi nào dùng: Khi Part 2 đang chạy và muốn monitor + tự động tải models
auto_commit_output.ps1 🤖 Tự động commit output (thử các phương án)
- Mục đích: Thử các phương án để commit output tự động (lưu ý: Kaggle API không hỗ trợ trực tiếp)
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\auto_commit_output.ps1 - Quy trình:
- Kiểm tra xem output đã được commit chưa
- Thử push lại kernel với metadata mới (có thể tự động commit)
- Hướng dẫn commit thủ công nếu không thành công
- Lưu ý:
- ⚠️ Kaggle API không hỗ trợ commit output trực tiếp
- Phải commit qua web interface hoặc push lại kernel
- Khi nào dùng: Khi muốn thử commit output tự động (thường không thành công, cần commit thủ công)
8. Script Python Utilities
create_submission_local.py 🐍 Tạo submission từ local files (đầy đủ)
- Mục đích: Tạo submission.csv từ models và test features đã tải về (chạy local)
- Cách dùng:
python create_submission_local.py - Yêu cầu:
logs/part1_log/test_tabular_features.parquet- Test featureslogs/part2_log/xgb_fold_*.json- 3 model files (hoặc 5 nếu Part 2 dùng 5 folds)logs/part2_log/best_threshold.json- Threshold tối ưu
- Output:
submission.csvtrong thư mục hiện tại - Lưu ý: Cần Python environment với pandas, numpy, xgboost
- Khi nào dùng: Khi Part 3 bị lỗi hoặc muốn tạo submission từ local với đầy đủ tính năng
create_submission_simple.py 🐍 Tạo submission đơn giản (ưu tiên OOF)
- Mục đích: Tạo submission.csv đơn giản từ OOF predictions hoặc models (phiên bản nhẹ)
- Cách dùng:
python create_submission_simple.py - Yêu cầu:
logs/part1_log/test_tabular_features.parquet- Test featureslogs/part2_log/oof_xgb.csv(ưu tiên) HOẶClogs/part2_log/xgb_fold_*.json- Modelslogs/part2_log/best_threshold.json- Threshold tối ưu
- Output:
submission.csvtrong thư mục hiện tại - Lưu ý:
- Ưu tiên dùng OOF predictions (nhanh hơn, không cần xgboost)
- Nếu không có OOF, sẽ generate từ models (cần xgboost)
- Khi nào dùng: Khi muốn tạo submission nhanh từ OOF predictions hoặc không có xgboost
9. Script Quản Lý Pipeline
manage_pipeline.ps1 🎛️ Quản lý pipeline tự động (toàn diện)
- Mục đích: Quản lý pipeline tự động: Push → Đợi → Push tiếp theo, với logging chi tiết
- Cách dùng:
cd "D:\machine learning\Notebook kaggle" .\manage_pipeline.ps1 - Quy trình:
- Push Part 1 → Đợi COMPLETE → Tải output
- Push Part 2 → Đợi COMPLETE → Tải models
- Push Part 3 → Đợi COMPLETE → Tải submission
- Tính năng:
- ✅ Quản lý toàn bộ pipeline tự động
- ✅ Logging chi tiết vào
logs/pipeline_manager.log - ✅ Tự động tải output sau mỗi phần
- ✅ Xử lý lỗi và retry
- Log files:
logs/pipeline_manager.log- Log tổng hợplogs/part1_pipeline.log- Log Part 1logs/part2_pipeline.log- Log Part 2logs/part3_pipeline.log- Log Part 3
- Khi nào dùng: Khi muốn quản lý toàn bộ pipeline với logging chi tiết
7. Lệnh Kaggle API để Download Logs (Thủ Công)
Nếu bạn muốn tự tải log bằng lệnh Kaggle API trực tiếp:
Tải Output Files (bao gồm log)
# Tải tất cả output files về folder cụ thể
kaggle kernels output vcngh123/mallorn-part-1-data-preprocessing-gpu -p "./logs/part1_log" --force
# Tải về folder khác
kaggle kernels output vcngh123/mallorn-part-1-data-preprocessing-gpu -p "./my_output" --force
Kiểm Tra Trạng Thái
# Kiểm tra trạng thái kernel
kaggle kernels status vcngh123/mallorn-part-1-data-preprocessing-gpu
# Kiểm tra tất cả kernel của bạn
kaggle kernels list --mine
Xem Log Trực Tiếp (nếu có)
# Lưu ý: Kaggle API không có flag --log riêng
# Log sẽ được tải cùng với output files trong folder output
Tải Output từ Kernel Cụ Thể
# Part 1
kaggle kernels output vcngh123/mallorn-part-1-data-preprocessing-gpu -p "./logs/part1_log" --force
# Part 2 (models)
kaggle kernels output vcngh123/mallorn-part-2-model-training-gpu -p "./models" --force
# Part 3 (submission)
kaggle kernels output vcngh123/mallorn-part-3-inference-submit-gpu -p "./submissions" --force
🎯 WORKFLOW KHUYẾN NGHỊ
Workflow 1: Chạy Pipeline Từ Đầu (Lần Đầu)
# Bước 1: Upload datasets (chỉ cần làm 1 lần)
.\upload_datasets.ps1
# Bước 2: Chạy tuần tự cả pipeline
.\run_sequential_with_logs.ps1
# Script sẽ tự động:
# - Push Part 1 → Đợi xong → Tải output
# - Push Part 2 → Đợi xong → Tải model về
# - Push Part 3 → Đợi xong → Tải submission.csv
Workflow 2: Push Nhanh Cả 3 Phần
# Push cả 3 phần cùng lúc (không đợi)
.\push_all_kernels.bat
# Sau đó kiểm tra và tải kết quả
.\check_status_and_download.ps1
Workflow 3: Chỉ Push Một Phần Cụ Thể
# Ví dụ: Chỉ push Part 2
cd "D:\machine learning\Notebook kaggle"
Copy-Item "kernel-metadata-part2.json" "kernel-metadata.json" -Force
kaggle kernels push -p .
# Kiểm tra trạng thái
.\check_status.ps1 -KernelRef "vcngh123/mallorn-part-2-model-training-gpu"
📁 CẤU TRÚC FILE CẦN THIẾT
File Metadata (Ở thư mục gốc)
kernel-metadata-part1.json- Metadata cho Part 1kernel-metadata-part2.json- Metadata cho Part 2kernel-metadata-part3.json- Metadata cho Part 3kernel-metadata.json- File tạm (được copy từ part1/2/3 khi chạy script)
File Notebook (Ở thư mục gốc)
Mallorn_Part1_Data_Preprocessing_GPU.ipynbMallorn_Part2_Model_Training_GPU.ipynbMallorn_Part3_Inference_Submit.ipynb
Thư Mục Logs (Tự động tạo)
logs/- Chứa tất cả log fileslogs/part1_log/- Folder cố định chứa log Part 1 (tự động xóa data cũ khi tải mới)logs/partX_output/- Output từ kernel với timestamp (tự động tải về)logs/partX_output_YYYYMMDD_HHMMSS/- Output với timestamp (không ghi đè)logs/partX_session_log.txt- Session log từ Kaggle- Lưu ý: Các script download log sẽ tự động xóa data cũ trong
logs/part1_log/trước khi tải mới
⚠️ LƯU Ý QUAN TRỌNG
1. Giới Hạn GPU Session
- Kaggle chỉ cho phép 2 GPU session cùng lúc
- Nếu Part 1 và Part 2 đang chạy → Part 3 sẽ bị từ chối
- Giải pháp: Dùng
run_sequential_with_logs.ps1để chạy tuần tự
2. File Metadata
- Tất cả script đều cần file
kernel-metadata-partX.jsonở thư mục gốc - Script sẽ tự động copy vào
kernel-metadata.jsonkhi chạy - Không được xóa file
kernel-metadata.jsontrong khi script đang chạy
3. Kernel Sources
- Part 2 cần output từ Part 1 → Đảm bảo
kernel_sourcestrong metadata đúng - Part 3 cần output từ Part 1 và Part 2 → Kiểm tra metadata
4. Dataset Sources
- Nếu dùng dataset riêng → Cần upload bằng
upload_datasets.ps1trước - Sau đó cập nhật
dataset_sourcestrong metadata
🔧 TROUBLESHOOTING
Lỗi: "Maximum batch GPU session count of 2 reached"
- Nguyên nhân: Đã có 2 kernel đang chạy GPU
- Giải pháp:
- Đợi một trong hai kernel hoàn thành
- Hoặc dùng
run_sequential_with_logs.ps1để chạy tuần tự
Lỗi: "kernel-metadata-partX.json not found"
- Nguyên nhân: Thiếu file metadata
- Giải pháp: Tạo file metadata hoặc copy từ thư mục con:
Copy-Item "01_Preprocessing\kernel-metadata.json" "kernel-metadata-part1.json" Copy-Item "02_Training\kernel-metadata.json" "kernel-metadata-part2.json" Copy-Item "03_Inference\kernel-metadata.json" "kernel-metadata-part3.json"
Lỗi: "409 Conflict" khi push
- Nguyên nhân: Kernel đã tồn tại với ID khác
- Giải pháp: Kiểm tra ID trong metadata có đúng không:
kaggle kernels list --mine --user vcngh123
📊 SO SÁNH CÁC SCRIPT
Script Push & Run
| Script | Tốc Độ | Đợi Hoàn Thành | Log | Tự Động Tải Output | Khi Nào Dùng |
|---|---|---|---|---|---|
push_all_kernels.bat |
⚡⚡⚡ | ❌ | ❌ | ❌ | Push nhanh cả 3 |
run_all_with_logs.bat |
⚡⚡⚡ | ❌ | ✅ | ❌ | Push có log |
run_sequential_with_logs.ps1 |
⚡ | ✅ | ✅ | ✅ | Chạy pipeline tự động |
run_minimal_sequential.ps1 |
⚡ | ✅ | ✅ | ✅ | Chạy MODE MINIMAL (nhanh) |
check_status.ps1 |
⚡⚡⚡ | ✅ | ❌ | ❌ | Kiểm tra một kernel |
check_status_and_download.ps1 |
⚡⚡ | ✅ | ❌ | ✅ | Theo dõi + tải về |
check_all_logs.ps1 |
⚡⚡⚡ | ❌ | ✅ | ❌ | Kiểm tra log cả 3 parts |
auto_push_part3.ps1 |
⚡ | ✅ | ❌ | ❌ | Đợi slot GPU |
push_with_timeout.ps1 |
⚡⚡ | ✅ | ✅ | ✅ | Push + monitor + download |
submit_to_competition.ps1 |
⚡⚡ | ✅ | ❌ | ✅ | Tự động nộp submission |
create_and_submit.ps1 |
⚡⚡⚡ | ❌ | ❌ | ✅ | Nộp submission đơn giản |
wait_and_check_output.ps1 |
⚡⚡ | ✅ | ❌ | ❌ | Kiểm tra output commit |
create_submission_from_local.ps1 |
⚡⚡ | ❌ | ❌ | ✅ | Tạo submission từ local |
check_and_commit_part2.ps1 |
⚡⚡⚡ | ❌ | ❌ | ❌ | Kiểm tra Part 2 output |
push_part2_commit.ps1 |
⚡⚡ | ✅ | ❌ | ❌ | Push Part 2 và commit |
monitor_part2.ps1 |
⚡⚡ | ✅ | ❌ | ✅ | Monitor Part 2 |
auto_commit_output.ps1 |
⚡⚡ | ❌ | ❌ | ❌ | Thử commit tự động |
manage_pipeline.ps1 |
⚡ | ✅ | ✅ | ✅ | Quản lý pipeline toàn diện |
Script Download Logs
| Script | Tốc Độ | Xóa Data Cũ | Hiển Thị Log | Folder Output | Khi Nào Dùng |
|---|---|---|---|---|---|
get_part1_log.ps1 |
⚡⚡⚡ | ✅ | Last 50 lines | ./logs/part1_log |
Tải log nhanh nhất |
get_log_now.ps1 |
⚡⚡⚡ | ✅ | Last 100 lines + chi tiết | ./logs/part1_log |
Xem log chi tiết |
auto_monitor.ps1 |
⚡⚡ | ✅ | Last 80 lines | ./logs/part1_log |
Monitor + auto download |
monitor_and_download.ps1 |
⚡⚡ | ✅ | First 20 + Last 50 | ./logs/part1_log |
Monitor chi tiết |
monitor_kernel.ps1 |
⚡⚡ | ❌ | Không | ./logs/part1_output/ |
Monitor + auto download |
quick_check.ps1 |
⚡⚡⚡ | ❌ | Không | Tự động nếu cần | Kiểm tra nhanh |
🎓 VÍ DỤ THỰC TẾ
Ví dụ 1: Chạy Pipeline Hoàn Chỉnh
# 1. Upload datasets (nếu chưa có)
.\upload_datasets.ps1
# 2. Chạy tuần tự cả pipeline
.\run_sequential_with_logs.ps1
# 3. Kiểm tra kết quả
cat logs\sequential_summary.log
Ví dụ 2: Chỉ Cập Nhật Part 2
# 1. Push Part 2
Copy-Item "kernel-metadata-part2.json" "kernel-metadata.json" -Force
kaggle kernels push -p .
# 2. Theo dõi trạng thái
.\check_status.ps1 -KernelRef "vcngh123/mallorn-part-2-model-training-gpu"
# 3. Tải model về khi xong
kaggle kernels output vcngh123/mallorn-part-2-model-training-gpu -p "./models" --force
Ví dụ 3: Kiểm Tra Tất Cả Kernel
# Kiểm tra và tải tất cả kết quả về
.\check_status_and_download.ps1
Ví dụ 4: Tải Log Part 1 về Máy
# Cách 1: Tải log ngay (đơn giản nhất)
.\get_part1_log.ps1
# Cách 2: Tải log với chi tiết
.\get_log_now.ps1
# Cách 3: Monitor 20 phút rồi tự động tải
.\auto_monitor.ps1 -TimeoutMinutes 20
# Cách 4: Monitor chi tiết với progress
.\monitor_and_download.ps1 -TimeoutMinutes 30
Ví dụ 5: Push và Monitor với Timeout
# Push kernel và monitor 30 phút, tự động tải log
.\push_with_timeout.ps1 -TimeoutMinutes 30
# Sau đó xem log
Get-Content ".\logs\part1_log\session_log.txt" | more
Ví dụ 6: Kiểm Tra Nhanh và Tải Log
# Kiểm tra trạng thái nhanh
.\quick_check.ps1
# Nếu kernel đã xong, log sẽ tự động được tải về
# Xem log
code ".\logs\part1_log\session_log.txt"
Ví dụ 7: Chạy MODE MINIMAL với Đánh Giá Thông Minh
# Chạy tuần tự với MODE MINIMAL (~7-14 phút) + Đánh giá submission
.\run_minimal_sequential.ps1
# Script sẽ tự động:
# - Push Part 1 (MODE MINIMAL) → Đợi xong → Tải output
# - Push Part 2 → Đợi xong → Tải models
# - Push Part 3 → Đợi xong → Tải submission
# - Đánh giá submission (TDE %, so sánh với best previous)
# - Hiển thị evaluation và recommendation
# - Hỏi bạn xác nhận: [Y] Submit, [N] Skip, [Enter] Dùng recommendation
# - Chỉ submit nếu bạn đồng ý
# - Tự động lấy kết quả và thứ hạng sau khi submit
Ví dụ 8: Kiểm Tra Log Cả 3 Parts
# Kiểm tra log và status của cả 3 parts
.\check_all_logs.ps1
Ví dụ 9: Tự Động Nộp Submission
# Đợi Part 3 xong và tự động nộp
.\submit_to_competition.ps1
# Hoặc nộp đơn giản (nếu Part 3 đã xong)
.\create_and_submit.ps1
Ví dụ 10: Tạo Submission Từ Local
# Cách 1: Dùng Python script trực tiếp
python create_submission_local.py
# Cách 2: Dùng PowerShell script (tự động nộp)
.\create_submission_from_local.ps1
# Cách 3: Dùng script đơn giản (ưu tiên OOF)
python create_submission_simple.py
# Sau đó nộp thủ công (nếu cần)
kaggle competitions submit -c mallorn-astronomical-classification-challenge -f submission.csv -m "XGBoost 3 folds, F1=0.5857"
Ví dụ 11: Kiểm Tra và Commit Part 2
# Kiểm tra Part 2 output và hướng dẫn commit
.\check_and_commit_part2.ps1
# Hoặc push lại Part 2 và đợi commit
.\push_part2_commit.ps1
# Monitor Part 2 và tự động tải models
.\monitor_part2.ps1
Ví dụ 12: Quản Lý Pipeline Toàn Diện
# Quản lý toàn bộ pipeline với logging chi tiết
.\manage_pipeline.ps1
# Xem log
Get-Content "logs\pipeline_manager.log"
Ví dụ 13: Kiểm Tra Output Commit
# Đợi và kiểm tra xem output có được commit tự động không
.\wait_and_check_output.ps1
# Hoặc thử commit tự động (thường không thành công)
.\auto_commit_output.ps1
📥 TÓM TẮT NHANH: Script Download Logs
Script Đơn Giản Nhất
.\get_part1_log.ps1 # Tải log về ./logs/part1_log, xóa data cũ
Script Có Monitor
.\auto_monitor.ps1 -TimeoutMinutes 20 # Monitor 20 phút, tự động tải log
Script Chi Tiết
.\get_log_now.ps1 # Tải log với chi tiết, hiển thị last 100 lines
Lệnh API Thủ Công
kaggle kernels output vcngh123/mallorn-part-1-data-preprocessing-gpu -p "./logs/part1_log" --force
Folder Output Mặc Định
- Folder cố định:
./logs/part1_log/(tự động xóa data cũ) - File log chính:
./logs/part1_log/session_log.txt - Output files:
train_tabular_features.parquet,test_tabular_features.parquet, etc.
📞 HỖ TRỢ
Nếu gặp vấn đề, kiểm tra:
- Log files trong thư mục
logs/part1_log/ - Trạng thái kernel trên Kaggle website
- Session log:
logs/part1_log/session_log.txt - Sử dụng
.\get_part1_log.ps1để tải log mới nhất
Chúc bạn thành công với pipeline Mallorn! 🚀