mt-1 / README.md
dataera2013's picture
Add new SentenceTransformer model
0b52910 verified
metadata
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:200
  - loss:MatryoshkaLoss
  - loss:MultipleNegativesRankingLoss
base_model: Snowflake/snowflake-arctic-embed-l
widget:
  - source_sentence: How do longer inputs enhance the problem-solving capabilities of an LLM?
    sentences:
      - >-
        Longer inputs dramatically increase the scope of problems that can be
        solved with an LLM: you can now throw in an entire book and ask
        questions about its contents, but more importantly you can feed in a lot
        of example code to help the model correctly solve a coding problem. LLM
        use-cases that involve long inputs are far more interesting to me than
        short prompts that rely purely on the information already baked into the
        model weights. Many of my tools were built using this pattern.
      - >-
        If you think about what they do, this isn’t such a big surprise. The
        grammar rules of programming languages like Python and JavaScript are
        massively less complicated than the grammar of Chinese, Spanish or
        English.

        It’s still astonishing to me how effective they are though.

        One of the great weaknesses of LLMs is their tendency to hallucinate—to
        imagine things that don’t correspond to reality. You would expect this
        to be a particularly bad problem for code—if an LLM hallucinates a
        method that doesn’t exist, the code should be useless.
      - |-
        blogging
                    68


                    ai
                    1098


                    generative-ai
                    942


                    llms
                    930

        Next: Tom Scott, and the formidable power of escalating streaks
        Previous: Last weeknotes of 2023


         
         


        Colophon
        ©
        2002
        2003
        2004
        2005
        2006
        2007
        2008
        2009
        2010
        2011
        2012
        2013
        2014
        2015
        2016
        2017
        2018
        2019
        2020
        2021
        2022
        2023
        2024
        2025
  - source_sentence: How did other teams respond to the author's use of Claude Artifacts?
    sentences:
      - >-
        This prompt-driven custom interface feature is so powerful and easy to
        build (once you’ve figured out the gnarly details of browser sandboxing)
        that I expect it to show up as a feature in a wide range of products in
        2025.

        Universal access to the best models lasted for just a few short months

        For a few short months this year all three of the best available
        models—GPT-4o, Claude 3.5 Sonnet and Gemini 1.5 Pro—were freely
        available to most of the world.
      - >-
        I’ve found myself using this a lot. I noticed how much I was relying on
        it in October and wrote Everything I built with Claude Artifacts this
        week, describing 14 little tools I had put together in a seven day
        period.

        Since then, a whole bunch of other teams have built similar systems.
        GitHub announced their version of this—GitHub Spark—in October. Mistral
        Chat added it as a feature called Canvas in November.

        Steve Krouse from Val Town built a version of it against Cerebras,
        showcasing how a 2,000 token/second LLM can iterate on an application
        with changes visible in less than a second.
      - >-
        Structured and Gradual Learning. In organic datasets, the relationship
        between tokens is often complex and indirect. Many reasoning steps may
        be required to connect the current token to the next, making it
        challenging for the model to learn effectively from next-token
        prediction. By contrast, each token generated by a language model is by
        definition predicted by the preceding tokens, making it easier for a
        model to follow the resulting reasoning patterns.
  - source_sentence: >-
      How does the new llamafile improve the process of running an LLM on a
      personal computer?
    sentences:
      - >-
        A year ago, the only organization that had released a generally useful
        LLM was OpenAI. We’ve now seen better-than-GPT-3 class models produced
        by Anthropic, Mistral, Google, Meta, EleutherAI, Stability AI, TII in
        Abu Dhabi (Falcon), Microsoft Research, xAI, Replit, Baidu and a bunch
        of other organizations.

        The training cost (hardware and electricity) is still
        significant—initially millions of dollars, but that seems to have
        dropped to the tens of thousands already. Microsoft’s Phi-2 claims to
        have used “14 days on 96 A100 GPUs”, which works out at around $35,000
        using current Lambda pricing.
      - >-
        Embeddings: What they are and why they matter

        61.7k

        79.3k



        Catching up on the weird world of LLMs

        61.6k

        85.9k



        llamafile is the new best way to run an LLM on your own computer

        52k

        66k



        Prompt injection explained, with video, slides, and a transcript

        51k

        61.9k



        AI-enhanced development makes me more ambitious with my projects

        49.6k

        60.1k



        Understanding GPT tokenizers

        49.5k

        61.1k



        Exploring GPTs: ChatGPT in a trench coat?

        46.4k

        58.5k



        Could you train a ChatGPT-beating model for $85,000 and run it in a
        browser?

        40.5k

        49.2k



        How to implement Q&A against your documentation with GPT3, embeddings
        and Datasette

        37.3k

        44.9k



        Lawyer cites fake cases invented by ChatGPT, judge is not amused

        37.1k

        47.4k
      - >-
        Qwen2.5-Coder-32B is an LLM that can code well that runs on my Mac talks
        about Qwen2.5-Coder-32B in November—an Apache 2.0 licensed model!


        I can now run a GPT-4 class model on my laptop talks about running
        Meta’s Llama 3.3 70B (released in December)
  - source_sentence: >-
      What technique is being used by an increasing number of labs to create
      training data for smaller models?
    sentences:
      - >-
        Another common technique is to use larger models to help create training
        data for their smaller, cheaper alternatives—a trick used by an
        increasing number of labs. DeepSeek v3 used “reasoning” data created by
        DeepSeek-R1. Meta’s Llama 3.3 70B fine-tuning used over 25M
        synthetically generated examples.

        Careful design of the training data that goes into an LLM appears to be
        the entire game for creating these models. The days of just grabbing a
        full scrape of the web and indiscriminately dumping it into a training
        run are long gone.

        LLMs somehow got even harder to use
      - >-
        An interesting point of comparison here could be the way railways rolled
        out around the world in the 1800s. Constructing these required enormous
        investments and had a massive environmental impact, and many of the
        lines that were built turned out to be unnecessary—sometimes multiple
        lines from different companies serving the exact same routes!

        The resulting bubbles contributed to several financial crashes, see
        Wikipedia for Panic of 1873, Panic of 1893, Panic of 1901 and the UK’s
        Railway Mania. They left us with a lot of useful infrastructure and a
        great deal of bankruptcies and environmental damage.

        The year of slop
      - >-
        Here’s the sequel to this post: Things we learned about LLMs in 2024.

        Large Language Models

        In the past 24-36 months, our species has discovered that you can take a
        GIANT corpus of text, run it through a pile of GPUs, and use it to
        create a fascinating new kind of software.

        LLMs can do a lot of things. They can answer questions, summarize
        documents, translate from one language to another, extract information
        and even write surprisingly competent code.

        They can also help you cheat at your homework, generate unlimited
        streams of fake content and be used for all manner of nefarious
        purposes.
  - source_sentence: >-
      What are some reasons why better informed people have chosen to avoid
      using LLMs?
    sentences:
      - >-
        There’s a flipside to this too: a lot of better informed people have
        sworn off LLMs entirely because they can’t see how anyone could benefit
        from a tool with so many flaws. The key skill in getting the most out of
        LLMs is learning to work with tech that is both inherently unreliable
        and incredibly powerful at the same time. This is a decidedly
        non-obvious skill to acquire!

        There is so much space for helpful education content here, but we need
        to do do a lot better than outsourcing it all to AI grifters with
        bombastic Twitter threads.

        Knowledge is incredibly unevenly distributed

        Most people have heard of ChatGPT by now. How many have heard of Claude?
      - >-
        I find I have to work with an LLM for a few weeks in order to get a good
        intuition for it’s strengths and weaknesses. This greatly limits how
        many I can evaluate myself!

        The most frustrating thing for me is at the level of individual
        prompting.

        Sometimes I’ll tweak a prompt and capitalize some of the words in it, to
        emphasize that I really want it to OUTPUT VALID MARKDOWN or similar. Did
        capitalizing those words make a difference? I still don’t have a good
        methodology for figuring that out.

        We’re left with what’s effectively Vibes Based Development. It’s vibes
        all the way down.

        I’d love to see us move beyond vibes in 2024!

        LLMs are really smart, and also really, really dumb
      - >-
        The year of slop

        2024 was the year that the word "slop" became a term of art. I wrote
        about this in May, expanding on this tweet by @deepfates:
