Community이미지github.com

FrankS-IntelLab/agentic-kaggle-skill

Kaggle 우선의 엔드투엔드 대회 워크플로우로, 점수 기반 제출을 지원합니다. Codex가 Kaggle 또는 경쟁형 ML 워크플로우를 실행해야 할 때 사용합니다. 코드 대회, 검증, 메트릭, 정책 안전 공개 노트북/토론 인텔, 테이블/텍스트/이미지 모델링, 튜닝, 앙상블/스태킹, 사전 예방적 다중 노트북 아키텍처, 모델을 훈련하고 비공개 Kaggle 아티팩트 데이터셋을 내보내는 프로듀서 노트북, 다운스트림 컨슈머 노트북, Kaggle GPU 오프로드, kagglehub 접근 등을 포함합니다.

agentic-kaggle-skill란 무엇인가요?

이 스킬은 에이전트가 Kaggle 대회에서 점수 기반 제출을 수행하기 위한 종합적인 워크플로우를 제공합니다. 주요 목표는 검증 문제를 모델링 문제보다 우선시하여, 메트릭과 교차 검증(CV)을 기반으로 한 신뢰할 수 있는 베이스라인을 구축한 후, 다양한 모델군, 앙상블, 그리고 여러 Kaggle 노트북 간의 파이프라인을 사용하여 점진적으로 아키텍처를 강화하는 것입니다. 코드 대회를 지원하며, 최종 노트북이 숨겨진 데이터에 대해 재실행될 수 있도록 설계하고, 프로듀서 노트북에서 사전 훈련된 모델과 중간 아티팩트를 비공개 Kaggle 데이터셋으로 내보내고, 컨슈머 노트북에서 이를 로드하여 최종 점수 기반 제출물을 생성하는 다중 노트북 아키텍처를 장려합니다. 또한, GPU 오프로드, kagglehub를 통한 데이터 접근, 그리고 디버깅 및 하이브리드 작업(예: 로컬 실험과 Kaggle 제출 혼합)을 위한 명령들을 지원합니다. 이 스킬은 Kaggle 특화 작업에 최적화되어 있으며, 다른 AI 에이전트 도구와 함께 사용될 수 있습니다.

지원 대상~Claude Code✓Codex CLI~Cursor✓Antigravity
npx skills add FrankS-IntelLab/agentic-kaggle-skill

Installed? Explore more 이미지 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Agentic Kaggle Skill

운영 루프

