CoolFace
Modelpublic

tomaarsen/multivector-ModernBERT-base-msmarco-contrastive

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes39downloads
Model Card

ColBERT ModernBERT-base trained on MS MARCO triplets

This is a Multi-Vector Encoder model finetuned from answerdotai/ModernBERT-base on the msmarco-bm25 dataset using the sentence-transformers library. It maps inputs to sequences of 128-dimensional token-level vectors and scores them with late interaction (MaxSim), useful for semantic search with late interaction.

Model Details

Model Description

  • —Model Type: Multi-Vector Encoder
  • —Base model: answerdotai/ModernBERT-base <!-- at revision 8949b909ec900327062f0ebf497f51aef5e6f0c8 -->
  • —Maximum Sequence Length: 8192 tokens
  • —Output Dimensionality: 128 dimensions
  • —Similarity Function: maxsim
  • —Supported Modality: Text
  • —Training Dataset:
  • —msmarco-bm25
  • —Language: en
  • —License: apache-2.0

Model Sources

Full Model Architecture

MultiVectorEncoder(
  (0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'query_expansion': {'strategy': 'min', 'attend': False, 'token': None, 'length': 32}, 'architecture': 'ModernBertModel'})
  (1): Dense({'in_features': 768, 'out_features': 128, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity', 'module_input_name': 'token_embeddings', 'module_output_name': 'token_embeddings'})
  (2): MultiVectorMask({'skiplist_words': [], 'keep_only_token_ids': None})
  (3): Normalize({'module_input_name': 'token_embeddings', 'module_output_name': 'token_embeddings'})
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

bash
pip install -U sentence-transformers

Then you can load this model and run inference.

python
from sentence_transformers import MultiVectorEncoder

# Download from the 🤗 Hub
model = MultiVectorEncoder("tomaarsen/multivector-ModernBERT-base-msmarco")
# Run inference: each input becomes a sequence of per-token vectors (variable length).
queries = [
    'what does marijuana cost per joint',
]
documents = [
    'With a 50-50 ratio of marijuana to tobacco, the cost of producing a pack of 20 pre-rolled joints could be brought down to just a little more than $20â\x80\x94so a $40 pack at the store. It isnâ\x80\x99t as easy as it seems, though. The government has a vested interest in producing income from the selling of marijuana.nother solution: mix the marijuana with tobacco. If marijuana cigarettes were to be mixed with tobacco, at a 50-50 ratio, it would bring the cost down significantly. Many tobacco farmers will wholesale a pound of their product for less than $2.',
    'What does a dime,dub,eigth,quarter,and a zip of marijuana look like and cost?',
    'In January of 1980, residents decided to incorporate by an overwhelming margin. The Town of Farragut was incorporated on January 16, 1980, with the first board of Mayor and Alderman elected on April 1, 1980.',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings[0].shape, document_embeddings[0].shape)
# (32, 128) (129, 128)

# Get the MaxSim similarity scores
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[24.6630, 18.9976,  9.6529]])

<!--

Direct Usage (Transformers)

<details><summary>Click to see the direct usage in Transformers</summary>

</details> -->

<!--

Downstream Usage (Sentence Transformers)

You can finetune this model on your own dataset.

<details><summary>Click to expand</summary>

</details> -->

<!--

Out-of-Scope Use

List how the model may foreseeably be misused and address what users ought not to do with the model. -->

Evaluation

Metrics

Multi Vector Information Retrieval
  • —Datasets: NanoMSMARCO, NanoNQ, NanoFiQA2018, NanoClimateFEVER, NanoDBPedia, NanoFEVER, NanoFiQA2018, NanoHotpotQA, NanoMSMARCO, NanoNFCorpus, NanoNQ, NanoQuoraRetrieval, NanoSCIDOCS, NanoArguAna, NanoSciFact and NanoTouche2020
  • —Evaluated with <code>MultiVectorInformationRetrievalEvaluator</code>
