-
Notifications
You must be signed in to change notification settings - Fork 0
Embeddings onnxtextembedder embedbatch
A vector per text, in one session run.
public float[][] EmbedBatch(IEnumerable<string> texts, EncodingOptions options = null, CancellationToken cancellationToken = default)
public float[][] EmbedBatch(IEnumerable<string> texts, BatchEncoder encoder, CancellationToken cancellationToken = default)
public float[][] EmbedBatch(EncodedBatch batch, CancellationToken cancellationToken = default)Parameters — texts are the strings to embed. options tunes the encoding — padding,
truncation, the maximum length. encoder is a BatchEncoder
you have already configured, for when the model's tokenizer is not the default. batch is an
EncodedBatch you encoded yourself. cancellationToken
abandons the run.
Returns — float[][], one vector of Dimension per input text, in input order.
Exceptions — InvalidOperationException from the overload taking only texts, when the
embedder was built without a tokenizer: the other two overloads are the way to supply one.
OperationCanceledException when cancellationToken is already cancelled, or is cancelled
between sub-batches. ObjectDisposedException after
Dispose, for the reason
Embed gives.
Example — the shortest path from strings to vectors.
using Lodestar.Embeddings.Onnx;
using var embedder = new OnnxTextEmbedder("model.onnx");
float[][] vectors = embedder.EmbedBatch(
[
"the cat sat on the mat",
"a dog lay on the rug",
]);Remarks — three overloads for one operation, and the choice is about who owns the tokenizer. The first owns it for you and is right when the model ships a standard vocabulary. The second takes an encoder you built, for a model whose tokenizer differs. The third takes an already-encoded batch, for when encoding happened elsewhere — on another thread, or once for several models.
Batching is not merely convenient. A session run has a fixed cost, so embedding a hundred texts one at a time costs a hundred of those; the vectors are identical either way, and the time is not.
Order is preserved, so the nth vector belongs to the nth text however the batch was padded internally.
Applies to — net10.0, netstandard2.0.
See also — OnnxTextEmbedder.Embed,
BatchEncoder,
EncodedBatch.
- 0001-target-framework
- 0002-unicode-comparison-unit
- 0003-provenance-and-licensing
- 0004-levenshtein-myers-backlog
- 0005-hamming-jellyfish-divergence
- 0006-ratcliff-autojunk
- 0007-metaphone-scope
- 0008-italian-enza-nltk-divergence
- 0009-sample-consumes-a-local-feed
- 0010-stop-word-list-provenance
- 0011-persistence-format
- 0012-per-package-versioning
- 0013-sentencepiece-parity-scope
- 0014-precompiled-normalizer
- 0015-sonar-rules-in-the-build
- 0016-metrics-package-placement
- 0017-bpe-parity-scope
- 0018-multiclass-roc-auc-parallelism-is-opt-in
- 0019-the-net-analysers-run-in-the-build-too
- 0020-normalize-is-a-projection-not-a-parameter
- 0021-multioutput-is-a-method-not-an-enum
- 0022-added-token-matching-flags
- 0023-byte-level-decode-substitutes
- 0024-weighted-median-averages-within-scikit-learns-epsilon
- 0025-quickselect-replaces-a-full-sort-for-the-median
- 0026-r2-and-explainedvariance-split-their-undefined-cases-differently
- 0027-r2-and-explainedvariance-vectorize-only-a-single-output
- 0028-log1p-is-kahans-identity-not-math-log-1-plus-x
- 0029-balanced-accuracy-adjusted-is-left-to-ieee-754-at-the-edge
- 0030-cohen-kappa-keeps-scikit-learns-expected-matrix-orientation
- 0031-nosamplecorrect-mirrors-numpys-float64-upcast
- 0032-fbeta-substitutes-tp-predicted-and-support-algebraically
- 0033-compensated-sum-is-neumaiers-variant
- 0034-dropout-is-refused-for-want-of-a-user
- 0035-a-null-pre-split-is-removed-with-invert-not-isolated
- 0036-a-member-may-ship-without-an-oracle-if-it-says-so
- 0037-the-guards-run-before-the-commit
- 0038-the-gate-confronts-an-exception-tag-with-the-page-that-documents-it
- 0039-mutual-information-returns-zero-on-an-empty-input
- 0040-a-curve-is-a-sealed-class-per-curve
- 0041-one-sample-file-per-public-class
- 0042-phonetic-encoders-refuse-a-null-word
- 0043-the-equality-table-is-sized-to-the-pattern
- 0044-compression-belongs-to-the-caller
- 0045-a-console-call-carries-its-reason-on-the-line
- 0046-check-adr-immutable-runs-in-ci-only
- 0047-one-gate-per-kernel-not-one-per-alphabet
- 0048-the-gate-depends-on-the-kernel-and-the-alphabet
- 0049-two-gates-per-kernel-tested-where-the-width-is-known
- 0050-the-sentencepiece-bpe-lineage-stays-a-bpe-model
- benchmark_latest
- decisions
- equivalence
- matplotlib
- migration
- nightly_run
- numpy
- pandas
- performance
- pytorch
- seaborn
- sklearn
- statsmodels