news_transformer: clamp ORT threads, disable intra-op spinning; spec marked implemented in ForexBot2

Same two load_model lines as the copy vendored into ForexBot2/news_model.py
(2026-09-27), so the files stay identical on the scoring functions.
This commit is contained in:
Harwinder Sekhon
2026-09-27 20:46:27 -04:00
parent 10e7ba57f1
commit 2787b3cb8b
2 changed files with 28 additions and 4 deletions
+5 -1
View File
@@ -25,6 +25,7 @@ from __future__ import annotations
import argparse
import html
import json
import os
import sys
from pathlib import Path
from typing import Any, Iterable
@@ -68,8 +69,11 @@ def load_model(model_dir: str | Path = DEFAULT_MODEL_DIR,
tokenizer.enable_padding(pad_id=int(meta["pad_token_id"]), pad_token=meta["pad_token"])
options = ort.SessionOptions()
if threads:
options.intra_op_num_threads = threads
options.intra_op_num_threads = max(1, min(int(threads), os.cpu_count() or 1))
options.inter_op_num_threads = 1
# ORT intra-op threads spin-wait after each run by default; in a mostly
# idle bot process that is 4 cores at 100% between cycles.
options.add_session_config_entry("session.intra_op.allow_spinning", "0")
session = ort.InferenceSession(str(model_dir / meta.get("onnx_file", "model.onnx")),
options, providers=["CPUExecutionProvider"])
return {"meta": meta, "tokenizer": tokenizer, "session": session}