Page MenuHomePhabricator

Switch semantic search embeddings service from Qwen3 to jina-embeddings-v5-text-nano
Closed, ResolvedPublic8 Estimated Story Points

Description

ML has jina-embeddings-v5-text-nano running on Lift Wing as a drop-in alternative to qwen3-embedding, faster under load ({T432717#12173921}). Research's offline evaluation is done. This ticket covers making the two systems on our side that reference qwen3-embedding actually work with the new model.

1. Batch passage-embedding generation (T414070):

  • Confirm the jina-embeddings-v5-text-nano weights load via spark-nlp's AutoGGUFEmbeddings (or identify the working loader if not); get a compatible checkpoint onto HDFS the same way qwen3's was.
  • Update the weekly job's model path/config to point at the new checkpoint.
  • Run one full (non-incremental) recompute of the passage corpus, since cached embeddings from the old model are invalid.

2. OpenSearch–LiftWing bridge (T414095 / T431588):

  • Register a liftwing_jina connector, model group, and model in OpenSearch's ml-commons (mirroring the existing liftwing_qwen3 setup), pointed at .../v1/models/jina-embeddings:predict on inference.svc.eqiad.wmnet:30443.
  • Script this configuration this time (T414095 flagged that the qwen3 setup was done by hand with nothing to replicate it from) rather than repeating the manual curl process.
  • Repoint the index's default search_pipeline's model_id at the new model.
  • If vector dimensionality differs from qwen3, reindex the knn field; otherwise confirm the field mapping still matches.

3. Cutover:

  • Stage the new connector/model and pipeline against the test cluster first (opensearch-semantic-search-test) before flipping production.
  • Confirm CirrusSearch's query-side instruction profile (CR I16e5b3, T413969) doesn't need updating for Jina's instruction format.
  • Once cutover is stable, coordinate with ML on decommissioning the qwen3-embedding isvc (T432717 left that for us to trigger).

Acceptance criteria:

  • Weekly batch job produces jina embeddings from the full corpus and reuses them incrementally going forward.
  • OpenSearch semantic-search clusters (eqiad & codfw) query jina-embeddings via a scripted, repeatable connector config.
  • Query-time neural search runs end-to-end against the new model on the test cluster, then production.
  • Old qwen3-embedding connector/model/config removed once cutover is confirmed.

Details

Related Changes in GitLab:
TitleReferenceAuthorSource BranchDest Branch
search: import jina semantic search indicesrepos/data-engineering/airflow-dags!2639dcausseT436527-import-jina-semsearch-indicesmain
Add jina search pipelinerepos/search-platform/cirrus-toolbox!14dcausseT436527-jina-embeddingsmain
search: embeddings drop BC VarProp varrepos/data-engineering/airflow-dags!2636dcausseT436527-remove-BC-varprop-entrymain
search: run jina-v5-nanorepos/data-engineering/airflow-dags!2621dcausseT436527-jina-v5-nanomain
passage_embeddings: add support for jina-v5-nanorepos/search-platform/discolytics!82dcausseT436527-jina-v5-nanomain
Customize query in GitLab

Event Timeline