[Spec][Ngram] Misc enhance support for multiple SAMs (#22294)

This commit is contained in:
Khoa Pham
2026-04-08 19:56:23 -07:00
committed by GitHub
parent c431b11d8b
commit f127d67823
9 changed files with 199 additions and 19 deletions
+7 -2
View File
@@ -119,7 +119,7 @@ def get_ngram_corpus_cls():
self.erase_match_state(state_ids_t) # type: ignore
def load_external_corpus_named(
self, corpus_id: str, chunks: Iterable[Sequence[int]]
self, corpus_id: str, chunks: Iterable[Sequence[int]], max_tokens: int
) -> Tuple[int, int]:
self.start_external_corpus_load() # type: ignore
chunk_count = 0
@@ -127,12 +127,17 @@ def get_ngram_corpus_cls():
try:
for chunk in chunks:
tokens_t = torch.tensor(list(chunk), dtype=torch.int32)
if loaded_token_count + len(tokens_t) > max_tokens:
raise ValueError(
"External ngram corpus exceeds the remaining token budget "
f"({max_tokens}) after loading {loaded_token_count} tokens."
)
loaded_token_count += len(tokens_t)
self.append_external_corpus_tokens(tokens_t) # type: ignore
chunk_count += 1
self.finish_external_corpus_load(corpus_id) # type: ignore
except Exception:
self.clear_external_corpus() # type: ignore
self.cancel_external_corpus_load() # type: ignore
raise
return chunk_count, loaded_token_count