sie-server 0.8.3__tar.gz → 0.9.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (778) hide show
  1. {sie_server-0.8.3 → sie_server-0.9.0}/PKG-INFO +4 -1
  2. sie_server-0.9.0/README.md +648 -0
  3. {sie_server-0.8.3 → sie_server-0.9.0}/bundles/transformers5.yaml +16 -0
  4. {sie_server-0.8.3 → sie_server-0.9.0}/models/Alibaba-NLP__gte-modernbert-base.yaml +6 -1
  5. {sie_server-0.8.3 → sie_server-0.9.0}/models/Alibaba-NLP__gte-reranker-modernbert-base.yaml +1 -0
  6. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3.8-27B-FP8.yaml +71 -3
  7. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__madlad400-3b-mt.yaml +5 -5
  8. {sie_server-0.8.3 → sie_server-0.9.0}/models/ibm-granite__granite-embedding-97m-multilingual-r2.yaml +2 -1
  9. {sie_server-0.8.3 → sie_server-0.9.0}/models/ibm-granite__granite-embedding-small-english-r2.yaml +6 -1
  10. sie_server-0.9.0/models/knowledgator__gliclass-base-v1.0-lw.yaml +29 -0
  11. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliclass-base-v1.0.yaml +1 -1
  12. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliclass-base-v3.0.yaml +4 -1
  13. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliclass-edge-v3.0.yaml +1 -1
  14. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliclass-instruct-base-v1.0.yaml +4 -1
  15. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliclass-instruct-edge-v1.0.yaml +1 -1
  16. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliclass-instruct-large-v1.0.yaml +4 -1
  17. sie_server-0.9.0/models/knowledgator__gliclass-large-v1.0-lw.yaml +29 -0
  18. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliclass-large-v1.0.yaml +1 -1
  19. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliclass-large-v3.0.yaml +4 -1
  20. sie_server-0.9.0/models/knowledgator__gliclass-modern-base-v3.0.yaml +30 -0
  21. sie_server-0.9.0/models/knowledgator__gliclass-modern-large-v3.0.yaml +30 -0
  22. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliclass-multilang-edge.yaml +2 -1
  23. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliclass-multilang-mini.yaml +1 -1
  24. sie_server-0.9.0/models/knowledgator__gliclass-multilang-ultra.yaml +29 -0
  25. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliclass-small-v1.0.yaml +4 -1
  26. {sie_server-0.8.3 → sie_server-0.9.0}/models/lightonai__GTE-ModernColBERT-v1.yaml +1 -0
  27. {sie_server-0.8.3 → sie_server-0.9.0}/models/lightonai__Reason-ModernColBERT.yaml +3 -0
  28. {sie_server-0.8.3 → sie_server-0.9.0}/models/lightonai__mLateOn.yaml +3 -0
  29. {sie_server-0.8.3 → sie_server-0.9.0}/models/mixedbread-ai__mxbai-edge-colbert-v0-32m.yaml +1 -0
  30. {sie_server-0.8.3 → sie_server-0.9.0}/models/nomic-ai__modernbert-embed-base.yaml +8 -1
  31. sie_server-0.9.0/models/tencent__Hy-MT2-1.8B.yaml +44 -0
  32. {sie_server-0.8.3 → sie_server-0.9.0}/models/topk-io__Iso-ModernColBERT.yaml +16 -2
  33. sie_server-0.9.0/models/topk-io__topk-embed-v1-small.yaml +56 -0
  34. sie_server-0.9.0/models/topk-io__topk-embed-v1-xsmall.yaml +58 -0
  35. {sie_server-0.8.3 → sie_server-0.9.0}/openapi.json +78 -17
  36. {sie_server-0.8.3 → sie_server-0.9.0}/pyproject.toml +7 -1
  37. sie_server-0.9.0/scripts/generate_topk_embed_goldens.py +220 -0
  38. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapter_call_loop.py +5 -1
  39. sie_server-0.9.0/src/sie_server/adapters/_cuda_graphs.py +70 -0
  40. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_generation_base.py +8 -0
  41. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_modernbert_flash.py +35 -5
  42. sie_server-0.9.0/src/sie_server/adapters/_modernbert_flash_graphs.py +723 -0
  43. sie_server-0.9.0/src/sie_server/adapters/_packed_rope.py +133 -0
  44. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/base.py +10 -0
  45. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/colbert_modernbert_flash/adapter.py +112 -23
  46. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/ctranslate2/generation.py +19 -6
  47. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliclass/__init__.py +225 -77
  48. sie_server-0.9.0/src/sie_server/adapters/gliclass/cuda_graphs.py +746 -0
  49. sie_server-0.9.0/src/sie_server/adapters/gliclass/modernbert_flash.py +231 -0
  50. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/mlx/_server.py +3 -1
  51. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/mlx/generation.py +30 -4
  52. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/modernbert_flash/__init__.py +126 -29
  53. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/modernbert_flash_cross_encoder/__init__.py +148 -49
  54. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/qwen2_flash_cross_encoder/adapter.py +52 -8
  55. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sglang/_server.py +34 -8
  56. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sglang/embedding.py +5 -13
  57. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sglang/generation.py +32 -14
  58. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/tensorrt_llm/_server.py +3 -1
  59. sie_server-0.9.0/src/sie_server/adapters/topk_embed/_vision_rotary_kernel.py +47 -0
  60. sie_server-0.9.0/src/sie_server/adapters/topk_embed/adapter.py +1077 -0
  61. sie_server-0.9.0/src/sie_server/adapters/topk_embed/graphs.py +466 -0
  62. sie_server-0.9.0/src/sie_server/adapters/topk_embed/packed.py +463 -0
  63. sie_server-0.9.0/src/sie_server/adapters/topk_embed/vision_rotary.py +74 -0
  64. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/encode.py +1 -34
  65. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/generate.py +54 -13
  66. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/helpers.py +42 -0
  67. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/openai_compat.py +72 -98
  68. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/openai_completions.py +27 -8
  69. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/openai_local.py +130 -3
  70. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/openai_responses.py +21 -7
  71. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/score.py +8 -1
  72. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/ws.py +144 -39
  73. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/app/app_factory.py +3 -0
  74. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/app/app_state_config.py +13 -0
  75. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/bundle_requirements.py +1 -1
  76. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/cli.py +25 -0
  77. sie_server-0.9.0/src/sie_server/config/upstreams.py +221 -0
  78. sie_server-0.9.0/src/sie_server/core/grammar_routing.py +172 -0
  79. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/inference_output.py +19 -0
  80. sie_server-0.9.0/src/sie_server/core/load_errors.py +348 -0
  81. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/model_loader.py +7 -6
  82. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/registry.py +469 -293
  83. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/runtime_options.py +161 -3
  84. sie_server-0.9.0/src/sie_server/core/upstream_client.py +57 -0
  85. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/worker/handlers/score.py +14 -0
  86. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/ipc_types.py +13 -0
  87. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/local_ingest_client.py +81 -3
  88. sie_server-0.9.0/src/sie_server/observability/batch_fanin.py +86 -0
  89. sie_server-0.9.0/src/sie_server/observability/lifecycle.py +180 -0
  90. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/observability/tracing.py +5 -1
  91. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/observability/worker_telemetry.py +1 -0
  92. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/processors/streaming.py +53 -12
  93. sie_server-0.9.0/src/sie_server/processors/strict_grammar.py +319 -0
  94. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/processors/tool_call_parser.py +2 -0
  95. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/queue_executor.py +198 -28
  96. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/types/grammar.py +6 -3
  97. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/types/openapi.py +50 -3
  98. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/types/responses.py +13 -0
  99. sie_server-0.9.0/tests/adapters/goldens/topk_embed/topk-io__topk-embed-v1-small.json +149 -0
  100. sie_server-0.9.0/tests/adapters/goldens/topk_embed/topk-io__topk-embed-v1-xsmall.json +149 -0
  101. sie_server-0.9.0/tests/adapters/test_colbert_modernbert_flash_batch_invariance.py +221 -0
  102. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_ctranslate2_generation.py +47 -0
  103. sie_server-0.9.0/tests/adapters/test_gliclass_cuda_graphs.py +888 -0
  104. sie_server-0.9.0/tests/adapters/test_gliclass_modernbert_flash.py +573 -0
  105. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliclass_overflow_policy.py +22 -14
  106. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliclass_parity.py +72 -9
  107. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliclass_request_options.py +179 -4
  108. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_mlx_generation.py +43 -1
  109. sie_server-0.9.0/tests/adapters/test_modernbert_flash_graphs.py +867 -0
  110. sie_server-0.9.0/tests/adapters/test_modernbert_flash_rope.py +225 -0
  111. sie_server-0.9.0/tests/adapters/test_packed_rope.py +108 -0
  112. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_qwen2_flash_cross_encoder.py +70 -0
  113. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_sglang_generation.py +105 -0
  114. sie_server-0.9.0/tests/adapters/test_topk_embed.py +407 -0
  115. sie_server-0.9.0/tests/adapters/test_topk_embed_graphs.py +378 -0
  116. sie_server-0.9.0/tests/adapters/test_topk_embed_overlap.py +107 -0
  117. sie_server-0.9.0/tests/adapters/test_topk_embed_packed.py +327 -0
  118. sie_server-0.9.0/tests/adapters/test_topk_embed_parity.py +148 -0
  119. sie_server-0.9.0/tests/adapters/test_topk_embed_vision_rotary.py +40 -0
  120. sie_server-0.9.0/tests/adapters/test_topk_embed_warmup.py +131 -0
  121. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_generate.py +317 -1
  122. sie_server-0.9.0/tests/api/test_generation_timeouts.py +164 -0
  123. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_openai_compat.py +276 -5
  124. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_openai_completions.py +28 -0
  125. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_openai_local.py +273 -0
  126. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_openai_responses.py +19 -0
  127. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_score.py +31 -0
  128. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_generation_mode_profiles.py +2 -0
  129. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_gte_modern_colbert_profiles.py +1 -1
  130. sie_server-0.9.0/tests/config/test_iso_moderncolbert_profiles.py +54 -0
  131. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_qwen38_generation_profiles.py +33 -0
  132. sie_server-0.9.0/tests/config/test_upstreams.py +211 -0
  133. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_visual_muvera_containment.py +2 -0
  134. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_bundle_requirements.py +2 -2
  135. sie_server-0.9.0/tests/core/test_grammar_routing.py +70 -0
  136. sie_server-0.9.0/tests/core/test_load_error_classification.py +365 -0
  137. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_registry_async.py +46 -0
  138. sie_server-0.9.0/tests/core/test_registry_engine_exit.py +326 -0
  139. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_registry_failed_state.py +28 -2
  140. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_runtime_options.py +175 -0
  141. sie_server-0.9.0/tests/core/test_upstream_client.py +135 -0
  142. {sie_server-0.8.3 → sie_server-0.9.0}/tests/fake_stack/test_registry_races.py +16 -15
  143. sie_server-0.9.0/tests/fake_stack/test_registry_serving_isolation.py +225 -0
  144. sie_server-0.9.0/tests/observability/test_batch_fanin.py +102 -0
  145. sie_server-0.9.0/tests/observability/test_lifecycle.py +174 -0
  146. {sie_server-0.8.3 → sie_server-0.9.0}/tests/observability/test_worker_telemetry.py +7 -0
  147. {sie_server-0.8.3 → sie_server-0.9.0}/tests/processors/test_streaming.py +210 -0
  148. sie_server-0.9.0/tests/processors/test_strict_grammar.py +451 -0
  149. {sie_server-0.8.3 → sie_server-0.9.0}/tests/processors/test_tool_call_parser.py +2 -0
  150. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_all_models.py +87 -17
  151. sie_server-0.9.0/tests/test_all_models_assertions.py +51 -0
  152. sie_server-0.9.0/tests/test_cli_upstreams.py +87 -0
  153. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_ipc_server.py +549 -5
  154. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_local_ingest_client.py +99 -1
  155. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_metering_units.py +58 -0
  156. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_queue_executor.py +42 -4
  157. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_queue_executor_stage1d.py +71 -0
  158. sie_server-0.9.0/tests/type_defs/__init__.py +0 -0
  159. sie_server-0.8.3/README.md +0 -273
  160. sie_server-0.8.3/src/sie_server/adapters/gliclass/cuda_graphs.py +0 -463
  161. sie_server-0.8.3/src/sie_server/core/load_errors.py +0 -246
  162. sie_server-0.8.3/tests/adapters/test_gliclass_cuda_graphs.py +0 -571
  163. {sie_server-0.8.3 → sie_server-0.9.0}/.gitignore +0 -0
  164. {sie_server-0.8.3 → sie_server-0.9.0}/CONTRIBUTING.md +0 -0
  165. {sie_server-0.8.3 → sie_server-0.9.0}/Dockerfile.cpu +0 -0
  166. {sie_server-0.8.3 → sie_server-0.9.0}/Dockerfile.cuda12 +0 -0
  167. {sie_server-0.8.3 → sie_server-0.9.0}/Dockerfile.cuda13 +0 -0
  168. {sie_server-0.8.3 → sie_server-0.9.0}/LICENSE +0 -0
  169. {sie_server-0.8.3 → sie_server-0.9.0}/bundles/candle.yaml +0 -0
  170. {sie_server-0.8.3 → sie_server-0.9.0}/bundles/ctranslate2.yaml +0 -0
  171. {sie_server-0.8.3 → sie_server-0.9.0}/bundles/default.yaml +0 -0
  172. {sie_server-0.8.3 → sie_server-0.9.0}/bundles/fake.yaml +0 -0
  173. {sie_server-0.8.3 → sie_server-0.9.0}/bundles/sglang-cu130.yaml +0 -0
  174. {sie_server-0.8.3 → sie_server-0.9.0}/bundles/sglang-embedding.yaml +0 -0
  175. {sie_server-0.8.3 → sie_server-0.9.0}/bundles/sglang-vision-extract.yaml +0 -0
  176. {sie_server-0.8.3 → sie_server-0.9.0}/bundles/sglang.yaml +0 -0
  177. {sie_server-0.8.3 → sie_server-0.9.0}/bundles/tensorrt-llm.yaml +0 -0
  178. {sie_server-0.8.3 → sie_server-0.9.0}/models/Alibaba-NLP__gte-Qwen2-1.5B-instruct.yaml +0 -0
  179. {sie_server-0.8.3 → sie_server-0.9.0}/models/Alibaba-NLP__gte-Qwen2-7B-instruct.yaml +0 -0
  180. {sie_server-0.8.3 → sie_server-0.9.0}/models/Alibaba-NLP__gte-multilingual-base.yaml +0 -0
  181. {sie_server-0.8.3 → sie_server-0.9.0}/models/BAAI__bge-base-en-v1.5.yaml +0 -0
  182. {sie_server-0.8.3 → sie_server-0.9.0}/models/BAAI__bge-large-en-v1.5.yaml +0 -0
  183. {sie_server-0.8.3 → sie_server-0.9.0}/models/BAAI__bge-m3.yaml +0 -0
  184. {sie_server-0.8.3 → sie_server-0.9.0}/models/BAAI__bge-reranker-base.yaml +0 -0
  185. {sie_server-0.8.3 → sie_server-0.9.0}/models/BAAI__bge-reranker-large.yaml +0 -0
  186. {sie_server-0.8.3 → sie_server-0.9.0}/models/BAAI__bge-reranker-v2-m3.yaml +0 -0
  187. {sie_server-0.8.3 → sie_server-0.9.0}/models/BAAI__bge-small-en-v1.5.yaml +0 -0
  188. {sie_server-0.8.3 → sie_server-0.9.0}/models/BAAI__bge-small-zh-v1.5.yaml +0 -0
  189. {sie_server-0.8.3 → sie_server-0.9.0}/models/EmergentMethods__gliner_large_news-v2.1.yaml +0 -0
  190. {sie_server-0.8.3 → sie_server-0.9.0}/models/GritLM__GritLM-7B.yaml +0 -0
  191. {sie_server-0.8.3 → sie_server-0.9.0}/models/IDEA-Research__grounding-dino-base.yaml +0 -0
  192. {sie_server-0.8.3 → sie_server-0.9.0}/models/IDEA-Research__grounding-dino-tiny.yaml +0 -0
  193. {sie_server-0.8.3 → sie_server-0.9.0}/models/Ihor__gliner-biomed-large-v1.0.yaml +0 -0
  194. {sie_server-0.8.3 → sie_server-0.9.0}/models/Linq-AI-Research__Linq-Embed-Mistral.yaml +0 -0
  195. {sie_server-0.8.3 → sie_server-0.9.0}/models/Marqo__marqo-ecommerce-embeddings-B.yaml +0 -0
  196. {sie_server-0.8.3 → sie_server-0.9.0}/models/Marqo__marqo-fashionSigLIP.yaml +0 -0
  197. {sie_server-0.8.3 → sie_server-0.9.0}/models/MoritzLaurer__ModernBERT-base-zeroshot-v2.0.yaml +0 -0
  198. {sie_server-0.8.3 → sie_server-0.9.0}/models/MoritzLaurer__deberta-v3-base-zeroshot-v2.0.yaml +0 -0
  199. {sie_server-0.8.3 → sie_server-0.9.0}/models/MoritzLaurer__deberta-v3-large-zeroshot-v2.0.yaml +0 -0
  200. {sie_server-0.8.3 → sie_server-0.9.0}/models/NeuML__gliner-bert-tiny.yaml +0 -0
  201. {sie_server-0.8.3 → sie_server-0.9.0}/models/NovaSearch__stella_en_1.5B_v5.yaml +0 -0
  202. {sie_server-0.8.3 → sie_server-0.9.0}/models/NovaSearch__stella_en_400M_v5.yaml +0 -0
  203. {sie_server-0.8.3 → sie_server-0.9.0}/models/PaddlePaddle__PaddleOCR-VL-1.5.yaml +0 -0
  204. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3-0.6B.yaml +0 -0
  205. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3-4B-Instruct-2507.yaml +0 -0
  206. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3-Embedding-0.6B.yaml +0 -0
  207. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3-Embedding-4B.yaml +0 -0
  208. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3-Embedding-8B.yaml +0 -0
  209. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3-Reranker-0.6B.yaml +0 -0
  210. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3-Reranker-4B.yaml +0 -0
  211. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3-VL-8B-Instruct.yaml +0 -0
  212. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3-VL-Embedding-2B.yaml +0 -0
  213. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3-VL-Reranker-2B.yaml +0 -0
  214. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3.5-4B.yaml +0 -0
  215. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3.6-27B.yaml +0 -0
  216. {sie_server-0.8.3 → sie_server-0.9.0}/models/Qwen__Qwen3.6-35B-A3B.yaml +0 -0
  217. {sie_server-0.8.3 → sie_server-0.9.0}/models/Salesforce__SFR-Embedding-2_R.yaml +0 -0
  218. {sie_server-0.8.3 → sie_server-0.9.0}/models/Salesforce__SFR-Embedding-Mistral.yaml +0 -0
  219. {sie_server-0.8.3 → sie_server-0.9.0}/models/Snowflake__snowflake-arctic-embed-l-v2.0.yaml +0 -0
  220. {sie_server-0.8.3 → sie_server-0.9.0}/models/Snowflake__snowflake-arctic-embed-m-v2.0.yaml +0 -0
  221. {sie_server-0.8.3 → sie_server-0.9.0}/models/Snowflake__snowflake-arctic-embed-s.yaml +0 -0
  222. {sie_server-0.8.3 → sie_server-0.9.0}/models/TomoroAI__tomoro-colqwen3-embed-4b.yaml +0 -0
  223. {sie_server-0.8.3 → sie_server-0.9.0}/models/WhereIsAI__UAE-Large-V1.yaml +0 -0
  224. {sie_server-0.8.3 → sie_server-0.9.0}/models/answerdotai__ModernBERT-base.yaml +0 -0
  225. {sie_server-0.8.3 → sie_server-0.9.0}/models/answerdotai__ModernBERT-large.yaml +0 -0
  226. {sie_server-0.8.3 → sie_server-0.9.0}/models/answerdotai__answerai-colbert-small-v1.yaml +0 -0
  227. {sie_server-0.8.3 → sie_server-0.9.0}/models/colbert-ir__colbertv2.0.yaml +0 -0
  228. {sie_server-0.8.3 → sie_server-0.9.0}/models/convaiinnovations__laya-multilingual.yaml +0 -0
  229. {sie_server-0.8.3 → sie_server-0.9.0}/models/convaiinnovations__laya-typed-decisions.yaml +0 -0
  230. {sie_server-0.8.3 → sie_server-0.9.0}/models/convaiinnovations__laya.yaml +0 -0
  231. {sie_server-0.8.3 → sie_server-0.9.0}/models/cross-encoder__ms-marco-MiniLM-L-12-v2.yaml +0 -0
  232. {sie_server-0.8.3 → sie_server-0.9.0}/models/cross-encoder__ms-marco-MiniLM-L-6-v2.yaml +0 -0
  233. {sie_server-0.8.3 → sie_server-0.9.0}/models/cross-encoder__nli-deberta-v3-base.yaml +0 -0
  234. {sie_server-0.8.3 → sie_server-0.9.0}/models/defog__sqlcoder-7b-2.yaml +0 -0
  235. {sie_server-0.8.3 → sie_server-0.9.0}/models/docling.yaml +0 -0
  236. {sie_server-0.8.3 → sie_server-0.9.0}/models/facebook__bart-large-mnli.yaml +0 -0
  237. {sie_server-0.8.3 → sie_server-0.9.0}/models/fastino__GLiNER2.5-Decide-1B.yaml +0 -0
  238. {sie_server-0.8.3 → sie_server-0.9.0}/models/fastino__GLiNER2.5-Decide.yaml +0 -0
  239. {sie_server-0.8.3 → sie_server-0.9.0}/models/fastino__GLiNER2.5-multi-Decide.yaml +0 -0
  240. {sie_server-0.8.3 → sie_server-0.9.0}/models/fastino__gliguard-LLMGuardrails-300M.yaml +0 -0
  241. {sie_server-0.8.3 → sie_server-0.9.0}/models/fastino__gliner2-base-v1.yaml +0 -0
  242. {sie_server-0.8.3 → sie_server-0.9.0}/models/fastino__gliner2-large-v1.yaml +0 -0
  243. {sie_server-0.8.3 → sie_server-0.9.0}/models/gliner-community__gliner_large-v2.5.yaml +0 -0
  244. {sie_server-0.8.3 → sie_server-0.9.0}/models/gliner-community__gliner_medium-v2.5.yaml +0 -0
  245. {sie_server-0.8.3 → sie_server-0.9.0}/models/gliner-community__gliner_small-v2.5.yaml +0 -0
  246. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__embeddinggemma-300m.yaml +0 -0
  247. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__gemma-4-26B-A4B-it.yaml +0 -0
  248. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__gemma-4-31B-it.yaml +0 -0
  249. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__gemma-4-E2B-it.yaml +0 -0
  250. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__gemma-4-E4B-it.yaml +0 -0
  251. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__owlv2-base-patch16-ensemble.yaml +0 -0
  252. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__owlv2-large-patch14-ensemble.yaml +0 -0
  253. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__siglip-base-patch16-256.yaml +0 -0
  254. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__siglip-so400m-patch14-224.yaml +0 -0
  255. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__siglip-so400m-patch14-384.yaml +0 -0
  256. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__siglip2-base-patch16-224.yaml +0 -0
  257. {sie_server-0.8.3 → sie_server-0.9.0}/models/google__translategemma-4b-it.yaml +0 -0
  258. {sie_server-0.8.3 → sie_server-0.9.0}/models/ibm-granite__granite-embedding-30m-sparse.yaml +0 -0
  259. {sie_server-0.8.3 → sie_server-0.9.0}/models/ibm-granite__granite-embedding-english-r2.yaml +0 -0
  260. {sie_server-0.8.3 → sie_server-0.9.0}/models/ibm-granite__granite-guardian-3.0-2b.yaml +0 -0
  261. {sie_server-0.8.3 → sie_server-0.9.0}/models/intfloat__e5-base-v2.yaml +0 -0
  262. {sie_server-0.8.3 → sie_server-0.9.0}/models/intfloat__e5-large-v2.yaml +0 -0
  263. {sie_server-0.8.3 → sie_server-0.9.0}/models/intfloat__e5-mistral-7b-instruct.yaml +0 -0
  264. {sie_server-0.8.3 → sie_server-0.9.0}/models/intfloat__e5-small-v2.yaml +0 -0
  265. {sie_server-0.8.3 → sie_server-0.9.0}/models/intfloat__multilingual-e5-large-instruct.yaml +0 -0
  266. {sie_server-0.8.3 → sie_server-0.9.0}/models/intfloat__multilingual-e5-large.yaml +0 -0
  267. {sie_server-0.8.3 → sie_server-0.9.0}/models/intfloat__multilingual-e5-small.yaml +0 -0
  268. {sie_server-0.8.3 → sie_server-0.9.0}/models/jackboyla__glirel-large-v0.yaml +0 -0
  269. {sie_server-0.8.3 → sie_server-0.9.0}/models/jinaai__jina-colbert-v2.yaml +0 -0
  270. {sie_server-0.8.3 → sie_server-0.9.0}/models/jinaai__jina-embeddings-v2-base-code.yaml +0 -0
  271. {sie_server-0.8.3 → sie_server-0.9.0}/models/jinaai__jina-embeddings-v2-base-de.yaml +0 -0
  272. {sie_server-0.8.3 → sie_server-0.9.0}/models/jinaai__jina-embeddings-v2-base-en.yaml +0 -0
  273. {sie_server-0.8.3 → sie_server-0.9.0}/models/jinaai__jina-embeddings-v2-base-es.yaml +0 -0
  274. {sie_server-0.8.3 → sie_server-0.9.0}/models/jinaai__jina-embeddings-v2-base-zh.yaml +0 -0
  275. {sie_server-0.8.3 → sie_server-0.9.0}/models/jinaai__jina-embeddings-v2-small-en.yaml +0 -0
  276. {sie_server-0.8.3 → sie_server-0.9.0}/models/jinaai__jina-reranker-v2-base-multilingual.yaml +0 -0
  277. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliformer-base-v1.yaml +0 -0
  278. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliformer-large-v1.yaml +0 -0
  279. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliner-bi-base-v2.0.yaml +0 -0
  280. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliner-bi-edge-v2.0.yaml +0 -0
  281. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliner-bi-large-v2.0.yaml +0 -0
  282. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliner-bi-small-v2.0.yaml +0 -0
  283. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliner-pii-base-v1.0.yaml +0 -0
  284. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliner-pii-edge-v1.0.yaml +0 -0
  285. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliner-pii-large-v1.0.yaml +0 -0
  286. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliner-pii-small-v1.0.yaml +0 -0
  287. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__gliner-relex-large-v1.0.yaml +0 -0
  288. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__modern-gliner-bi-base-v1.0.yaml +0 -0
  289. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__opir-edge-multilang-v1.0.yaml +0 -0
  290. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__opir-edge-v1.0.yaml +0 -0
  291. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__opir-multitask-large-v1.0.yaml +0 -0
  292. {sie_server-0.8.3 → sie_server-0.9.0}/models/knowledgator__opir-multitask-multilang-v1.0.yaml +0 -0
  293. {sie_server-0.8.3 → sie_server-0.9.0}/models/laion__CLIP-ViT-B-32-laion2B-s34B-b79K.yaml +0 -0
  294. {sie_server-0.8.3 → sie_server-0.9.0}/models/laion__CLIP-ViT-H-14-laion2B-s32B-b79K.yaml +0 -0
  295. {sie_server-0.8.3 → sie_server-0.9.0}/models/lightonai__LightOnOCR-2-1B.yaml +0 -0
  296. {sie_server-0.8.3 → sie_server-0.9.0}/models/microsoft__Florence-2-base-ft.yaml +0 -0
  297. {sie_server-0.8.3 → sie_server-0.9.0}/models/microsoft__Florence-2-base.yaml +0 -0
  298. {sie_server-0.8.3 → sie_server-0.9.0}/models/microsoft__Florence-2-large.yaml +0 -0
  299. {sie_server-0.8.3 → sie_server-0.9.0}/models/mixedbread-ai__mxbai-colbert-large-v1.yaml +0 -0
  300. {sie_server-0.8.3 → sie_server-0.9.0}/models/mixedbread-ai__mxbai-embed-large-v1.yaml +0 -0
  301. {sie_server-0.8.3 → sie_server-0.9.0}/models/mixedbread-ai__mxbai-rerank-base-v2.yaml +0 -0
  302. {sie_server-0.8.3 → sie_server-0.9.0}/models/mixedbread-ai__mxbai-rerank-large-v2.yaml +0 -0
  303. {sie_server-0.8.3 → sie_server-0.9.0}/models/mynkchaudhry__Florence-2-FT-DocVQA.yaml +0 -0
  304. {sie_server-0.8.3 → sie_server-0.9.0}/models/naver-clova-ix__donut-base-finetuned-cord-v2.yaml +0 -0
  305. {sie_server-0.8.3 → sie_server-0.9.0}/models/naver-clova-ix__donut-base-finetuned-docvqa.yaml +0 -0
  306. {sie_server-0.8.3 → sie_server-0.9.0}/models/naver__splade-cocondenser-selfdistil.yaml +0 -0
  307. {sie_server-0.8.3 → sie_server-0.9.0}/models/naver__splade-v3.yaml +0 -0
  308. {sie_server-0.8.3 → sie_server-0.9.0}/models/naver__v-splade-quality.yaml +0 -0
  309. {sie_server-0.8.3 → sie_server-0.9.0}/models/nomic-ai__nomic-embed-text-v1.5.yaml +0 -0
  310. {sie_server-0.8.3 → sie_server-0.9.0}/models/nomic-ai__nomic-embed-text-v2-moe.yaml +0 -0
  311. {sie_server-0.8.3 → sie_server-0.9.0}/models/numind__NuNER_Zero-span.yaml +0 -0
  312. {sie_server-0.8.3 → sie_server-0.9.0}/models/numind__NuNER_Zero.yaml +0 -0
  313. {sie_server-0.8.3 → sie_server-0.9.0}/models/nvidia__NV-Embed-v2.yaml +0 -0
  314. {sie_server-0.8.3 → sie_server-0.9.0}/models/nvidia__llama-embed-nemotron-8b.yaml +0 -0
  315. {sie_server-0.8.3 → sie_server-0.9.0}/models/nvidia__llama-nemoretriever-colembed-3b-v1.yaml +0 -0
  316. {sie_server-0.8.3 → sie_server-0.9.0}/models/nvidia__nemotron-colembed-vl-4b-v2.yaml +0 -0
  317. {sie_server-0.8.3 → sie_server-0.9.0}/models/openai__clip-vit-base-patch32.yaml +0 -0
  318. {sie_server-0.8.3 → sie_server-0.9.0}/models/openai__clip-vit-large-patch14.yaml +0 -0
  319. {sie_server-0.8.3 → sie_server-0.9.0}/models/openai__whisper-large-v3-turbo.yaml +0 -0
  320. {sie_server-0.8.3 → sie_server-0.9.0}/models/opendatalab__MinerU2.5-Pro-2604-1.2B.yaml +0 -0
  321. {sie_server-0.8.3 → sie_server-0.9.0}/models/opensearch-project__opensearch-neural-sparse-encoding-doc-v2-distill.yaml +0 -0
  322. {sie_server-0.8.3 → sie_server-0.9.0}/models/opensearch-project__opensearch-neural-sparse-encoding-doc-v2-mini.yaml +0 -0
  323. {sie_server-0.8.3 → sie_server-0.9.0}/models/opensearch-project__opensearch-neural-sparse-encoding-doc-v3-distill.yaml +0 -0
  324. {sie_server-0.8.3 → sie_server-0.9.0}/models/opensearch-project__opensearch-neural-sparse-encoding-doc-v3-gte.yaml +0 -0
  325. {sie_server-0.8.3 → sie_server-0.9.0}/models/opensearch-project__opensearch-neural-sparse-encoding-v1.yaml +0 -0
  326. {sie_server-0.8.3 → sie_server-0.9.0}/models/opensearch-project__opensearch-neural-sparse-encoding-v2-distill.yaml +0 -0
  327. {sie_server-0.8.3 → sie_server-0.9.0}/models/prithivida__Splade_PP_en_v2.yaml +0 -0
  328. {sie_server-0.8.3 → sie_server-0.9.0}/models/rasyosef__splade-mini.yaml +0 -0
  329. {sie_server-0.8.3 → sie_server-0.9.0}/models/sentence-transformers__all-MiniLM-L6-v2.yaml +0 -0
  330. {sie_server-0.8.3 → sie_server-0.9.0}/models/sie-fake.yaml +0 -0
  331. {sie_server-0.8.3 → sie_server-0.9.0}/models/sugiv__stablebridge-pruner-highlighter.yaml +0 -0
  332. {sie_server-0.8.3 → sie_server-0.9.0}/models/tencent__R3-embedding-0.6b.yaml +0 -0
  333. {sie_server-0.8.3 → sie_server-0.9.0}/models/tencent__R3-rerank-0.6b.yaml +0 -0
  334. {sie_server-0.8.3 → sie_server-0.9.0}/models/thenlper__gte-base.yaml +0 -0
  335. {sie_server-0.8.3 → sie_server-0.9.0}/models/thenlper__gte-large.yaml +0 -0
  336. {sie_server-0.8.3 → sie_server-0.9.0}/models/thenlper__gte-small.yaml +0 -0
  337. {sie_server-0.8.3 → sie_server-0.9.0}/models/urchade__gliner_large-v2.1.yaml +0 -0
  338. {sie_server-0.8.3 → sie_server-0.9.0}/models/urchade__gliner_medium-v2.1.yaml +0 -0
  339. {sie_server-0.8.3 → sie_server-0.9.0}/models/urchade__gliner_multi-v2.1.yaml +0 -0
  340. {sie_server-0.8.3 → sie_server-0.9.0}/models/urchade__gliner_multi_pii-v1.yaml +0 -0
  341. {sie_server-0.8.3 → sie_server-0.9.0}/models/urchade__gliner_small-v2.1.yaml +0 -0
  342. {sie_server-0.8.3 → sie_server-0.9.0}/models/vidore__colSmol-256M.yaml +0 -0
  343. {sie_server-0.8.3 → sie_server-0.9.0}/models/vidore__colpali-v1.3-hf.yaml +0 -0
  344. {sie_server-0.8.3 → sie_server-0.9.0}/models/vidore__colqwen2.5-v0.2.yaml +0 -0
  345. {sie_server-0.8.3 → sie_server-0.9.0}/models/zai-org__GLM-5.3-Flash.yaml +0 -0
  346. {sie_server-0.8.3 → sie_server-0.9.0}/models/zai-org__GLM-OCR.yaml +0 -0
  347. {sie_server-0.8.3 → sie_server-0.9.0}/scripts/generate_gliformer_goldens.py +0 -0
  348. {sie_server-0.8.3 → sie_server-0.9.0}/scripts/generate_gliner2_decide_goldens.py +0 -0
  349. {sie_server-0.8.3 → sie_server-0.9.0}/scripts/generate_laya_fixtures.py +0 -0
  350. {sie_server-0.8.3 → sie_server-0.9.0}/scripts/generate_tokenize_fixture.py +0 -0
  351. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/__init__.py +0 -0
  352. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/_ipc_test_harness.py +0 -0
  353. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/__init__.py +0 -0
  354. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_base_adapter.py +0 -0
  355. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_colbert_projection.py +0 -0
  356. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_colbert_utils.py +0 -0
  357. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_flash_base.py +0 -0
  358. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_flash_pack.py +0 -0
  359. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_multivector.py +0 -0
  360. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_prompt_limit.py +0 -0
  361. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_pylate_dense.py +0 -0
  362. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_spec.py +0 -0
  363. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_types.py +0 -0
  364. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_utils.py +0 -0
  365. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_vision_patch_embed.py +0 -0
  366. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/_word_window.py +0 -0
  367. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/bert_flash/__init__.py +0 -0
  368. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/bert_flash_cross_encoder/__init__.py +0 -0
  369. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/bge_m3/__init__.py +0 -0
  370. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/bge_m3_flag/__init__.py +0 -0
  371. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/bge_m3_flash/__init__.py +0 -0
  372. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/bge_m3_score_mixin.py +0 -0
  373. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/clip/__init__.py +0 -0
  374. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/colbert/__init__.py +0 -0
  375. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/colbert_modernbert_flash/__init__.py +0 -0
  376. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/colbert_rotary_flash/__init__.py +0 -0
  377. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/colpali/__init__.py +0 -0
  378. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/colqwen2/__init__.py +0 -0
  379. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/colqwen3/__init__.py +0 -0
  380. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/colsmol/__init__.py +0 -0
  381. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/cross_encoder/__init__.py +0 -0
  382. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/ctranslate2/__init__.py +0 -0
  383. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/docling/__init__.py +0 -0
  384. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/docling/adapter.py +0 -0
  385. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/donut/__init__.py +0 -0
  386. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/errors.py +0 -0
  387. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/fake/__init__.py +0 -0
  388. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/fake/adapter.py +0 -0
  389. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/florence2/__init__.py +0 -0
  390. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliformer/__init__.py +0 -0
  391. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliformer/adapter.py +0 -0
  392. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliformer/output_schema.py +0 -0
  393. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliformer/relation_decoding.py +0 -0
  394. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliformer/span_decoding.py +0 -0
  395. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliformer/structuring_decoding.py +0 -0
  396. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliner/__init__.py +0 -0
  397. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliner2/__init__.py +0 -0
  398. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliner2/adapter.py +0 -0
  399. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliner2/classification.py +0 -0
  400. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliner2/decide.py +0 -0
  401. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliner2/decisions.py +0 -0
  402. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliner2/words.py +0 -0
  403. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gliner_bi/__init__.py +0 -0
  404. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/glirel/__init__.py +0 -0
  405. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/glm_ocr/__init__.py +0 -0
  406. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/grounding_dino/__init__.py +0 -0
  407. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/grounding_dino/adapter.py +0 -0
  408. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/gte_sparse_flash/__init__.py +0 -0
  409. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/jina_flash_cross_encoder/__init__.py +0 -0
  410. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/laya/__init__.py +0 -0
  411. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/laya/adapter.py +0 -0
  412. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/laya/model.py +0 -0
  413. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/laya/questions.py +0 -0
  414. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/lighton_ocr/__init__.py +0 -0
  415. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/lighton_ocr/adapter.py +0 -0
  416. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/lora.py +0 -0
  417. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/mineru_vl/__init__.py +0 -0
  418. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/mlx/__init__.py +0 -0
  419. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/nemo_colembed/__init__.py +0 -0
  420. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/nli_classification/__init__.py +0 -0
  421. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/nli_classification_flash/__init__.py +0 -0
  422. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/nomic_flash/__init__.py +0 -0
  423. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/owlv2/__init__.py +0 -0
  424. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/owlv2/adapter.py +0 -0
  425. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/paddleocr_vl/__init__.py +0 -0
  426. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/peft_lora_mixin.py +0 -0
  427. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/pytorch_embedding/__init__.py +0 -0
  428. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/qwen2_flash/__init__.py +0 -0
  429. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/qwen2_flash_cross_encoder/__init__.py +0 -0
  430. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/qwen3_vl_embedding/__init__.py +0 -0
  431. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/qwen3_vl_reranker/__init__.py +0 -0
  432. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/qwen3_vl_reranker/adapter.py +0 -0
  433. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/rope_flash/__init__.py +0 -0
  434. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sentence_transformer/__init__.py +0 -0
  435. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sglang/__init__.py +0 -0
  436. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sglang/_compat/__init__.py +0 -0
  437. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sglang/_compat/sitecustomize.py +0 -0
  438. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sglang/cuda13.py +0 -0
  439. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sglang/gemma.py +0 -0
  440. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sglang_vision_extract/__init__.py +0 -0
  441. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sglang_vision_extract/_compat/__init__.py +0 -0
  442. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sglang_vision_extract/_compat/sitecustomize.py +0 -0
  443. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/sglang_vision_extract/adapter.py +0 -0
  444. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/siglip/__init__.py +0 -0
  445. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/siglip/adapter.py +0 -0
  446. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/splade_flash/__init__.py +0 -0
  447. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/splade_flash/adapter.py +0 -0
  448. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/st_sparse_vision/__init__.py +0 -0
  449. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/st_sparse_vision/adapter.py +0 -0
  450. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/stablebridge_pruner/__init__.py +0 -0
  451. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/tensorrt_llm/__init__.py +0 -0
  452. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/tensorrt_llm/_compat/__init__.py +0 -0
  453. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/tensorrt_llm/_compat/sitecustomize.py +0 -0
  454. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/tensorrt_llm/compat.py +0 -0
  455. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/tensorrt_llm/generation.py +0 -0
  456. {sie_server-0.8.3/src/sie_server/adapters/whisper → sie_server-0.9.0/src/sie_server/adapters/topk_embed}/__init__.py +0 -0
  457. {sie_server-0.8.3/src/sie_server/app → sie_server-0.9.0/src/sie_server/adapters/whisper}/__init__.py +0 -0
  458. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/whisper/adapter.py +0 -0
  459. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/adapters/xlm_roberta_flash/__init__.py +0 -0
  460. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/__init__.py +0 -0
  461. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/extract.py +0 -0
  462. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/health.py +0 -0
  463. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/models.py +0 -0
  464. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/openai_audio.py +0 -0
  465. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/openapi.py +0 -0
  466. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/options.py +0 -0
  467. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/root.py +0 -0
  468. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/serialization.py +0 -0
  469. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/api/validation.py +0 -0
  470. {sie_server-0.8.3/src/sie_server/config → sie_server-0.9.0/src/sie_server/app}/__init__.py +0 -0
  471. {sie_server-0.8.3/src/sie_server/health → sie_server-0.9.0/src/sie_server/config}/__init__.py +0 -0
  472. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/config/device_groups.py +0 -0
  473. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/config/engine.py +0 -0
  474. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/config/model.py +0 -0
  475. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/config/package_artifacts.py +0 -0
  476. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/config/serving_artifacts.py +0 -0
  477. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/__init__.py +0 -0
  478. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/adaptive_batching.py +0 -0
  479. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/batcher.py +0 -0
  480. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/deps.py +0 -0
  481. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/disk_cache.py +0 -0
  482. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/encode_pipeline.py +0 -0
  483. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/extract_cost.py +0 -0
  484. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/gpu_health.py +0 -0
  485. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/hf_env.py +0 -0
  486. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/hot_reload.py +0 -0
  487. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/inference.py +0 -0
  488. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/loader.py +0 -0
  489. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/logging.py +0 -0
  490. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/memory.py +0 -0
  491. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/model_suggestions.py +0 -0
  492. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/oom.py +0 -0
  493. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/pool_isolation.py +0 -0
  494. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/postprocessor.py +0 -0
  495. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/postprocessor_registry.py +0 -0
  496. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/prepared.py +0 -0
  497. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/preprocessor/__init__.py +0 -0
  498. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/preprocessor/audio.py +0 -0
  499. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/preprocessor/base.py +0 -0
  500. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/preprocessor/image.py +0 -0
  501. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/preprocessor/text.py +0 -0
  502. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/preprocessor/vision.py +0 -0
  503. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/preprocessor_registry.py +0 -0
  504. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/readiness.py +0 -0
  505. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/residency.py +0 -0
  506. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/score_cost.py +0 -0
  507. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/shutdown.py +0 -0
  508. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/text_tokens.py +0 -0
  509. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/timing.py +0 -0
  510. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/tokenizer.py +0 -0
  511. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/video_frames.py +0 -0
  512. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/watcher.py +0 -0
  513. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/worker/__init__.py +0 -0
  514. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/worker/handlers/__init__.py +0 -0
  515. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/worker/handlers/base.py +0 -0
  516. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/worker/handlers/encode.py +0 -0
  517. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/worker/handlers/extract.py +0 -0
  518. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/worker/model_worker.py +0 -0
  519. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/worker/oom_recovery.py +0 -0
  520. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/core/worker/types.py +0 -0
  521. {sie_server-0.8.3/src/sie_server/observability → sie_server-0.9.0/src/sie_server/health}/__init__.py +0 -0
  522. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/health/saturation.py +0 -0
  523. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/ipc_server.py +0 -0
  524. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/main.py +0 -0
  525. {sie_server-0.8.3/src/sie_server/processors → sie_server-0.9.0/src/sie_server/observability}/__init__.py +0 -0
  526. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/observability/generation_diagnostics.py +0 -0
  527. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/observability/gpu.py +0 -0
  528. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/observability/telemetry.py +0 -0
  529. {sie_server-0.8.3/tests/adapters → sie_server-0.9.0/src/sie_server/processors}/__init__.py +0 -0
  530. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/processors/admission.py +0 -0
  531. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/processors/base.py +0 -0
  532. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/processors/grammar_cache.py +0 -0
  533. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/processors/grammar_compile.py +0 -0
  534. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/processors/tool_call_grammar.py +0 -0
  535. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/processors/work_class_scheduler.py +0 -0
  536. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/types/__init__.py +0 -0
  537. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/types/inputs.py +0 -0
  538. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/types/outputs.py +0 -0
  539. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/types/overflow_policy.py +0 -0
  540. {sie_server-0.8.3 → sie_server-0.9.0}/src/sie_server/types/requests.py +0 -0
  541. {sie_server-0.8.3/tests/api → sie_server-0.9.0/tests/adapters}/__init__.py +0 -0
  542. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/fixtures/laya/laya-multilingual.json +0 -0
  543. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/fixtures/laya/laya-typed-decisions.json +0 -0
  544. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/fixtures/laya/laya.json +0 -0
  545. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/goldens/gliformer/knowledgator__gliformer-base-v1.json +0 -0
  546. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/goldens/gliformer/knowledgator__gliformer-large-v1.json +0 -0
  547. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/goldens/gliner2_decide/fastino__GLiNER2.5-Decide-1B.json +0 -0
  548. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/goldens/gliner2_decide/fastino__GLiNER2.5-Decide.json +0 -0
  549. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/goldens/gliner2_decide/fastino__GLiNER2.5-multi-Decide.json +0 -0
  550. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_adapter_revision_contract.py +0 -0
  551. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_base.py +0 -0
  552. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_bge_m3.py +0 -0
  553. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_bge_m3_flash.py +0 -0
  554. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_clip.py +0 -0
  555. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_colbert.py +0 -0
  556. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_colbert_modernbert_flash_projection.py +0 -0
  557. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_colbert_modernbert_flash_tokenizer.py +0 -0
  558. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_colbert_projection.py +0 -0
  559. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_colbert_punctuation.py +0 -0
  560. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_colqwen2_revision.py +0 -0
  561. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_docling.py +0 -0
  562. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_docling_smoke.py +0 -0
  563. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_donut.py +0 -0
  564. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_factory_integration.py +0 -0
  565. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_fake.py +0 -0
  566. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_fake_catalog.py +0 -0
  567. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_fake_faults.py +0 -0
  568. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_flash_base.py +0 -0
  569. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_flash_pack.py +0 -0
  570. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_florence2.py +0 -0
  571. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_generation_base.py +0 -0
  572. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliclass_contracts.py +0 -0
  573. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliformer.py +0 -0
  574. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliformer_parity.py +0 -0
  575. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliformer_span_decoding.py +0 -0
  576. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliner2.py +0 -0
  577. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliner2_decide.py +0 -0
  578. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliner2_decide_parity.py +0 -0
  579. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliner2_long_text.py +0 -0
  580. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliner2_words.py +0 -0
  581. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliner_bi_label_cache.py +0 -0
  582. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliner_bi_metering.py +0 -0
  583. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliner_long_words.py +0 -0
  584. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliner_merge.py +0 -0
  585. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliner_metering.py +0 -0
  586. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gliner_relations.py +0 -0
  587. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_glirel.py +0 -0
  588. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_glm_ocr.py +0 -0
  589. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_grounding_dino.py +0 -0
  590. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_gte_sparse.py +0 -0
  591. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_image_decode_errors.py +0 -0
  592. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_jina_flash_cross_encoder.py +0 -0
  593. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_laya.py +0 -0
  594. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_laya_bounds.py +0 -0
  595. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_laya_model.py +0 -0
  596. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_laya_parity.py +0 -0
  597. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_lighton_ocr.py +0 -0
  598. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_lora.py +0 -0
  599. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_lora_integration.py +0 -0
  600. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_mineru_vl.py +0 -0
  601. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_multivector.py +0 -0
  602. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_owlv2.py +0 -0
  603. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_paddleocr_vl.py +0 -0
  604. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_prompt_limit.py +0 -0
  605. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_pylate_dense.py +0 -0
  606. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_pytorch_embedding_model_encode.py +0 -0
  607. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_pytorch_embedding_revision.py +0 -0
  608. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_qwen3_vl_embedding.py +0 -0
  609. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_qwen3_vl_reranker.py +0 -0
  610. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_runtime_options.py +0 -0
  611. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_sentence_transformer.py +0 -0
  612. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_sglang.py +0 -0
  613. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_sglang_launch_flags.py +0 -0
  614. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_sglang_vision_extract.py +0 -0
  615. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_siglip.py +0 -0
  616. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_siglip_integration.py +0 -0
  617. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_sparse_aggregation.py +0 -0
  618. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_splade_flash_parity.py +0 -0
  619. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_splade_packed_parity.py +0 -0
  620. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_splade_roberta_position_ids.py +0 -0
  621. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_st_sparse_vision.py +0 -0
  622. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_stablebridge_integration.py +0 -0
  623. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_stablebridge_pruner.py +0 -0
  624. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_tensorrt_llm_compat.py +0 -0
  625. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_tensorrt_llm_generation.py +0 -0
  626. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_vision_patch_embed.py +0 -0
  627. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_visual_document.py +0 -0
  628. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_visual_muvera_postprocessors.py +0 -0
  629. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_whisper.py +0 -0
  630. {sie_server-0.8.3 → sie_server-0.9.0}/tests/adapters/test_word_window.py +0 -0
  631. {sie_server-0.8.3/tests/app → sie_server-0.9.0/tests/api}/__init__.py +0 -0
  632. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_canonical_profile_conformance.py +0 -0
  633. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_dtype_queue_http_parity.py +0 -0
  634. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_encode_dtype.py +0 -0
  635. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_encode_endpoint.py +0 -0
  636. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_encode_json_schema.py +0 -0
  637. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_encode_timing.py +0 -0
  638. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_encode_validation.py +0 -0
  639. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_error_code_hygiene.py +0 -0
  640. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_extract.py +0 -0
  641. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_extract_integration.py +0 -0
  642. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_extract_oom.py +0 -0
  643. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_generate_stream.py +0 -0
  644. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_generation_cleanup_precedence.py +0 -0
  645. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_health.py +0 -0
  646. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_helpers_telemetry.py +0 -0
  647. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_models.py +0 -0
  648. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_openai_audio.py +0 -0
  649. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_option.py +0 -0
  650. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_request_body_limit.py +0 -0
  651. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_usage_reporting.py +0 -0
  652. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_version_header.py +0 -0
  653. {sie_server-0.8.3 → sie_server-0.9.0}/tests/api/test_ws.py +0 -0
  654. {sie_server-0.8.3/tests/config → sie_server-0.9.0/tests/app}/__init__.py +0 -0
  655. {sie_server-0.8.3 → sie_server-0.9.0}/tests/app/test_app_factory.py +0 -0
  656. {sie_server-0.8.3/tests/core → sie_server-0.9.0/tests/config}/__init__.py +0 -0
  657. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_answerai_colbert_profiles.py +0 -0
  658. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_bundle_coverage.py +0 -0
  659. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_catalog_loadtime_options.py +0 -0
  660. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_colbertv2_profiles.py +0 -0
  661. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_config.py +0 -0
  662. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_h100_fp8_generation_profiles.py +0 -0
  663. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_jina_colbert_profiles.py +0 -0
  664. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_model_prewarm_grammars.py +0 -0
  665. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_muvera_profile_postprocessors.py +0 -0
  666. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_mxbai_colbert_profiles.py +0 -0
  667. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_mxbai_edge_colbert_profiles.py +0 -0
  668. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_nvidia_nemo_colembed_profiles.py +0 -0
  669. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_package_artifacts.py +0 -0
  670. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_profile_backend_consistency.py +0 -0
  671. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_profile_template_inheritance.py +0 -0
  672. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_qwen_generation_profiles.py +0 -0
  673. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_serving_artifact_config.py +0 -0
  674. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_serving_artifacts.py +0 -0
  675. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_tensor_parallel_options.py +0 -0
  676. {sie_server-0.8.3 → sie_server-0.9.0}/tests/config/test_video_generation_profiles.py +0 -0
  677. {sie_server-0.8.3 → sie_server-0.9.0}/tests/conftest.py +0 -0
  678. {sie_server-0.8.3/tests/core/worker → sie_server-0.9.0/tests/core}/__init__.py +0 -0
  679. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_adaptive_batching.py +0 -0
  680. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_batcher.py +0 -0
  681. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_disk_cache.py +0 -0
  682. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_encode_format_output.py +0 -0
  683. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_encode_worker_batching.py +0 -0
  684. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_gpu_health.py +0 -0
  685. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_hot_reload.py +0 -0
  686. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_idle_evict.py +0 -0
  687. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_inference.py +0 -0
  688. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_load_rgb.py +0 -0
  689. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_loader.py +0 -0
  690. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_logging.py +0 -0
  691. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_lora_generation_exclusion.py +0 -0
  692. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_memory.py +0 -0
  693. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_memory_synthetic.py +0 -0
  694. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_model_load_timeout.py +0 -0
  695. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_model_loader_cache.py +0 -0
  696. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_model_suggestions.py +0 -0
  697. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_oom_detection.py +0 -0
  698. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_pool_isolation.py +0 -0
  699. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_postprocessor.py +0 -0
  700. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_postprocessor_registry.py +0 -0
  701. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_prepared.py +0 -0
  702. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_preprocessor.py +0 -0
  703. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_preprocessor_registry.py +0 -0
  704. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_quantization.py +0 -0
  705. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_readiness.py +0 -0
  706. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_registry_core.py +0 -0
  707. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_registry_deps.py +0 -0
  708. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_registry_device_groups.py +0 -0
  709. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_registry_generation_drain.py +0 -0
  710. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_registry_lifecycle_loop.py +0 -0
  711. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_registry_memory.py +0 -0
  712. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_registry_multi_model.py +0 -0
  713. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_residency.py +0 -0
  714. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_revision_identity.py +0 -0
  715. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_shutdown.py +0 -0
  716. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_timing.py +0 -0
  717. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_unload_off_event_loop.py +0 -0
  718. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_video_frames.py +0 -0
  719. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_watcher.py +0 -0
  720. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_worker_backpressure.py +0 -0
  721. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_worker_core.py +0 -0
  722. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_worker_drain.py +0 -0
  723. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_worker_extract.py +0 -0
  724. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_worker_lora.py +0 -0
  725. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_worker_options.py +0 -0
  726. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_worker_preformed.py +0 -0
  727. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/test_worker_score.py +0 -0
  728. {sie_server-0.8.3/tests/fake_stack → sie_server-0.9.0/tests/core/worker}/__init__.py +0 -0
  729. {sie_server-0.8.3 → sie_server-0.9.0}/tests/core/worker/test_oom_recovery.py +0 -0
  730. {sie_server-0.8.3/tests/health → sie_server-0.9.0/tests/fake_stack}/__init__.py +0 -0
  731. {sie_server-0.8.3 → sie_server-0.9.0}/tests/fake_stack/conftest.py +0 -0
  732. {sie_server-0.8.3 → sie_server-0.9.0}/tests/fake_stack/test_lost_result.py +0 -0
  733. {sie_server-0.8.3 → sie_server-0.9.0}/tests/fake_stack/test_model_loading_race.py +0 -0
  734. {sie_server-0.8.3 → sie_server-0.9.0}/tests/fake_stack/test_oom_ladder.py +0 -0
  735. {sie_server-0.8.3 → sie_server-0.9.0}/tests/fake_stack/test_sdk_surface.py +0 -0
  736. {sie_server-0.8.3/tests/integration → sie_server-0.9.0/tests/health}/__init__.py +0 -0
  737. {sie_server-0.8.3 → sie_server-0.9.0}/tests/health/test_saturation.py +0 -0
  738. {sie_server-0.8.3 → sie_server-0.9.0}/tests/health/test_worker_id_consistency.py +0 -0
  739. {sie_server-0.8.3/tests/observability → sie_server-0.9.0/tests/integration}/__init__.py +0 -0
  740. {sie_server-0.8.3 → sie_server-0.9.0}/tests/integration/test_chat_completions.py +0 -0
  741. {sie_server-0.8.3 → sie_server-0.9.0}/tests/integration/test_grammar_generate.py +0 -0
  742. {sie_server-0.8.3/tests/processors → sie_server-0.9.0/tests/observability}/__init__.py +0 -0
  743. {sie_server-0.8.3 → sie_server-0.9.0}/tests/observability/test_generation_diagnostics.py +0 -0
  744. {sie_server-0.8.3 → sie_server-0.9.0}/tests/observability/test_telemetry.py +0 -0
  745. {sie_server-0.8.3 → sie_server-0.9.0}/tests/observability/test_trace_propagation.py +0 -0
  746. {sie_server-0.8.3 → sie_server-0.9.0}/tests/observability/test_tracing.py +0 -0
  747. {sie_server-0.8.3 → sie_server-0.9.0}/tests/observability/test_worker_telemetry_benchmark.py +0 -0
  748. {sie_server-0.8.3/tests/type_defs → sie_server-0.9.0/tests/processors}/__init__.py +0 -0
  749. {sie_server-0.8.3 → sie_server-0.9.0}/tests/processors/test_grammar_cache.py +0 -0
  750. {sie_server-0.8.3 → sie_server-0.9.0}/tests/processors/test_grammar_compile.py +0 -0
  751. {sie_server-0.8.3 → sie_server-0.9.0}/tests/processors/test_grammar_prewarm.py +0 -0
  752. {sie_server-0.8.3 → sie_server-0.9.0}/tests/processors/test_streaming_admission.py +0 -0
  753. {sie_server-0.8.3 → sie_server-0.9.0}/tests/processors/test_streaming_integration.py +0 -0
  754. {sie_server-0.8.3 → sie_server-0.9.0}/tests/processors/test_tool_call_grammar.py +0 -0
  755. {sie_server-0.8.3 → sie_server-0.9.0}/tests/processors/test_work_class_scheduler.py +0 -0
  756. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_adapter_call_loop.py +0 -0
  757. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_cli_devices.py +0 -0
  758. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_cli_log_level.py +0 -0
  759. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_cli_pool.py +0 -0
  760. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_decode_item.py +0 -0
  761. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_docker_integration.py +0 -0
  762. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_documented_model_ids.py +0 -0
  763. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_ipc_types_raw_output.py +0 -0
  764. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_item_text_size.py +0 -0
  765. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_model_yaml_filenames.py +0 -0
  766. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_openapi_export.py +0 -0
  767. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_parity_run_batch.py +0 -0
  768. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_readiness.py +0 -0
  769. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_sdk_integration.py +0 -0
  770. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_server_process_fixture.py +0 -0
  771. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_server_smoke.py +0 -0
  772. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_sparse_integration.py +0 -0
  773. {sie_server-0.8.3 → sie_server-0.9.0}/tests/test_stage1d_byte_identity.py +0 -0
  774. {sie_server-0.8.3 → sie_server-0.9.0}/tests/type_defs/test_decode_image.py +0 -0
  775. {sie_server-0.8.3 → sie_server-0.9.0}/tests/type_defs/test_inputs.py +0 -0
  776. {sie_server-0.8.3 → sie_server-0.9.0}/tests/type_defs/test_inputs_json_decode.py +0 -0
  777. {sie_server-0.8.3 → sie_server-0.9.0}/tests/type_defs/test_media_bytes.py +0 -0
  778. {sie_server-0.8.3 → sie_server-0.9.0}/tests/type_defs/test_types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: sie-server
