HK//HACKERSHACKATHONS · KAGGLE · FOR BEGINNERS中文
HACKERS / Kaggle

Name That LLM (Kaggle): beginner guide to telling 18 language models apart

You get 2,699 labelled paragraphs and have to say which of 18 frontier models wrote each unseen one. On Oct 17 we read the 12 most-voted public notebooks and the public leaderboard. The official starter scores 0.322. The best public notebooks sit between 0.549 and 0.552, and 35 of the top 49 teams are on that plateau, so forking the top notebook buys a crowded rank, not a lead.

DEADLINE
PRIZE50,000 UsdKaggle
Official page ↗

Pipeline mind map

Built for this competition from the overview, the data page and the code of the most-voted public notebooks (Oct 17, 2026). It follows a text-attribution workflow, not the tabular pipeline.

Data & validation
  • train.csv: 2,699 passages for 150 prompts
  • Test prompts never appear in train
  • GroupKFold on prompt_id, as the starter does
  • Score CV with balanced accuracy, not accuracy
Style features (CPU)
  • Word 1–2-gram + character 3–5-gram TF-IDF
  • LogisticRegression or LinearSVC head
  • Function words, punctuation, word shape
  • Stylometric counts into LightGBM
Language-model features (GPU)
  • Frozen Qwen3-8B-Base hidden states, mean-pooled
  • Logistic or SVM head on top
  • Frozen encoders such as DeBERTa-v3-large
  • LoRA fine-tune of Qwen3-8B-Base
Test time & submission
  • Cluster test passages by topic (no labels)
  • Prompt-centering inside each cluster
  • Blend log-probabilities with OOF-fitted weights
  • submission.parquet, internet off, ≤ 9 h

Key facts

Host
Kaggle (sponsor: Google LLC) · Featured code competition ↗
Prizes
$50,000: ten equal prizes of $5,000 for places 1–10 ↗
Deadlines
Entry and team merger: Jan 6, 2027. Final submission: Jan 13, 2027, 11:59 PM UTC (the Kaggle API lists Jan 14, so plan for the earlier date on the Overview) ↗
Task
Label each 40–250-word passage with one of 18 model names from OpenAI, Google, Anthropic, Qwen, ZAI and Moonshot AI ↗
Code limits
Submit through a notebook: CPU or GPU run ≤ 9 hours, internet off, output submission.parquet. Free public external data and pre-trained models are allowed ↗
Teams & submissions
Up to 5 per team · 5 submissions per day · pick up to 2 final submissions ↗
Data licence
CC BY-SA 4.0. Winners license their solution under CC-BY 4.0 / an open-source licence ↗
Participation (Oct 17, 2026)
4,455 entrants · 1,052 participants · 1,024 teams · 3,966 submissions, three days after launch ↗

Problem breakdown

What is one row?

A self-contained answer, 40–250 words long, to a prompt about philosophy, physics, mathematics, biology, computer science or creative prose. You predict which of the 18 models wrote it.

Why it is hard

Test prompts are new, so topic words don't transfer. Many labels are siblings: five OpenAI models (three of them gpt-5.6 variants), four Gemini models and five Claude models. The 0.490 notebook adds model-family heads, and ntl v6 loads a dataset named “Qwen3-8B LoRA + Claude Head”: telling siblings apart is where scores are won.

The topic trap

In train, nearly all 18 models answer every prompt, so topic words identify the prompt, not the model. Strong notebooks cluster test passages by topic and subtract each cluster's average (“prompt-centering”), so what is left is style. This uses no labels, but it only helps when several passages from one prompt are in the test set.

Class mix is a bet

Kaggle says test passages per model are unequal and the model mix differs between the public and private leaderboards. Notebooks that push predictions toward equal class counts (Sinkhorn balancing) are betting on the mix. The 0.541 notebook hedges by mixing the observed class mass with a uniform one, half and half.

The leaderboard plateau

On Oct 17, 2026 (06:00 UTC) the top public score was 0.592. Ranks 15–32 all showed 0.552 and ranks 15–49 all fell between 0.549 and 0.552, the range of the best public notebooks. The public board uses about 40% of the test data, so these positions can reshuffle at the end.

Where the floor is

Random guessing scores about 0.056 (1 in 18) on balanced accuracy, however the classes are mixed. The official CPU starter gets 0.322 in under two minutes, which is a fair first target.

What you get (data page)

test.csv holds only a few example rows while you work. When you submit, your notebook is re-run on the hidden test set of about 4,000 passages.