모든 대회를 먼저 검증 문제로, 그 다음에 모델링 문제로 취급합니다. 기본 대상 플랫폼은 Kaggle이므로, Kaggle 네이티브 노트북/스크립트, 데이터셋, 모델 아티팩트, 대회 제출물 및 점수 결과를 선호합니다. 코드 대회의 경우, 대회 문서에서 달리 증명하지 않는 한 최종 노트북/커널이 숨겨진 데이터에 대해 Kaggle에 의해 재실행된다고 가정합니다.

  1. 대회 페이지를 읽고, 제출 모드를 클래식 파일 제출 또는 코드/노트북 채점으로 분류한 다음, 규칙, 데이터 사용 약관, 공유 정책, 데이터 사전, 메트릭, 제출 형식, 훈련/테스트 구성 힌트 및 누출 경고를 검사합니다.
  2. 실시간 대회 인텔리전스 도구를 사용할 수 있는 경우, 주요 아키텍처 결정을 내리기 전에 상위 공개 오픈 노트북 솔루션 및 관련 토론 활동을 검사합니다. 이를 권위가 아닌 단서로 취급합니다.
  3. 작업 유형을 식별합니다: 이진, 다중 클래스, 다중 레이블, 회귀, 순위, 이미지, 세그멘테이션, 텍스트, 시계열, 그룹화된 엔티티 또는 하이브리드.
  4. 특성 엔지니어링 또는 모델링 전에 폴드를 설계합니다. 모든 실험이 동일한 비교 표면을 사용하도록 훈련 데이터에 저장된 폴드 열을 선호합니다.
  5. 가장 간단한 메트릭-정확한 베이스라인을 구축하고, 폴드 외부(OOF) 예측과 유효한 제출물을 생성합니다.
  6. 베이스라인이 신뢰할 수 있게 되면 더 강력한 아키텍처를 사전에 계획합니다: 다양한 모델군, 특성/임베딩 생성기, 증강/의사 레이블/증류 단계, 보정/후처리, 앙상블 또는 스태커.
  7. 검증 게이트를 통해 반복합니다: 가능하면 한 번에 하나의 의미 있는 변경을 테스트하지만, 서로 다른 아티팩트를 생성하여 OOF 점수 또는 앙상블 다양성으로 비교할 수 있는 경우 여러 독립적인 프로듀서 노트북을 병렬로 실행합니다.
  8. 로컬 컴퓨팅이 OOM이 발생하거나 너무 오래 걸릴 수 있는 경우, 무거운 훈련, 추론, 임베딩 생성, 이미지/텍스트 실험 또는 메모리 위험 작업을 Kaggle 노트북/스크립트로 오프로드합니다.
  9. 정교한 아키텍처의 경우, 작업을 소규모 Kaggle 파이프라인으로 분할합니다: 먼저 여러 독립적인 프로듀서 노트북/스크립트를 실행하고, 각 유용한 프로듀서 출력을 비공개 Kaggle 데이터셋으로 저장한 다음, 이러한 데이터셋을 첨부하고 최종 OOF/테스트/제출 출력을 생성하는 하나의 컨슈머 노트북/스크립트를 실행합니다. 프로듀서가 모델을 훈련하는 경우, 해당 체크포인트, 토크나이저/구성, 폴드 메타데이터, OOF/테스트 예측 및 매니페스트를 Kaggle 데이터셋으로 내보내야 합니다. 다운스트림 노트북은 /kaggle/input/...에서 모델을 로드합니다.
  10. 최종 제출물 생성 아티팩트를 채점을 위해 Kaggle에 제출하고 결과 제출 상태/점수를 검색합니다.
  11. Kaggle이 코드 대회 오류 또는 모호한 채점 실패를 반환하는 경우, 디버깅 루프에 진입합니다: 사용 가능한 로그를 검색하고, 가능한 실패 모드를 분류하고, 방어적으로 패치하고, 최종 커널을 재실행하고, 재제출하며, 점수가 매겨지거나 구체적으로 차단될 때까지 반복합니다.
  12. 모든 실행에 대해 로컬 CV, 원격 Kaggle 실행 상태, Kaggle 제출 점수, 공개 LB, 비공개 위험 노트, 시드, 코드 버전, 데이터 버전 및 아티팩트 경로를 추적합니다.
  13. 폴드 내 누출 없이 생성된 OOF 예측으로만 앙상블합니다.

리소스 맵

  • 스킬 뒤에 있는 중립적 워크플로 맵을 보려면 references/method-map.md를 읽으세요.
  • 활성 팀 또는 작업 공간 외부에 대회 코드, 노트북, 데이터셋, 모델, 아티팩트 또는 보고서를 게시하기 전에 references/information-sharing-policy.md를 읽으세요.
  • Kaggle 대회 슬러그, URL, 제목, 공개 리더보드 컨텍스트, 오픈 솔루션 또는 토론 활동이 접근 방식에 정보를 제공할 수 있는 경우 references/competition-intel.md를 읽으세요.
  • 폴드, 메트릭, 임계값 또는 누출 검사를 선택할 때 references/cross-validation-and-metrics.md를 읽으세요.
  • 범주형 변수, 특성 엔지니어링, 선택 및 하이퍼파라미터 튜닝에 대해서는 references/tabular-workflow.md를 읽으세요.
  • 이미지, 세그멘테이션 및 NLP 대회 접근 방식에 대해서는 references/image-text-workflow.md를 읽으세요.
  • 대상이 Kaggle 코드 대회, 숨겨진 재실행, 최종 노트북 채점 흐름 또는 프로듀서와 컨슈머 노트북 간의 모델 아티팩트 핸드오프인 경우 references/kaggle-code-competition-pipeline.md를 읽으세요.
  • 더 강력한 솔루션이 여러 모델군, 단계적 특성/임베딩/모델 프로듀서, 의사 레이블링, 증류, 후처리, 블렌딩, 스태킹 또는 병렬 Kaggle GPU 노트북을 필요로 할 수 있는 경우 references/advanced-notebook-architecture.md를 읽으세요.
  • 로컬 실행이 무겁거나, GPU가 유용하거나, Kaggle 데이터 접근이 필요하거나, 원격 노트북 결과를 수집해야 하는 경우 references/kaggle-offload.md를 읽으세요.
  • 여러 Kaggle 노트북, 중간 데이터셋, 노트북 출력 소스 또는 kagglehub를 사용하는 경우 references/kaggle-pipeline-datasets.md를 읽으세요.
  • 작업을 중단하기 전에 references/submission-endgame.md를 읽으세요. 이 스킬은 Kaggle 채점이 시도되고 결과가 수집되었거나 구체적인 차단기가 문서화될 때까지 완료되지 않습니다.
  • Kaggle 코드 대회 제출이 실패하거나, 시간 초과되거나, OOM이 발생하거나, 점수가 생성되지 않거나, 모호한 숨겨진 실행/채점 오류를 보고하는 경우 references/code-competition-debugging.md를 읽으세요.
  • 프로젝트 레이아웃, OOF 아티팩트, 스태킹, 블렌딩 및 재현성을 위해 references/ensembling-and-reproducibility.md를 읽으세요.
  • 사용자가 이 저장소의 과거 사례 연구, Hermes 시대 패턴 또는 구체적인 대회 교훈을 요청하는 경우에만 references/research/ 또는 examples/를 읽으세요.
  • 대회 작업 공간을 만들려면 scripts/scaffold_competition.py를 실행하세요.
  • 훈련 CSV에 폴드 열을 추가하려면 scripts/make_folds.py를 실행하세요.
  • 메타데이터와 검색 가능한 실험 로그가 있는 Kaggle 커널 폴더를 만들려면 scripts/prepare_kaggle_kernel.py를 실행하세요.
  • 버전이 지정된 중간 아티팩트 데이터셋에 대한 메타데이터와 명령을 만들려면 scripts/prepare_kaggle_dataset.py를 실행하세요.