MetricNanoMSMARCONanoNQNanoFiQA2018NanoClimateFEVERNanoDBPediaNanoFEVERNanoHotpotQANanoNFCorpusNanoQuoraRetrievalNanoSCIDOCSNanoArguAnaNanoSciFactNanoTouche2020
maxsim_accuracy@10.240.40.260.20.540.660.780.380.880.340.080.50.4898
maxsim_accuracy@30.440.580.420.380.760.880.90.380.940.580.40.660.6531
maxsim_accuracy@50.50.620.50.50.80.920.90.460.980.70.440.680.7551
maxsim_accuracy@100.680.680.580.580.820.980.960.540.980.760.540.740.9184
maxsim_precision@10.240.40.260.20.540.660.780.380.880.340.080.50.4898
maxsim_precision@30.14670.19330.220.15330.44670.30.40670.280.380.25330.13330.23330.4422
maxsim_precision@50.10.1280.1560.1160.4320.1920.260.2880.2440.2320.0880.1480.4449
maxsim_precision@100.0680.0720.0940.0760.3660.1020.1480.2060.1260.140.0540.0840.3837
maxsim_recall@10.240.360.11440.0750.09440.630.390.02250.77070.07170.080.4750.0397
maxsim_recall@30.440.520.29880.1750.14410.840.610.04640.90870.15670.40.650.1074
maxsim_recall@50.50.570.35930.20730.18350.890.650.06950.9460.23970.440.6750.1734
maxsim_recall@100.680.640.4240.2640.2550.950.740.10880.95270.28770.540.740.2789
maxsim_ndcg@100.44020.51130.32480.22020.46740.80370.69540.25650.91410.28230.31990.61610.4284
maxsim_mrr@100.36610.49760.35810.31920.65920.77370.84240.40870.9190.480.24870.57790.6056
maxsim_map@1000.38130.47070.26960.16970.37280.74860.61490.10150.89560.20990.26180.57970.3786
Multi Vector Nano BEIR
json
  {
      "dataset_names": [
          "msmarco",
          "nq",
          "fiqa2018"
      ],
      "dataset_id": "sentence-transformers/NanoBEIR-en"
  }
MetricValue
maxsim_accuracy@10.2733
maxsim_accuracy@30.42
maxsim_accuracy@50.5133
maxsim_accuracy@100.66
maxsim_precision@10.2733
maxsim_precision@30.16
maxsim_precision@50.1173
maxsim_precision@100.076
maxsim_recall@10.2177
maxsim_recall@30.3769
maxsim_recall@50.4572
maxsim_recall@100.5778
maxsim_ndcg@100.4047
maxsim_mrr@100.3809
maxsim_map@1000.3492
Multi Vector Nano BEIR
json
  {
      "dataset_names": [
          "climatefever",
          "dbpedia",
          "fever",
          "fiqa2018",
          "hotpotqa",
          "msmarco",
          "nfcorpus",
          "nq",
          "quoraretrieval",
          "scidocs",
          "arguana",
          "scifact",
          "touche2020"
      ],
      "dataset_id": "sentence-transformers/NanoBEIR-en"
  }
MetricValue
maxsim_accuracy@10.4423
maxsim_accuracy@30.6133
maxsim_accuracy@50.6735
maxsim_accuracy@100.7506
maxsim_precision@10.4423
maxsim_precision@30.2761
maxsim_precision@50.2176
maxsim_precision@100.1477
maxsim_recall@10.2587
maxsim_recall@30.4075
maxsim_recall@50.4541
maxsim_recall@100.5278
maxsim_ndcg@100.4831
maxsim_mrr@100.5428
maxsim_map@1000.4196

<!--

Bias, Risks and Limitations

What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model. -->

<!--

Recommendations

What are recommendations with respect to the foreseeable issues? For example, filtering explicit content. -->

Training Details

Training Dataset