train.csv
2,699 passages for 150 prompts. Columns: id, prompt_id, text, model (the label)
test.csv
id, text. Prompts in the hidden test set do not appear in train.csv
sample_submission.parquet
One row per test id with columns id and model
Labels
gpt-5.5, gpt-5.6-luna, gpt-5.6-sol, gpt-5.6-terra, gpt-6-astra · gemini-3.1-pro-preview, gemini-3.6-flash, gemini-3.7-flash, gemini-3.8-flash · claude-fable-5, claude-opus-4-6, claude-opus-4-8, claude-opus-5, claude-sonnet-5 · qwen3.8-max · glm-5.3, glm-5.3-flash · kimi-k3
Size & licence
2.14 MB in total, CC BY-SA 4.0. You must accept the rules before you can download it

Submission format (from the Overview)

id,model
a1b2c3d4e5f6,gpt-6-astra
b2c3d4e5f6a7,claude-opus-5
...

# written as submission.parquet in the notebook's working directory
# rejected if: id or model column missing, nulls, a repeated id,
# or a label outside the 18 listed

From the competition data / overview page ↗

Metric: Balanced accuracy (macro recall over 18 models)

For each of the 18 models, take the share of its test passages you labelled correctly, then average the 18 numbers. A model with few passages counts as much as one with many, so always predicting the most common model doesn't help.

Test passages per model are unequal and the model mix differs between the public and private leaderboards. The public board uses about 40% of the test data; prizes come from the other 60%. ↗

Top public score, Oct 17, 2026: 0.592 ↗

Public baselines

Public scores and runtimes as shown on each notebook's page on Oct 17, 2026; method notes come from reading each notebook's code and write-up, pulled through Kaggle's public API. We did not run them. The scores are not independent: of the 12 most-voted notebooks, 9 load Qwen3-8B-Base, 5 load the same UltraBERT-380M fold weights and 5 reuse frozen-encoder or GLM-4 artifacts published by Lucas Boesen.

Notebook▲LBWhy open it
Starter Notebook for Name That LLM Competition1370.322Official-style starter: word + character TF-IDF into LogisticRegression, 5-fold GroupKFold on prompt_id, CPU, 1 min 46 s. Fork this first.
qwen blend210.414Plain TF-IDF plus mean-pooled Qwen3-1.7B-Base layers 17 and 20, blended in log-probability space (the author's CV: 0.431). 12 minutes on GPU, so a cheap first step past the starter.
SVM Frozen Qwen270.452Frozen Qwen3-8B-Base embeddings with an SVM, plus careful notes on prompt-safe validation (best version 0.452; latest 0.429).
0.490 | Highest Public Notebook | Qwen3 Fusion520.490Early-layer Qwen3 8B/14B heads, a text-style SVM, DeBERTa and model-family heads. Inference only, with heads fitted offline (3 min 20 s).
Name That LLM v5470.519Gemma 4 12B, Qwen3 and Qwen3.5 features with small-group centering. 2 h 1 min, so watch the 9-hour limit as you add members.
0.541 | LoRA + Adaptive Centering1000.541Reproduces Lucas Boesen's version 1. Its write-up is the clearest explanation of topic clustering and prompt-centering.
LoRA x Adaptive Centering820.549The original: style models, frozen LM heads, encoders, a Qwen3-8B LoRA and token-attention heads, blended on prompt-grouped OOF predictions. Version notes show what each member added.
ntl v6210.552The plateau score. Adds a public dataset of extra API-generated passages and a Claude-specific head to the same stack.

Most-voted notebooks right now

Refreshed daily from the Kaggle API (last 2026-10-17). Not reviewed by an editor; the table above is the reviewed list.

Timeline

  1. Start date
  2. Entry deadline (accept the rules before this date) and team-merger deadline
  3. Final submission deadline, 11:59 PM UTC

Step-by-step plan

  1. Day 1: join and fork the starter

    Accept the rules (entry closes Jan 6, 2027), fork the starter notebook and submit it once. Seeing roughly 0.32 confirms that your parquet file and the 18 label strings are right.

  2. Trust your own validation

    Keep the starter's GroupKFold on prompt_id and balanced-accuracy scoring. A random split leaks prompts and will look far better than the leaderboard.

  3. Find the confusions

    Print an 18×18 confusion matrix from your out-of-fold predictions and look inside families first: the gpt-5.6 trio, the Gemini Flash versions and the Claude Opus versions are the likely mix-ups.

  4. Move to language-model features

    Attach Qwen3-8B-Base as a Kaggle Model (internet stays off), mean-pool hidden states and fit a logistic or SVM head. SVM Frozen Qwen shows this step is worth about 0.45 on the public board.

  5. Add prompt-centering carefully

    Read the 0.541 write-up, then cluster your validation fold by topic and subtract cluster means. Test it on pools with only 1–3 passages per prompt too, because you don't know how many the hidden set has.

  6. Blend, then choose two finals

    Fit blend weights on out-of-fold log-probabilities. For your 2 final picks, choose your best CV run and one that doesn't force equal class counts, since the private model mix differs from the public one.

  7. Finish

    Re-run the final notebooks end to end within 9 hours with internet off, and select them before Jan 13, 2027, 11:59 PM UTC.