You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by kr...@apache.org on 2026/10/11 06:55:12 UTC
(opennlp) 03/07: GH-1391: Shorten the embedAll Javadoc and compute the expected batch sizes
This is an automated email from the ASF dual-hosted git repository.
krickert pushed a commit to branch feat/GH-1392-embed-padding
in repository https://gitbox.apache.org/repos/asf/opennlp.git
commit 6557e4c4d10ae52a1d77e6c69b48539713c36487
Author: Kristian Rickert <kr...@apache.org>
AuthorDate: Sat Oct 10 08:30:39 2026 -0400
GH-1391: Shorten the embedAll Javadoc and compute the expected batch sizes
The paragraph after {@inheritDoc} repeated the class Javadoc; it is one
line now. The limit test listed 4096 and 904 as literals; it computes them
from MAX_BATCH_TOKEN_POSITIONS.
---
.../main/java/opennlp/dl/vectors/SentenceVectorsDL.java | 6 ++----
.../opennlp/dl/vectors/SentenceVectorsDLEmbedderTest.java | 15 +++++++++------
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/opennlp-core/opennlp-ml/opennlp-dl/src/main/java/opennlp/dl/vectors/SentenceVectorsDL.java b/opennlp-core/opennlp-ml/opennlp-dl/src/main/java/opennlp/dl/vectors/SentenceVectorsDL.java
index a5afc055f..290f1a74c 100644
--- a/opennlp-core/opennlp-ml/opennlp-dl/src/main/java/opennlp/dl/vectors/SentenceVectorsDL.java
+++ b/opennlp-core/opennlp-ml/opennlp-dl/src/main/java/opennlp/dl/vectors/SentenceVectorsDL.java
@@ -278,10 +278,8 @@ public class SentenceVectorsDL extends AbstractDL implements TextEmbedder {
/**
* {@inheritDoc}
*
- * <p>The inputs are tokenized up front, grouped by tokenized length, and each group runs
- * through the session with shape {@code [rows, length]}, split so that no inference exceeds
- * {@value #MAX_BATCH_TOKEN_POSITIONS} token positions. A batch never pads, so every row is
- * computed from the tensors its single-input call would have used.</p>
+ * <p>The inputs are grouped by tokenized length, never padded, and each group runs in
+ * inferences of at most {@value #MAX_BATCH_TOKEN_POSITIONS} token positions.</p>
*/
@Override
public float[][] embedAll(final List<? extends CharSequence> texts) {
diff --git a/opennlp-core/opennlp-ml/opennlp-dl/src/test/java/opennlp/dl/vectors/SentenceVectorsDLEmbedderTest.java b/opennlp-core/opennlp-ml/opennlp-dl/src/test/java/opennlp/dl/vectors/SentenceVectorsDLEmbedderTest.java
index f944ae208..5adab3fbf 100644
--- a/opennlp-core/opennlp-ml/opennlp-dl/src/test/java/opennlp/dl/vectors/SentenceVectorsDLEmbedderTest.java
+++ b/opennlp-core/opennlp-ml/opennlp-dl/src/test/java/opennlp/dl/vectors/SentenceVectorsDLEmbedderTest.java
@@ -254,17 +254,20 @@ class SentenceVectorsDLEmbedderTest {
* Asserts that {@code embedAll} splits a large group of same-length inputs into inferences of
* at most {@value SentenceVectorsDL#MAX_BATCH_TOKEN_POSITIONS} token positions, and that every
* row still equals its single-input vector. "hello world" encodes to 4 tokens, so one
- * inference takes at most 4096 rows.
+ * inference takes at most a quarter of the cap in rows.
*/
@Test
void testEmbedAllCapsTokenPositionsPerInference(@TempDir final Path dir) throws Exception {
+ final int helloWorldTokens = 4;
+ final int rowsPerInference = SentenceVectorsDL.MAX_BATCH_TOKEN_POSITIONS / helloWorldTokens;
+ final int count = rowsPerInference + rowsPerInference / 4;
try (SentenceVectorsDL vectors = meanVectors(dir, SentenceVectorsDL.DEFAULT_MAX_LENGTH)) {
- final List<String> texts = Collections.nCopies(5000, "hello world");
- final List<List<Integer>> batches =
- SentenceVectorsDL.batches(Collections.nCopies(5000, tokens(4)).toArray(new Tokens[0]));
+ final List<String> texts = Collections.nCopies(count, "hello world");
+ final List<List<Integer>> batches = SentenceVectorsDL.batches(
+ Collections.nCopies(count, tokens(helloWorldTokens)).toArray(new Tokens[0]));
assertEquals(2, batches.size());
- assertEquals(4096, batches.get(0).size());
- assertEquals(904, batches.get(1).size());
+ assertEquals(rowsPerInference, batches.get(0).size());
+ assertEquals(count - rowsPerInference, batches.get(1).size());
final float[][] batch = vectors.embedAll(texts);
assertEquals(texts.size(), batch.length);
for (final float[] row : batch) {