pipeline_tag: sentence-similarity
library_name: sentence-transformers
metrics:
  - cosine_accuracy@1
  - cosine_accuracy@3
  - cosine_accuracy@5
  - cosine_accuracy@10
  - cosine_precision@1
  - cosine_precision@3
  - cosine_precision@5
  - cosine_precision@10
  - cosine_recall@1
  - cosine_recall@3
  - cosine_recall@5
  - cosine_recall@10
  - cosine_ndcg@10
  - cosine_mrr@10
  - cosine_map@100
model-index:
  - name: SentenceTransformer based on Snowflake/snowflake-arctic-embed-l
    results:
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: Unknown
          type: unknown
        metrics:
          - type: cosine_accuracy@1
            value: 0.7580645161290323
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.967741935483871
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 1
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 1
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.7580645161290323
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.3225806451612902
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.19999999999999993
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.09999999999999996
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.7580645161290323
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.967741935483871
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 1
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 1
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.8958019499724179
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.860215053763441
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.8602150537634409
            name: Cosine Map@100

SentenceTransformer based on Snowflake/snowflake-arctic-embed-l

This is a sentence-transformers model finetuned from Snowflake/snowflake-arctic-embed-l. It maps sentences & paragraphs to a 1024-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: Snowflake/snowflake-arctic-embed-l
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 1024 dimensions
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
  (2): Normalize()
)

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("dataera2013/mt-1")
# Run inference
sentences = [
    'What are some reasons why better informed people have chosen to avoid using LLMs?',
    'There’s a flipside to this too: a lot of better informed people have sworn off LLMs entirely because they can’t see how anyone could benefit from a tool with so many flaws. The key skill in getting the most out of LLMs is learning to work with tech that is both inherently unreliable and incredibly powerful at the same time. This is a decidedly non-obvious skill to acquire!\nThere is so much space for helpful education content here, but we need to do do a lot better than outsourcing it all to AI grifters with bombastic Twitter threads.\nKnowledge is incredibly unevenly distributed\nMost people have heard of ChatGPT by now. How many have heard of Claude?',
    'The year of slop\n2024 was the year that the word "slop" became a term of art. I wrote about this in May, expanding on this tweet by @deepfates:',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]

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

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.7581
cosine_accuracy@3 0.9677
cosine_accuracy@5 1.0
cosine_accuracy@10 1.0
cosine_precision@1 0.7581
cosine_precision@3 0.3226
cosine_precision@5 0.2
cosine_precision@10 0.1
cosine_recall@1 0.7581
cosine_recall@3 0.9677
cosine_recall@5 1.0
cosine_recall@10 1.0
cosine_ndcg@10 0.8958
cosine_mrr@10 0.8602
cosine_map@100 0.8602

