AI Competition for Monitoring Legal Violations in KONEPS Self-Procurement Bid Announcements

Algorithm | Code Submission Evaluation | Natural Language Processing | Legal Violation Monitoring

  • moneyIcon 42,000,000 KRW
  • 1,177 Users Completed
Closed

Description

본 대회의 데이터는 입찰공고 1건이 한 레코드(jsonl 한 줄)이며, 각 레코드는 공고문·첨부 문서의 정규화 텍스트와 나라장터 등록 정보(meta)로 구성됩니다.

📌 본 대회는 라벨이 부착된 학습 데이터셋을 제공하지 않습니다. 라벨링되지 않은 실제 공고 데이터에서 출발하여 학습·검증에 필요한 라벨을 참가자가 직접 설계·생성하는 것(자가 라벨링)까지가 과제의 일부이며, 자가 라벨링은 전면 허용됩니다(허용 범위는 규칙 탭 참조). 자가 라벨링 안내와 상세 데이터 명세는 토크 게시판의 [데이터 명세] 글을 참고해 주세요.


train_unlabeled.jsonl.gz [파일]

  • 무라벨 입찰공고 20,000건
  • 라벨이 제공되지 않으며, 실제 위반 공고가 섞여 있을 수 있습니다("정상"이 보증되지 않습니다)
  • 자가 라벨링을 통한 학습·검증셋 구성, 검색(RAG) 사례집, 후처리 규칙 튜닝 등에 활용


dev.jsonl.gz [파일] / dev_labels.csv [파일]

  • 라벨 예시 공고 200건과 정답 라벨(제출 형식과 동일한 49열)
  • 24개 검토 항목 전부에 대해 위반 예시(항목당 5~8건)와 정상 예시(112건), 근거 문구 예시를 포함
  • ※ dev는 항목별 판정 유형을 보여주기 위한 예시 세트입니다. 실제 평가 데이터의 구성비는 dev와 다르며 공개하지 않습니다


sample_submission.csv [파일] — 제출 양식

  • 49열 : id, v1~v24(위반 여부), e1~e24(근거 문구)
  • v1~v24 : 위반 여부를 정수 0/1로 기재 (true·"1" 등은 형식 위반). 판단이 어려운 항목도 비우지 말고 0으로 제출
  • e1~e24 : 위반으로 판정한 항목의 근거 문구 — 제공된 본문의 부분문자열 그대로(요약·수정 시 무효) · 500자 이하 · 위반이 아니면 빈칸
  • 10·11·16·18·20번 항목(부재탐지형)은 "있어야 할 기재가 없는 것"이 위반이므로 근거 문구를 항상 빈칸으로 제출
  • UTF-8(BOM 없음) · NFC 정규화 · RFC4180 quoting · 수식 접두 문자(= + @) 금지 · 행 수 = 입력 건수