기본 Kaggle 절차

메트릭과 검증으로 시작하세요:

  • 클리핑, 변환, 평균화 모드, 임계값 및 샘플 가중치를 포함하여 로컬에서 대회 메트릭을 재현하세요.
  • 팀 외부에 공유하기 전에 대회에서 공개 코드, 외부 데이터, 사전 훈련된 가중치, 생성된 아티팩트 및 공개 저장소를 허용하는지 확인하세요.
  • 초기에 Kaggle 제출 경로를 분류하세요. 코드 대회 또는 노트북 채점 워크플로우인 경우, 처음부터 최종 컨슈머 노트북을 채점 아티팩트로 설계하세요.
  • 사용 가능한 경우 kaggle-competition-intel MCP 도구를 사용하세요: 점수 순위 및 최신 높은 투표 노트북에 대한 top_open_solutions, 비용이 많이 드는 베이스라인을 선택하기 전에 가장 많이 투표된 최근 활성 토론 주제에 대한 competition_discussions.
  • 숨겨진 테스트 분포와 일치하도록 폴드를 선택하세요. 분류에는 층화, 회귀에는 구간별 층화, 반복 엔티티에는 그룹 분할, 시간적 데이터에는 시간 인식 분할, 레이블 공동 발생이 중요한 경우 다중 레이블 인식 분할을 사용하세요.
  • 모든 모델에 대해 OOF 예측을 저장하세요. OOF 파일은 오류 분석, 임계값 튜닝, 블렌딩 및 스태킹의 통화입니다.
  • 최상의 폴드만이 아닌 평균 폴드 점수와 폴드 분산을 비교하세요.
  • CV와 일치하지 않는 공개 LB 점프를 모델링 승리로 취급하기 전에 검증 문제로 취급하세요.

그런 다음 다음 순서로 베이스라인을 구축하세요:

  1. 채점 및 제출 형식을 확인하기 위한 메트릭 전용 또는 상수 베이스라인.
  2. 빠른 고전적 베이스라인: 테이블형에는 LightGBM/CatBoost/XGBoost, 텍스트에는 TF-IDF + 선형 모델, 이미지에는 사전 훈련된 백본.
  3. 안정적인 폴드, 깨끗한 아티팩트 및 OOF 예측이 있는 강력한 베이스라인.
  4. 실행 로그와 하나의 기본 메트릭이 있는 특성/모델 실험.
  5. 여러 다양하고 개별적으로 검증된 모델이 존재한 후 앙상블링 또는 스태킹.

대회가 이를 정당화할 때 사용자가 명시적으로 정교함을 요청할 때까지 기다리지 마십시오. 안정적인 베이스라인 이후, 공개 솔루션, 토론 인텔, 데이터 모달리티, 메트릭 압력 또는 CV 정체가 단일 노트북/모델이 성능이 낮을 것임을 시사하는 경우 더 강력한 단계적 아키텍처를 제안하고 실행하세요. OOF 증거, 아티팩트 매니페스트 및 최종 Kaggle 채점에 의해 아키텍처가 게이트되도록 유지하세요.

실행이 로컬 RAM/VRAM을 초과할 가능성이 있거나, GPU/TPU가 필요하거나, Kaggle 전용 데이터 마운트가 필요한 경우, 로컬에서 강제로 실행하는 대신 Kaggle 커널 실행을 준비하세요. 원격 실행은 experiment_log.json, metrics.jsonl 및 아티팩트 매니페스트를 내보내 kaggle kernels output 후 결과를 검색하고 해석할 수 있도록 해야 합니다.

