Image-Text-to-Text
Transformers
Safetensors
English
Chinese
qwen3_5
qwen3.5
decision-model
structured-prediction
text-classification
conversational
Instructions to use PelaAI/KnowLine-9B-Gen1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use PelaAI/KnowLine-9B-Gen1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="PelaAI/KnowLine-9B-Gen1") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("PelaAI/KnowLine-9B-Gen1") model = AutoModelForMultimodalLM.from_pretrained("PelaAI/KnowLine-9B-Gen1", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use PelaAI/KnowLine-9B-Gen1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "PelaAI/KnowLine-9B-Gen1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "PelaAI/KnowLine-9B-Gen1", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/PelaAI/KnowLine-9B-Gen1
- SGLang
How to use PelaAI/KnowLine-9B-Gen1 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "PelaAI/KnowLine-9B-Gen1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "PelaAI/KnowLine-9B-Gen1", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "PelaAI/KnowLine-9B-Gen1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "PelaAI/KnowLine-9B-Gen1", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use PelaAI/KnowLine-9B-Gen1 with Docker Model Runner:
docker model run hf.co/PelaAI/KnowLine-9B-Gen1
Report full DI 0.3 results and serial consistency validation
Browse files- INFERENCE.md +6 -8
- README.md +25 -2
- README.zh.md +25 -2
- SHA256SUMS +3 -3
INFERENCE.md
CHANGED
|
@@ -22,7 +22,7 @@ The included front end consists of:
|
|
| 22 |
- `knowline_layout.py`: prompt layout and read-twice logic;
|
| 23 |
- `serve_knowline.sh`: SGLang launch helper.
|
| 24 |
|
| 25 |
-
The earlier internal candidate evaluation used FP8-at-load SGLang. The release launcher uses bf16 SGLang 0.5.21 with Qwen3.5's chat template, thinking disabled, 16 scoring workers, and read-twice enabled for short text-only requests.
|
| 26 |
|
| 27 |
## Read twice
|
| 28 |
|
|
@@ -62,15 +62,13 @@ python knowline_server.py \
|
|
| 62 |
|
| 63 |
## Decision Index result
|
| 64 |
|
| 65 |
-
The
|
| 66 |
|
| 67 |
-
-
|
| 68 |
-
- anchored S: 60.10;
|
| 69 |
-
- O noproc: 43.80;
|
| 70 |
-
- predicted board Full: 59.55;
|
| 71 |
-
- NDT5 headline: 62.4.
|
| 72 |
|
| 73 |
-
|
|
|
|
|
|
|
| 74 |
|
| 75 |
## Limitations
|
| 76 |
|
|
|
|
| 22 |
- `knowline_layout.py`: prompt layout and read-twice logic;
|
| 23 |
- `serve_knowline.sh`: SGLang launch helper.
|
| 24 |
|
| 25 |
+
The earlier internal candidate evaluation used FP8-at-load SGLang. The release launcher uses bf16 SGLang 0.5.21 with Qwen3.5's chat template, thinking disabled, 16 scoring workers, and read-twice enabled for short text-only requests. The full public DI run below completed on 2026-10-25 using this release package.
|
| 26 |
|
| 27 |
## Read twice
|
| 28 |
|
|
|
|
| 62 |
|
| 63 |
## Decision Index result
|
| 64 |
|
| 65 |
+
The official Decision Index 0.3 scorer reports **65.67 public index / 73.88 raw index**. All 140,620 requests were sent fresh; 140,178 are scoreable, and 442 are excluded by the official suite. Final scoreable counts: 140,178 ok, zero errors and zero unsupported; no truncation.
|
| 66 |
|
| 67 |
+
Two identical H20 servers processed 16 round-robin shards (eight per server). The initial pass had two HTTP504 transport errors, one SATA-Bench and one RouterBench request. Only those failed requests were retried, using the official runner and identical payload hashes, weights and serving. The original first-pass file and retry provenance were retained. The other 140,618 successful request responses were not changed or selected by correctness.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 68 |
|
| 69 |
+
A separate 300-request serial pass compared 477 answers with this model's own final run: 476 agreed. The only disagreement had new/old margins 0.006/0.021, both below 0.06. All disagreements therefore qualify as near-ties; agreement after excluding near-ties is 100%. Single-request H20 latency: median 96.7 ms, mean 207.7 ms, p80 261.9 ms, p95 826.7 ms. Initial parallel-run request times include queueing and should not be substituted for these serial values.
|
| 70 |
+
|
| 71 |
+
The earlier 65.68 sample index and 59.55 predicted private Full were internal candidate-selection estimates, not this full public result. Public index and private leaderboard Full are different metrics and must not be ranked against each other.
|
| 72 |
|
| 73 |
## Limitations
|
| 74 |
|
README.md
CHANGED
|
@@ -58,7 +58,7 @@ The included `knowline_server.py`, `knowline_engine.py`, and `knowline_layout.py
|
|
| 58 |
|
| 59 |
- Base model: [Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B).
|
| 60 |
- Training: one epoch of LoRA SFT, rank 32, alpha 64, language-model linear layers, bf16.
|
| 61 |
-
- Training data: the mixU Qwen3.5 decision dataset, 1,143,656
|
| 62 |
- Maximum training sequence length: 12,288 tokens.
|
| 63 |
- The final checkpoint is the 0.90 WiSE interpolation candidate selected from the 9B-U post-training variants.
|
| 64 |
- The readout temperature `T=1.18` is folded into `model.language_model.norm.weight`; see `CALIBRATION.json`.
|
|
@@ -67,7 +67,23 @@ The training data is not included in this repository. The checkpoint, tokenizer,
|
|
| 67 |
|
| 68 |
## Evaluation
|
| 69 |
|
| 70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
|
| 72 |
| candidate | Decision Index public sample | S | O noproc | predicted board Full | NDT5 headline |
|
| 73 |
|---|---:|---:|---:|---:|---:|
|
|
@@ -78,6 +94,13 @@ The predicted board Full is the internal `full_noproc + 1.0` estimate used for t
|
|
| 78 |
|
| 79 |
The mix-T pilot evaluation showed consistent gains on the six paired-convention development bundles. That result measures the data intervention, not a board-ranking claim.
|
| 80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
## Calibration
|
| 82 |
|
| 83 |
`CALIBRATION.json` records the folded readout temperature. The front end uses temperature 1 after the temperature has been folded into the norm. Do not apply the same temperature a second time.
|
|
|
|
| 58 |
|
| 59 |
- Base model: [Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B).
|
| 60 |
- Training: one epoch of LoRA SFT, rank 32, alpha 64, language-model linear layers, bf16.
|
| 61 |
+
- Training data: the mixU Qwen3.5 decision dataset, 1,143,656 rendered training rows after cleaning.
|
| 62 |
- Maximum training sequence length: 12,288 tokens.
|
| 63 |
- The final checkpoint is the 0.90 WiSE interpolation candidate selected from the 9B-U post-training variants.
|
| 64 |
- The readout temperature `T=1.18` is folded into `model.language_model.norm.weight`; see `CALIBRATION.json`.
|
|
|
|
| 67 |
|
| 68 |
## Evaluation
|
| 69 |
|
| 70 |
+
### Full public Decision Index 0.3
|
| 71 |
+
|
| 72 |
+
Measured on 2026-10-25 with the released weights and corrected bf16 front end, read twice enabled:
|
| 73 |
+
|
| 74 |
+
| Measurement | Result |
|
| 75 |
+
|---|---:|
|
| 76 |
+
| Public Decision Index | **65.67** |
|
| 77 |
+
| Public raw index | 73.88 |
|
| 78 |
+
| Requests / scoreable requests | 140,620 / 140,178 |
|
| 79 |
+
| Scoreable answers / errors / unsupported | 140,178 / 0 / 0 |
|
| 80 |
+
| Sequential latency, median / mean | 96.7 / 207.7 ms |
|
| 81 |
+
|
| 82 |
+
The full suite was sent fresh to two H20 servers with 16 client shards. Two initial HTTP 504 transport failures were retried with unchanged payloads, weights and serving; no successful answers were retried based on correctness. Official scoring excludes 442 requests. No input was truncated. A separate sequential pass of 300 requests compared 477 answers with this model's own full run: 476 agreed, and the sole disagreement was a near-tie (margins 0.006 and 0.021). These are H20 measurements, not the board's hardware or private Full score.
|
| 83 |
+
|
| 84 |
+
### Earlier internal candidate comparison
|
| 85 |
+
|
| 86 |
+
The following FP8-at-load sample/proxy measurements were used to compare 9B candidates. They are not full public runs or official private leaderboard scores.
|
| 87 |
|
| 88 |
| candidate | Decision Index public sample | S | O noproc | predicted board Full | NDT5 headline |
|
| 89 |
|---|---:|---:|---:|---:|---:|
|
|
|
|
| 94 |
|
| 95 |
The mix-T pilot evaluation showed consistent gains on the six paired-convention development bundles. That result measures the data intervention, not a board-ranking claim.
|
| 96 |
|
| 97 |
+
## Disclosures
|
| 98 |
+
|
| 99 |
+
The 1,143,656-row mix combines 873,134 or1d rows, 241,781 Kf rows absent from or1d, 16,824 additional injection-invariance rows and 11,917 paired-convention pilot rows. It includes public benchmark training splits and programmatically/teacher-generated decision examples. The build report classifies 32.1% of rows as Decision Index-style training (including 1.2% alternate-format copies); training exposure is not limited to generic instruction data.
|
| 100 |
+
|
| 101 |
+
The complete mix was screened with standard and strict decontamination against the public DI suite and the project's evaluation roots. After filtering and the documented injection-restoration rules, the mix decreased from 1,160,834 to 1,143,656 rows, including the removal of ten residual shadow-probe matches. This procedure does not imply absence of pretraining exposure in Qwen3.5. The six pilot development bundles were excluded from training. The WiSE fraction was selected using internal evaluation results.
|
| 102 |
+
|
| 103 |
+
|
| 104 |
## Calibration
|
| 105 |
|
| 106 |
`CALIBRATION.json` records the folded readout temperature. The front end uses temperature 1 after the temperature has been folded into the norm. Do not apply the same temperature a second time.
|
README.zh.md
CHANGED
|
@@ -43,7 +43,7 @@ bash serve_knowline.sh /path/to/KnowLine-9B-Gen1 0 8080
|
|
| 43 |
|
| 44 |
- 底座模型:[Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B)。
|
| 45 |
- 训练:LoRA 监督微调,一个 epoch,rank 32、alpha 64,只训练语言模型线性层,bf16。
|
| 46 |
-
- 训练数据:清洗后的 mixU Qwen3.5 决策数据,共 1,143,656 行
|
| 47 |
- 最大训练序列长度:12,288 token。
|
| 48 |
- 最终 checkpoint 是 9B-U 训练后的 WiSE 0.90 候选。
|
| 49 |
- 读出温度 `T=1.18` 已折入 `model.language_model.norm.weight`,详见 `CALIBRATION.json`。
|
|
@@ -52,7 +52,23 @@ bash serve_knowline.sh /path/to/KnowLine-9B-Gen1 0 8080
|
|
| 52 |
|
| 53 |
## 评测
|
| 54 |
|
| 55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
|
| 57 |
| 候选 | Decision Index 公开子样本 | S | O noproc | 预测榜单 Full | NDT5 headline |
|
| 58 |
|---|---:|---:|---:|---:|---:|
|
|
@@ -63,6 +79,13 @@ bash serve_knowline.sh /path/to/KnowLine-9B-Gen1 0 8080
|
|
| 63 |
|
| 64 |
mix T 试点评测在六组配对口径开发集上都显示出稳定收益。这证明的是数据干预有效,不是榜单排名声明。
|
| 65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
## 校准
|
| 67 |
|
| 68 |
`CALIBRATION.json` 记录了折入权重的读出温度。由于温度已经折入 norm,前端按温度 1 读取,不要再次重复应用同一个温度。
|
|
|
|
| 43 |
|
| 44 |
- 底座模型:[Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B)。
|
| 45 |
- 训练:LoRA 监督微调,一个 epoch,rank 32、alpha 64,只训练语言模型线性层,bf16。
|
| 46 |
+
- 训练数据:清洗后的 mixU Qwen3.5 决策数据,共 1,143,656 行渲染后的训练样本。
|
| 47 |
- 最大训练序列长度:12,288 token。
|
| 48 |
- 最终 checkpoint 是 9B-U 训练后的 WiSE 0.90 候选。
|
| 49 |
- 读出温度 `T=1.18` 已折入 `model.language_model.norm.weight`,详见 `CALIBRATION.json`。
|
|
|
|
| 52 |
|
| 53 |
## 评测
|
| 54 |
|
| 55 |
+
### 完整公开 Decision Index 0.3
|
| 56 |
+
|
| 57 |
+
2026-10-25 使用发布权重与修正后的 bf16 前端实测,开启读两遍:
|
| 58 |
+
|
| 59 |
+
| 指标 | 结果 |
|
| 60 |
+
|---|---:|
|
| 61 |
+
| 公开 Decision Index | **65.67** |
|
| 62 |
+
| 公开 raw index | 73.88 |
|
| 63 |
+
| 请求数 / 可计分请求数 | 140,620 / 140,178 |
|
| 64 |
+
| 可计分请求成功 / 错误 / 不支持 | 140,178 / 0 / 0 |
|
| 65 |
+
| 单请求串行延迟,中位数 / 均值 | 96.7 / 207.7 ms |
|
| 66 |
+
|
| 67 |
+
完整套件新跑于两张H20,16个客户端分片。首轮两条HTTP 504传输错误在不改请求、权重和推理设置的情况下重试;没有按答案正确与否重试成功请求。官方评分排除442个请求,无输入截断。另用300个请求串行复测,与本模型自己的完整运行比较477个答案:476个相同,唯一差异是近似平局(两次margin为0.006和0.021)。这些是H20测量值,不是榜单硬件延迟或私有Full分。
|
| 68 |
+
|
| 69 |
+
### 先前内部候选比较
|
| 70 |
+
|
| 71 |
+
下表是FP8-at-load的子样本及代理指标,用于比较9B候选;不是完整公开运行或官方私有榜单分。
|
| 72 |
|
| 73 |
| 候选 | Decision Index 公开子样本 | S | O noproc | 预测榜单 Full | NDT5 headline |
|
| 74 |
|---|---:|---:|---:|---:|---:|
|
|
|
|
| 79 |
|
| 80 |
mix T 试点评测在六组配对口径开发集上都显示出稳定收益。这证明的是数据干预有效,不是榜单排名声明。
|
| 81 |
|
| 82 |
+
## 训练暴露说明
|
| 83 |
+
|
| 84 |
+
1,143,656行混合由873,134行or1d、241,781行or1d未包含的Kf样本、16,824行新增注入不变性样本和11,917行配对口径试点组成。包含公开基准的训练切分,以及程序和教师生成的决策样本。构建报告按DI格式口径统计为32.1%(其中1.2%是其他格式副本);训练暴露不止通用指令数据。
|
| 85 |
+
|
| 86 |
+
整份混合对照公开DI套件和项目评测根做了standard与strict去污。执行过滤及规定的注入恢复规则后,从1,160,834行减至1,143,656行,其中包括最后删除的10行残留影子探针命中。这不代表Qwen3.5预训练没有接触过相关数据。六个试点开发集未进入训练;WiSE比例通过内部评测选择。
|
| 87 |
+
|
| 88 |
+
|
| 89 |
## 校准
|
| 90 |
|
| 91 |
`CALIBRATION.json` 记录了折入权重的读出温度。由于温度已经折入 norm,前端按温度 1 读取,不要再次重复应用同一个温度。
|
SHA256SUMS
CHANGED
|
@@ -1,9 +1,9 @@
|
|
| 1 |
93691240311786c93e1c21b53dfb9d52743cf02958709c1048fab77760aacb73 CALIBRATION.json
|
| 2 |
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 FIXED
|
| 3 |
-
|
| 4 |
50cbab8a892c5f2993b8c7351a99182507472def3b1374558308605d99b86b32 LICENSE
|
| 5 |
-
|
| 6 |
-
|
| 7 |
a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715 chat_template.jinja
|
| 8 |
d0883072e01861ed0b2d47be3c16c36a8e81c224c7ffaa310c6558fb3f932b05 config.json
|
| 9 |
2d4464e2ead06bc9bc718c781309ad1e7baded626d66e8dcdc8b469ba185faf0 configuration.json
|
|
|
|
| 1 |
93691240311786c93e1c21b53dfb9d52743cf02958709c1048fab77760aacb73 CALIBRATION.json
|
| 2 |
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 FIXED
|
| 3 |
+
39880bb24c44aea652a15eb8d1908f5ee85f0ad303a7513382382aaf5f9c9a37 INFERENCE.md
|
| 4 |
50cbab8a892c5f2993b8c7351a99182507472def3b1374558308605d99b86b32 LICENSE
|
| 5 |
+
ab25a1399625bdaa46d8cd31bf805f4a56e7a3254af7ef1f1e94a02bcf6a1a1c README.md
|
| 6 |
+
b5bd4c94126b15f6c158c75909b0361f8019e05c7d7e6c76a8d81d8b64933615 README.zh.md
|
| 7 |
a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715 chat_template.jinja
|
| 8 |
d0883072e01861ed0b2d47be3c16c36a8e81c224c7ffaa310c6558fb3f932b05 config.json
|
| 9 |
2d4464e2ead06bc9bc718c781309ad1e7baded626d66e8dcdc8b469ba185faf0 configuration.json
|