msmarco-bm25
  • —Dataset: msmarco-bm25 at ce8a493
  • —Size: 50,000 training samples
  • —Columns: <code>query</code>, <code>positive</code>, and <code>negative</code>
  • —Approximate statistics based on the first 100 samples: | | query | positive | negative | |:---------|:--------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------| | type | string | string | string | | modality | text | text | text | | details | <ul><li>min: 5 tokens</li><li>mean: 9.2 tokens</li><li>max: 23 tokens</li></ul> | <ul><li>min: 24 tokens</li><li>mean: 85.21 tokens</li><li>max: 234 tokens</li></ul> | <ul><li>min: 24 tokens</li><li>mean: 78.79 tokens</li><li>max: 189 tokens</li></ul> |
  • —Samples: | query | positive | negative | |:---------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <code>how many days to renew philippine passport to usa</code> | <code>The United States requires non-citizens to keep a foreign passport that is valid for six months beyond their date of departure. If you are in the United States legally, then you can renew your Philippine passport at the consulate general's office in Los Angeles.</code> | <code>How much does it cost to renew a Philippines passport? Philippine Passport Fees for Renewal is P 950 for 15 working days and 1,200 for 7 working days. This is according to the Department of Freign Affairs website.</code> | | <code>which sexually transmitted diseases can lead to infections inside joint spaces?</code> | <code>Gonorrhea is a sexually transmitted disease (STD) that can infect both men and women. It can cause infections in the genitals, rectum, and throat.It is a very common infection, especially among young people ages 15-24 years.omen with gonorrhea are at risk of developing serious complications from the infection, even if they don’t have any symptoms. Symptoms in women can include: 1 Painful or burning sensation when urinating; 2 Increased vaginal discharge; 3 Vaginal bleeding between periods.</code> | <code>STDs and Infertility. Sexually transmitted diseases, STDs, also called sexually transmitted infections or STIs, can cause immediate, annoying symptoms with long-lasting, serious repercussions. Few people realize that these sexually transmitted diseases can cause damage that may eventually lead to infertility.</code> | | <code>when was eviva amore constructed</code> | <code>Nasher Sculpture Center Press Images Back of the garden, Nasher Sculpture Center; photo by Tim Hursley. Mark di Suvero, Eviva Amore, 2001 in gardens of Nasher Sculpture Center; photo by Tim Hursley. Jaume Plensa, The Long Night (From Ausias March to Vincent Andres Andrés) , estelles, estellés 2007 At Nasher; sculpture center Photo By. tim hursley</code> | <code>Richard Serra, My Curves Are Not Mad, 1987 and Augustus Rodin, Eve, 1881 (cast before 1932) at Nasher Sculpture Center; photo by Tim Hursley. Mark di Suvero, Eviva Amore, 2001 at dusk in gardens of Nasher Sculpture Center; photo by Tim Hursley. Jeremy Strick, Director of the Nasher Sculpture.</code> |
  • —Loss: <code>MultiVectorMultipleNegativesRankingLoss</code> with these parameters:
json
  {
      "score_metric": "colbert_scores",
      "scale": 1.0,
      "score_mini_batch_size": null,
      "size_average": true,
      "gather_across_devices": false
  }

Evaluation Dataset

