Model reference · open weights

Titan-text-embeddings

Embeddings amazon Embeddings 1 build Its own licence terms 518 dl/mo

Titan-text-embeddings is an open-weight embedding model from amazon.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • Titan-text-embeddings is a feature-extraction model developed by Amazon and published as amazon/Titan-text-embeddings-v2.
  • It is designed for retrieval-augmented generation tasks, supporting both latency-optimized query embedding and throughput-optimized corpus indexing via the Bedrock API.
  • The model supports English, French, German, Spanish, Japanese, Chinese, Hindi, Arabic, and other languages, and is available under an other license.

Summary of the amazon/Titan-text-embeddings-v2 model card, 2026-10-01

What it is

Released byamazon
Released2024-04-30

From the model card

What amazon says about Titan-text-embeddings

Read the model card

Bedrock Titan Text Embeddings v2

This repository contains the MTEB scores and usage examples of Bedrock Titan Text Embeddings v2. You can use the embedding model either via the Bedrock InvokeModel API or via Bedrock's batch jobs. For RAG use cases we recommend the former to embed queries during search (latency optimized) and the latter to index corpus (throughput optimized).

Using Bedrock's InvokeModel API

import json
import boto3
class TitanEmbeddings(object):
    accept = "application/json"
    content_type = "application/json"

    def __init__(self, model_id="amazon.titan-embed-text-v2:0"):
        self.bedrock = boto3.client(service_name='bedrock-runtime')
        self.model_id = model_id
    def __call__(self, text, dimensions, normalize=True):
        """
        Returns Titan Embeddings
        Args:
            text (str): text to embed
            dimensions (int): Number of output dimensions.
            normalize (bool): Whether to return the normalized embedding or not.
        Return:
            List[float]: Embedding

        """
        body = json.dumps({
            "inputText": text,
            "dimensions": dimensions,
            "normalize": normalize
        })
        response = self.bedrock.invoke_model(
            body=body, modelId=self.model_id, accept=self.accept, contentType=self.content_type
        )
        response_body = json.loads(response.get('body').read())
        return response_body['embedding']

if __name__ == '__main__':
    """
    Entrypoint for Amazon Titan Embeddings V2 - Text example.
    """
    dimensions = 1024
    normalize = True

    titan_embeddings_v2 = TitanEmbeddings(model_id="amazon.titan-embed-text-v2:0")

    input_text = "What are the different services that you offer?"
    embedding = titan_embeddings_v2(input_text, dimensions, normalize)

    print(f"{input_text=}")
    print(f"{embedding[:10]=}")

Using Bedrock's batch jobs

import requests
from aws_requests_auth.boto_utils import BotoAWSRequestsAuth

region = "us-east-1"
base_uri = f"bedrock.{region}.amazonaws.com"
batch_job_uri = f"https://{base_uri}/model-invocation-job/"

# For details on how to set up an IAM role for batch inference, see
# https://docs.aws.amazon.com/bedrock/latest/userguide/batch-inference-permissions.html
role_arn = "arn:aws:iam::111122223333:role/my-batch-inference-role"

payload = {
   "inputDataConfig": {
        "s3InputDataConfig": {
            "s3Uri": "s3://my-input-bucket/batch-input/",
            "s3InputFormat": "JSONL"
        }
   },
   "jobName": "embeddings-v2-batch-job",
   "modelId": "amazon.titan-embed-text-v2:0",
   "outputDataConfig": {
        "s3OutputDataConfig": {
            "s3Uri": "s3://my-output-bucket/batch-output/"
        }
   },
   "roleArn": role_arn
}

request_auth = BotoAWSRequestsAuth(
    aws_host=base_uri,
    aws_region=region,
    aws_service="bedrock"
)

response= requests.request("POST", batch_job_uri, json=payload, auth=request_auth)
print(response.json())

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

How it works

How embedding models work

Your textsentence / documentEncodermaps meaningVectorlist of numbersAn embedding model turns text into a vector, so similar meanings sit close together, which is the basis of search and RAG.

Benchmarks

Reported results

As published on the model card: the maker's own numbers, not measured by AxForge.

TaskDatasetMetricScore
ClassificationMTEB AmazonCounterfactualClassification (en)accuracy79.313
ClassificationMTEB AmazonCounterfactualClassification (en)ap43.947
ClassificationMTEB AmazonCounterfactualClassification (en)f173.613
ClassificationMTEB AmazonCounterfactualClassification (de)accuracy70.942
ClassificationMTEB AmazonCounterfactualClassification (de)ap82.301
ClassificationMTEB AmazonCounterfactualClassification (de)f169.380
ClassificationMTEB AmazonCounterfactualClassification (en-ext)accuracy82.294
ClassificationMTEB AmazonCounterfactualClassification (en-ext)ap29.957
ClassificationMTEB AmazonCounterfactualClassification (en-ext)f168.882
ClassificationMTEB AmazonCounterfactualClassification (ja)accuracy80.064
ClassificationMTEB AmazonCounterfactualClassification (ja)ap25.244
ClassificationMTEB AmazonCounterfactualClassification (ja)f165.538
ClassificationMTEB AmazonPolarityClassificationaccuracy76.664
ClassificationMTEB AmazonPolarityClassificationap70.770
ClassificationMTEB AmazonPolarityClassificationf176.541
ClassificationMTEB AmazonReviewsClassification (en)accuracy35.276
ClassificationMTEB AmazonReviewsClassification (en)f134.906
ClassificationMTEB AmazonReviewsClassification (de)accuracy38.826
ClassificationMTEB AmazonReviewsClassification (de)f137.713
ClassificationMTEB AmazonReviewsClassification (es)accuracy39.386
ClassificationMTEB AmazonReviewsClassification (es)f138.243
ClassificationMTEB AmazonReviewsClassification (fr)accuracy39.472
ClassificationMTEB AmazonReviewsClassification (fr)f138.372
ClassificationMTEB AmazonReviewsClassification (ja)accuracy35.898
© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms