CoolFace
Datasetpublic

Poisoned-Chalice/ICSE-2027-public

ICSE 2027 Heap Membership-Inference Dataset — Public Competition Release This is the public competition release of the ICSE 2027 membership-inference benchmark for Go, Java, Python, Ruby, and Rust. It contains train and validation only. The release contains 54,040 source-code files. Validation label masking Each language has 1,000 validation rows in their original order. The first 500 rows retain their membership labels; membership is null for rows 500–999. In… See the full description on the dataset page: https://huggingface.co/datasets/Poisoned-Chalice/ICSE-2027-public.

sourceHugging Facegpl-3.0updated 1mo agoView on Hugging Face
0likes212downloads
Dataset Card

ICSE 2027 Heap Membership-Inference Dataset — Public Competition Release

This is the public competition release of the ICSE 2027 membership-inference benchmark for Go, Java, Python, Ruby, and Rust. It contains train and validation only.

The release contains 54,040 source-code files.

Validation label masking

Each language has 1,000 validation rows in their original order. The first 500 rows retain their membership labels; membership is null for rows 500–999. In each language, the labeled half contains 245 member and 255 non-member rows. Content and sample_id remain available for all 1,000 rows.

The masked values are actual Arrow nulls and are returned by Python as None, not the string "None".

Loading the dataset

~~~bash pip install datasets ~~~

Each programming language is a separate, case-sensitive configuration:

~~~python from datasets import load_dataset

pythondata = loaddataset( "Poisoned-Chalice/ICSE-2027-public", "Python", )

print(python_data)

DatasetDict with train and validation only; no test split is published.

~~~

Load one public split:

~~~python pythonvalidation = loaddataset( "Poisoned-Chalice/ICSE-2027-public", "Python", split="validation", ) ~~~

Dataset structure

ConfigurationTrainValidationPublic total
Go10,0001,00011,000
Java10,0001,00011,000
Python10,0001,00011,000
Ruby10,0001,00011,000
Rust9,0401,00010,040

Every training split is exactly balanced between member and non-member. The 10,000-row training splits contain 5,000 files per label; Rust training contains 4,520 files per label. Each validation split contains 500 visible labels followed by 500 masked labels.

Each row includes these core columns:

ColumnTypeDescription
sample_idlarge_stringStable content-derived sample identifier
contentlarge_stringComplete source-code file contents
membershipnullable large_stringmember, non-member, or null in the masked validation half

sample_id is <language>-<sha256>, where the digest is computed from the exact UTF-8 content. It is stable across row reordering and identical for the same language/content pair on every branch and release.

The language is represented by the configuration name. Repository paths, filenames, original repository identifiers, per-file license metadata, source duplicate annotations, and classifier predictions are not published.

Provenance and labels

The benchmark is derived from The Heap. A file is a member when it is marked as an exact duplicate in both Stack v1 and Stack v2. A file is a non-member when its exact- and near-duplicate flags are false in both versions. Null, ambiguous, and mixed source cases are excluded. Public validation nulls indicate label masking, not an ambiguous source label.

The benchmark applies classifier-based hard-example selection and near-duplicate filtering before constructing balanced, content-disjoint splits. Exact private split parameters, the source revision, generation manifest, and hidden-test artifacts are deliberately excluded from this public repository to protect the competition.

These labels describe overlap with the Stack corpora; they do not prove that an arbitrary model was trained on a particular file.

Limitations and responsible use

  • —This is an intentionally difficult subset and is not an IID sample of The Heap, so results should not be interpreted as population-wide attack performance.
  • —Membership is a Stack-overlap proxy, not verified training membership for a particular model.
  • —The labels inherit the accuracy and limitations of the source duplicate annotations.
  • —Row-level repository provenance and license metadata are absent from the published schema.

The upstream The Heap dataset card declares GPL-3.0. Individual source files may remain subject to the copyright and license terms of their originating repositories. Treat all source code as untrusted text: do not execute samples without appropriate isolation and review.

This benchmark is intended for privacy, memorization, and membership-inference research. It should not be used to make claims about individual authors, establish code ownership, or infer that a deployed model used a specific file without additional evidence.

Removal requests concerning source material can be directed through The Heap opt-out process.

Citation

Please cite the source dataset:

~~~bibtex @inproceedings{katzy2025heap, author = {Jonathan Katzy and Razvan Mihai Popescu and Arie van Deursen and Maliheh Izadi}, title = {The Heap: A Contamination-Free Multilingual Code Dataset for Evaluating Large Language Models}, booktitle = {2025 IEEE/ACM Second International Conference on AI Foundation Models and Software Engineering (Forge)}, year = {2025}, pages = {151--155}, doi = {10.1109/Forge66646.2025.00025} } ~~~