msmarco-bm25
  • —Dataset: msmarco-bm25 at ce8a493
  • —Size: 1,000 evaluation samples
  • —Columns: <code>query</code>, <code>positive</code>, and <code>negative</code>
  • —Approximate statistics based on the first 100 samples: | | query | positive | negative | |:---------|:---------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------| | type | string | string | string | | modality | text | text | text | | details | <ul><li>min: 4 tokens</li><li>mean: 9.15 tokens</li><li>max: 19 tokens</li></ul> | <ul><li>min: 39 tokens</li><li>mean: 82.03 tokens</li><li>max: 199 tokens</li></ul> | <ul><li>min: 27 tokens</li><li>mean: 81.62 tokens</li><li>max: 157 tokens</li></ul> |
  • —Samples: | query | positive | negative | |:------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <code>what is chor means</code> | <code>• CHORE (noun) The noun CHORE has 1 sense: 1. a specific piece of work required to be done as a duty or for a specific fee. Familiarity information: CHORE used as a noun is very rare.</code> | <code>Any two different languages and not just English and other language. Example 1. Chore (pronounced as cHor) means 'a routine task' in English language. Whereas Chor {चोर} (also pronounced as CHor) means a thief or a burglar in both Hindi and Marathi language.</code> | | <code>how is gravity measured</code> | <code>The gravity of Earth, which is denoted by g, refers to the acceleration that the Earth imparts to objects on or near its surface due to gravity. In SI units this acceleration is measured in metres per second squared (in symbols, m/s2 or m·s−2) or equivalently in newtons per kilogram (N/kg or N·kg−1).</code> | <code>When the wort is first added to the yeast, the specific gravity of the mixture is measured. Later, the specific gravity may be measured again to determine how much alcohol is in the beer, and to know when to stop the fermentation.hen the wort is first added to the yeast, the specific gravity of the mixture is measured. Later, the specific gravity may be measured again to determine how much alcohol is in the beer, and to know when to stop the fermentation.</code> | | <code>salary of doctor during fellowship</code> | <code>Average fellowship salary and wage. The median expected salary for a Fellowship physician in the United States averages to about $150,353 per annum and an average hourly wage is around $20 per hour. fellowship physician in USA receives an average yearly salary ranging from between $34,225 – $59,542. In addition, a yearly bonus of around $4,888 will be included as part of the annual salary package.</code> | <code>Medical Fellowship Salary. Medical Fellowship average salary is $55,008, median salary is $- with a salary range from $- to $-.Medical Fellowship salaries are collected from government agencies and companies. Each salary is associated with a real job position.Medical Fellowship salary statistics is not exclusive and is for reference only.They are presented as is and updated regularly.edical Fellowship salaries are collected from government agencies and companies. Each salary is associated with a real job position. Medical Fellowship salary statistics is not exclusive and is for reference only. They are presented as is and updated regularly.</code> |
  • —Loss: <code>MultiVectorMultipleNegativesRankingLoss</code> with these parameters:
json
  {
      "score_metric": "colbert_scores",
      "scale": 1.0,
      "score_mini_batch_size": null,
      "size_average": true,
      "gather_across_devices": false
  }

Training Hyperparameters

Non-Default Hyperparameters
  • —per_device_train_batch_size: 32
  • —num_train_epochs: 1
  • —learning_rate: 3e-05
  • —warmup_steps: 0.05
  • —bf16: True
  • —per_device_eval_batch_size: 32
  • —load_best_model_at_end: True
  • —batch_sampler: no_duplicates
All Hyperparameters

