Text Generation
Transformers
Safetensors
English
Russian
qwen3_5_moe
image-text-to-text
fp8
35b-a3b
mixture-of-experts
Mixture of Experts
agent
search-agent
agentic-search
search
information-retrieval
retrieval
tool-use
function-calling
rag
conversational
Instructions to use t-tech/T-Search-FP8 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use t-tech/T-Search-FP8 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="t-tech/T-Search-FP8") 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)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("t-tech/T-Search-FP8") model = AutoModelForMultimodalLM.from_pretrained("t-tech/T-Search-FP8") 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=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use t-tech/T-Search-FP8 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "t-tech/T-Search-FP8" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "t-tech/T-Search-FP8", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/t-tech/T-Search-FP8
- SGLang
How to use t-tech/T-Search-FP8 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 "t-tech/T-Search-FP8" \ --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": "t-tech/T-Search-FP8", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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 "t-tech/T-Search-FP8" \ --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": "t-tech/T-Search-FP8", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use t-tech/T-Search-FP8 with Docker Model Runner:
docker model run hf.co/t-tech/T-Search-FP8
Add T-Search-FP8 model
Browse filesCo-authored-by: alexm <alexm@users.noreply.huggingface.co>
- .gitattributes +39 -0
- README.md +183 -0
- assets/t-search-benchmarks.png +3 -0
- assets/t-search-benchmarks.svg +784 -0
- assets/t-search-latency-quality.png +3 -0
- assets/t-search-latency-quality.svg +2007 -0
- assets/t-search-rl-training.png +3 -0
- assets/t-search-rl-training.svg +1743 -0
- chat_template.jinja +154 -0
- config.json +418 -0
- generation_config.json +13 -0
- model-mtp.safetensors +3 -0
- model.safetensors-00001-of-00014.safetensors +3 -0
- model.safetensors-00002-of-00014.safetensors +3 -0
- model.safetensors-00003-of-00014.safetensors +3 -0
- model.safetensors-00004-of-00014.safetensors +3 -0
- model.safetensors-00005-of-00014.safetensors +3 -0
- model.safetensors-00006-of-00014.safetensors +3 -0
- model.safetensors-00007-of-00014.safetensors +3 -0
- model.safetensors-00008-of-00014.safetensors +3 -0
- model.safetensors-00009-of-00014.safetensors +3 -0
- model.safetensors-00010-of-00014.safetensors +3 -0
- model.safetensors-00011-of-00014.safetensors +3 -0
- model.safetensors-00012-of-00014.safetensors +3 -0
- model.safetensors-00013-of-00014.safetensors +3 -0
- model.safetensors-00014-of-00014.safetensors +3 -0
- model.safetensors.index.json +0 -0
- preprocessor_config.json +26 -0
- tokenizer.json +3 -0
- tokenizer_config.json +33 -0
.gitattributes
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
assets/t-search-benchmarks.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
assets/t-search-latency-quality.png filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
assets/t-search-rl-training.png filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
language:
|
| 4 |
+
- en
|
| 5 |
+
- ru
|
| 6 |
+
pipeline_tag: text-generation
|
| 7 |
+
library_name: transformers
|
| 8 |
+
tags:
|
| 9 |
+
- fp8
|
| 10 |
+
- 35b-a3b
|
| 11 |
+
- mixture-of-experts
|
| 12 |
+
- moe
|
| 13 |
+
- agent
|
| 14 |
+
- search-agent
|
| 15 |
+
- agentic-search
|
| 16 |
+
- search
|
| 17 |
+
- information-retrieval
|
| 18 |
+
- retrieval
|
| 19 |
+
- tool-use
|
| 20 |
+
- function-calling
|
| 21 |
+
- rag
|
| 22 |
+
base_model:
|
| 23 |
+
- t-tech/T-Search
|
| 24 |
+
base_model_relation: quantized
|
| 25 |
+
---
|
| 26 |
+
|
| 27 |
+
# T-Search-FP8
|
| 28 |
+
|
| 29 |
+
**🚨 T-Search-FP8 is designed for use with the [official T-Search harness](https://github.com/turbo-llm/t-search-harness). The source T-Search checkpoint did not show noticeable differences relative to the Qwen3.6-35B-A3B base model on general-purpose benchmarks.**
|
| 30 |
+
|
| 31 |
+
**🚨 Users are advised to exercise caution and are responsible for any additional training and oversight required to ensure the model's responses meet acceptable ethical and safety standards. The responsibility for incorporating this model into industrial or commercial solutions lies entirely with those who choose to deploy it.**
|
| 32 |
+
|
| 33 |
+
## **Highlights**
|
| 34 |
+
|
| 35 |
+
We introduce **T-Search-FP8**, an agentic retriever built for difficult multi-step search in English and Russian. It plans and executes searches across multiple rounds with a configurable search budget.
|
| 36 |
+
|
| 37 |
+
- **FP8 checkpoint:** block-wise quantization for lower-precision deployment.
|
| 38 |
+
- **Agentic retrieval:** issues queries, inspects results, tracks coverage, carries compact evidence and search state across rounds, and returns a ranked chunk set.
|
| 39 |
+
- **Retrieval quality:** outperforms the base model and larger open models on average across the evaluated retrieval benchmarks.
|
| 40 |
+
- **Retriever robustness:** trained and evaluated with multiple retrievers, maintaining strong retrieval quality across configurations.
|
| 41 |
+
|
| 42 |
+

|
| 43 |
+
|
| 44 |
+
## Description
|
| 45 |
+
|
| 46 |
+
T-Search-FP8 is built on **Qwen3.6-35B-A3B** and trained on fully synthetic search tasks generated for the same harness used at inference time.
|
| 47 |
+
|
| 48 |
+
The model is responsible for collecting evidence. Given a question and access to a corpus search backend, it formulates queries, reads retrieved snippets, decides which chunks are worth preserving, and returns a ranked evidence set. A downstream generator, reranker, or full-text fetcher can then consume that ranking.
|
| 49 |
+
|
| 50 |
+
## ⛷️ T-Search Harness
|
| 51 |
+
|
| 52 |
+
The [official T-Search harness](https://github.com/turbo-llm/t-search-harness) implements the inference protocol used for training and evaluation. The retriever operates in rounds. Within each round, it follows a ReAct loop with an approximately 32K-token context budget and three tools:
|
| 53 |
+
|
| 54 |
+
- `search_corpus` searches the corpus and returns document chunks;
|
| 55 |
+
- `save_and_advance` preserves important chunks and starts a new round;
|
| 56 |
+
- `finalize_ranking` ends the search and returns a ranked evidence set.
|
| 57 |
+
|
| 58 |
+
The agent sees the original question, previously saved chunks, and the current coverage state: which parts of the question are supported by evidence and which remain open. It chooses search queries, inspects retrieved chunks, and decides whether to continue searching, preserve state for another round, or finalize.
|
| 59 |
+
|
| 60 |
+
At 75% context utilization, `search_corpus` is locked. The agent must either call `finalize_ranking` or use `save_and_advance` to build compact memory for the next round: preserved chunks with reasons, covered and open parts of the question, previous attempts, and a useful next step. Full tool history and intermediate noise do not cross the round boundary.
|
| 61 |
+
|
| 62 |
+
## 🧠 Training
|
| 63 |
+
|
| 64 |
+
Training proceeds in two stages: supervised fine-tuning on fully synthetic search trajectories, followed by reinforcement learning with GSPO and recall-based rewards. At each stage, separate English and Russian experts are trained on language-specific data and then merged into a single checkpoint.
|
| 65 |
+
|
| 66 |
+
### Quantization
|
| 67 |
+
|
| 68 |
+
Weights use the E4M3 format with `128 × 128` block-wise scaling, while activation scales are computed dynamically at inference time. Modules excluded from quantization remain in BF16 and are listed under `modules_to_not_convert` in `config.json`.
|
| 69 |
+
|
| 70 |
+
### Synthetic task factory
|
| 71 |
+
|
| 72 |
+
Training tasks contain a question, a fixed index, annotated evidence chunks, and a full tool-use trajectory. Candidate tasks pass adversarial checks for trivial query leakage, answerability from model weights, single-document shortcuts, missing evidence, and weak distractors.
|
| 73 |
+
|
| 74 |
+
### Supervised fine-tuning
|
| 75 |
+
|
| 76 |
+
Long teacher trajectories are split into self-contained rounds. Invalid tool actions are masked from the loss, while useful recovery behavior after a tool error is retained. Productive rounds are selected by evidence gain rather than by final recall alone, preserving useful behavior from difficult tasks.
|
| 77 |
+
|
| 78 |
+
Training uses **11K SFT examples from 8K unique questions per language**; one quarter targets robustness to different retrievers. An additional non-overlapping pool of **2K questions per language** is reserved for RL.
|
| 79 |
+
|
| 80 |
+
### Reinforcement learning
|
| 81 |
+
|
| 82 |
+
The policy is optimized with GSPO. RL optimizes the complete search policy on full tool-use trajectories. The main reward is recall over gold `chunk_id` values; precision and F-score are tracked for diagnostics but are not used as the primary training signal. This discourages the agent from finalizing early with a small high-precision but incomplete evidence set.
|
| 83 |
+
|
| 84 |
+
**A detailed Russian-language training report will be available soon on Habr.**
|
| 85 |
+
|
| 86 |
+
## 📊 Benchmarks
|
| 87 |
+
|
| 88 |
+
### Evaluation datasets
|
| 89 |
+
|
| 90 |
+
The accompanying evaluation datasets are released as [**TRuST**](https://huggingface.co/datasets/t-tech/TRuST) and [**SynthComp**](https://huggingface.co/datasets/t-tech/SynthComp).
|
| 91 |
+
|
| 92 |
+
| Benchmark | Description |
|
| 93 |
+
|---|---|
|
| 94 |
+
| **TRuST** | 324 manually authored Russian multi-step search questions with fixed indices and annotated evidence. |
|
| 95 |
+
| **SynthComp-En / SynthComp-Ru** | English and Russian synthetic fixed-index benchmarks with 395 questions each, separated from the SFT and RL data by question and evidence overlap checks. |
|
| 96 |
+
| **ru-BrowseComp-Plus** | Adapted Russian-language version of BrowseComp-Plus. |
|
| 97 |
+
| **ru-SealQA** | Adapted Russian-language version of SealQA. |
|
| 98 |
+
|
| 99 |
+
We use **Recall@10** as the primary metric.
|
| 100 |
+
|
| 101 |
+
We report single-rollout results for all models and, for T-Search, an additional N=3 configuration that runs three independent rollouts in parallel and combines their rankings using reciprocal rank fusion (RRF).
|
| 102 |
+
|
| 103 |
+
| Model | BrowseComp-Plus | ru-BrowseComp-Plus | SealQA | ru-SealQA | SynthComp-En | SynthComp-Ru | TRuST | Avg |
|
| 104 |
+
|---|---:|---:|---:|---:|---:|---:|---:|---:|
|
| 105 |
+
| **T-Search (N=3)** | **72.65** | **62.93** | **66.08** | **61.98** | **58.52** | **58.00** | **49.12** | **61.33** |
|
| 106 |
+
| **T-Search (N=1)** | 65.35 | 55.95 | 61.16 | 57.72 | 54.52 | 53.13 | 43.92 | 55.96 |
|
| 107 |
+
| GLM-5.1 | 64.32 | 58.18 | 55.49 | 53.21 | 51.69 | 51.71 | 43.11 | 53.96 |
|
| 108 |
+
| GLM-5.2 | 63.01 | 52.54 | 55.30 | 54.69 | 52.29 | 49.37 | 37.07 | 52.04 |
|
| 109 |
+
| Kimi-K2.6 | 60.71 | 49.76 | 56.86 | 52.46 | 48.25 | 47.06 | 42.39 | 51.07 |
|
| 110 |
+
| DeepSeek-V4-Flash | 53.27 | 46.30 | 55.70 | 51.12 | 44.83 | 45.68 | 40.40 | 48.19 |
|
| 111 |
+
| Qwen3.6-27B | 56.69 | 46.81 | 54.01 | 48.95 | 46.82 | 46.99 | 38.12 | 48.34 |
|
| 112 |
+
| Qwen3.6-35B-A3B (baseline) | 43.66 | 38.58 | 46.07 | 43.26 | 41.82 | 43.88 | 33.53 | 41.54 |
|
| 113 |
+
| gemma-4-26B-A4B-it | 35.32 | 27.51 | 45.13 | 39.05 | 36.24 | 34.77 | 21.75 | 34.25 |
|
| 114 |
+
| Qwen3.5-397B-A17B | 53.48 | 44.06 | 51.68 | 48.33 | 47.38 | 46.91 | 38.57 | 47.20 |
|
| 115 |
+
| Qwen3.5-122B-A10B | 47.81 | 40.15 | 51.57 | 44.74 | 42.11 | 42.25 | 30.55 | 42.74 |
|
| 116 |
+
|
| 117 |
+
We also study the latency–quality trade-off by varying the maximum number of search rounds and the number of parallel agent runs. This separates the effect of deeper sequential search from broader parallel exploration.
|
| 118 |
+
|
| 119 |
+

|
| 120 |
+
|
| 121 |
+
To evaluate retrieval robustness, we varied the search backend while keeping the model and agent configuration fixed.
|
| 122 |
+
|
| 123 |
+
| Retriever | BrowseComp-Plus | ru-BrowseComp-Plus | SealQA | ru-SealQA | SynthComp-En | SynthComp-Ru | TRuST | Avg |
|
| 124 |
+
|---|---:|---:|---:|---:|---:|---:|---:|---:|
|
| 125 |
+
| Qwen3-Embedding-8B | 65.35 | 55.95 | 61.16 | 57.72 | 54.52 | 53.13 | 43.92 | 55.96 |
|
| 126 |
+
| **Qwen3-Embedding-8B + LLM reranking** | **75.04** | **66.24** | **64.82** | **59.95** | 62.71 | 62.39 | 48.93 | **62.87** |
|
| 127 |
+
| Qwen3-Embedding-0.6B | 51.70 | 43.71 | 56.80 | 49.53 | 54.72 | 52.27 | 36.95 | 49.38 |
|
| 128 |
+
| jina-embeddings-v5-text-small-retrieval | 60.52 | 51.41 | 62.46 | 55.60 | 56.37 | 54.56 | 39.31 | 54.32 |
|
| 129 |
+
| BM25 | 39.49 | 31.97 | 55.33 | 50.00 | **66.87** | **65.15** | **49.18** | 51.14 |
|
| 130 |
+
|
| 131 |
+
## 👨💻 Usage
|
| 132 |
+
|
| 133 |
+
### Recommended generation parameters
|
| 134 |
+
|
| 135 |
+
```yaml
|
| 136 |
+
do_sample: true
|
| 137 |
+
temperature: 0.7
|
| 138 |
+
top_p: 1.0
|
| 139 |
+
```
|
| 140 |
+
|
| 141 |
+
Serve `t-tech/T-Search-FP8` through an OpenAI-compatible endpoint. See the [harness README](https://github.com/turbo-llm/t-search-harness) for installation and search-backend integration.
|
| 142 |
+
|
| 143 |
+
### Reference SGLang serving setup
|
| 144 |
+
|
| 145 |
+
The following configuration adapts the [official Qwen3.6 FP8 SGLang cookbook](https://lmsysorg.mintlify.app/cookbook/autoregressive/Qwen/Qwen3.6#qwen3-6) to the 65,536-token T-Search serving context:
|
| 146 |
+
|
| 147 |
+
```bash
|
| 148 |
+
python3 -m sglang.launch_server \
|
| 149 |
+
--model-path "/path/to/model" \
|
| 150 |
+
--served-model-name "t-tech/T-Search-FP8" \
|
| 151 |
+
--trust-remote-code \
|
| 152 |
+
--host 0.0.0.0 \
|
| 153 |
+
--port 8000 \
|
| 154 |
+
--reasoning-parser qwen3 \
|
| 155 |
+
--tool-call-parser qwen3_coder \
|
| 156 |
+
--speculative-algorithm EAGLE \
|
| 157 |
+
--speculative-num-steps 3 \
|
| 158 |
+
--speculative-eagle-topk 1 \
|
| 159 |
+
--speculative-num-draft-tokens 4 \
|
| 160 |
+
--mem-fraction-static 0.8 \
|
| 161 |
+
--context-length 65536
|
| 162 |
+
```
|
| 163 |
+
|
| 164 |
+
### Example
|
| 165 |
+
|
| 166 |
+
```python
|
| 167 |
+
from retriever_agent import (
|
| 168 |
+
AgentConfig,
|
| 169 |
+
HttpSearchClient,
|
| 170 |
+
OpenAILLMClient,
|
| 171 |
+
RetrieverAgent,
|
| 172 |
+
)
|
| 173 |
+
|
| 174 |
+
config = AgentConfig(model="t-tech/T-Search-FP8")
|
| 175 |
+
llm = OpenAILLMClient(["http://<sglang-host>:8000/v1"], config)
|
| 176 |
+
search = HttpSearchClient("http://<search-host>:8000")
|
| 177 |
+
|
| 178 |
+
agent = RetrieverAgent(config, llm, search)
|
| 179 |
+
result = agent.retrieve("your query")
|
| 180 |
+
|
| 181 |
+
for doc in result.documents:
|
| 182 |
+
print(doc.rank, doc.doc_id, doc.score, doc.text)
|
| 183 |
+
```
|
assets/t-search-benchmarks.png
ADDED
|
Git LFS Details
|
assets/t-search-benchmarks.svg
ADDED
|
|
assets/t-search-latency-quality.png
ADDED
|
Git LFS Details
|
assets/t-search-latency-quality.svg
ADDED
|
|
assets/t-search-rl-training.png
ADDED
|
Git LFS Details
|
assets/t-search-rl-training.svg
ADDED
|
|
chat_template.jinja
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{%- set image_count = namespace(value=0) %}
|
| 2 |
+
{%- set video_count = namespace(value=0) %}
|
| 3 |
+
{%- macro render_content(content, do_vision_count, is_system_content=false) %}
|
| 4 |
+
{%- if content is string %}
|
| 5 |
+
{{- content }}
|
| 6 |
+
{%- elif content is iterable and content is not mapping %}
|
| 7 |
+
{%- for item in content %}
|
| 8 |
+
{%- if 'image' in item or 'image_url' in item or item.type == 'image' %}
|
| 9 |
+
{%- if is_system_content %}
|
| 10 |
+
{{- raise_exception('System message cannot contain images.') }}
|
| 11 |
+
{%- endif %}
|
| 12 |
+
{%- if do_vision_count %}
|
| 13 |
+
{%- set image_count.value = image_count.value + 1 %}
|
| 14 |
+
{%- endif %}
|
| 15 |
+
{%- if add_vision_id %}
|
| 16 |
+
{{- 'Picture ' ~ image_count.value ~ ': ' }}
|
| 17 |
+
{%- endif %}
|
| 18 |
+
{{- '<|vision_start|><|image_pad|><|vision_end|>' }}
|
| 19 |
+
{%- elif 'video' in item or item.type == 'video' %}
|
| 20 |
+
{%- if is_system_content %}
|
| 21 |
+
{{- raise_exception('System message cannot contain videos.') }}
|
| 22 |
+
{%- endif %}
|
| 23 |
+
{%- if do_vision_count %}
|
| 24 |
+
{%- set video_count.value = video_count.value + 1 %}
|
| 25 |
+
{%- endif %}
|
| 26 |
+
{%- if add_vision_id %}
|
| 27 |
+
{{- 'Video ' ~ video_count.value ~ ': ' }}
|
| 28 |
+
{%- endif %}
|
| 29 |
+
{{- '<|vision_start|><|video_pad|><|vision_end|>' }}
|
| 30 |
+
{%- elif 'text' in item %}
|
| 31 |
+
{{- item.text }}
|
| 32 |
+
{%- else %}
|
| 33 |
+
{{- raise_exception('Unexpected item type in content.') }}
|
| 34 |
+
{%- endif %}
|
| 35 |
+
{%- endfor %}
|
| 36 |
+
{%- elif content is none or content is undefined %}
|
| 37 |
+
{{- '' }}
|
| 38 |
+
{%- else %}
|
| 39 |
+
{{- raise_exception('Unexpected content type.') }}
|
| 40 |
+
{%- endif %}
|
| 41 |
+
{%- endmacro %}
|
| 42 |
+
{%- if not messages %}
|
| 43 |
+
{{- raise_exception('No messages provided.') }}
|
| 44 |
+
{%- endif %}
|
| 45 |
+
{%- if tools and tools is iterable and tools is not mapping %}
|
| 46 |
+
{{- '<|im_start|>system\n' }}
|
| 47 |
+
{{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
|
| 48 |
+
{%- for tool in tools %}
|
| 49 |
+
{{- "\n" }}
|
| 50 |
+
{{- tool | tojson }}
|
| 51 |
+
{%- endfor %}
|
| 52 |
+
{{- "\n</tools>" }}
|
| 53 |
+
{{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n<tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>\nvalue_1\n</parameter>\n<parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n</parameter>\n</function>\n</tool_call>\n\n<IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n</IMPORTANT>' }}
|
| 54 |
+
{%- if messages[0].role == 'system' %}
|
| 55 |
+
{%- set content = render_content(messages[0].content, false, true)|trim %}
|
| 56 |
+
{%- if content %}
|
| 57 |
+
{{- '\n\n' + content }}
|
| 58 |
+
{%- endif %}
|
| 59 |
+
{%- endif %}
|
| 60 |
+
{{- '<|im_end|>\n' }}
|
| 61 |
+
{%- else %}
|
| 62 |
+
{%- if messages[0].role == 'system' %}
|
| 63 |
+
{%- set content = render_content(messages[0].content, false, true)|trim %}
|
| 64 |
+
{{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
|
| 65 |
+
{%- endif %}
|
| 66 |
+
{%- endif %}
|
| 67 |
+
{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
|
| 68 |
+
{%- for message in messages[::-1] %}
|
| 69 |
+
{%- set index = (messages|length - 1) - loop.index0 %}
|
| 70 |
+
{%- if ns.multi_step_tool and message.role == "user" %}
|
| 71 |
+
{%- set content = render_content(message.content, false)|trim %}
|
| 72 |
+
{%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}
|
| 73 |
+
{%- set ns.multi_step_tool = false %}
|
| 74 |
+
{%- set ns.last_query_index = index %}
|
| 75 |
+
{%- endif %}
|
| 76 |
+
{%- endif %}
|
| 77 |
+
{%- endfor %}
|
| 78 |
+
{%- if ns.multi_step_tool %}
|
| 79 |
+
{{- raise_exception('No user query found in messages.') }}
|
| 80 |
+
{%- endif %}
|
| 81 |
+
{%- for message in messages %}
|
| 82 |
+
{%- set content = render_content(message.content, true)|trim %}
|
| 83 |
+
{%- if message.role == "system" %}
|
| 84 |
+
{%- if not loop.first %}
|
| 85 |
+
{{- raise_exception('System message must be at the beginning.') }}
|
| 86 |
+
{%- endif %}
|
| 87 |
+
{%- elif message.role == "user" %}
|
| 88 |
+
{{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
|
| 89 |
+
{%- elif message.role == "assistant" %}
|
| 90 |
+
{%- set reasoning_content = '' %}
|
| 91 |
+
{%- if message.reasoning_content is string %}
|
| 92 |
+
{%- set reasoning_content = message.reasoning_content %}
|
| 93 |
+
{%- else %}
|
| 94 |
+
{%- if '</think>' in content %}
|
| 95 |
+
{%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
|
| 96 |
+
{%- set content = content.split('</think>')[-1].lstrip('\n') %}
|
| 97 |
+
{%- endif %}
|
| 98 |
+
{%- endif %}
|
| 99 |
+
{%- set reasoning_content = reasoning_content|trim %}
|
| 100 |
+
{%- if loop.index0 > ns.last_query_index %}
|
| 101 |
+
{{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content + '\n</think>\n\n' + content }}
|
| 102 |
+
{%- else %}
|
| 103 |
+
{{- '<|im_start|>' + message.role + '\n' + content }}
|
| 104 |
+
{%- endif %}
|
| 105 |
+
{%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
|
| 106 |
+
{%- for tool_call in message.tool_calls %}
|
| 107 |
+
{%- if tool_call.function is defined %}
|
| 108 |
+
{%- set tool_call = tool_call.function %}
|
| 109 |
+
{%- endif %}
|
| 110 |
+
{%- if loop.first %}
|
| 111 |
+
{%- if content|trim %}
|
| 112 |
+
{{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
|
| 113 |
+
{%- else %}
|
| 114 |
+
{{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
|
| 115 |
+
{%- endif %}
|
| 116 |
+
{%- else %}
|
| 117 |
+
{{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
|
| 118 |
+
{%- endif %}
|
| 119 |
+
{%- if tool_call.arguments is defined %}
|
| 120 |
+
{%- for args_name, args_value in tool_call.arguments|items %}
|
| 121 |
+
{{- '<parameter=' + args_name + '>\n' }}
|
| 122 |
+
{%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}
|
| 123 |
+
{{- args_value }}
|
| 124 |
+
{{- '\n</parameter>\n' }}
|
| 125 |
+
{%- endfor %}
|
| 126 |
+
{%- endif %}
|
| 127 |
+
{{- '</function>\n</tool_call>' }}
|
| 128 |
+
{%- endfor %}
|
| 129 |
+
{%- endif %}
|
| 130 |
+
{{- '<|im_end|>\n' }}
|
| 131 |
+
{%- elif message.role == "tool" %}
|
| 132 |
+
{%- if loop.previtem and loop.previtem.role != "tool" %}
|
| 133 |
+
{{- '<|im_start|>user' }}
|
| 134 |
+
{%- endif %}
|
| 135 |
+
{{- '\n<tool_response>\n' }}
|
| 136 |
+
{{- content }}
|
| 137 |
+
{{- '\n</tool_response>' }}
|
| 138 |
+
{%- if not loop.last and loop.nextitem.role != "tool" %}
|
| 139 |
+
{{- '<|im_end|>\n' }}
|
| 140 |
+
{%- elif loop.last %}
|
| 141 |
+
{{- '<|im_end|>\n' }}
|
| 142 |
+
{%- endif %}
|
| 143 |
+
{%- else %}
|
| 144 |
+
{{- raise_exception('Unexpected message role.') }}
|
| 145 |
+
{%- endif %}
|
| 146 |
+
{%- endfor %}
|
| 147 |
+
{%- if add_generation_prompt %}
|
| 148 |
+
{{- '<|im_start|>assistant\n' }}
|
| 149 |
+
{%- if enable_thinking is defined and enable_thinking is false %}
|
| 150 |
+
{{- '<think>\n\n</think>\n\n' }}
|
| 151 |
+
{%- else %}
|
| 152 |
+
{{- '<think>\n' }}
|
| 153 |
+
{%- endif %}
|
| 154 |
+
{%- endif %}
|
config.json
ADDED
|
@@ -0,0 +1,418 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"Qwen3_5MoeForConditionalGeneration"
|
| 4 |
+
],
|
| 5 |
+
"image_token_id": 248056,
|
| 6 |
+
"model_type": "qwen3_5_moe",
|
| 7 |
+
"text_config": {
|
| 8 |
+
"attention_bias": false,
|
| 9 |
+
"attention_dropout": 0.0,
|
| 10 |
+
"attn_output_gate": true,
|
| 11 |
+
"bos_token_id": null,
|
| 12 |
+
"dtype": "bfloat16",
|
| 13 |
+
"eos_token_id": 248044,
|
| 14 |
+
"full_attention_interval": 4,
|
| 15 |
+
"head_dim": 256,
|
| 16 |
+
"hidden_act": "silu",
|
| 17 |
+
"hidden_size": 2048,
|
| 18 |
+
"initializer_range": 0.02,
|
| 19 |
+
"layer_types": [
|
| 20 |
+
"linear_attention",
|
| 21 |
+
"linear_attention",
|
| 22 |
+
"linear_attention",
|
| 23 |
+
"full_attention",
|
| 24 |
+
"linear_attention",
|
| 25 |
+
"linear_attention",
|
| 26 |
+
"linear_attention",
|
| 27 |
+
"full_attention",
|
| 28 |
+
"linear_attention",
|
| 29 |
+
"linear_attention",
|
| 30 |
+
"linear_attention",
|
| 31 |
+
"full_attention",
|
| 32 |
+
"linear_attention",
|
| 33 |
+
"linear_attention",
|
| 34 |
+
"linear_attention",
|
| 35 |
+
"full_attention",
|
| 36 |
+
"linear_attention",
|
| 37 |
+
"linear_attention",
|
| 38 |
+
"linear_attention",
|
| 39 |
+
"full_attention",
|
| 40 |
+
"linear_attention",
|
| 41 |
+
"linear_attention",
|
| 42 |
+
"linear_attention",
|
| 43 |
+
"full_attention",
|
| 44 |
+
"linear_attention",
|
| 45 |
+
"linear_attention",
|
| 46 |
+
"linear_attention",
|
| 47 |
+
"full_attention",
|
| 48 |
+
"linear_attention",
|
| 49 |
+
"linear_attention",
|
| 50 |
+
"linear_attention",
|
| 51 |
+
"full_attention",
|
| 52 |
+
"linear_attention",
|
| 53 |
+
"linear_attention",
|
| 54 |
+
"linear_attention",
|
| 55 |
+
"full_attention",
|
| 56 |
+
"linear_attention",
|
| 57 |
+
"linear_attention",
|
| 58 |
+
"linear_attention",
|
| 59 |
+
"full_attention"
|
| 60 |
+
],
|
| 61 |
+
"linear_conv_kernel_dim": 4,
|
| 62 |
+
"linear_key_head_dim": 128,
|
| 63 |
+
"linear_num_key_heads": 16,
|
| 64 |
+
"linear_num_value_heads": 32,
|
| 65 |
+
"linear_value_head_dim": 128,
|
| 66 |
+
"mamba_ssm_dtype": "float32",
|
| 67 |
+
"max_position_embeddings": 262144,
|
| 68 |
+
"mlp_only_layers": [],
|
| 69 |
+
"model_type": "qwen3_5_moe_text",
|
| 70 |
+
"moe_intermediate_size": 512,
|
| 71 |
+
"mtp_num_hidden_layers": 1,
|
| 72 |
+
"mtp_use_dedicated_embeddings": false,
|
| 73 |
+
"num_attention_heads": 16,
|
| 74 |
+
"num_experts": 256,
|
| 75 |
+
"num_experts_per_tok": 8,
|
| 76 |
+
"num_hidden_layers": 40,
|
| 77 |
+
"num_key_value_heads": 2,
|
| 78 |
+
"output_router_logits": false,
|
| 79 |
+
"pad_token_id": null,
|
| 80 |
+
"partial_rotary_factor": 0.25,
|
| 81 |
+
"rms_norm_eps": 1e-06,
|
| 82 |
+
"rope_parameters": {
|
| 83 |
+
"mrope_interleaved": true,
|
| 84 |
+
"mrope_section": [
|
| 85 |
+
11,
|
| 86 |
+
11,
|
| 87 |
+
10
|
| 88 |
+
],
|
| 89 |
+
"partial_rotary_factor": 0.25,
|
| 90 |
+
"rope_theta": 10000000,
|
| 91 |
+
"rope_type": "default"
|
| 92 |
+
},
|
| 93 |
+
"router_aux_loss_coef": 0.001,
|
| 94 |
+
"shared_expert_intermediate_size": 512,
|
| 95 |
+
"tie_word_embeddings": false,
|
| 96 |
+
"use_cache": true,
|
| 97 |
+
"vocab_size": 248320
|
| 98 |
+
},
|
| 99 |
+
"tie_word_embeddings": false,
|
| 100 |
+
"transformers_version": "5.9.0",
|
| 101 |
+
"video_token_id": 248057,
|
| 102 |
+
"vision_config": {
|
| 103 |
+
"deepstack_visual_indexes": [],
|
| 104 |
+
"depth": 27,
|
| 105 |
+
"dtype": "bfloat16",
|
| 106 |
+
"hidden_act": "gelu_pytorch_tanh",
|
| 107 |
+
"hidden_size": 1152,
|
| 108 |
+
"in_channels": 3,
|
| 109 |
+
"initializer_range": 0.02,
|
| 110 |
+
"intermediate_size": 4304,
|
| 111 |
+
"model_type": "qwen3_5_moe_vision",
|
| 112 |
+
"num_heads": 16,
|
| 113 |
+
"num_position_embeddings": 2304,
|
| 114 |
+
"out_hidden_size": 2048,
|
| 115 |
+
"patch_size": 16,
|
| 116 |
+
"spatial_merge_size": 2,
|
| 117 |
+
"temporal_patch_size": 2
|
| 118 |
+
},
|
| 119 |
+
"vision_end_token_id": 248054,
|
| 120 |
+
"vision_start_token_id": 248053,
|
| 121 |
+
"quantization_config": {
|
| 122 |
+
"quant_method": "fp8",
|
| 123 |
+
"fmt": "e4m3",
|
| 124 |
+
"activation_scheme": "dynamic",
|
| 125 |
+
"weight_block_size": [
|
| 126 |
+
128,
|
| 127 |
+
128
|
| 128 |
+
],
|
| 129 |
+
"modules_to_not_convert": [
|
| 130 |
+
"lm_head",
|
| 131 |
+
"model.language_model.embed_tokens",
|
| 132 |
+
"model.language_model.layers.0.linear_attn.conv1d",
|
| 133 |
+
"model.language_model.layers.0.linear_attn.in_proj_a",
|
| 134 |
+
"model.language_model.layers.0.linear_attn.in_proj_b",
|
| 135 |
+
"model.language_model.layers.0.mlp.gate",
|
| 136 |
+
"model.language_model.layers.0.mlp.shared_expert_gate",
|
| 137 |
+
"model.language_model.layers.1.linear_attn.conv1d",
|
| 138 |
+
"model.language_model.layers.1.linear_attn.in_proj_a",
|
| 139 |
+
"model.language_model.layers.1.linear_attn.in_proj_b",
|
| 140 |
+
"model.language_model.layers.1.mlp.gate",
|
| 141 |
+
"model.language_model.layers.1.mlp.shared_expert_gate",
|
| 142 |
+
"model.language_model.layers.10.linear_attn.conv1d",
|
| 143 |
+
"model.language_model.layers.10.linear_attn.in_proj_a",
|
| 144 |
+
"model.language_model.layers.10.linear_attn.in_proj_b",
|
| 145 |
+
"model.language_model.layers.10.mlp.gate",
|
| 146 |
+
"model.language_model.layers.10.mlp.shared_expert_gate",
|
| 147 |
+
"model.language_model.layers.11.mlp.gate",
|
| 148 |
+
"model.language_model.layers.11.mlp.shared_expert_gate",
|
| 149 |
+
"model.language_model.layers.12.linear_attn.conv1d",
|
| 150 |
+
"model.language_model.layers.12.linear_attn.in_proj_a",
|
| 151 |
+
"model.language_model.layers.12.linear_attn.in_proj_b",
|
| 152 |
+
"model.language_model.layers.12.mlp.gate",
|
| 153 |
+
"model.language_model.layers.12.mlp.shared_expert_gate",
|
| 154 |
+
"model.language_model.layers.13.linear_attn.conv1d",
|
| 155 |
+
"model.language_model.layers.13.linear_attn.in_proj_a",
|
| 156 |
+
"model.language_model.layers.13.linear_attn.in_proj_b",
|
| 157 |
+
"model.language_model.layers.13.mlp.gate",
|
| 158 |
+
"model.language_model.layers.13.mlp.shared_expert_gate",
|
| 159 |
+
"model.language_model.layers.14.linear_attn.conv1d",
|
| 160 |
+
"model.language_model.layers.14.linear_attn.in_proj_a",
|
| 161 |
+
"model.language_model.layers.14.linear_attn.in_proj_b",
|
| 162 |
+
"model.language_model.layers.14.mlp.gate",
|
| 163 |
+
"model.language_model.layers.14.mlp.shared_expert_gate",
|
| 164 |
+
"model.language_model.layers.15.mlp.gate",
|
| 165 |
+
"model.language_model.layers.15.mlp.shared_expert_gate",
|
| 166 |
+
"model.language_model.layers.16.linear_attn.conv1d",
|
| 167 |
+
"model.language_model.layers.16.linear_attn.in_proj_a",
|
| 168 |
+
"model.language_model.layers.16.linear_attn.in_proj_b",
|
| 169 |
+
"model.language_model.layers.16.mlp.gate",
|
| 170 |
+
"model.language_model.layers.16.mlp.shared_expert_gate",
|
| 171 |
+
"model.language_model.layers.17.linear_attn.conv1d",
|
| 172 |
+
"model.language_model.layers.17.linear_attn.in_proj_a",
|
| 173 |
+
"model.language_model.layers.17.linear_attn.in_proj_b",
|
| 174 |
+
"model.language_model.layers.17.mlp.gate",
|
| 175 |
+
"model.language_model.layers.17.mlp.shared_expert_gate",
|
| 176 |
+
"model.language_model.layers.18.linear_attn.conv1d",
|
| 177 |
+
"model.language_model.layers.18.linear_attn.in_proj_a",
|
| 178 |
+
"model.language_model.layers.18.linear_attn.in_proj_b",
|
| 179 |
+
"model.language_model.layers.18.mlp.gate",
|
| 180 |
+
"model.language_model.layers.18.mlp.shared_expert_gate",
|
| 181 |
+
"model.language_model.layers.19.mlp.gate",
|
| 182 |
+
"model.language_model.layers.19.mlp.shared_expert_gate",
|
| 183 |
+
"model.language_model.layers.2.linear_attn.conv1d",
|
| 184 |
+
"model.language_model.layers.2.linear_attn.in_proj_a",
|
| 185 |
+
"model.language_model.layers.2.linear_attn.in_proj_b",
|
| 186 |
+
"model.language_model.layers.2.mlp.gate",
|
| 187 |
+
"model.language_model.layers.2.mlp.shared_expert_gate",
|
| 188 |
+
"model.language_model.layers.20.linear_attn.conv1d",
|
| 189 |
+
"model.language_model.layers.20.linear_attn.in_proj_a",
|
| 190 |
+
"model.language_model.layers.20.linear_attn.in_proj_b",
|
| 191 |
+
"model.language_model.layers.20.mlp.gate",
|
| 192 |
+
"model.language_model.layers.20.mlp.shared_expert_gate",
|
| 193 |
+
"model.language_model.layers.21.linear_attn.conv1d",
|
| 194 |
+
"model.language_model.layers.21.linear_attn.in_proj_a",
|
| 195 |
+
"model.language_model.layers.21.linear_attn.in_proj_b",
|
| 196 |
+
"model.language_model.layers.21.mlp.gate",
|
| 197 |
+
"model.language_model.layers.21.mlp.shared_expert_gate",
|
| 198 |
+
"model.language_model.layers.22.linear_attn.conv1d",
|
| 199 |
+
"model.language_model.layers.22.linear_attn.in_proj_a",
|
| 200 |
+
"model.language_model.layers.22.linear_attn.in_proj_b",
|
| 201 |
+
"model.language_model.layers.22.mlp.gate",
|
| 202 |
+
"model.language_model.layers.22.mlp.shared_expert_gate",
|
| 203 |
+
"model.language_model.layers.23.mlp.gate",
|
| 204 |
+
"model.language_model.layers.23.mlp.shared_expert_gate",
|
| 205 |
+
"model.language_model.layers.24.linear_attn.conv1d",
|
| 206 |
+
"model.language_model.layers.24.linear_attn.in_proj_a",
|
| 207 |
+
"model.language_model.layers.24.linear_attn.in_proj_b",
|
| 208 |
+
"model.language_model.layers.24.mlp.gate",
|
| 209 |
+
"model.language_model.layers.24.mlp.shared_expert_gate",
|
| 210 |
+
"model.language_model.layers.25.linear_attn.conv1d",
|
| 211 |
+
"model.language_model.layers.25.linear_attn.in_proj_a",
|
| 212 |
+
"model.language_model.layers.25.linear_attn.in_proj_b",
|
| 213 |
+
"model.language_model.layers.25.mlp.gate",
|
| 214 |
+
"model.language_model.layers.25.mlp.shared_expert_gate",
|
| 215 |
+
"model.language_model.layers.26.linear_attn.conv1d",
|
| 216 |
+
"model.language_model.layers.26.linear_attn.in_proj_a",
|
| 217 |
+
"model.language_model.layers.26.linear_attn.in_proj_b",
|
| 218 |
+
"model.language_model.layers.26.mlp.gate",
|
| 219 |
+
"model.language_model.layers.26.mlp.shared_expert_gate",
|
| 220 |
+
"model.language_model.layers.27.mlp.gate",
|
| 221 |
+
"model.language_model.layers.27.mlp.shared_expert_gate",
|
| 222 |
+
"model.language_model.layers.28.linear_attn.conv1d",
|
| 223 |
+
"model.language_model.layers.28.linear_attn.in_proj_a",
|
| 224 |
+
"model.language_model.layers.28.linear_attn.in_proj_b",
|
| 225 |
+
"model.language_model.layers.28.mlp.gate",
|
| 226 |
+
"model.language_model.layers.28.mlp.shared_expert_gate",
|
| 227 |
+
"model.language_model.layers.29.linear_attn.conv1d",
|
| 228 |
+
"model.language_model.layers.29.linear_attn.in_proj_a",
|
| 229 |
+
"model.language_model.layers.29.linear_attn.in_proj_b",
|
| 230 |
+
"model.language_model.layers.29.mlp.gate",
|
| 231 |
+
"model.language_model.layers.29.mlp.shared_expert_gate",
|
| 232 |
+
"model.language_model.layers.3.mlp.gate",
|
| 233 |
+
"model.language_model.layers.3.mlp.shared_expert_gate",
|
| 234 |
+
"model.language_model.layers.30.linear_attn.conv1d",
|
| 235 |
+
"model.language_model.layers.30.linear_attn.in_proj_a",
|
| 236 |
+
"model.language_model.layers.30.linear_attn.in_proj_b",
|
| 237 |
+
"model.language_model.layers.30.mlp.gate",
|
| 238 |
+
"model.language_model.layers.30.mlp.shared_expert_gate",
|
| 239 |
+
"model.language_model.layers.31.mlp.gate",
|
| 240 |
+
"model.language_model.layers.31.mlp.shared_expert_gate",
|
| 241 |
+
"model.language_model.layers.32.linear_attn.conv1d",
|
| 242 |
+
"model.language_model.layers.32.linear_attn.in_proj_a",
|
| 243 |
+
"model.language_model.layers.32.linear_attn.in_proj_b",
|
| 244 |
+
"model.language_model.layers.32.mlp.gate",
|
| 245 |
+
"model.language_model.layers.32.mlp.shared_expert_gate",
|
| 246 |
+
"model.language_model.layers.33.linear_attn.conv1d",
|
| 247 |
+
"model.language_model.layers.33.linear_attn.in_proj_a",
|
| 248 |
+
"model.language_model.layers.33.linear_attn.in_proj_b",
|
| 249 |
+
"model.language_model.layers.33.mlp.gate",
|
| 250 |
+
"model.language_model.layers.33.mlp.shared_expert_gate",
|
| 251 |
+
"model.language_model.layers.34.linear_attn.conv1d",
|
| 252 |
+
"model.language_model.layers.34.linear_attn.in_proj_a",
|
| 253 |
+
"model.language_model.layers.34.linear_attn.in_proj_b",
|
| 254 |
+
"model.language_model.layers.34.mlp.gate",
|
| 255 |
+
"model.language_model.layers.34.mlp.shared_expert_gate",
|
| 256 |
+
"model.language_model.layers.35.mlp.gate",
|
| 257 |
+
"model.language_model.layers.35.mlp.shared_expert_gate",
|
| 258 |
+
"model.language_model.layers.36.linear_attn.conv1d",
|
| 259 |
+
"model.language_model.layers.36.linear_attn.in_proj_a",
|
| 260 |
+
"model.language_model.layers.36.linear_attn.in_proj_b",
|
| 261 |
+
"model.language_model.layers.36.mlp.gate",
|
| 262 |
+
"model.language_model.layers.36.mlp.shared_expert_gate",
|
| 263 |
+
"model.language_model.layers.37.linear_attn.conv1d",
|
| 264 |
+
"model.language_model.layers.37.linear_attn.in_proj_a",
|
| 265 |
+
"model.language_model.layers.37.linear_attn.in_proj_b",
|
| 266 |
+
"model.language_model.layers.37.mlp.gate",
|
| 267 |
+
"model.language_model.layers.37.mlp.shared_expert_gate",
|
| 268 |
+
"model.language_model.layers.38.linear_attn.conv1d",
|
| 269 |
+
"model.language_model.layers.38.linear_attn.in_proj_a",
|
| 270 |
+
"model.language_model.layers.38.linear_attn.in_proj_b",
|
| 271 |
+
"model.language_model.layers.38.mlp.gate",
|
| 272 |
+
"model.language_model.layers.38.mlp.shared_expert_gate",
|
| 273 |
+
"model.language_model.layers.39.mlp.gate",
|
| 274 |
+
"model.language_model.layers.39.mlp.shared_expert_gate",
|
| 275 |
+
"model.language_model.layers.4.linear_attn.conv1d",
|
| 276 |
+
"model.language_model.layers.4.linear_attn.in_proj_a",
|
| 277 |
+
"model.language_model.layers.4.linear_attn.in_proj_b",
|
| 278 |
+
"model.language_model.layers.4.mlp.gate",
|
| 279 |
+
"model.language_model.layers.4.mlp.shared_expert_gate",
|
| 280 |
+
"model.language_model.layers.5.linear_attn.conv1d",
|
| 281 |
+
"model.language_model.layers.5.linear_attn.in_proj_a",
|
| 282 |
+
"model.language_model.layers.5.linear_attn.in_proj_b",
|
| 283 |
+
"model.language_model.layers.5.mlp.gate",
|
| 284 |
+
"model.language_model.layers.5.mlp.shared_expert_gate",
|
| 285 |
+
"model.language_model.layers.6.linear_attn.conv1d",
|
| 286 |
+
"model.language_model.layers.6.linear_attn.in_proj_a",
|
| 287 |
+
"model.language_model.layers.6.linear_attn.in_proj_b",
|
| 288 |
+
"model.language_model.layers.6.mlp.gate",
|
| 289 |
+
"model.language_model.layers.6.mlp.shared_expert_gate",
|
| 290 |
+
"model.language_model.layers.7.mlp.gate",
|
| 291 |
+
"model.language_model.layers.7.mlp.shared_expert_gate",
|
| 292 |
+
"model.language_model.layers.8.linear_attn.conv1d",
|
| 293 |
+
"model.language_model.layers.8.linear_attn.in_proj_a",
|
| 294 |
+
"model.language_model.layers.8.linear_attn.in_proj_b",
|
| 295 |
+
"model.language_model.layers.8.mlp.gate",
|
| 296 |
+
"model.language_model.layers.8.mlp.shared_expert_gate",
|
| 297 |
+
"model.language_model.layers.9.linear_attn.conv1d",
|
| 298 |
+
"model.language_model.layers.9.linear_attn.in_proj_a",
|
| 299 |
+
"model.language_model.layers.9.linear_attn.in_proj_b",
|
| 300 |
+
"model.language_model.layers.9.mlp.gate",
|
| 301 |
+
"model.language_model.layers.9.mlp.shared_expert_gate",
|
| 302 |
+
"model.visual.blocks.0.attn.proj",
|
| 303 |
+
"model.visual.blocks.0.attn.qkv",
|
| 304 |
+
"model.visual.blocks.0.mlp.linear_fc1",
|
| 305 |
+
"model.visual.blocks.0.mlp.linear_fc2",
|
| 306 |
+
"model.visual.blocks.1.attn.proj",
|
| 307 |
+
"model.visual.blocks.1.attn.qkv",
|
| 308 |
+
"model.visual.blocks.1.mlp.linear_fc1",
|
| 309 |
+
"model.visual.blocks.1.mlp.linear_fc2",
|
| 310 |
+
"model.visual.blocks.10.attn.proj",
|
| 311 |
+
"model.visual.blocks.10.attn.qkv",
|
| 312 |
+
"model.visual.blocks.10.mlp.linear_fc1",
|
| 313 |
+
"model.visual.blocks.10.mlp.linear_fc2",
|
| 314 |
+
"model.visual.blocks.11.attn.proj",
|
| 315 |
+
"model.visual.blocks.11.attn.qkv",
|
| 316 |
+
"model.visual.blocks.11.mlp.linear_fc1",
|
| 317 |
+
"model.visual.blocks.11.mlp.linear_fc2",
|
| 318 |
+
"model.visual.blocks.12.attn.proj",
|
| 319 |
+
"model.visual.blocks.12.attn.qkv",
|
| 320 |
+
"model.visual.blocks.12.mlp.linear_fc1",
|
| 321 |
+
"model.visual.blocks.12.mlp.linear_fc2",
|
| 322 |
+
"model.visual.blocks.13.attn.proj",
|
| 323 |
+
"model.visual.blocks.13.attn.qkv",
|
| 324 |
+
"model.visual.blocks.13.mlp.linear_fc1",
|
| 325 |
+
"model.visual.blocks.13.mlp.linear_fc2",
|
| 326 |
+
"model.visual.blocks.14.attn.proj",
|
| 327 |
+
"model.visual.blocks.14.attn.qkv",
|
| 328 |
+
"model.visual.blocks.14.mlp.linear_fc1",
|
| 329 |
+
"model.visual.blocks.14.mlp.linear_fc2",
|
| 330 |
+
"model.visual.blocks.15.attn.proj",
|
| 331 |
+
"model.visual.blocks.15.attn.qkv",
|
| 332 |
+
"model.visual.blocks.15.mlp.linear_fc1",
|
| 333 |
+
"model.visual.blocks.15.mlp.linear_fc2",
|
| 334 |
+
"model.visual.blocks.16.attn.proj",
|
| 335 |
+
"model.visual.blocks.16.attn.qkv",
|
| 336 |
+
"model.visual.blocks.16.mlp.linear_fc1",
|
| 337 |
+
"model.visual.blocks.16.mlp.linear_fc2",
|
| 338 |
+
"model.visual.blocks.17.attn.proj",
|
| 339 |
+
"model.visual.blocks.17.attn.qkv",
|
| 340 |
+
"model.visual.blocks.17.mlp.linear_fc1",
|
| 341 |
+
"model.visual.blocks.17.mlp.linear_fc2",
|
| 342 |
+
"model.visual.blocks.18.attn.proj",
|
| 343 |
+
"model.visual.blocks.18.attn.qkv",
|
| 344 |
+
"model.visual.blocks.18.mlp.linear_fc1",
|
| 345 |
+
"model.visual.blocks.18.mlp.linear_fc2",
|
| 346 |
+
"model.visual.blocks.19.attn.proj",
|
| 347 |
+
"model.visual.blocks.19.attn.qkv",
|
| 348 |
+
"model.visual.blocks.19.mlp.linear_fc1",
|
| 349 |
+
"model.visual.blocks.19.mlp.linear_fc2",
|
| 350 |
+
"model.visual.blocks.2.attn.proj",
|
| 351 |
+
"model.visual.blocks.2.attn.qkv",
|
| 352 |
+
"model.visual.blocks.2.mlp.linear_fc1",
|
| 353 |
+
"model.visual.blocks.2.mlp.linear_fc2",
|
| 354 |
+
"model.visual.blocks.20.attn.proj",
|
| 355 |
+
"model.visual.blocks.20.attn.qkv",
|
| 356 |
+
"model.visual.blocks.20.mlp.linear_fc1",
|
| 357 |
+
"model.visual.blocks.20.mlp.linear_fc2",
|
| 358 |
+
"model.visual.blocks.21.attn.proj",
|
| 359 |
+
"model.visual.blocks.21.attn.qkv",
|
| 360 |
+
"model.visual.blocks.21.mlp.linear_fc1",
|
| 361 |
+
"model.visual.blocks.21.mlp.linear_fc2",
|
| 362 |
+
"model.visual.blocks.22.attn.proj",
|
| 363 |
+
"model.visual.blocks.22.attn.qkv",
|
| 364 |
+
"model.visual.blocks.22.mlp.linear_fc1",
|
| 365 |
+
"model.visual.blocks.22.mlp.linear_fc2",
|
| 366 |
+
"model.visual.blocks.23.attn.proj",
|
| 367 |
+
"model.visual.blocks.23.attn.qkv",
|
| 368 |
+
"model.visual.blocks.23.mlp.linear_fc1",
|
| 369 |
+
"model.visual.blocks.23.mlp.linear_fc2",
|
| 370 |
+
"model.visual.blocks.24.attn.proj",
|
| 371 |
+
"model.visual.blocks.24.attn.qkv",
|
| 372 |
+
"model.visual.blocks.24.mlp.linear_fc1",
|
| 373 |
+
"model.visual.blocks.24.mlp.linear_fc2",
|
| 374 |
+
"model.visual.blocks.25.attn.proj",
|
| 375 |
+
"model.visual.blocks.25.attn.qkv",
|
| 376 |
+
"model.visual.blocks.25.mlp.linear_fc1",
|
| 377 |
+
"model.visual.blocks.25.mlp.linear_fc2",
|
| 378 |
+
"model.visual.blocks.26.attn.proj",
|
| 379 |
+
"model.visual.blocks.26.attn.qkv",
|
| 380 |
+
"model.visual.blocks.26.mlp.linear_fc1",
|
| 381 |
+
"model.visual.blocks.26.mlp.linear_fc2",
|
| 382 |
+
"model.visual.blocks.3.attn.proj",
|
| 383 |
+
"model.visual.blocks.3.attn.qkv",
|
| 384 |
+
"model.visual.blocks.3.mlp.linear_fc1",
|
| 385 |
+
"model.visual.blocks.3.mlp.linear_fc2",
|
| 386 |
+
"model.visual.blocks.4.attn.proj",
|
| 387 |
+
"model.visual.blocks.4.attn.qkv",
|
| 388 |
+
"model.visual.blocks.4.mlp.linear_fc1",
|
| 389 |
+
"model.visual.blocks.4.mlp.linear_fc2",
|
| 390 |
+
"model.visual.blocks.5.attn.proj",
|
| 391 |
+
"model.visual.blocks.5.attn.qkv",
|
| 392 |
+
"model.visual.blocks.5.mlp.linear_fc1",
|
| 393 |
+
"model.visual.blocks.5.mlp.linear_fc2",
|
| 394 |
+
"model.visual.blocks.6.attn.proj",
|
| 395 |
+
"model.visual.blocks.6.attn.qkv",
|
| 396 |
+
"model.visual.blocks.6.mlp.linear_fc1",
|
| 397 |
+
"model.visual.blocks.6.mlp.linear_fc2",
|
| 398 |
+
"model.visual.blocks.7.attn.proj",
|
| 399 |
+
"model.visual.blocks.7.attn.qkv",
|
| 400 |
+
"model.visual.blocks.7.mlp.linear_fc1",
|
| 401 |
+
"model.visual.blocks.7.mlp.linear_fc2",
|
| 402 |
+
"model.visual.blocks.8.attn.proj",
|
| 403 |
+
"model.visual.blocks.8.attn.qkv",
|
| 404 |
+
"model.visual.blocks.8.mlp.linear_fc1",
|
| 405 |
+
"model.visual.blocks.8.mlp.linear_fc2",
|
| 406 |
+
"model.visual.blocks.9.attn.proj",
|
| 407 |
+
"model.visual.blocks.9.attn.qkv",
|
| 408 |
+
"model.visual.blocks.9.mlp.linear_fc1",
|
| 409 |
+
"model.visual.blocks.9.mlp.linear_fc2",
|
| 410 |
+
"model.visual.merger.linear_fc1",
|
| 411 |
+
"model.visual.merger.linear_fc2",
|
| 412 |
+
"model.visual.pos_embed",
|
| 413 |
+
"mtp.fc",
|
| 414 |
+
"mtp.layers.0.mlp.gate",
|
| 415 |
+
"mtp.layers.0.mlp.shared_expert_gate"
|
| 416 |
+
]
|
| 417 |
+
}
|
| 418 |
+
}
|
generation_config.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"bos_token_id": 248044,
|
| 3 |
+
"do_sample": true,
|
| 4 |
+
"eos_token_id": [
|
| 5 |
+
248046,
|
| 6 |
+
248044
|
| 7 |
+
],
|
| 8 |
+
"pad_token_id": 248044,
|
| 9 |
+
"temperature": 0.7,
|
| 10 |
+
"top_p": 1.0,
|
| 11 |
+
"transformers_version": "5.9.0",
|
| 12 |
+
"trust_remote_code": false
|
| 13 |
+
}
|
model-mtp.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bd9ad079d32658984dba393fac0049804134f6a489a541bbbca189a712d2dac7
|
| 3 |
+
size 853957888
|
model.safetensors-00001-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c01a8aabb2c9428167a6d23f94be155ef2b6087d458d3f6a458868fd5d2d7108
|
| 3 |
+
size 2685721584
|
model.safetensors-00002-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cd66707b8f6903e19236ab6e76e617ed3f96269a199a9bf07d02865625dcef59
|
| 3 |
+
size 2685719536
|
model.safetensors-00003-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5d4ad85ea0c99101200cf0e33012108a46eefd4298d3d0c43b1aa7729101db26
|
| 3 |
+
size 2685719536
|
model.safetensors-00004-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f45e7ffe0cf1159b19d57f1e765f5a904b595dcd8c82d9efb1f79981fcc5f4f5
|
| 3 |
+
size 2685720560
|
model.safetensors-00005-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:049599de30f6f496154a4472a268b5b71041824734642eb6e3fd20bf65afae4a
|
| 3 |
+
size 2685721584
|
model.safetensors-00006-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:487a1b65d4fe86a98a903d7867c7ff2a3698bab496057650d2bc9da6f28ab161
|
| 3 |
+
size 2685720560
|
model.safetensors-00007-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b37e657fc17ff4f9856d5d5874ee84f5cfd4ead3cfd3dc14f1490c9d2c1216b7
|
| 3 |
+
size 2685719536
|
model.safetensors-00008-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ec45db7e97cdfc06a2cadc70a3f6781b7fe2af1f1d852ad476d4a5aa13660a5e
|
| 3 |
+
size 2685719536
|
model.safetensors-00009-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:35e88db748bd8e9c9ca7b70d97e69512113e46a4d57465cb8224d79e4a74bb5d
|
| 3 |
+
size 3645674096
|
model.safetensors-00010-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e41e820ca17ec0fb7d5e9999a9cfdb17cabc656203b7280c0f27ce2239535f7d
|
| 3 |
+
size 2685724656
|
model.safetensors-00011-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d188fd7c7a902a6a5894c3d6b24832a1de44e4f526a5b607f0cc3422b497bbef
|
| 3 |
+
size 2685726704
|
model.safetensors-00012-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5ee3bc0d7e15e834216e7892159bf0b06cfffff333222c692738d2f17f26bb7f
|
| 3 |
+
size 2685725168
|
model.safetensors-00013-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ac2253e48d3032029e0521167c41a569828b208eca24dfb7b7a9eaa97a3a922f
|
| 3 |
+
size 2969566864
|
model.safetensors-00014-of-00014.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3fa69cdf2fb0cc23790c99b803c6660084e7eddb73fce538244dd6d8abb928ab
|
| 3 |
+
size 455742024
|
model.safetensors.index.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
preprocessor_config.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"do_convert_rgb": true,
|
| 3 |
+
"do_normalize": true,
|
| 4 |
+
"do_rescale": true,
|
| 5 |
+
"do_resize": true,
|
| 6 |
+
"image_mean": [
|
| 7 |
+
0.5,
|
| 8 |
+
0.5,
|
| 9 |
+
0.5
|
| 10 |
+
],
|
| 11 |
+
"image_processor_type": "Qwen2VLImageProcessor",
|
| 12 |
+
"image_std": [
|
| 13 |
+
0.5,
|
| 14 |
+
0.5,
|
| 15 |
+
0.5
|
| 16 |
+
],
|
| 17 |
+
"merge_size": 2,
|
| 18 |
+
"patch_size": 16,
|
| 19 |
+
"resample": 3,
|
| 20 |
+
"rescale_factor": 0.00392156862745098,
|
| 21 |
+
"size": {
|
| 22 |
+
"longest_edge": 16777216,
|
| 23 |
+
"shortest_edge": 65536
|
| 24 |
+
},
|
| 25 |
+
"temporal_patch_size": 2
|
| 26 |
+
}
|
tokenizer.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523
|
| 3 |
+
size 19989325
|
tokenizer_config.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_prefix_space": false,
|
| 3 |
+
"audio_bos_token": "<|audio_start|>",
|
| 4 |
+
"audio_eos_token": "<|audio_end|>",
|
| 5 |
+
"audio_token": "<|audio_pad|>",
|
| 6 |
+
"backend": "tokenizers",
|
| 7 |
+
"bos_token": null,
|
| 8 |
+
"clean_up_tokenization_spaces": false,
|
| 9 |
+
"eos_token": "<|im_end|>",
|
| 10 |
+
"errors": "replace",
|
| 11 |
+
"image_token": "<|image_pad|>",
|
| 12 |
+
"is_local": true,
|
| 13 |
+
"local_files_only": false,
|
| 14 |
+
"model_max_length": 262144,
|
| 15 |
+
"model_specific_special_tokens": {
|
| 16 |
+
"audio_bos_token": "<|audio_start|>",
|
| 17 |
+
"audio_eos_token": "<|audio_end|>",
|
| 18 |
+
"audio_token": "<|audio_pad|>",
|
| 19 |
+
"image_token": "<|image_pad|>",
|
| 20 |
+
"video_token": "<|video_pad|>",
|
| 21 |
+
"vision_bos_token": "<|vision_start|>",
|
| 22 |
+
"vision_eos_token": "<|vision_end|>"
|
| 23 |
+
},
|
| 24 |
+
"pad_token": "<|endoftext|>",
|
| 25 |
+
"pretokenize_regex": "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?[\\p{L}\\p{M}]+|\\p{N}| ?[^\\s\\p{L}\\p{M}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+",
|
| 26 |
+
"split_special_tokens": false,
|
| 27 |
+
"tokenizer_class": "Qwen2Tokenizer",
|
| 28 |
+
"unk_token": null,
|
| 29 |
+
"video_token": "<|video_pad|>",
|
| 30 |
+
"vision_bos_token": "<|vision_start|>",
|
| 31 |
+
"vision_eos_token": "<|vision_end|>",
|
| 32 |
+
"processor_class": "Qwen3VLProcessor"
|
| 33 |
+
}
|