pub struct InferenceEngine { /* private fields */ }Expand description
スレッドセーフな ONNX Runtime 推論エンジン。
内部にセッションプールを保持し、複数スレッドからの並行推論要求に対して
アロケーションフリーかつ競合を最小化したフォワードパスを実行する。
Arc<InferenceEngine> として複数ワーカー間で安全に共有可能である。
Implementations§
Source§impl InferenceEngine
impl InferenceEngine
Sourcepub fn forward_batch_tokenized(
&self,
batch: &BatchTokenizedQuestions,
) -> Result<IndexMap<String, Vec<f64>>>
pub fn forward_batch_tokenized( &self, batch: &BatchTokenizedQuestions, ) -> Result<IndexMap<String, Vec<f64>>>
Sourcepub fn forward_batch_tokenized_into(
&self,
batch: &BatchTokenizedQuestions,
out_logits: &mut [f64],
) -> Result<()>
pub fn forward_batch_tokenized_into( &self, batch: &BatchTokenizedQuestions, out_logits: &mut [f64], ) -> Result<()>
事前パッキング済みバッチトークン列を受け取り、推論結果を指定されたスライスに書き込む。
借用ビュー (TensorRef) によりゼロコピーで ONNX Runtime に渡される。
§引数
batch: パディングおよび平坦化済みのバッチトークナイズ結果。out_logits: 平坦化生ロジットの書き込み先バッファ ([batch_size * num_options])。
Sourcepub fn forward_batch_questions(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
) -> Result<IndexMap<String, Vec<f64>>>
pub fn forward_batch_questions( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, ) -> Result<IndexMap<String, Vec<f64>>>
Sourcepub fn evaluate_batch_questions(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
calib_config: &CalibrationConfig,
) -> Result<IndexMap<String, Answer>>
pub fn evaluate_batch_questions( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, calib_config: &CalibrationConfig, ) -> Result<IndexMap<String, Answer>>
共通 State、複数質問群、および較正設定を受け取り、単一フォワードパスで判定結果を一括導出する。
§処理フロー
tokenizer.encode_batch_questionsによるプレフィックス共有バッチ化。forward_batch_tokenized_intoによる単一フォワードパス実行。- 各質問の真の候補数 $K_i$ によるスライス抽出とダミーロジット破棄。
sokuto_core::decision::evaluate_question_with_bufによる決定論的プリミティブ解決。- 較正設定の閾値に基づき、透過的に確信度ゲーティングを適用して返却。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問識別子と質問定義のマップ。calib_config: 較正温度設定。
§戻り値
質問キーと決定結果 (Answer) の順序付きマップ。
Sourcepub fn evaluate_batch_questions_with_gating(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
calib_config: &CalibrationConfig,
gating_config: Option<&GatingConfig>,
) -> Result<IndexMap<String, Answer>>
pub fn evaluate_batch_questions_with_gating( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, calib_config: &CalibrationConfig, gating_config: Option<&GatingConfig>, ) -> Result<IndexMap<String, Answer>>
ゲーティング設定を明示指定して、複数質問一括バッチ推論を実行する。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問識別子と質問定義のマップ。calib_config: 較正温度設定。gating_config: 明示的なゲーティング設定 (任意、未指定時は較正設定から導出)。
Sourcepub fn evaluate_batch_questions_with_scratchpad(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
calib_config: &CalibrationConfig,
scratchpad: &mut BatchScratchpad,
) -> Result<IndexMap<String, Answer>>
pub fn evaluate_batch_questions_with_scratchpad( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, calib_config: &CalibrationConfig, scratchpad: &mut BatchScratchpad, ) -> Result<IndexMap<String, Answer>>
スクラッチパッドバッファを再利用し、共通 State と複数質問群の判定結果を一括導出する。
アロケーションを最小化したい高頻度 API サーバー環境向けの高速推論インターフェース。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問識別子と質問定義のマップ。calib_config: 較正温度設定。scratchpad: 再利用可能な作業用スクラッチパッドバッファ。
Sourcepub fn evaluate_batch_questions_with_scratchpad_and_gating(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
calib_config: &CalibrationConfig,
gating_config: Option<&GatingConfig>,
scratchpad: &mut BatchScratchpad,
) -> Result<IndexMap<String, Answer>>
pub fn evaluate_batch_questions_with_scratchpad_and_gating( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, calib_config: &CalibrationConfig, gating_config: Option<&GatingConfig>, scratchpad: &mut BatchScratchpad, ) -> Result<IndexMap<String, Answer>>
スクラッチパッドバッファとゲーティング設定を指定してバッチ推論を実行する。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問識別子と質問定義のマップ。calib_config: 較正温度設定。gating_config: 明示的なゲーティング設定 (任意)。scratchpad: 再利用可能な作業用スクラッチパッドバッファ。
Sourcepub fn forward_batch_questions_chunked(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
chunk_size: usize,
) -> Result<IndexMap<String, Vec<f64>>>
pub fn forward_batch_questions_chunked( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, chunk_size: usize, ) -> Result<IndexMap<String, Vec<f64>>>
共通 State と複数質問群を指定されたチャンクサイズで分割実行し、有効ロジットを返却する。
質問数が極端に多いリクエストにおいて、メモリ使用量 ($N \times L_{\max}$) の急増を抑制し OOM (Out Of Memory) を防止するマイクロバッチ推論インターフェース。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問識別子と質問定義のマップ。chunk_size: 1 回のフォワードパスで処理する最大質問数。
Sourcepub fn evaluate_batch_questions_chunked(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
calib_config: &CalibrationConfig,
chunk_size: usize,
) -> Result<IndexMap<String, Answer>>
pub fn evaluate_batch_questions_chunked( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, calib_config: &CalibrationConfig, chunk_size: usize, ) -> Result<IndexMap<String, Answer>>
共通 State と複数質問群を指定されたチャンクサイズで分割実行し、判定結果を一括導出する。
サーバー層 (sokuto-server) のガードレール等と連携し、大規模質問リクエストを 安全な固定バッチサイズで順次推論・解決する。較正設定の閾値に基づき、各質問に透過的にゲーティングを適用する。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問識別子と質問定義のマップ。calib_config: 較正温度設定。chunk_size: 1 回のフォワードパスで処理する最大質問数。
Sourcepub fn evaluate_batch_questions_chunked_with_gating(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
calib_config: &CalibrationConfig,
chunk_size: usize,
gating_config: Option<&GatingConfig>,
) -> Result<IndexMap<String, Answer>>
pub fn evaluate_batch_questions_chunked_with_gating( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, calib_config: &CalibrationConfig, chunk_size: usize, gating_config: Option<&GatingConfig>, ) -> Result<IndexMap<String, Answer>>
チャンク分割およびゲーティング設定を指定してバッチ推論を実行する。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問識別子と質問定義のマップ。calib_config: 較正温度設定。chunk_size: 1 回のフォワードパスで処理する最大質問数。gating_config: 明示的なゲーティング設定 (任意)。
Sourcepub fn evaluate_batch_questions_coarse_to_fine_with_scorer<S: CoarseScorer>(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
calib_config: &CalibrationConfig,
coarse_config: &CoarseToFineConfig,
scorer: &S,
) -> Result<IndexMap<String, Answer>>
pub fn evaluate_batch_questions_coarse_to_fine_with_scorer<S: CoarseScorer>( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, calib_config: &CalibrationConfig, coarse_config: &CoarseToFineConfig, scorer: &S, ) -> Result<IndexMap<String, Answer>>
任意の類似度スコアラーを指定して、粗密 2 段階探索を適用した複数質問一括バッチ推論を実行する。
§処理フロー
- 各質問を走査し、
Choiceかつ候補数 $K > \text{threshold}$ の質問を個別に Top-M 候補にスクリーニング。 - 縮小質問群(および閾値以下の元質問群)をプレフィックス共有バッチ化。
- バッチ全体の最大候補数 $K_{\max}$ が圧縮された状態で単一フォワードパスを実行。
- 各質問の決定プリミティブを解決し、スクリーニングされた質問については除外候補を確率 0.0 として全候補確率マップを再構成。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問マップ。calib_config: 較正温度設定。coarse_config: 粗密探索設定。scorer: 類似度スコアラー実装。
Sourcepub fn evaluate_batch_questions_coarse_to_fine(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
calib_config: &CalibrationConfig,
coarse_config: &CoarseToFineConfig,
) -> Result<IndexMap<String, Answer>>
pub fn evaluate_batch_questions_coarse_to_fine( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, calib_config: &CalibrationConfig, coarse_config: &CoarseToFineConfig, ) -> Result<IndexMap<String, Answer>>
既定の語彙スコアラー (LexicalCoarseScorer) を用いて、粗密 2 段階探索を適用した複数質問一括バッチ推論を実行する。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問マップ。calib_config: 較正温度設定。coarse_config: 粗密探索設定。
Sourcepub fn evaluate_batch_questions_coarse_to_fine_chunked_with_scorer<S: CoarseScorer>(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
calib_config: &CalibrationConfig,
coarse_config: &CoarseToFineConfig,
chunk_size: usize,
scorer: &S,
) -> Result<IndexMap<String, Answer>>
pub fn evaluate_batch_questions_coarse_to_fine_chunked_with_scorer<S: CoarseScorer>( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, calib_config: &CalibrationConfig, coarse_config: &CoarseToFineConfig, chunk_size: usize, scorer: &S, ) -> Result<IndexMap<String, Answer>>
任意の類似度スコアラーを指定して、粗密 2 段階探索とマイクロバッチチャンキングを統合した安全推論を実行する。
候補数が膨大な質問を事前に Top-$M$ 件へスクリーニングした上で、 共通 State を 1 度だけエンコードし、質問群を指定されたチャンクサイズごとに順次フォワードパスへ供給する。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問マップ。calib_config: 較正温度設定。coarse_config: 粗密探索設定。chunk_size: 1 回のフォワードパスで処理する最大質問数。scorer: 類似度スコアラー実装。
Sourcepub fn evaluate_batch_questions_coarse_to_fine_chunked_with_gating_and_scorer<S: CoarseScorer>(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
calib_config: &CalibrationConfig,
coarse_config: &CoarseToFineConfig,
chunk_size: usize,
gating_config: Option<&GatingConfig>,
scorer: &S,
) -> Result<IndexMap<String, Answer>>
pub fn evaluate_batch_questions_coarse_to_fine_chunked_with_gating_and_scorer<S: CoarseScorer>( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, calib_config: &CalibrationConfig, coarse_config: &CoarseToFineConfig, chunk_size: usize, gating_config: Option<&GatingConfig>, scorer: &S, ) -> Result<IndexMap<String, Answer>>
任意の類似度スコアラーおよび明示的なゲーティング設定を指定して、粗密 2 段階探索とマイクロバッチチャンキングを統合した安全推論を実行する。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問マップ。calib_config: 較正温度設定。coarse_config: 粗密探索設定。chunk_size: 1 回のフォワードパスで処理する最大質問数。gating_config: 明示的なゲーティング設定 (任意)。scorer: 類似度スコアラー実装。
Sourcepub fn evaluate_batch_questions_coarse_to_fine_chunked(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
calib_config: &CalibrationConfig,
coarse_config: &CoarseToFineConfig,
chunk_size: usize,
) -> Result<IndexMap<String, Answer>>
pub fn evaluate_batch_questions_coarse_to_fine_chunked( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, calib_config: &CalibrationConfig, coarse_config: &CoarseToFineConfig, chunk_size: usize, ) -> Result<IndexMap<String, Answer>>
既定の語彙スコアラー (LexicalCoarseScorer) を用いて、粗密 2 段階探索とマイクロバッチチャンキングを統合した推論を実行する。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問マップ。calib_config: 較正温度設定。coarse_config: 粗密探索設定。chunk_size: 1 回のフォワードパスで処理する最大質問数。
Sourcepub fn evaluate_batch_questions_coarse_to_fine_chunked_with_gating(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
calib_config: &CalibrationConfig,
coarse_config: &CoarseToFineConfig,
chunk_size: usize,
gating_config: Option<&GatingConfig>,
) -> Result<IndexMap<String, Answer>>
pub fn evaluate_batch_questions_coarse_to_fine_chunked_with_gating( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, calib_config: &CalibrationConfig, coarse_config: &CoarseToFineConfig, chunk_size: usize, gating_config: Option<&GatingConfig>, ) -> Result<IndexMap<String, Answer>>
既定の語彙スコアラーとゲーティング設定を指定して、粗密 2 段階探索とマイクロバッチチャンキングを統合した推論を実行する。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 質問マップ。calib_config: 較正温度設定。coarse_config: 粗密探索設定。chunk_size: 1 回のフォワードパスで処理する最大質問数。gating_config: 明示的なゲーティング設定 (任意)。
Sourcepub fn evaluate_batch_questions_hierarchical(
&self,
tokenizer: &JevTokenizer,
state: &str,
questions: &IndexMap<String, Question>,
mapping: &HierarchicalMapping,
calib_config: &CalibrationConfig,
config: HierarchicalRouterConfig,
gating_config: Option<&GatingConfig>,
) -> Result<IndexMap<String, HierarchicalResult>>
pub fn evaluate_batch_questions_hierarchical( &self, tokenizer: &JevTokenizer, state: &str, questions: &IndexMap<String, Question>, mapping: &HierarchicalMapping, calib_config: &CalibrationConfig, config: HierarchicalRouterConfig, gating_config: Option<&GatingConfig>, ) -> Result<IndexMap<String, HierarchicalResult>>
粗密二段階階層ルーティング (Coarse-to-Fine Hierarchical Routing) を用いて複数質問を一括評価する。
共通の階層オントロジーマッピングとルーター設定を各質問に適用し、 大分類オントロジー、ODIR Dirichlet 較正、Soft-Beam、エントロピー連動温度較正による低遅延・高精度推論を実行する。
§引数
tokenizer: Jev 高速トークナイザー。state: 共通文脈テキスト。questions: 評価対象の質問群マップ。mapping: 大分類・細分類の階層オントロジー定義。calib_config: 較正温度設定。config: 階層ルーター設定。gating_config: ゲーティング閾値設定 (任意)。
§戻り値
各質問キーと階層推論結果 (HierarchicalResult) の順序付きマップ。
Source§impl InferenceEngine
impl InferenceEngine
Sourcepub fn from_bytes(model_bytes: &[u8], config: SessionConfig) -> Result<Self>
pub fn from_bytes(model_bytes: &[u8], config: SessionConfig) -> Result<Self>
Sourcepub fn active_provider(&self) -> ExecutionProvider
pub fn active_provider(&self) -> ExecutionProvider
有効化された Execution Provider を取得する。
Sourcepub fn input_names(&self) -> &[String]
pub fn input_names(&self) -> &[String]
モデルの入力テンソル名一覧を取得する。
Sourcepub fn output_names(&self) -> &[String]
pub fn output_names(&self) -> &[String]
モデルの出力テンソル名一覧を取得する。
Sourcepub fn forward_raw(
&self,
input_ids: &[i64],
attention_mask: &[i64],
op_indices: &[i64],
dims: ModelInputDimensions,
) -> Result<Vec<Vec<f64>>>
pub fn forward_raw( &self, input_ids: &[i64], attention_mask: &[i64], op_indices: &[i64], dims: ModelInputDimensions, ) -> Result<Vec<Vec<f64>>>
平坦化された生テンソルスライスを受け取り、推論を実行してロジットを返却する。
§引数
input_ids: トークン ID 列 ([batch_size * seq_len])。attention_mask: アテンションマスク列 ([batch_size * seq_len])。op_indices: オプションマーカー位置インデックス ([batch_size * num_options])。dims: 入力テンソルの次元情報 (batch_size,sequence_length,num_options)。
§戻り値
各バッチサンプルのロジット配列 (Vec<Vec<f64>>)。
Sourcepub fn forward_raw_into(
&self,
input_ids: &[i64],
attention_mask: &[i64],
op_indices: &[i64],
dims: ModelInputDimensions,
out_logits: &mut [f64],
) -> Result<()>
pub fn forward_raw_into( &self, input_ids: &[i64], attention_mask: &[i64], op_indices: &[i64], dims: ModelInputDimensions, out_logits: &mut [f64], ) -> Result<()>
平坦化された生テンソルスライスを受け取り、推論結果を指定されたスライスに書き込む。
入力テンソルは借用ビュー (TensorRef) によりゼロコピーで ORT に渡され、
出力も事前確保済みスライスに直接展開されるため、ヒープ確保が発生しない。
§引数
input_ids: トークン ID 列 ([batch_size * seq_len])。attention_mask: アテンションマスク列 ([batch_size * seq_len])。op_indices: オプションマーカー位置インデックス ([batch_size * num_options])。dims: 入力テンソルの次元情報 (batch_size,sequence_length,num_options)。out_logits: 結果ロジットの書き込み先バッファ ([batch_size * num_options])。
Sourcepub fn forward_question(
&self,
tokenized: &TokenizedQuestion,
) -> Result<Vec<f64>>
pub fn forward_question( &self, tokenized: &TokenizedQuestion, ) -> Result<Vec<f64>>
Sourcepub fn evaluate_question_coarse_to_fine_with_scorer<S: CoarseScorer>(
&self,
tokenizer: &JevTokenizer,
state: &str,
question: &Question,
calib_config: &CalibrationConfig,
coarse_config: &CoarseToFineConfig,
scorer: &S,
) -> Result<Answer>
pub fn evaluate_question_coarse_to_fine_with_scorer<S: CoarseScorer>( &self, tokenizer: &JevTokenizer, state: &str, question: &Question, calib_config: &CalibrationConfig, coarse_config: &CoarseToFineConfig, scorer: &S, ) -> Result<Answer>
任意の類似度スコアラーを指定して、粗密 2 段階探索 (Coarse-to-Fine) で単一質問を評価する。
§処理フロー
question.question_type == QuestionType::Choiceかつcriteria.len() > coarse_config.thresholdの場合にのみ 2 段階探索を発動。- ネガティブ候補保護 (Pinning) およびスコアラーによる Top-M スクリーニングを実施。
- 絞り込み後の候補マップを用いて部分質問
sub_questionを構築。 tokenizer.encode_questionおよびself.forward_questionを実行。- 較正設定
calib_config(Fine 候補数 $M$ に対応するバケット) を適用してsub_answerを導出。 reconstruct_probabilitiesにより除外候補を確率 0.0 として全候補確率マップを再構成して返却。
発動条件を満たさない質問 (候補数 $K \le \text{threshold}$、または Score/Noul 型) は、
直接通常推論 (encode_question -> forward_question -> evaluate_question) へバイパスする。
§引数
任意の類似度スコアラーを指定して、粗密 2 段階探索 (Coarse-to-Fine) で単一質問を評価する。
§処理フロー
question.question_type == QuestionType::Choiceかつcriteria.len() > coarse_config.thresholdの場合にのみ 2 段階探索を発動。- ネガティブ候補保護 (Pinning) およびスコアラーによる Top-M スクリーニングを実施。
- 絞り込み後の候補マップを用いて部分質問
sub_questionを構築。 tokenizer.encode_questionおよびself.forward_questionを実行。- 較正設定
calib_config(Fine 候補数 $M$ に対応するバケット) を適用してsub_answerを導出。 reconstruct_probabilitiesにより除外候補を確率 0.0 として全候補確率マップを再構成。- 較正設定の閾値またはリクエスト指定設定に基づき、透過的に確信度ゲーティングを適用して返却。
発動条件を満たさない質問 (候補数 $K \le \text{threshold}$、または Score/Noul 型) は、
直接通常推論 (encode_question -> forward_question -> evaluate_question) へバイパスする。
§引数
tokenizer: Jev 高速トークナイザー。state: 文脈テキスト。question: 質問定義。calib_config: 較正温度設定。coarse_config: 粗密探索設定。scorer: 類似度スコアラー実装。
Sourcepub fn evaluate_question_coarse_to_fine_with_gating_and_scorer<S: CoarseScorer>(
&self,
tokenizer: &JevTokenizer,
state: &str,
question: &Question,
calib_config: &CalibrationConfig,
coarse_config: &CoarseToFineConfig,
gating_config: Option<&GatingConfig>,
scorer: &S,
) -> Result<Answer>
pub fn evaluate_question_coarse_to_fine_with_gating_and_scorer<S: CoarseScorer>( &self, tokenizer: &JevTokenizer, state: &str, question: &Question, calib_config: &CalibrationConfig, coarse_config: &CoarseToFineConfig, gating_config: Option<&GatingConfig>, scorer: &S, ) -> Result<Answer>
任意の類似度スコアラーとゲーティング設定を指定して、粗密 2 段階探索で単一質問を評価する。
§引数
tokenizer: Jev 高速トークナイザー。state: 文脈テキスト。question: 質問定義。calib_config: 較正温度設定。coarse_config: 粗密探索設定。gating_config: 明示的なゲーティング設定 (任意、未指定時は較正設定から導出)。scorer: 類似度スコアラー実装。
Sourcepub fn evaluate_question_coarse_to_fine(
&self,
tokenizer: &JevTokenizer,
state: &str,
question: &Question,
calib_config: &CalibrationConfig,
coarse_config: &CoarseToFineConfig,
) -> Result<Answer>
pub fn evaluate_question_coarse_to_fine( &self, tokenizer: &JevTokenizer, state: &str, question: &Question, calib_config: &CalibrationConfig, coarse_config: &CoarseToFineConfig, ) -> Result<Answer>
既定の語彙スコアラー (LexicalCoarseScorer) を用いて、粗密 2 段階探索で単一質問を評価する。
§引数
tokenizer: Jev 高速トークナイザー。state: 文脈テキスト。question: 質問定義。calib_config: 較正温度設定。coarse_config: 粗密探索設定。
Sourcepub fn evaluate_question_coarse_to_fine_with_gating(
&self,
tokenizer: &JevTokenizer,
state: &str,
question: &Question,
calib_config: &CalibrationConfig,
coarse_config: &CoarseToFineConfig,
gating_config: Option<&GatingConfig>,
) -> Result<Answer>
pub fn evaluate_question_coarse_to_fine_with_gating( &self, tokenizer: &JevTokenizer, state: &str, question: &Question, calib_config: &CalibrationConfig, coarse_config: &CoarseToFineConfig, gating_config: Option<&GatingConfig>, ) -> Result<Answer>
既定の語彙スコアラーとゲーティング設定を指定して、粗密 2 段階探索で単一質問を評価する。
§引数
tokenizer: Jev 高速トークナイザー。state: 文脈テキスト。question: 質問定義。calib_config: 較正温度設定。coarse_config: 粗密探索設定。gating_config: 明示的なゲーティング設定 (任意)。
Sourcepub fn evaluate_question_hierarchical(
&self,
tokenizer: &JevTokenizer,
state: &str,
instructions: &str,
mapping: &HierarchicalMapping,
calib_config: &CalibrationConfig,
config: HierarchicalRouterConfig,
gating_config: Option<&GatingConfig>,
) -> Result<HierarchicalResult>
pub fn evaluate_question_hierarchical( &self, tokenizer: &JevTokenizer, state: &str, instructions: &str, mapping: &HierarchicalMapping, calib_config: &CalibrationConfig, config: HierarchicalRouterConfig, gating_config: Option<&GatingConfig>, ) -> Result<HierarchicalResult>
粗密二段階階層ルーティング (Coarse-to-Fine Hierarchical Routing) により単一質問を評価する。
大分類オントロジーと Soft-Beam、大分類エントロピー連動温度調整を活用し、 高基数分類 ($K > 20 \sim 30$) においても高精度かつ低遅延に決定を出力する。
§引数
tokenizer: Jev 高速トークナイザー。state: 文脈テキスト。instructions: 質問指示文。mapping: 大分類と細分類のオントロジー階層マッピング。calib_config: 較正温度設定。config: 階層ルーター設定 (Soft-Beam, Early-Exit 閾値など)。gating_config: ゲーティング閾値設定 (任意)。
§戻り値
階層推論結果 (HierarchicalResult)。
Sourcepub fn forward_question_raw(
&self,
tokenizer: &JevTokenizer,
state: &str,
question: &Question,
) -> Result<Vec<f64>>
pub fn forward_question_raw( &self, tokenizer: &JevTokenizer, state: &str, question: &Question, ) -> Result<Vec<f64>>
Sourcepub fn predict_single_question(
&self,
tokenizer: &JevTokenizer,
state: &str,
question: &Question,
calib_config: &CalibrationConfig,
) -> Result<Answer>
pub fn predict_single_question( &self, tokenizer: &JevTokenizer, state: &str, question: &Question, calib_config: &CalibrationConfig, ) -> Result<Answer>
Auto Trait Implementations§
impl !Freeze for InferenceEngine
impl RefUnwindSafe for InferenceEngine
impl Send for InferenceEngine
impl Sync for InferenceEngine
impl Unpin for InferenceEngine
impl UnsafeUnpin for InferenceEngine
impl UnwindSafe for InferenceEngine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more