<details><summary>Click to expand</summary>

  • —per_device_train_batch_size: 32
  • —num_train_epochs: 1
  • —max_steps: -1
  • —learning_rate: 3e-05
  • —lr_scheduler_type: linear
  • —lr_scheduler_kwargs: None
  • —warmup_steps: 0.05
  • —optim: adamwtorchfused
  • —optim_args: None
  • —weight_decay: 0.0
  • —adam_beta1: 0.9
  • —adam_beta2: 0.999
  • —adam_epsilon: 1e-08
  • —optim_target_modules: None
  • —gradient_accumulation_steps: 1
  • —average_tokens_across_devices: True
  • —max_grad_norm: 1.0
  • —label_smoothing_factor: 0.0
  • —bf16: True
  • —fp16: False
  • —bf16_full_eval: False
  • —fp16_full_eval: False
  • —tf32: None
  • —gradient_checkpointing: False
  • —gradient_checkpointing_kwargs: None
  • —torch_compile: False
  • —torch_compile_backend: None
  • —torch_compile_mode: None
  • —use_liger_kernel: False
  • —liger_kernel_config: None
  • —use_cache: False
  • —neftune_noise_alpha: None
  • —torch_empty_cache_steps: None
  • —auto_find_batch_size: False
  • —log_on_each_node: True
  • —logging_nan_inf_filter: True
  • —include_num_input_tokens_seen: no
  • —log_level: passive
  • —log_level_replica: warning
  • —disable_tqdm: False
  • —project: huggingface
  • —trackio_space_id: None
  • —trackio_bucket_id: None
  • —trackio_static_space_id: None
  • —per_device_eval_batch_size: 32
  • —prediction_loss_only: True
  • —eval_on_start: False
  • —eval_do_concat_batches: True
  • —eval_use_gather_object: False
  • —eval_accumulation_steps: None
  • —include_for_metrics: []
  • —batch_eval_metrics: False
  • —save_only_model: False
  • —save_on_each_node: False
  • —enable_jit_checkpoint: False
  • —push_to_hub: False
  • —hub_private_repo: None
  • —hub_model_id: None
  • —hub_strategy: every_save
  • —hub_always_push: False
  • —hub_revision: None
  • —load_best_model_at_end: True
  • —ignore_data_skip: False
  • —restore_callback_states_from_checkpoint: False
  • —full_determinism: False
  • —seed: 42
  • —data_seed: None
  • —use_cpu: False
  • —accelerator_config: {'splitbatches': False, 'dispatchbatches': None, 'evenbatches': True, 'useseedablesampler': True, 'nonblocking': False, 'gradientaccumulationkwargs': None}
  • —parallelism_config: None
  • —dataloader_drop_last: False
  • —dataloader_num_workers: 0
  • —dataloader_pin_memory: True
  • —dataloader_persistent_workers: False
  • —dataloader_prefetch_factor: None
  • —remove_unused_columns: True
  • —label_names: None
  • —train_sampling_strategy: random
  • —length_column_name: length
  • —ddp_find_unused_parameters: None
  • —ddp_bucket_cap_mb: None
  • —ddp_broadcast_buffers: False
  • —ddp_static_graph: None
  • —ddp_backend: None
  • —ddp_timeout: 1800
  • —fsdp: None
  • —fsdp_config: None
  • —deepspeed: None
  • —debug: []
  • —skip_memory_metrics: True
  • —do_predict: False
  • —resume_from_checkpoint: None
  • —warmup_ratio: None
  • —local_rank: -1
  • —prompts: None
  • —batch_sampler: no_duplicates
  • —multi_dataset_batch_sampler: proportional
  • —router_mapping: {}
  • —learning_rate_mapping: {}
  • —max_length: None

</details>

Training Logs

<details><summary>Click to expand</summary>