data/ [폴더] — 평가 서버 data/ 디렉토리의 로컬 사본

  • test.jsonl.gz : 형식 확인용 샘플 10건 (id PPS-S-####).  평가 서버에서는 이 파일만 실제 평가 데이터(무라벨 1,853건)로 교체됩니다
  • 항목표.json : 24개 검토 항목의 정의 — 항목명 · 근거 조문(국가계약법·지방계약법 등) · 부재탐지 여부 · 비고. 24번 항목은 조문 위반이 아니라 공고서와 나라장터 등록값의 정보 불일치를 점검하는 항목입니다(근거 법령 '해당 없음')
  • 정답스키마_디코딩.json : 모델 출력을 제출 형식 JSON으로 받기 위한 제약 디코딩용 스키마
  • 법령패키지/ : 판정 근거 법령·예규·행정규칙 23건 전문(txt) + 중소벤처기업부 고시 제2025-96호(중소기업자간 경쟁제품 지정 내역) 원본·세부품명 csv
  • 채점은 이 법령패키지 스냅샷을 기준으로 하며, 대회 기간 중 법령 개정은 반영되지 않습니다. 품목 대조는 세부품명 csv를 사용하고, 원문이 이미지인 구간·제외된 대형 별표는 각 txt에 표기되어 있습니다

※ script.py가 data/의 id를 그대로 읽어 output/submission.csv로 쓰도록 구성하면 로컬과 평가 서버에서 같은 코드로 동작합니다 — id 접두·건수를 하드코딩하지 마세요.



baseline/ [폴더]

  • submit.zip 구성 예시 : script.py(데이터 로드 → 고정 모델 추론 → 제출 파일 생성) · requirements.txt
  • 해설 노트북과 법령 검색(RAG)을 붙인 변형은 코드 공유 게시판에 게시되어 있습니다
  • 모델 없이 실행 흐름만 확인하려면 script.py --mock 옵션을 사용할 수 있습니다
  • 고정 LLM·보조 임베딩 모델은 평가 서버에 준비되어 있으므로 모델 파일은 다운로드받아 제출할 필요가 없습니다 — script.py는 환경변수 경로(PPS_MODEL_DIR·PPS_EMBED_DIR)로 서버의 모델을 로드합니다(평가 탭 참조)


[레코드 형식 — train_unlabeled · dev · test 공통]

  • id : 공고 식별자. 제출 파일의 id에 그대로 옮깁니다
  • docs : 문서 배열 — doc_id · type(공고문·규격서·과업지시서·제안요청서·예외공표서) · text(NFC 정규화 텍스트, 표는 | 로 복원)
  • meta : 나라장터 등록 정보 21필드
  • dropped_doc_counts : 길이 예산 초과로 제외된 문서의 종류·개수
  • input_completeness · anon_applied · assembly_policy_version : 관측 완전성(bool 4종) · 익명화 적용 여부(전건 true) · 조립 규약 버전
  • 공고문은 항상 1건 이상 포함되며, 위반이 첨부 문서에만 나타나는 항목이 있으므로 공고문만으로 판정을 끝내지 않는 것을 권장합니다
  • dropped_doc_counts가 비어 있지 않은 공고는 일부 첨부가 제외된 상태입니다. "첨부에 없으니 위반"으로 단정하면 부재탐지형 항목 판정이 틀릴 수 있습니다


[meta 21필드와 익명화]

meta 필드 : 적용계약법 · 업무구분 · 계약방법 · 낙찰방법 · 낙찰하한율 · 배정예산금액 · 입찰추정가격 · 소관구분 · 공동도급구성방식 · 정보화사업여부 · 세부품명번호목록 · 제한지역코드목록 · 지역제한여부 · 면허업종제한목록 · 업종제한여부 · 조항호내용 · 공고게시일자 · 개찰예정일자 · 긴급공고여부 · 입찰방법 · 조달방식

  • 값이 없으면 null, 등록 자체가 안 됐으면 "미입력" — 둘 다 "해당 없음"이 아니며, 비어 있다는 사실 자체가 판정 재료인 항목이 있습니다
  • meta는 원칙적으로 본문과 정합하지만 24번 항목(정보 불일치)만 예외입니다 — 어긋남 자체가 판정 근거이므로 meta를 무조건 신뢰해서도, 무시해서도 안 됩니다
  • 본문 기재값과 meta 값이 서로 다른 경우, 적용 법령·금액 구간 판단은 공고문 기재값을 우선합니다. 본문에 기재가 없는 값은 meta를 기준으로 합니다(불일치 자체는 24번 항목의 판정 대상).
  • 기관명·담당자·연락처·주소·공고번호는 토큰으로 치환되어 있습니다. [수요기관(기초자치단체)|지역=r1]처럼 괄호 안 기관 유형은 판정에 사용할 수 있고, [지역:r1|단위=기초|광역=경기도]는 지역제한 판정용입니다(한 문서 안에서 r1·r2는 서로 다른 지역, 광역 시도명은 원문 유지)
  • 금액·수량·날짜·법령 조문·품명·규격은 치환하지 않았습니다.
  • 위 데이터는 실제 나라장터 자체입찰 공고를 기반으로 정규화·익명화한 것입니다. 익명화된 식별자를 공개 원문과 대조하여 복원하는 행위, 제공 자료 외 경로로 공고 원문·메타데이터를 수집하는 행위는 금지됩니다(규칙 탭 참조).
  • 제공되는 모든 텍스트는 NFC 정규화된 UTF-8입니다.

More Data