솔루션에 여러 무거운 단계가 있는 경우, 원격 그래프를 얕고 검사 가능하게 유지하세요:

  • 웨이브당 5개 미만의 독립적인 프로듀서 노트북/스크립트를 사용하세요.
  • 각 프로듀서에게 특성 생성, 임베딩 추출, 폴드 훈련, 체크포인트 훈련, 모델 증류 또는 추론과 같은 단일 책임을 부여하세요.
  • 코드 대회의 경우, 모델/체크포인트를 훈련하고 비공개 Kaggle 데이터셋으로 내보내는 프로듀서 노트북을 선호하세요. 최종 컨슈머는 이러한 데이터셋을 첨부하고, /kaggle/input/...에서 모델을 로드하며, 숨겨진 테스트에 안전한 추론을 수행해야 합니다.
  • 프로듀서 노트북 출력을 내구성 있는 재사용 및 다운스트림 노트북에 대한 안정적인 입력을 위해 버전이 지정된 비공개 Kaggle 데이터셋으로 저장하세요. 내구성/버전 관리가 필요하지 않은 수명이 짧은 체인에만 직접 kernel_sources를 사용하세요.
  • 생성된 데이터셋을 첨부하고, 해당 아티팩트를 읽고, 최종 OOF, 테스트 예측, 블렌드/스택 보고서 및 제출물을 작성한 다음, 해당 최종 아티팩트/커널을 채점을 위해 Kaggle에 제출하는 하나의 최종 컨슈머 노트북/스크립트를 실행하세요.
  • 데이터셋, 대회 파일, 노트북 출력을 다운로드하거나 프로그래밍 방식으로 데이터셋 버전을 업로드하는 것이 더 편리한 경우 Python 내에서 kagglehub를 사용하세요.

완료 정의

계획, 스캐폴드, 훈련된 모델, 노트북 실행, 다운로드된 출력 또는 로컬 검증 점수에서 멈추지 마십시오. 다음 중 하나가 참이 될 때까지 계속하세요:

  • 대회 제출물이 Kaggle로 전송되었고, Kaggle이 이를 처리했으며, 공개 점수 또는 제출 상태가 검색되어 기록되었습니다.
  • 코드 대회 최종 노트북/커널이 필요한 모든 프로듀서 아티팩트를 소비했고, 해당 커널/버전 참조와 함께 제출되었으며, 결과 제출 상태/점수가 검색되어 기록되었습니다.
  • 구체적인 외부 차단기가 채점을 방해합니다: 누락된 Kaggle 자격 증명, 규칙 미수락, 재시도 후 할당량 소진, 대회 종료, 채점 비활성화, 필요한 수동 UI 전용 작업, 사용할 수 없는 커널 버전 또는 Kaggle 서비스 장애. 정확한 차단기와 필요한 다음 명령/작업을 기록하세요.

검증 선택

이 빠른 매핑을 사용하세요:

  • 균형 잡힌 분류: StratifiedKFold.
  • 불균형 분류: 층화 폴드 + 메트릭 민감 임계값 또는 클래스 가중치.
  • 회귀: 일반 대상에는 KFold, 왜곡되거나 다중 모드 대상에는 구간별 층화 폴드.
  • 동일한 사용자, 환자, 제품, 세션, 문서 또는 이미지 소스가 여러 번 나타납니다: GroupKFold 또는 층화 그룹 분할.
  • 정렬된 이벤트 또는 예측: 시간 분할, 확장 윈도우 검증 또는 대회별 기간 분할.
  • 동일한 주제 또는 장면의 이미지: 증강 전에 주제 또는 장면별로 그룹화.
  • 중복된 소스, 작성자, 질문, 제품 또는 프롬프트가 있는 텍스트: 소스 키별로 그룹화.
  • 매우 작은 데이터: 반복 폴드 또는 더 많은 폴드, 하지만 최종 모델 선택 규율을 엄격하게 유지하세요.

