nickprock's picture
Update README.md
d241b12 verified
metadata
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:39780811
  - loss:MatryoshkaLoss
  - loss:MultipleNegativesRankingLoss
base_model: DeepMount00/Italian-ModernBERT-base
widget:
  - source_sentence: numero di telefono del tribunale della contea di garza
    sentences:
      - >-
        La città di Bay Minette è il capoluogo della contea di Baldwin e sede
        del tribunale della contea di Baldwin. Visita la nostra sezione
        governativa per saperne di più sui servizi forniti dai governi della
        città e della contea.
      - >-
        Radiatore. È realizzato in metallo che allontana il calore dal
        processore nelle alette. Dispositivo di raffreddamento della CPU senza
        ventola (passivo). Dispositivi di raffreddamento contenenti tubi di
        calore che contengono una piccola quantità di liquido che diventa vapore
        quando riscaldato, che allontana il calore dalla CPU verso le alette del
        dispositivo di raffreddamento.
      - >-
        L'indirizzo del tribunale è 300 W Main St, PO Box 366, Post TX 79356. Il
        numero di telefono del tribunale distrettuale della contea di Garza 106
        è 806-495-4430 e il numero di fax è 806-495-4431. © Copyright 2018
        RecordsFinder.com. Tutti i diritti riservati.
  - source_sentence: cos'è la connessione a banda larga.
    sentences:
      - >-
        ©2018 Atlantic Broadband. Chi siamo; Sedi primarie; Informazioni
        FCC; Privacy; e911; legale
      - >-
        Il taipan dell'entroterra (Oxyuranus microlepidotus) - noto anche come
        taipan occidentale, serpente dalle piccole scaglie o serpente feroce - è
        un serpente marrone chiaro che varia da una tonalità ricca e scura a un
        verde chiaro brunastro a seconda della stagione . Ha una lunghezza media
        di circa 1,8 metri (5,9 piedi), o le dimensioni di un maschio medio in
        Svezia. Come sopravvivere: il modo più efficace per trattare un morso di
        taipan nell'entroterra è attraverso l'uso di un antidoto polivalente o
        antidoto ad ampio spettro . Questo è un antidoto combinato usato per
        trattare i morsi di qualsiasi serpente non identificato in Australia.
      - >-
        Che cos'è la banda larga? La banda larga è un tipo di connessione
        Internet ad alta velocità che ha superato il dial-up come metodo
        standard per connettersi a Internet. I pacchetti a banda larga sono
        disponibili in tutte le forme e dimensioni, dalla banda larga ADSL alla
        banda larga via cavo e alla banda larga mobile 3G e 4G.
  - source_sentence: qual è l'angolo di elevazione sulla terra?
    sentences:
      - >-
        L'elevazione, o altezza geometrica, viene utilizzata principalmente
        quando si fa riferimento a punti sulla superficie terrestre, mentre
        l'altitudine o l'altezza geopotenziale viene utilizzata per punti sopra
        la superficie, come un aereo in volo o un veicolo spaziale in orbita, e
        la profondità viene utilizzata per punti sotto la superficie.
      - >-
        Originariamente era chiamato Next Generation Space Telescope (NGST), ma
        è stato ribattezzato in onore dell'amministratore della NASA James Webb
        (1906-1992). [Webb è interpretato da Ken Strunk nel film del 2016 Hidden
        Figures] James Webb è stato nominato dal presidente John F. Kennedy a
        sovrintendere alla NASA nel 1961, cosa che ha fatto fino al 1968. Webb
        ha supervisionato i primi lanci con equipaggio nei programmi Mercury
        attraverso Gemini e nel 1969 è stato presentato con la Medaglia
        presidenziale della libertà dal presidente Lyndon Johnson.
      - >-
        Valvole e sedi di solito hanno lo stesso angolo per accoppiarsi
        correttamente. Quell'angolo è solitamente di 45 gradi, ma in molte
        applicazioni moderne si possono trovare 30 gradi. L'angolo di
        accoppiamento è spesso accompagnato da tagli dell'angolo superiore e
        inferiore con una deflessione di 15 gradi su ciascun lato dell'angolo di
        accoppiamento.
  - source_sentence: significato di lorica
    sentences:
      - >-
        Vitamine del gruppo B. Le vitamine del gruppo B, come folato, niacina,
        riboflavina e tiamina, riducono le malattie cardiache e l'ictus,
        alleviano lo stress, alleviano la depressione, aiutano il sistema
        nervoso e aiutano a scomporre i carboidrati. Le vitamine del gruppo B si
        trovano in banane, lenticchie, peperoncino, verdure a foglia scura,
        bacche e fagioli.email. Vitamine. Le vitamine del gruppo B, come folato,
        niacina, riboflavina e tiamina, riducono le malattie cardiache e
        l'ictus, alleviano lo stress, alleviano la depressione, aiutano il
        sistema nervoso e aiutano a scomporre i carboidrati. Le vitamine del
        gruppo B si trovano in banane, lenticchie, peperoncino, verdure a foglia
        scura, bacche e fagioli. e-mail.
      - >-
        Il nome Lily è un nome greco per bambini. In greco il significato del
        nome Lily è: Lily. Significato ebraico: il nome Lily è un nome ebraico
        per bambini. In ebraico il significato del nome Lily è: Lily.
        Significato americano: Il nome Lily è un nome da bambino americano. In
        americano il significato del nome Lily è: Lily.n Greco il significato
        del nome Lily è: Lily. Significato ebraico: il nome Lily è un nome
        ebraico per bambini. In ebraico il significato del nome Lily è: Lily.
        Significato americano: il nome Lily è un nome da bambino americano.
      - >-
        Freebase (0,00 / 0 voti) Valuta questa definizione: Lorica. Nella
        tradizione monastica cristiana, una lorica è una preghiera recitata per
        la protezione. La parola latina lorica originariamente significava
        armatura o pettorale. Entrambi i significati si uniscono nella pratica
        di apporre iscrizioni verbali sugli scudi o sugli stemmi dei cavalieri,
        che potrebbero recitarli prima di andare in battaglia.
  - source_sentence: chi è copa airlines?
    sentences:
      - >-
        Copa Airlines è la principale compagnia aerea di Panama, con sede a
        Panama City. Le operazioni del Copa sono concentrate presso l'aeroporto
        internazionale di Tocumen, situato a 15 miglia da Panama City. Fondata
        nel 1947, Copa Airways ha iniziato con tre voli nazionali all'interno di
        Panama e oggi la compagnia vola verso 29 paesi e 64 destinazioni in Nord
        e Sud America e nei Caraibi.
      - >-
        L'influenza può essere una malattia grave. I sintomi includono febbre,
        brividi, mal di testa, dolori muscolari, mal di gola, naso che cola,
        tosse secca e una sensazione generale di stanchezza e malessere. Mentre
        la febbre di solito dura da due a cinque giorni, altri sintomi possono
        persistere per 10 giorni o più. Se hai l'influenza, resta a casa, riposa
        e non esercitarti. Puoi ricominciare ad allenarti in sicurezza quando
        sei stato senza febbre per almeno 24 ore o più. Non solo puoi
        danneggiare il tuo corpo esercitandoti con la febbre, ma potresti anche
        essere in grado di diffondere il virus dell'influenza ad altri.
        L'influenza può essere una grave malattia. I sintomi includono febbre,
        brividi, mal di testa, dolori muscolari, mal di gola, naso che cola,
        tosse secca e una sensazione generale di stanchezza e malessere. Mentre
        la febbre di solito dura da due a cinque giorni, altri sintomi possono
        persistere per 10 giorni o più.
      - >-
        AIUTO: Ti trovi sulla pagina dei risultati dal vivo di Copa America
        amÃ'©rica 2015 In/Soccer South america. FlashScore.flashscore com
        offre classifiche Copa america amÃ'©rica, livescore 2015 e risultati
        parziali copa america amÃ'©rica 2015 (e partita, dettagli goal,
        marcatori rosso, †¦). confronto quote carte