EpochStepTraining LossValidation LossNanoMSMARCO_maxsim_ndcg@10NanoNQ_maxsim_ndcg@10NanoFiQA2018_maxsim_ndcg@10NanoBEIR_mean_maxsim_ndcg@10NanoClimateFEVER_maxsim_ndcg@10NanoDBPedia_maxsim_ndcg@10NanoFEVER_maxsim_ndcg@10NanoHotpotQA_maxsim_ndcg@10NanoNFCorpus_maxsim_ndcg@10NanoQuoraRetrieval_maxsim_ndcg@10NanoSCIDOCS_maxsim_ndcg@10NanoArguAna_maxsim_ndcg@10NanoSciFact_maxsim_ndcg@10NanoTouche2020_maxsim_ndcg@10
-1-1--0.13030.15110.11990.1338----------
0.0102163.6732---------------
0.0205323.0244---------------
0.0307481.5109---------------
0.0409641.1722---------------
0.0512800.9115---------------
0.0614960.7757---------------
0.07171120.7379---------------
0.08191280.6656---------------
0.09211440.6483---------------
0.1004157-0.59830.33330.41850.31370.3552----------
0.10241600.6068---------------
0.11261760.5612---------------
0.12281920.5895---------------
0.13312080.5259---------------
0.14332240.5220---------------
0.15362400.5796---------------
0.16382560.5323---------------
0.17402720.4822---------------
0.18432880.4744---------------
0.19453040.4783---------------
0.2009314-0.47600.36740.45830.30000.3752----------
0.20473200.4934---------------
0.21503360.5239---------------
0.22523520.4966---------------
0.23543680.4654---------------
0.24573840.4376---------------
0.25594000.4111---------------
0.26624160.4436---------------
0.27644320.4264---------------
0.28664480.4314---------------
0.29694640.4734---------------
0.3013471-0.44150.44020.51130.32480.4254----------
0.30714800.4472---------------
0.31734960.4224---------------
0.32765120.4314---------------
0.33785280.4672---------------
0.34805440.4412---------------
0.35835600.4373---------------
0.36855760.4138---------------
0.37885920.4166---------------
0.38906080.3813---------------
0.39926240.4356---------------
0.4018628-0.41920.38710.40320.31640.3689----------
0.40956400.4481---------------
0.41976560.4175---------------
0.42996720.4030---------------
0.44026880.4001---------------
0.45047040.3959---------------
0.46077200.3671---------------
0.47097360.3704---------------
0.48117520.4485---------------
0.49147680.3961---------------
0.50167840.3745---------------
0.5022785-0.40210.42560.46000.33320.4063----------
0.51188000.4706---------------
0.52218160.3739---------------
0.53238320.4585---------------
0.54258480.4443---------------
0.55288640.3540---------------
0.56308800.4194---------------
0.57338960.3575---------------
0.58359120.3704---------------
0.59379280.4418---------------
0.6027942-0.39170.42150.47440.32210.4060----------
0.60409440.3390---------------
0.61429600.3696---------------
0.62449760.3890---------------
0.63479920.4109---------------
0.644910080.3243---------------
0.655210240.3245---------------
0.665410400.3633---------------
0.675610560.3689---------------
0.685910720.3683---------------
0.696110880.3132---------------
0.70311099-0.37030.40570.48740.33860.4106----------
0.706311040.4024---------------
0.716611200.3044---------------
0.726811360.3814---------------
0.737011520.3438---------------
0.747311680.3330---------------
0.757511840.3761---------------
0.767812000.3380---------------
0.778012160.3873---------------
0.788212320.4262---------------
0.798512480.3443---------------
0.80361256-0.34990.41390.48030.34180.4120----------
0.808712640.3796---------------
0.818912800.4014---------------
0.829212960.3196---------------
0.839413120.3576---------------
0.849613280.3573---------------
0.859913440.3175---------------
0.870113600.3311---------------
0.880413760.3436---------------
0.890613920.3588---------------
0.900814080.3525---------------
0.90401413-0.35150.42520.46290.32730.4051----------
0.911114240.3312---------------
0.921314400.3827---------------
0.931514560.3467---------------
0.941814720.3310---------------
0.952014880.3676---------------
0.962315040.3966---------------
0.972515200.3184---------------
0.982715360.3871---------------
0.993015520.3543---------------
1.01563-0.34740.41940.46180.33290.4047----------
-1-1--0.44020.51130.32480.48310.22020.46740.80370.69540.25650.91410.28230.31990.61610.4284
  • —The bold row denotes the saved checkpoint. </details>

Training Time

  • —Training: 13.6 minutes
  • —Evaluation: 5.1 minutes
  • —Total: 18.7 minutes

Framework Versions

  • —Python: 3.11.13
  • —Sentence Transformers: 5.7.0.dev0
  • —Transformers: 5.14.1
  • —PyTorch: 2.11.0+cu128
  • —Accelerate: 1.5.2
  • —Datasets: 3.5.0
  • —Tokenizers: 0.22.2

Citation

BibTeX

Sentence Transformers
bibtex
@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}
MultiVectorMultipleNegativesRankingLoss
bibtex
@misc{henderson2017efficient,
    title={Efficient Natural Language Response Suggestion for Smart Reply},
    author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
    year={2017},
    eprint={1705.00652},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}

<!--

Glossary

Clearly define terms in order to be accessible across audiences. -->

<!--

Model Card Authors

Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction. -->

<!--

Model Card Contact

Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors. -->