3
- Version: 0.8.3
3
+ Version: 0.9.0
4
4
  Summary: Search Inference Engine - GPU inference server for search workloads
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -17,6 +17,7 @@ Requires-Dist: gliner<1,>=0.2.26
17
17
  Requires-Dist: glirel<2,>=1.0
18
18
  Requires-Dist: httpx>=0.28.1
19
19
  Requires-Dist: huggingface-hub<2,>=0.26
20
+ Requires-Dist: jsonschema<5,>=4.23
20
21
  Requires-Dist: loguru<1,>=0.7
21
22
  Requires-Dist: msgpack-numpy<1,>=0.4
22
23
  Requires-Dist: msgpack<2,>=1.2.1
@@ -36,6 +37,8 @@ Requires-Dist: pydantic-settings<3,>=2.6
36
37
  Requires-Dist: pydantic<3,>=2.9
37
38
  Requires-Dist: python-multipart<1,>=0.0.20
38
39
  Requires-Dist: pyyaml<7,>=6
40
+ Requires-Dist: referencing<1,>=0.36
41
+ Requires-Dist: regex>=2024.11.6
39
42
  Requires-Dist: requests<3,>=2.32
40
43
  Requires-Dist: rich<14,>=13
41
44
  Requires-Dist: safetensors<1,>=0.4