pipeline_tag: sentence-similarity
library_name: sentence-transformers
metrics:
  - cosine_accuracy
model-index:
  - name: SentenceTransformer based on DeepMount00/Italian-ModernBERT-base
    results:
      - task:
          type: triplet
          name: Triplet
        dataset:
          name: mmarco dev
          type: mmarco_dev
        metrics:
          - type: cosine_accuracy
            value: 0.9254999756813049
            name: Cosine Accuracy
      - task:
          type: triplet
          name: Triplet
        dataset:
          name: mmarco test
          type: mmarco_test
        metrics:
          - type: cosine_accuracy
            value: 0.9129999876022339
            name: Cosine Accuracy

image/png


Italian-ModernBERT-base-embed-mmarco-mnrl

This is a sentence-transformers model finetuned from DeepMount00/Italian-ModernBERT-base on the mmarco dataset. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: DeepMount00/Italian-ModernBERT-base
  • Maximum Sequence Length: 8192 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
    • mmarco

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False}) with Transformer model: ModernBertModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("Italian-ModernBERT-base-embed-mmarco-mnrl")
# Run inference
sentences = [
    'chi è copa airlines?',
    "Copa Airlines è la principale compagnia aerea di Panama, con sede a Panama City. Le operazioni del Copa sono concentrate presso l'aeroporto internazionale di Tocumen, situato a 15 miglia da Panama City. Fondata nel 1947, Copa Airways ha iniziato con tre voli nazionali all'interno di Panama e oggi la compagnia vola verso 29 paesi e 64 destinazioni in Nord e Sud America e nei Caraibi.",
    "AIUTO: Ti trovi sulla pagina dei risultati dal vivo di Copa America amÃ'©rica 2015 In/Soccer South america. FlashScore.flashscore com offre classifiche Copa america amÃ'©rica, livescore 2015 e risultati parziali copa america amÃ'©rica 2015 (e partita, dettagli goal, marcatori rosso, †¦). confronto quote carte",
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Evaluation

Metrics

Triplet

Metric mmarco_dev mmarco_test
cosine_accuracy 0.9255 0.913

Training Details

Training Dataset

mmarco

  • Dataset: mmarco
  • Size: 39,780,811 training samples
  • Columns: query, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    query positive negative
    type string string string
    details
    • min: 4 tokens
    • mean: 10.93 tokens
    • max: 26 tokens
    • min: 21 tokens
    • mean: 95.12 tokens
    • max: 532 tokens
    • min: 20 tokens
    • mean: 87.17 tokens
    • max: 423 tokens
  • Samples:
    query positive negative
    cosa significa tbh nei messaggi? TBH significa essere onesti. TBH Significato: essere onesti. Ci sono quasi 6 milioni di foto con l'hashtag TBH su Instagram. TBH, o To Be Honest, è un acronimo particolarmente popolare su Facebook, ma utilizzato frequentemente anche quando si inviano messaggi di testo, messaggi o chat online. TBH significa âÂÀœPer essere onesti, Â⠀ . Ora le chiamate e gli sms possono essere fatti praticamente ovunque. Il Wi-Fi è ovunque e oggi il tuo telefono si connette a ogni singola connessione Wi-Fi come se fossero torri T-Mobile. In realtà, falle diventare le tue torri. Ora puoi scegliere come connetterti, indipendentemente da dove ti trovi, a casa, in ufficio, anche fuori dalla portata del cellulare.
    effetti del tè nero sul corpo Gli effetti collaterali del bere troppo tè nero includono difficoltà a dormire, mal di testa, nervosismo, diarrea, irritabilità, battito cardiaco irregolare, confusione, bruciore di stomaco, tremori alle estremità e possibilmente convulsioni. Questi effetti collaterali sono tutti il ​​risultato del contenuto di caffeina nel tè nero. Se sei abituato a bere regolarmente tè nero, in particolare in quantità maggiori, potresti sviluppare una dipendenza fisica e psicologica dalla bevanda, ancora una volta, principalmente a causa del contenuto di caffeina. Un tipo di tè meno conosciuto, il tè oolong è ottenuto dalle foglie della pianta Camellia sinensis, la stessa pianta utilizzata per produrre tè nero e verde. A differenza del tè nero, che viene ossidato fino a quando le foglie non assumono un colore nero intenso, il tè oolong è parzialmente ossidato. I benefici del tè Oolong.
    un genitore può prelevare dal conto di un minore? Il custode di un conto UGMA/UTMA controlla e gestisce i beni di un minore (il beneficiario del conto). Non è necessario che un genitore sia il custode dell'account e puoi scegliere qualcun altro per gestire un account UGMA / UTMA per conto di tuo figlio. Il custode di un account UGMA / UTMA controlla e gestisce il patrimonio di un minore (il beneficiario del conto). Non è necessario che un genitore sia il custode dell'account e puoi scegliere qualcun altro per gestire un UGMA / UTMA per conto di tuo figlio. Ciò significa che il totale del tuo account è $ 5.272,50. Secondo le regole Roth IRA (controlla la pubblicazione IRS 590 per ulteriori informazioni), puoi prelevare fino a $ 5.000 senza pagare tasse su di esso e senza pagare una penale. Una volta che attingi ai tuoi guadagni che $272,50  la storia cambia. Puoi prelevare ciò che hai contribuito in qualsiasi momento e per qualsiasi motivo. Ciò significa che il totale del tuo account è $ 5,272,50. In base alle regole Roth IRA (controlla la pubblicazione IRS 590 per ulteriori informazioni), puoi prelevare fino a $ 5.000 senza pagare le tasse su di esso e senza pagare una penale. Una volta che ti immergi nei tuoi guadagni, che sono $272,50, la storia cambia.
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Evaluation Dataset

mmarco

  • Dataset: mmarco
  • Size: 39,780,811 evaluation samples
  • Columns: query, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    query positive negative
    type string string string
    details
    • min: 4 tokens
    • mean: 11.05 tokens
    • max: 35 tokens
    • min: 16 tokens
    • mean: 93.92 tokens
    • max: 449 tokens
    • min: 20 tokens
    • mean: 89.53 tokens
    • max: 260 tokens
  • Samples:
    query positive negative
    quali sono alcune cose importanti da ricordare quando si avvia un piano di fitness Quattro cose che devi sapere prima di aprire una palestra Dall'addetto al check-in della reception al manager, un operatore del club deve assumere un ottimo personale per gestire le operazioni quotidiane del club. Foto per gentile concessione di Jonas Fitness. CONTENUTI SPONSORIZZATI DA: Jonas Fitness In questi giorni, molte palestre possono essere una monetina una dozzina. Note importanti da ricordare. È importante ricordare che mentre la perdita del tappo di muco è un'indicazione del travaglio, non significa che il travaglio stia per iniziare subito. Per le donne che partoriscono per la prima volta, il tappo di muco viene solitamente espulso giorni prima dell'inizio del travaglio e spesso può essere un segno di un travaglio precoce.
    i sunpatiens possono essere annaffiati ogni giorno? Mi dispiace non essere d'accordo con te, ma io vivo nel sud, nella Georgia centrale e i Sunpatiens DO WILT al sole. Sono piantati sul lato sud della mia casa e ricevono la luce diretta del sole dalle 10:00 alle 16:00 quando sono all'ombra. Vengono annaffiate ogni mattina alle 6 quando l'impianto di irrigazione si attiva per ben 45 minuti. Si riprendono dopo che sono all'ombra, ma affermare che sono amanti del sole totale non è una vera affermazione. Miglior risposta: ci sono centinaia di modi per risolvere i cubi di Rubik, ma la maggior parte di essi si diramano semplicemente dai quattro di base. Il metodo Petrus, CFOP, metodo Corners first e Roux. Il tuo metodo di base è una versione annacquata di CFOP. La maggior parte degli altri sono semplicemente versioni estese di questi metodi.
    indirizzo di terapia fisica calaveras Terapia fisica Calaveras 670 E. Calaveras Blvd., Suite 112 Milpitas, CA 95035 Telefono: (408) 934-4700 Fax: (408) 934-4701
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • fp16: True
  • load_best_model_at_end: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 2e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: True
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: True
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • tp_size: 0
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • dispatch_batches: None
  • split_batches: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss Validation Loss mmarco_dev_cosine_accuracy mmarco_test_cosine_accuracy
-1 -1 - - 0.6220 -
0.016 100 13.4237 10.6120 0.6920 -
0.032 200 8.2122 6.9047 0.7585 -
0.048 300 5.5919 4.6699 0.8280 -
0.064 400 4.0067 3.5824 0.8730 -
0.08 500 3.3341 3.1468 0.8890 -
0.096 600 2.9975 2.8752 0.8925 -
0.112 700 2.7298 2.6899 0.9050 -
0.128 800 2.4282 2.5905 0.9030 -
0.144 900 2.3087 2.2762 0.9095 -
0.16 1000 2.209 2.1136 0.9145 -
0.176 1100 2.0301 2.0292 0.9220 -
0.192 1200 2.1824 2.0094 0.9240 -
0.208 1300 1.8577 1.9690 0.9275 -
0.224 1400 1.9943 1.9013 0.93 -
0.24 1500 1.836 1.9025 0.9245 -
0.256 1600 2.0652 1.8127 0.9255 -
-1 -1 - - - 0.9130
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.11.11
  • Sentence Transformers: 3.5.0.dev0
  • Transformers: 4.50.0.dev0
  • PyTorch: 2.5.1+cu124
  • Accelerate: 1.3.0
  • Datasets: 3.3.2
  • Tokenizers: 0.21.0

Citation

BibTeX

Sentence Transformers

@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",
}

MatryoshkaLoss

@misc{kusupati2024matryoshka,
    title={Matryoshka Representation Learning},
    author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi},
    year={2024},
    eprint={2205.13147},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

MultipleNegativesRankingLoss

@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}
}