Non-deterministic embedding models?

My understanding of embedding models is that they are a deterministic thing, mapping text to a numerical vector.

I repeatedly regenerated an embedding for two words about 10-15 times. They were the same most of the time, but, in two cases we got a different embedding.

Am I misunderstanding how embedding models work, or, is there something going on under the hood of the API - bug or otherwise?

The model was text-embedding-3-small

Embedding models are large language models, and determinism isn’t something that OpenAI really guarantees at the moment.

Were they significantly different? Sometimes you get rounding errors if you don’t specify the encoding format

How different were the embeddings? If you get a cosine similarity exceeding 0.99999, they might as well be the same.