Training Details

Training Dataset

Unnamed Dataset

  • Size: 200 training samples
  • Columns: sentence_0 and sentence_1
  • Approximate statistics based on the first 200 samples:
    sentence_0 sentence_1
    type string string
    details
    • min: 12 tokens
    • mean: 20.32 tokens
    • max: 36 tokens
    • min: 43 tokens
    • mean: 134.92 tokens
    • max: 214 tokens
  • Samples:
    sentence_0 sentence_1
    What is the new name for unwanted AI-generated content mentioned in May? 17th: AI for Data Journalism: demonstrating what we can do with this stuff right now

    22nd: Options for accessing Llama 3 from the terminal using LLM



    May

    8th: Slop is the new name for unwanted AI-generated content

    15th: ChatGPT in “4o” mode is not running the new features yet

    29th: Training is not the same as chatting: ChatGPT and other LLMs don’t remember everything you say



    June

    6th: Accidental prompt injection against RAG applications

    10th: Thoughts on the WWDC 2024 keynote on Apple Intelligence

    17th: Language models on the command-line

    21st: Building search-based RAG using Claude, Datasette and Val Town

    27th: Open challenges for AI engineering



    July

    14th: Imitation Intelligence, my keynote for PyCon US 2024
    What are the options for accessing Llama 3 from the terminal? 17th: AI for Data Journalism: demonstrating what we can do with this stuff right now

    22nd: Options for accessing Llama 3 from the terminal using LLM



    May

    8th: Slop is the new name for unwanted AI-generated content

    15th: ChatGPT in “4o” mode is not running the new features yet

    29th: Training is not the same as chatting: ChatGPT and other LLMs don’t remember everything you say



    June

    6th: Accidental prompt injection against RAG applications

    10th: Thoughts on the WWDC 2024 keynote on Apple Intelligence

    17th: Language models on the command-line

    21st: Building search-based RAG using Claude, Datasette and Val Town

    27th: Open challenges for AI engineering



    July

    14th: Imitation Intelligence, my keynote for PyCon US 2024
    What is the name of the model that the author runs on their iPhone? I run a bunch of them on my laptop. I run Mistral 7B (a surprisingly great model) on my iPhone. You can install several different apps to get your own, local, completely private LLM. My own LLM project provides a CLI tool for running an array of different models via plugins.
    You can even run them entirely in your browser using WebAssembly and the latest Chrome!
    Hobbyists can build their own fine-tuned models
    I said earlier that building an LLM was still out of reach of hobbyists. That may be true for training from scratch, but fine-tuning one of those models is another matter entirely.
  • 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: 10
  • per_device_eval_batch_size: 10
  • num_train_epochs: 10
  • multi_dataset_batch_sampler: round_robin

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 10
  • per_device_eval_batch_size: 10
  • 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: 5e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1
  • num_train_epochs: 10
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.0
  • 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: False
  • 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: False
  • 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}
  • 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: batch_sampler
  • multi_dataset_batch_sampler: round_robin

Training Logs

Epoch Step cosine_ndcg@10
1.0 20 0.9008
2.0 40 0.9190
2.5 50 0.9050
3.0 60 0.9050
4.0 80 0.8990
5.0 100 0.9109
6.0 120 0.9029
7.0 140 0.9018
7.5 150 0.9029
8.0 160 0.9029
9.0 180 0.8958
10.0 200 0.8958

Framework Versions

  • Python: 3.13.1
  • Sentence Transformers: 3.4.1
  • Transformers: 4.48.3
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.3.0
  • Datasets: 3.2.0
  • 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}
}