CHIP2026Task1 PatientPheX B leaderboard 0.7196 checkpoints
This repository provides the full-training model checkpoints used by the recorded best B submission of the PatientPheX system. It is a collection of pipeline components, not a single model loadable from the repository root.
记录中的 B 榜最佳总分为 0.7196,men / doc / mic / mac 分别为 0.7417 / 0.8089 / 0.6937 / 0.6339。成绩来自实验期间保存的榜单记录。
Best submission SHA-256:
627486a623356cf41717dc329ecbd466a0976fce0224053e15971f0d3ec2ef41
Checkpoints
| Directory | Component | Base model |
|---|---|---|
models/task1_ner |
Full-80 BIO NER | microsoft/BiomedNLP-BiomedBERT-base-uncased-abstract-fulltext |
models/reader_qwen3/{full80,full80_s2}/epoch{2,3} |
Four patient-phenotype reader adapters | Qwen/Qwen3-8B |
models/reader_qwen35/{full80,full80_s2}/epoch{2,3} |
Four patient-phenotype reader adapters | Qwen/Qwen3.5-9B |
models/task1_tagger |
Epoch-3 BIO tagger adapter and head.pt |
Qwen/Qwen3.5-9B |
models/task1_verifier |
Epoch-2 yes/no verifier adapter | Qwen/Qwen3.5-9B |
models/classifiers/m2_full80.joblib |
Candidate merge classifier | scikit-learn 1.7.2 |
models/classifiers/e68_full80.joblib |
Structural patient-HPO stacker | scikit-learn 1.7.2 |
The 11 neural checkpoints and two classifier files are copied from the original experiment. Weight bytes are unchanged. In the copied adapter configs only, base_model_name_or_path is changed from the original machine-specific path to the corresponding public Hugging Face model ID. Original and release hashes are recorded in release_manifest.json.
Download and restore original paths
Download a pinned revision using huggingface_hub.snapshot_download, then run:
python restore_paths.py --snapshot /path/to/downloaded/repository --pipeline /path/to/model_pipeline
The restore tool verifies all checksums before copying files into the relative paths expected by the competition code. It refuses to overwrite a different existing file. Existing original adapter configs are retained if they match the original hash.
The NER checkpoint can be loaded with AutoModelForTokenClassification.from_pretrained from its subdirectory. The readers and verifier require the corresponding base model plus a PEFT adapter. The tagger additionally needs its three-label linear head; the pipeline's b_a6_0928_gpu.py implements loading and inference. The Qwen3.5 vLLM path requires the packed-projection fix in reader_q35_0927_infer.py. Do not expect generic text generation to reproduce the full pipeline.
Pipeline and reproduction boundary
Task1 combines BiomedBERT NER, HPO dictionary candidates, SapBERT retrieval, gradient boosting, a Qwen3.5 BIO tagger and a yes/no verifier. It decodes non-overlapping spans at threshold 0.175. Task2 uses Qwen3 and Qwen3.5 readers over three candidate views (0.10, 0.25, 0.40), then a pair classifier and expected-F1 decoding with u=0.1.
The final S2 classifier and several intermediate classifiers are fitted by the supplied competition code from training features rather than loaded from a standalone checkpoint. The submission package provides the code, environment snapshots, and intermediate feature/prediction files for CPU reconstruction of the best output. That reconstruction was checked byte-for-byte on 2026-10-02; GPU training and sampling were not rerun in that check.
This repository excludes base model weights, training/competition text, prediction records and five-fold OOF checkpoints. To regenerate OOF features, train the folds with the supplied scripts; to reproduce the final stage, use the non-model intermediate bundle in the submission materials. GPU training and sampling are not bitwise deterministic.
The Task1 threshold was adapted with reference to B leaderboard feedback. The final setting should not be described as a one-shot blind submission.
The local SapBERT weights and vocabulary were verified on 2026-10-02 against cambridgeltl/SapBERT-from-PubMedBERT-fulltext, revision 090663c3ae57bf35ffe4d0d468a2a88d03051a4d. The weight file is byte-identical (SHA-256 a4696930afef9aab296196d3d2142216c44cba24f21b4f285ceca7af21025614); see sapbert_verification.json for the checks.
Base models
- https://huggingface.co/microsoft/BiomedNLP-BiomedBERT-base-uncased-abstract-fulltext
- https://huggingface.co/Qwen/Qwen3-8B
- https://huggingface.co/Qwen/Qwen3.5-9B
- https://huggingface.co/cambridgeltl/SapBERT-from-PubMedBERT-fulltext
Runtime dependency snapshots for the original qwen3, Qwen3.5, and AutoPCR environments are included under envs/.