모델링 우선 순위

  • 테이블형 대회의 경우, 데이터가 대부분 희소 텍스트 또는 고카디널리티 범주형 상호 작용이 아닌 한 트리 부스팅을 먼저 선호하세요. 범주형 열이 핵심인 경우 CatBoost를 추가하세요.
  • 선형 모델 및 신경망의 경우, 숫자 특성을 스케일링하고 범주형 변수를 신중하게 인코딩하세요.
  • 트리 모델의 경우, 레이블/카운트/빈도 인코딩과 합리적인 결측값으로 시작하세요. 스케일링은 일반적으로 필요하지 않습니다.
  • 대상 인코딩의 경우, 항상 폴드 외부에서, 평활화 및 검증 행 대상 가시성 없이 인코딩을 계산하세요.
  • 이미지 작업의 경우, 아키텍처를 변경하기 전에 데이터셋, 변환, 레이블, 마스크 및 메트릭을 올바르게 설정하세요.
  • 텍스트 작업의 경우, 트랜스포머를 사용하더라도 TF-IDF 베이스라인을 유지하세요. 빠르고 해석 가능하며 종종 잘 블렌딩됩니다.
  • 하이퍼파라미터 검색의 경우, 폴드와 베이스라인이 신뢰할 수 있게 된 후에만 튜닝하세요. 조기 중단으로 학습률, 깊이/잎, 정규화, 샘플링 및 추정기 수를 검색하세요.

대회 위생

  • 원시 데이터를 읽기 전용으로 유지하세요.
  • 대회 데이터, 비공개 데이터셋, 모델 체크포인트, 다운로드된 출력, 제출물, 자격 증명 및 데이터 파생 아티팩트를 대회 규칙 및 아티팩트 라이선스가 명시적으로 공개 재배포를 허용하지 않는 한 공개 Git 저장소에 보관하지 마세요.
  • 모든 실험 변경 값을 구성 또는 명령줄 인수에 넣으세요.
  • 가능할 때 Python, NumPy, 프레임워크 및 모델 라이브러리에 시드를 지정하세요.
  • 실행 ID와 함께 모델 파일, OOF 예측, 테스트 예측, 폴드 점수, 특성 목록 및 제출 파일을 저장하세요.
  • Kaggle 오프로드 작업의 경우, 노트북 작업 디렉토리에 실행 ID, git 커밋, 구성, 폴드, 메트릭, 하드웨어, 경과 시간, OOM 노트 및 출력 파일 경로를 포함하여 검색 가능한 로그와 아티팩트를 작성하세요.
  • 다중 노트북 파이프라인의 경우, 프로듀서 커널 참조, 생성된 데이터셋 참조, 데이터셋 버전, 아티팩트 스키마, 메트릭 및 최종 컨슈머 실행 ID가 포함된 파이프라인 매니페스트를 유지하세요.
  • 프로듀서 데이터셋, 커널 및 모델 아티팩트를 기본적으로 비공개로 유지하세요. 대상 대회 규칙, 데이터 라이선스, 타사 IP 및 사용자 의도를 확인한 후에만 공개하세요.
  • 제출 메시지, 제출 명령 또는 커널/버전, Kaggle 제출 타임스탬프, 상태, 사용 가능한 경우 공개 점수 및 Kaggle에서 반환된 모든 오류를 기록하세요.
  • 모호한 코드 대회 실패의 경우, 관찰된 상태, 사용 가능한 로그, 의심되는 실패 클래스, 시도된 패치 및 다음 재시도 명령을 기록하세요.
  • 샘플 내 기본 예측에 대해 스태커를 훈련하지 마세요.
  • 폴드 경계 외부의 검증 대상을 사용하여 특성, 대상 인코더, 스케일러, 임계값 또는 증강을 선택하지 마세요.
  • 반복 가능한 훈련에는 스크립트를, 탐색 및 플롯에는 노트북을 선호하세요.

유용한 명령

# 대회 작업 공간 스캐폴드
python scripts/scaffold_competition.py --competition <competition-slug> --workspace <path>

# 훈련 CSV에 폴드 추가
python scripts/make_folds.py --input train.csv --output train_with_folds.csv --folds 5 --type stratified

# Kaggle 커널 준비
python scripts/prepare_kaggle_kernel.py --competition <slug> --script train.py --kernel-name my-kernel

# Kaggle 데이터셋 준비
python scripts/prepare_kaggle_dataset.py --source-dir ./artifacts --dataset-name my-dataset

# 커널 실행 및 출력 가져오기
kaggle kernels push -k <kernel-folder>
kaggle kernels output <kernel-owner>/<kernel-name> -p ./output

# 제출
kaggle competitions submit -c <competition> -f submission.csv -m "message"

# 코드 대회: 커널 제출
kaggle kernels push -k <kernel-folder>
# 또는 커널 버전 생성 후 제출
kaggle kernels versions list <kernel-owner>/<kernel-name>
kaggle kernels output <kernel-owner>/<kernel-name>/v<version> -p ./output

관련 스킬