@@ -0,0 +1,648 @@
1
+ # SIE Server
2
+
3
+ GPU inference server for embeddings, reranking, and entity extraction.
4
+
5
+ ## Features
6
+
7
+ - Multi-model serving with LRU eviction
8
+ - Token-based dynamic batching
9
+ - Hot reload model configs without restart
10
+ - Unified API: `encode()`, `score()`, `extract()`
11
+ - Prometheus metrics and OpenTelemetry tracing
12
+ - Reactive GPU OOM recovery + proactive idle eviction
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ pip install sie-server
18
+ ```
19
+
20
+ `sie-server` ships several model bundles, and a single environment can only hold one
21
+ `transformers` version — install the one your bundle needs:
22
+
23
+ - **Default bundle** (embeddings, reranking, extraction) — verified on `transformers` 4.x:
24
+
25
+ ```bash
26
+ pip install sie-server "transformers<5"
27
+ ```
28
+
29
+ - **Transformers 5 bundle** (LightOnOCR, GLM-OCR, GLiGuard, the GLiNER2.5-Decide models, and the TopK-Embed-V1
30
+ multi-vector models) — requires `transformers` 5.x, and is served with `-b transformers5`. The GLiNER2.5-Decide
31
+ models also need `gliner2` 2.x. `sie-server` itself asks for `gliner2<2`, which the default bundle's GLiNER2
32
+ models need, so pip reports that conflict when the second command below installs 2.x; the transformers5
33
+ bundle's GLiNER2 models are verified on 2.0.0:
34
+
35
+ ```bash
36
+ pip install sie-server "transformers>=5,<6"
37
+ pip install "gliner2==2.0.0" # only for the GLiNER2.5-Decide models
38
+ sie-server serve -b transformers5
39
+ ```
40
+
41
+ ## Quick Start
42
+
43
+ ```bash
44
+ sie-server serve --port 8080 --device cuda:0
45
+ ```
46
+
47
+ ### TensorRT-LLM generation
48
+
49
+ TensorRT-LLM buffers completion token IDs and emits the final text together only
50
+ after generation finishes and the terminal stream is verified, even with
51
+ `stream=True`. This preserves context-sensitive spacing and punctuation and
52
+ removes matched stop sequences consistently from returned text, completion-token
53
+ usage, and logprobs. Long completions delay the first visible text; existing
54
+ request timeouts still apply. Other adapters are unaffected.
55
+
56
+ ### GLiClass usage
57
+
58
+ The shipped GLiClass and Opir profiles read a 1,024-token window
59
+ (`max_sequence_length`) that holds the label prompt, the instruction and
60
+ examples, and the document. That is the default window of the gliclass
61
+ pipeline and of its training script. The encoders use relative (DeBERTa) or
62
+ rotary (ModernBERT) positions, so the window is not a position-table limit.
63
+
64
+ For GLiClass classification, `usage.input_tokens` counts each item's document
65
+ tokens plus the instruction and few-shot example texts sent with the request,
66
+ because the model encodes that text again for every item. Label names,
67
+ including the labels attached to examples, are not counted. With an
68
+ instruction or examples, an item's count is capped at the model's
69
+ `max_sequence_length` minus the label prompt, unless the document count alone
70
+ is already higher. An item refused because its document pushes the labels out
71
+ of the window returns a per-item `INPUT_TOO_LONG` error and counts nothing. A
72
+ request that sends no instruction or examples is counted exactly as before.
73
+
74
+ The models that read the labels before the document (`prompt_first` in the
75
+ checkpoint's config: every shipped GLiClass model except `gliclass-small-v1.0`,
76
+ `gliclass-base-v1.0` and `gliclass-large-v1.0`) cut the document to the room
77
+ the label prompt and instruction leave, and count only the part of the document
78
+ they read, as `truncate_text` would. When the labels leave fewer than 8 tokens
79
+ for the document (a margin for tokenization at the boundary), each item returns
80
+ a per-item `INPUT_TOO_LONG` error and counts nothing, rather than being scored
81
+ with little or none of its document. With `overflow_policy` `truncate_text` or
82
+ `error`, the document is cut to that room or checked against it instead, and a
83
+ request whose labels leave no room at all is refused with `INPUT_TOO_LONG`, as
84
+ before.
85
+
86
+ With `options={"overflow_policy": "error"}`, an item whose document does not
87
+ fit whole next to the labels returns a per-item `INPUT_TOO_LONG` error and
88
+ counts nothing, while the other items succeed. Concurrent requests that share
89
+ labels and options are batched into one model call, so an over-long document
90
+ fails only its own item, never another request's.
91
+
92
+ The instruction and each example text may be at most 2,048 characters, and
93
+ together with the example labels at most 8,192 characters. Up to 32 examples
94
+ are accepted, and they must leave room for the document in the model window.
95
+ Label names are refused when their total length exceeds 16 characters per
96
+ token of the window (16,384 characters for a 1,024-token model), more than any
97
+ label prompt can fit.
98
+
99
+ ### GLiClass CUDA graphs
100
+
101
+ A GLiClass forward on a DeBERTa encoder launches about a thousand small GPU
102
+ kernels, so at small batch sizes the CPU that launches them is the bottleneck.
103
+ A CUDA graph records the kernel launches of one input shape once; a replay
104
+ launches them all in one call. Graphs are an operator setting, fixed when the
105
+ model loads, in the model profile:
106
+
107
+ ```yaml
108
+ profiles:
109
+ default:
110
+ adapter_options:
111
+ loadtime:
112
+ cuda_graphs: bucketed
113
+ ```
114
+
115
+ A graph records the encoder. The scoring head (label features, pooling and
116
+ scorer) runs eagerly on the graph's output with each forward's own number of
117
+ labels, so one graph serves every label count.
118
+
119
+ | Value | Shapes recorded | Scores |
120
+ |--|--|--|
121
+ | `off` (default) | none | eager |
122
+ | `exact` | each (batch size, sequence length) seen twice; the 64 most recently used are kept | bit-identical to eager |
123
+ | `bucketed` | sequence lengths padded up to a multiple of 64 tokens at a 1,024-token window (32 at 512), batch sizes up to a power of two: a fixed set of shapes, all kept | padding moves fp16 probabilities (see below) |
124
+
125
+ A request can send `options={"cuda_graphs": "off"}` to run eagerly on a model
126
+ loaded with graphs. It cannot turn graphs on: any other value is refused.
127
+
128
+ Padding is masked, and padded rows are dropped before scoring, but a longer
129
+ sequence or a larger batch rounds fp16 sums differently, the same kind of
130
+ change batching requests together makes. A small change can flip a near tie
131
+ between the top two labels, and eager execution flips some near ties too,
132
+ depending on which inputs share its batch.
133
+
134
+ **When a speed-up ships enabled.** A shipped GLiClass profile enables a
135
+ speed-up that changes scores, such as `bucketed` graphs, only when, on the
136
+ evaluation sets below, both of the first two conditions hold against eager
137
+ execution, or the third holds against float32:
138
+
139
+ 1. no probability moves by more than 0.02;
140
+ 2. every answer whose top label changes had an eager top-two margin smaller
141
+ than eager's own regrouping noise, δ_eager: the largest probability change
142
+ eager execution makes on the same inputs when they share a batch with other
143
+ inputs;
144
+ 3. against a float32 reference of the same checkpoint, the speed-up is at
145
+ least as accurate as the current path: its largest change against float32
146
+ is no larger than the current path's, and it changes no more top labels (or,
147
+ for scores, reorders no more pairs) against float32 than the current path
148
+ does.
149
+
150
+ A top label that changes under the second condition was a near tie that eager
151
+ fp16 execution already flips under batching. The third condition admits a
152
+ speed-up that rounds differently from the current path, by more than eager's
153
+ own batching noise, but lands no farther from float32. The ModernBERT
154
+ adapters below apply the same rule to their scores.
155
+
156
+ **Evaluation sets.** The main set is the 384 CVE descriptions from
157
+ `examples/typed-decisions`, three questions each, asked one at a time, as
158
+ separate groups and as joint groups, plus 65 long documents: 4,041 answers per
159
+ model. The instruction set asks the same descriptions the three questions with
160
+ short labels and the question as the instruction: 1,152 answers. The rule
161
+ applies to each set on its own. The eager reference sends one input per
162
+ request. δ_eager is the largest change among four eager runs that batch each
163
+ input with others: in pairs, and in groups of eight in dataset order and in two
164
+ shuffled orders. `bucketed` sent the inputs one per request three times (long
165
+ documents twice), so graphs were recorded and then replayed. Measured on an L4
166
+ in fp16 at each model's 1,024-token window; each cell gives the main set, then
167
+ the instruction set:
168
+
169
+ | Model | Largest probability change | δ_eager | Top labels changed (largest eager margin) | Shipped profile |
170
+ |--|--|--|--|--|
171
+ | `gliclass-small-v1.0` | 0.0059 / 0.0034 | 0.0066 / 0.0039 | 2 (0.0000) / none | `bucketed` |
172
+ | `gliclass-base-v1.0` | 0.0054 / 0.0056 | 0.0061 / 0.0061 | none / none | `bucketed` |
173
+ | `gliclass-large-v1.0` | 0.0059 / 0.0088 | 0.0078 / 0.0107 | none / none | `bucketed` |
174
+ | `gliclass-base-v3.0` | 0.0054 / 0.0034 | 0.0063 / 0.0054 | 1 (0.0005) / none | `bucketed` |
175
+ | `gliclass-large-v3.0` | 0.0093 / 0.0107 | 0.0088 / 0.0122 | 2 (0.0020) / none | `bucketed` |
176
+ | `gliclass-instruct-base-v1.0` | 0.0066 / 0.0063 | 0.0095 / 0.0063 | 4 (0.0056) / none | `bucketed` |
177
+ | `gliclass-instruct-large-v1.0` | 0.0088 / 0.0039 | 0.0125 / 0.0054 | 7 (0.0017) / 1 (0.0006) | `bucketed` |
178
+ | `opir-multitask-large-v1.0` | 0.0144 / 0.0146 | 0.0247 / 0.0225 | none / none | `bucketed` |
179
+ | `opir-multitask-multilang-v1.0` | 0.0756 / 0.0093 | 0.0848 / 0.0122 | 15 (0.0260) / none | `off` |
180
+ | `gliclass-multilang-mini` | 0.0347 / 0.0479 | 0.0537 / 0.0376 | 6 (0.0056) / 3 (0.0618) | `off` |
181
+
182
+ A top label that changed did so in every pass; the table counts each answer
183
+ once.
184
+
185
+ Requests of several items pad their batch as well (3 items to 4, 5 to 8). Asked
186
+ in 3- and 5-item requests and compared with eager execution of the same
187
+ requests, the eight models that ship with graphs moved no probability by more
188
+ than 0.0190 (`opir-multitask-large-v1.0`) and 0.0115 for every other model,
189
+ and every top label that changed had an eager margin below the model's
190
+ δ_eager.
191
+
192
+ `exact` changed nothing. A forward whose batch size is already a bucket (one
193
+ item, for example) scores exactly as it did before batches were padded.
194
+
195
+ The DeBERTa-v3 models meet the rule and their shipped profiles load with
196
+ `bucketed` graphs. The two mDeBERTa models, `gliclass-multilang-mini` and
197
+ `opir-multitask-multilang-v1.0`, moved probabilities by more than 0.02 and
198
+ load with `off`. To run a model eagerly, set `cuda_graphs: off` in its
199
+ profile, or send `options={"cuda_graphs": "off"}` with a request.
200
+
201
+ Graphs apply on CUDA to the DeBERTa-based GLiClass models: the v1.0 models,
202
+ `gliclass-base-v3.0` and `gliclass-large-v3.0`, the base and large instruct
203
+ models, the Opir multitask models and `gliclass-multilang-mini`. The
204
+ ModernBERT-based models (the edge models, `gliclass-multilang-edge`, the Opir
205
+ edge models and `gliclass-modern-{base,large}-v3.0`), CPU and MPS run without
206
+ graphs with any value, and the load logs a warning. On CUDA, the
207
+ ModernBERT-based models can run their encoder on the flash-attention path
208
+ below instead.
209
+
210
+ **Shapes.** A graph holds at most 2,048 tokens (batch size times padded
211
+ length), or 1,024 for encoders wider than 768 such as DeBERTa-v3-large.
212
+ Larger forwards are bound by the GPU rather than by kernel launches and run
213
+ eagerly: on an L4, a `gliclass-large-v1.0` forward stops gaining from a graph
214
+ at about 1,000 tokens, a `gliclass-base-v1.0` forward at about 2,000. In
215
+ `bucketed` mode at the 1,024-token window that leaves a fixed set of shapes,
216
+ 33 for the DeBERTa-v3-large models and 52 for the base and small ones (52 and
217
+ 71 at a 512-token window), and the model keeps a graph for every one. Once
218
+ they are recorded, every forward under the token bound replays a graph,
219
+ whatever mix of label counts, batch sizes and lengths the traffic has, and no
220
+ request's shapes push out another's.
221
+
222
+ Nothing is recorded at load. A shape is recorded the first time a request
223
+ needs it (the second time in `exact` mode), and the new graph's first replay
224
+ answers that request, which takes 52 to 66 ms against 43 ms for an eager
225
+ forward on `gliclass-large-v1.0` on an L4. Recording is rationed (see below),
226
+ so traffic that needs every shape has them all recorded within about two
227
+ minutes.
228
+
229
+ **Memory, and other models on the same GPU.** Graph memory counts as device
230
+ memory in use, but it is not attributed to the model: under memory pressure
231
+ the server evicts whole models, least recently used first, which may be
232
+ another model. A model's graphs share one memory pool and write their output
233
+ into one shared buffer, and the driver keeps a copy of each graph: about 7 MB
234
+ for the `gliclass-large-v1.0` encoder. The runner adds up the device memory
235
+ its graphs hold (what each recording took, plus the tables and buffers they
236
+ read) against 4% of the device's memory (900 MB on an L4). On an L4, at the
237
+ 1,024-token window, all of a model's `bucketed` shapes took 551 to 571 MB for
238
+ the large GLiClass models, 677 MB for `opir-multitask-large-v1.0`, 761 to
239
+ 767 MB for the base models and 653 MB for `gliclass-small-v1.0`, plus about
240
+ 150 MB cached on the recording stream (its cuBLAS workspace and one warm-up
241
+ row). Recorded while serving mixed traffic, the same shapes can take more, and
242
+ at the 1,024-token window the budget can fill with one to three shapes left
243
+ unrecorded; those shapes run eagerly. On a smaller GPU, where the shapes do not
244
+ all fit, recording stops at the budget and the graphs already recorded keep
245
+ replaying; the other shapes run eagerly. In `exact` mode, whose shapes are
246
+ unbounded, a model past its budget drops every graph, returns their memory to
247
+ the device and records again.
248
+ Graphs are also released when the model unloads, and when one of its forwards
249
+ runs out of memory.
250
+
251
+ While a graph records, PyTorch's caching allocator does not free cached blocks
252
+ to satisfy other allocations, so another model on the same GPU that needs
253
+ memory in that window (about one forward) can run out of memory where it
254
+ otherwise would not. Recording is kept rare to limit this: one recording at a
255
+ time in the process, none while less than a tenth of the device's memory is
256
+ free, and per model a budget of 16 recordings that refills at one every 2
257
+ seconds, so a model records at most 16 graphs in quick succession, one after
258
+ another, then about one every 2 seconds. If recording a graph runs out of
259
+ memory, the request still gets its eager answer; the model drops its graphs and
260
+ records nothing for a minute. If the new graph's first replay runs out of
261
+ memory, the model also drops its graphs and records nothing for a minute, but
262
+ the request fails with that error, as an eager forward that runs out of memory
263
+ does.
264
+
265
+ Both limits are approximate. The free-memory check reads the device once,
266
+ before recording, so a model loading at the same moment can still meet one
267
+ recording. The memory budget is checked after each recording, so a model's
268
+ graphs can exceed it by one recording. On a GPU shared with other models,
269
+ leave memory headroom, or enable graphs only where the model has the GPU to
270
+ itself. Usage and billing do not change.
271
+
272
+ **Failures and counters.** A shape that fails to record for a reason other
273
+ than memory runs eagerly from then on, and the failure is logged as a warning
274
+ with its traceback. After three such shapes, the model runs eagerly for the
275
+ rest of the process, logged as an error. The scoring head is not part of that
276
+ count: it reads the request's own inputs, so an error there fails that request
277
+ as it would in an eager forward. Each model counts the forwards it
278
+ replays, records, and runs eagerly (by reason: past the token bound, recording
279
+ paused, budget full, and so on), and logs the counts every ten minutes while it
280
+ serves requests.
281
+
282
+ ### GLiClass ModernBERT flash attention
283
+
284
+ The GLiClass models built on ModernBERT or mmBERT (`gliclass-edge-v3.0`,
285
+ `gliclass-instruct-edge-v1.0`, `gliclass-multilang-edge`, `opir-edge-v1.0`,
286
+ `opir-edge-multilang-v1.0`, `gliclass-modern-base-v3.0` and
287
+ `gliclass-modern-large-v3.0`) can run their encoder through the
288
+ flash-attention layer stack that SIE's ModernBERT embedding, late-interaction,
289
+ cross-encoder and Laya adapters share. The rows of a forward are packed into
290
+ one token stream without padding, each row attends only to itself through
291
+ `flash_attn_varlen_func`, and the RoPE tables are built once, at load. The
292
+ gliclass scoring head (label-token features, pooling, projections and scorer)
293
+ runs unchanged on the encoder output. Label groups, instructions, examples,
294
+ overflow policies, usage and per-item errors behave as before. It is an
295
+ operator setting:
296
+
297
+ ```yaml
298
+ profiles:
299
+ default:
300
+ adapter_options:
301
+ loadtime:
302
+ modernbert_flash: true
303
+ ```
304
+
305
+ `modernbert_flash: single-label` limits it to single-label requests; a
306
+ request with `"classification_type": "multi-label"` then runs the gliclass
307
+ forward. It applies to float16 and bfloat16 weights on CUDA GPUs with flash-attn
308
+ (Ampere or newer). On CPU, MPS, older GPUs or without flash-attn, the model
309
+ runs the gliclass forward as before, and the load logs why. DeBERTa-based
310
+ models ignore the setting. If the flash path fails with an error other than
311
+ running out of memory, the gliclass forward answers that request, and the
312
+ model logs the error and stays on the gliclass forward until it is reloaded.
313
+ The shipped profiles enable it where the scores
314
+ met the margin rule below: for every request on `gliclass-modern-base-v3.0`,
315
+ and for single-label requests on `gliclass-multilang-edge` and
316
+ `gliclass-modern-large-v3.0`. The other four models keep the gliclass forward.
317
+
318
+ On a GPU with flash-attn, the gliclass forward already runs the Hugging Face
319
+ ModernBERT flash-attention path. That path unpads and repads every batch,
320
+ rotates queries and keys with one fused kernel per layer, and runs its MLPs
321
+ through `torch.compile`. Classification forwards are small, so the host
322
+ launching kernels, not the GPU, bounds most of them, and the flash path needs
323
+ less host time per forward. On an L4, a one-item `gliclass-edge-v3.0` forward
324
+ keeps the GPU busy for 2.4 ms of its 12.7 ms on the gliclass forward, and for
325
+ 0.85 ms of 8.8 ms on the flash path. The flash path runs the rotation and the
326
+ MLP activation as several separate kernels, though, so larger forwards, which
327
+ the GPU bounds, are faster on the gliclass forward. A forward with more packed
328
+ tokens than a bound therefore runs the gliclass forward: 4,096 tokens for
329
+ encoders up to 384 wide, 2,048 up to 768, and 1,024 wider. On an L4,
330
+ `gliclass-modern-large-v3.0` is 1.13x faster on the flash path at 1,024
331
+ packed tokens and 0.90x at 1,289; `gliclass-modern-base-v3.0` is 1.27x at
332
+ 2,048 and 0.96x at 2,560.
333
+
334
+ Latency is the median of 400 one-item requests on the CVE descriptions from
335
+ `examples/typed-decisions`: one question with eight labels, or three questions
336
+ as separate label groups. Each throughput request holds 64 items, one in eight
337
+ of them a long document, and one question. Both paths ran in one process on an
338
+ L4, from the gliclass forward to the flash path:
339
+
340
+ | Model | One item, one question | One item, three separate groups | 64 items per request |
341
+ |--|--|--|--|
342
+ | `gliclass-edge-v3.0` | 13.6 -> 11.1 ms | 15.1 -> 12.6 ms | 351 -> 397 items/s |
343
+ | `gliclass-instruct-edge-v1.0` | 14.2 -> 11.9 ms | 15.4 -> 13.1 ms | 334 -> 376 items/s |
344
+ | `gliclass-multilang-edge` | 25.8 -> 20.6 ms | 26.8 -> 21.6 ms | 235 -> 279 items/s |
345
+ | `opir-edge-v1.0` | 13.8 -> 11.3 ms | 14.9 -> 12.4 ms | 287 -> 313 items/s |
346
+ | `opir-edge-multilang-v1.0` | 28.4 -> 22.6 ms | 29.7 -> 24.0 ms | 207 -> 241 items/s |
347
+ | `gliclass-modern-base-v3.0` | 25.3 -> 19.9 ms | 26.7 -> 21.3 ms | 229 -> 253 items/s |
348
+ | `gliclass-modern-large-v3.0` | 32.3 -> 25.1 ms | 34.2 -> 27.1 ms | 173 -> 173 items/s |
349
+
350
+ **Scores.** The two paths round float16 sums differently. We compared them on
351
+ the 384 CVE descriptions from `examples/typed-decisions`, three questions
352
+ each: asked one at a time, with an instruction, with a few-shot example, as
353
+ separate and as joint groups, and in requests of eight, plus 65 long documents
354
+ under `truncate_text`. That is 7,497 answers per model. A shipped profile
355
+ enables the flash path only when the model meets the margin rule against the
356
+ gliclass forward: (i) no probability moves by more than 0.02, and (ii) every
357
+ answer whose top label changes had a top-two margin, on the gliclass forward,
358
+ smaller than the gliclass forward's own batching noise. The batching noise is
359
+ the largest probability change the gliclass forward shows between an item sent
360
+ alone and the same item in a request of eight with the same options, over the
361
+ same kinds of requests.
362
+
363
+ | Model | Largest probability change | Top label changed | Largest margin of a changed answer | Batching noise | Shipped profile |
364
+ |--|--|--|--|--|--|
365
+ | `gliclass-multilang-edge` | 0.015 | 18 | 0.0046 | 0.016 | on (single-label) |
366
+ | `gliclass-modern-base-v3.0` | 0.010 | 22 | 0.0029 | 0.0061 | on |
367
+ | `gliclass-modern-large-v3.0` | 0.015 | 4 | 0.0039 | 0.014 | on (single-label) |
368
+ | `gliclass-edge-v3.0` | 0.016 | 24 | 0.0098 | 0.0066 | off (2 answers over the noise) |
369
+ | `gliclass-instruct-edge-v1.0` | 0.012 | 5 | 0.0077 | 0.0062 | off (1 answer over the noise) |
370
+ | `opir-edge-v1.0` | 0.018 | 12 | 0.019 | 0.011 | off |
371
+ | `opir-edge-multilang-v1.0` | 0.037 | 30 | 0.028 | 0.032 | off |
372
+
373
+ Multi-label scores (independent sigmoids) were checked the same way, with the
374
+ rule read for the 0.5 threshold at which a multi-label group selects its
375
+ labels: (i) no score moves by more than 0.02, and (ii) every score that
376
+ crosses 0.5 was closer to 0.5 than the gliclass forward's own batching noise.
377
+ Each request kind was sent one item at a time and eight at a time, 59,220
378
+ scores per model:
379
+
380
+ | Model | Largest score change | Scores crossing 0.5 (largest distance from 0.5) | Batching noise | Multi-label |
381
+ |--|--|--|--|--|
382
+ | `gliclass-modern-base-v3.0` | 0.0088 | 18 (0.0020) | 0.0059 | flash |
383
+ | `gliclass-modern-large-v3.0` | 0.024 (joint groups) | 23 (0.0044) | 0.039 | gliclass forward |
384
+ | `gliclass-multilang-edge` | 0.039 (few-shot examples) | 18 (0.0073) | 0.032 | gliclass forward |
385
+
386
+ Usage and per-item errors were identical in every answer. Against the same
387
+ checkpoints in float32, the flash path is as accurate as the gliclass forward:
388
+ over the seven models, the gliclass forward's top label differs from float32
389
+ in 128 answers, the flash path's in 126. To run a model on the other path, set
390
+ `modernbert_flash` in its profile.
391
+
392
+ ### GLiNER2.5-Decide usage and limits
393
+
394
+ The GLiNER2.5-Decide models (`fastino/GLiNER2.5-Decide`, `GLiNER2.5-multi-Decide`,
395
+ `GLiNER2.5-Decide-1B`) run on `gliner2` 2.x, which the transformers5 bundle
396
+ pins (the `transformers5` image, or a native install as described above). Each
397
+ item is one encoder row: every question's (or label group's) name,
398
+ instruction, and labels, then the document. One forward pass answers them all,
399
+ so the questions of a request are not independent: adding or changing one can
400
+ change another's probabilities and score. `usage.input_tokens` counts the
401
+ document tokens the model reads plus the tokens of the instructions and label
402
+ descriptions (criteria) sent with the item, as Laya and GLiClass count
403
+ instructions and criteria. Question ids, group names, and label names are not
404
+ counted, and an item that returns an error counts nothing.
405
+
406
+ A request takes at most 64 questions or label groups, 64 options per question,
407
+ and 1,024 options in total. Question ids and group names may have 128
408
+ characters, labels 256, and each instruction or description 2,048, with 65,536
409
+ characters in all. Strings that contain one of the model's prompt markers
410
+ (`[L]`, `[P]`, `[DESCRIPTION]`, ...) are refused. The questions may take at most
411
+ 512 tokens, or half the model's window when that is less: 256 of
412
+ `GLiNER2.5-Decide`'s 512 tokens, 512 of the others' 2,048. This bounds the
413
+ uncounted question and label tokens read with each item; a request needing more
414
+ fails with `INPUT_TOO_LONG`. The
415
+ document is read up to the whole words that fit in the rest of the window; a
416
+ word longer than 4,096 characters, text past 64 characters per token of the
417
+ window, or 4 words per token of the window also ends what is read. Words are
418
+ split as gliner2 splits them, in linear time. A conversation (a list state) is
419
+ read from its newest turn back; a run of more than 4,096 characters without a
420
+ space is read only in its last 4,096 characters, and reading stops there. An item none of whose words fits, or that does
421
+ not fit whole with `options={"overflow_policy": "error"}`, returns a per-item
422
+ `INPUT_TOO_LONG` error while the other items succeed.
423
+
424
+ ### ModernBERT CUDA graphs
425
+
426
+ The ModernBERT flash-attention adapters, for dense embeddings
427
+ (`modernbert_flash`), late interaction (`colbert_modernbert_flash`) and
428
+ reranking (`modernbert_flash_cross_encoder`), run a packed, unpadded token
429
+ stream through hundreds of small kernels per forward (about 500 for a
430
+ 22-layer encoder). At the sizes of a query
431
+ or a few short documents, the host that launches those kernels is the
432
+ bottleneck: on an L4, a one-query forward of `GTE-ModernColBERT-v1` keeps the
433
+ GPU busy for about 2 ms of its 12. A CUDA graph records the launches of one
434
+ shape once and replays them in one call. Graphs are an operator setting,
435
+ fixed when the model loads:
436
+
437
+ ```yaml
438
+ profiles:
439
+ default:
440
+ adapter_options:
441
+ loadtime:
442
+ cuda_graphs: bucketed
443
+ ```
444
+
445
+ `off` (the default) runs every forward eagerly. With `bucketed`, a graph
446
+ records the encoder (token embeddings, layers and final norm) for one packed
447
+ shape: the token count padded up to 64, 128, 192, 256, 384, 512, 768, 1,024
448
+ tokens and so on, a fixed number of sequence slots, and `max_seqlen` 512 (or
449
+ the bucket, when a row is longer). Padding tokens belong to no sequence, so
450
+ real rows attend only to their own tokens, as eagerly. The adapter's head
451
+ (pooling, the late-interaction projection or the reranking head) runs
452
+ eagerly on the real rows. Forwards past a token bound run eagerly: 2,048
453
+ tokens for encoders up to 384 wide, 1,024 up to 768, 512 wider. Past that,
454
+ the GPU rather than kernel launches bounds a forward, and padding to the
455
+ bucket costs more than a graph saves. A model with LoRA adapters loaded runs
456
+ eagerly, because its forward depends on which adapter is active.
457
+
458
+ Speed on an NVIDIA L4 with 8 vCPUs, eager and graphs in one process with
459
+ their requests interleaved (median latency, and items per second over the
460
+ run). SciFact queries and abstracts; documents are cut at the profile's
461
+ length (300 tokens for `GTE-ModernColBERT-v1`, 512 for
462
+ `mxbai-edge-colbert-v0-32m`):
463
+
464
+ | Model | 1 query | 8 queries | 1 document | Larger requests |
465
+ |--|--|--|--|--|
466
+ | `GTE-ModernColBERT-v1` | 18.1 → 2.6 ms | 360 → 1,857/s | 22.3 → 5.1 ms | within 2% |
467
+ | `gte-modernbert-base` | 17.5 → 2.4 ms | 378 → 2,414/s | 21.4 → 4.3 ms | within 1% |
468
+ | `mxbai-edge-colbert-v0-32m` | 9.2 → 1.1 ms | 658 → 3,345/s | 12.1 → 2.8 ms | within 2% |
469
+ | `granite-embedding-small-english-r2` | 10.4 → 1.2 ms | 581 → 4,551/s | 14.0 → 2.4 ms | within 2% |
470
+ | `gte-reranker-modernbert-base` | 1 pair: 17.3 → 4.3 ms | 8 short pairs: 351 → 1,307/s | | within 2% |
471
+
472
+ "Larger requests" are 8 and 64 abstracts, 32 items of mixed lengths, and 8
473
+ or 32 (query, abstract) pairs: about 2,000 to 16,000 packed tokens, mostly
474
+ past the token bound. The eager side depends on the host's CPU: on another L4
475
+ host with faster cores, a one-query `GTE-ModernColBERT-v1` forward took
476
+ 12.2 ms eagerly and 2.5 ms from a graph.
477
+
478
+ Padding changes how many rows a matrix multiply sees, so outputs can move by
479
+ floating-point rounding, as batching requests together does. We compared
480
+ graphs with eager forwards on SciFact: the 300 test queries, 500 abstracts
481
+ (every one relevant to those queries, and random others) and, for the
482
+ reranker, 20 abstracts per query. Items were encoded one per request, on
483
+ both paths, and the eager path was also run with 8 queries or 4 abstracts
484
+ (3 pairs) per request, which is its own batching noise. Scores are query–
485
+ document dot products for dense models and MaxSim for late interaction:
486
+
487
+ | Model | Graphs: largest score change | Graphs: pairs reordered in a top 10 (largest eager margin of any reordered pair) | Eager batching: largest score change (largest margin of a reordered pair) |
488
+ |--|--|--|--|
489
+ | `GTE-ModernColBERT-v1` | none (bit-identical) | none | 0.013 (0.018) |
490
+ | `mxbai-edge-colbert-v0-32m` | none (bit-identical) | none | 0.13 (0.23) |
491
+ | `gte-modernbert-base` | 0.006 | 12 (0.008) | 0.008 (0.012) |
492
+ | `granite-embedding-small-english-r2` | 0.004 | 16 (0.005) | 0.015 (0.014) |
493
+ | `gte-reranker-modernbert-base` | 0.015 | 21 (0.006) | 0.025 (0.019) |
494
+ | `modernbert-embed-base` | 0.004 | 10 (0.004) | 0.005 (0.006) |
495
+ | `granite-embedding-97m-multilingual-r2` | 0.006 | 57 (0.008) | 0.015 (0.015) |
496
+ | `Reason-ModernColBERT` | 0.007 | 1 (0.007) | 0.022 (0.021) |
497
+ | `mLateOn` | 0.020 | 17 (0.029) | 0.037 (0.046) |
498
+ | `Iso-ModernColBERT` | none (bit-identical) | none | 0.20 (0.21) |
499
+
500
+ Graphs meet the rule a GLiClass speed-up ships under (see "When a speed-up
501
+ ships enabled" above), read for scores instead of label probabilities: no
502
+ score moves by more than 0.02 (for MaxSim, which sums over a query's tokens,
503
+ 0.02 per query token), and every pair that graphs reorder had an eager margin
504
+ smaller than the eager path's own batching noise, the largest score change
505
+ eager execution makes when the same items share a request with others. For
506
+ embeddings, the rule reads on the retrieval order the vectors give, and the
507
+ vectors stay as close to eager as eager batching keeps them (cosine at least
508
+ 0.9997 for the dense models). Retrieval quality on the
509
+ full SciFact corpus (5,183 abstracts, nDCG@10, the same requests on both
510
+ paths) did not change beyond that noise: `gte-modernbert-base` 0.7632 eager
511
+ and 0.7644 with graphs, `GTE-ModernColBERT-v1` 0.7573 and 0.7558, and
512
+ `gte-reranker-modernbert-base` reranking the top 20 of `gte-modernbert-base`
513
+ 0.7760 and 0.7767.
514
+
515
+ The eager batching noise is largest for `mxbai-edge-colbert-v0-32m` and
516
+ `Iso-ModernColBERT` because their profiles compute in bfloat16, whose
517
+ significand is three bits shorter than float16's (the other late-interaction
518
+ models compute in float16). With more packed rows, cuBLAS picks a different
519
+ matrix-multiply kernel; in the forward we traced, the first outputs to differ,
520
+ by one unit in the last place, were those of the first layer's attention output
521
+ projection. A few document tokens amplify that rounding: punctuation, `[SEP]`
522
+ or the `[D] ` marker, close to where the encoder turns a token into an attention
523
+ sink. The token builds a large activation in one forward and not in the other,
524
+ so its vector turns. Per-token cosine to the one-item forward went as low as
525
+ 0.82 for `Iso-ModernColBERT` on the abstracts above, while more than 99.8% of
526
+ tokens stayed above 0.999 on a sample of mixed lengths. The reference
527
+ implementation behaves the same way. PyLate in bfloat16 moves such tokens as
528
+ much between a document encoded alone and in a batch; in float32 neither PyLate
529
+ nor the Hugging Face forward moves them. In float32 on the CPU, this adapter's
530
+ packed forward gives each item the same vectors alone and in any batch, equal
531
+ to the Hugging Face forward (`tests/adapters/test_colbert_modernbert_flash_batch_invariance.py`).
532
+
533
+ `Iso-ModernColBERT` serves the recipe its checkpoint publishes for PyLate, as
534
+ `GTE-ModernColBERT-v1` does:
535
+
536
+ - `[Q] ` and `[D] ` markers;
537
+ - queries cut at 32 tokens and documents at 300 (its `long_context` profile
538
+ keeps 8,192);
539
+ - the punctuation skiplist, which drops the document vectors that training
540
+ never scores.
541
+
542
+ Its row above was measured with that recipe. With it, SciFact nDCG@10 rose from
543
+ 0.7326 to 0.7573 (PyLate: 0.7574 in bfloat16, 0.7584 in float32).
544
+
545
+ The shipped profiles of every model on these adapters load with `bucketed`
546
+ graphs: `GTE-ModernColBERT-v1`, `Reason-ModernColBERT`, `mLateOn`,
547
+ `Iso-ModernColBERT`, `mxbai-edge-colbert-v0-32m`, `gte-modernbert-base`,
548
+ `modernbert-embed-base`, `granite-embedding-small-english-r2`,
549
+ `granite-embedding-97m-multilingual-r2` and `gte-reranker-modernbert-base`.
550
+ To run one of them eagerly, set `cuda_graphs: off` in its profile. A Candle
551
+ profile of these models sets its own load-time options, so it does not
552
+ inherit the setting.
553
+
554
+ A graph is recorded the first time a request needs its shape (the dense
555
+ adapter's warm-up records the smallest at load), and that request is answered
556
+ by its first replay. Recording follows the rules of the GLiClass graphs above,
557
+ and shares their process-wide limits: one recording at a time in the process,
558
+ none while less than a tenth of the device's memory is free, a budget of 16
559
+ recordings per model that refills at one every 2 seconds (16 in quick
560
+ succession, one after another, then about one every 2 seconds), and a
561
+ model's graphs within 4% of the device's memory (900 MB on an L4). A model's graphs, which share
562
+ one memory pool and one output buffer, held 40 to 105 MB on an L4 once every
563
+ shape its traffic needed was recorded. A recording that runs out of memory
564
+ drops the model's graphs and pauses recording for a minute; a shape that
565
+ fails to record for another reason runs eagerly from then on, and after
566
+ three such shapes the model runs eagerly for the rest of the process. Each
567
+ model counts the forwards it replays, records and runs eagerly (by reason),
568
+ and logs the counts every ten minutes while it serves requests.
569
+
570
+ **Fused rotary embedding.** The dense and late-interaction adapters rotate
571
+ queries and keys with about ten small PyTorch kernels per layer. With
572
+ `adapter_options.loadtime.fused_rope: true`, one Triton kernel per layer does
573
+ it instead, with flash-attn's rotary arithmetic (float32, rounded once, as
574
+ the Hugging Face flash-attention forward rotates): on an L4, 26.5 µs instead
575
+ of 178 µs per layer at 2,048 tokens. For the models below that is 1.13-1.18x
576
+ the speed of one-query requests (with CUDA graphs on both sides) and
577
+ 1.17-1.22x the throughput of 64-abstract requests. Outputs change by rounding, more than the eager path's own batching
578
+ noise, so the option ships under the third condition of the rule above.
579
+ Against a float32 reference of each checkpoint, on the SciFact sets of the
580
+ graphs comparison, it is at least as accurate as the unfused rotation for
581
+ `modernbert-embed-base`, `Reason-ModernColBERT` and `mLateOn`, and their
582
+ profiles enable it. The other models load without it.
583
+
584
+ ## Configuration
585
+
586
+ `sie-server` reads its config from `SIE_*` environment variables (Pydantic
587
+ `BaseSettings`). Common knobs:
588
+
589
+ ### Memory & OOM resilience
590
+
591
+ | Env var | Default | Effect |
592
+ |--|--|--|
593
+ | `SIE_MEMORY_PRESSURE_THRESHOLD_PERCENT` | `95` | VRAM utilisation that triggers reactive LRU eviction by the pressure monitor. |
594
+ | `SIE_OOM_RECOVERY__ENABLED` | `true` | Master switch for reactive OOM recovery in the worker dispatch path (`cache_clear → evict_lru → split_batch`). |
595
+ | `SIE_OOM_RECOVERY__STRATEGY` | `cache_clear,evict_lru,split_batch` | Ordered recovery actions. Earlier actions tried first. |
596
+ | `SIE_OOM_RECOVERY__MAX_SPLIT_DEPTH` | `4` | Cap on recursive batch halving (≤16 sub-batches). |
597
+ | `SIE_OOM_RECOVERY__EVICTION_LOCK_TIMEOUT_S` | `5.0` | Soft timeout when waiting for the registry's load-lock during recovery eviction. |
598
+ | `SIE_OOM_RECOVERY__RETRY_AFTER_S` | `5` | `Retry-After` header value on `RESOURCE_EXHAUSTED` responses. |
599
+ | `SIE_DISABLE_OOM_RECOVERY` | unset | Convenience kill switch (`1`/`true`/`yes`) for incident triage. Wins over `SIE_OOM_RECOVERY__ENABLED=true`. |
600
+ | `SIE_IDLE_EVICT_S` | unset (disabled) | Unload models that have been idle longer than this (seconds). Additive to the pressure monitor; helps free cold weights before pressure builds. |
601
+ | `SIE_OOM_NAK_DELAY_S` | `10.0` | Queue-mode only. NAK delay (seconds) for `RESOURCE_EXHAUSTED` work items so JetStream redelivers them after memory pressure has had a chance to clear. |
602
+
603
+ When OOM recovery is exhausted on a request, the server returns
604
+ `HTTP 503 RESOURCE_EXHAUSTED` with `Retry-After`. The Python SDK
605
+ auto-retries; see `packages/sie_sdk/README.md` for client-side controls.
606
+
607
+ ### Batching & request handling
608
+
609
+ | Env var | Default | Effect |
610
+ |--|--|--|
611
+ | `SIE_MAX_BATCH_REQUESTS` | `64` | Maximum number of items per batched inference call. |
612
+ | `SIE_MAX_BATCH_WAIT_MS` | `15.0` | Initial value for the adaptive first-request batch timeout. At runtime the PI batching controller steers it between `SIE_ADAPTIVE_BATCHING__MIN_WAIT_MS` and `SIE_ADAPTIVE_BATCHING__MAX_WAIT_MS`, so it is a starting point rather than a fixed wait. |
613
+ | `SIE_MAX_CONCURRENT_REQUESTS` | `512` | Per-worker queue size; admission control returns `QUEUE_FULL` above this. |
614
+ | `SIE_MAX_LORAS_PER_MODEL` | `10` | Maximum concurrent LoRA adapters per base model. |
615
+ | `SIE_MAX_ITEM_TEXT_BYTES` | `2097152` (2 MiB) | Most bytes of UTF-8 one encode, score, or extract item may carry in its `text` and `metadata` together. A larger item is rejected with `INVALID_INPUT` (HTTP 400) before it is tokenized. Generation prompts are not items and are not affected. |
616
+
617
+ ### Compute & precision
618
+
619
+ | Env var | Default | Effect |
620
+ |--|--|--|
621
+ | `SIE_DEFAULT_COMPUTE_PRECISION` | `float16` | One of `float16`, `bfloat16`, `float32`. |
622
+ | `SIE_ATTENTION_BACKEND` | `auto` | One of `auto`, `flash_attention_2`, `sdpa`, `eager`. |
623
+
624
+ ### Diagnostics
625
+
626
+ | Env var | Default | Effect |
627
+ |--|--|--|
628
+ | `SIE_GRAMMAR_PREFLIGHT_DEBUG` | unset (off) | Enables the legacy worker-side Outlines preflight compile before each structured-output request. Off by default because SGLang is the production grammar authority. Use for diagnosing schema-rejection problems or slow compiles in a controlled environment; not recommended for production traffic. |
629
+
630
+ For nested settings (any field with `__`), the env-var format is
631
+ `SIE_<TOP>__<NESTED>=value`. The complete schema is in
632
+ `packages/sie_server/src/sie_server/config/engine.py`.
633
+
634
+ ## Observability
635
+
636
+ The server emits the checked-in worker telemetry contract once through
637
+ OpenTelemetry/OTLP. The regional collector owns Prometheus exposition and
638
+ optional remote OTLP routing; the application does not expose `/metrics` or
639
+ maintain a second Prometheus registry. See `telemetry/contract.yaml` for exact
640
+ instrument names, dimensions, ownership, and histogram bounds.
641
+
642
+ ## API
643
+
644
+ See the [API documentation](https://sie.dev/docs) for details.
645
+
646
+ ## License
647
+
648
+ Apache 2.0