metadata
tags:
- sentence-transformers
- sentence-similarity
- feature-extraction
- generated_from_trainer
- dataset_size:156
- loss:MatryoshkaLoss
- loss:MultipleNegativesRankingLoss
base_model: Snowflake/snowflake-arctic-embed-l
widget:
- source_sentence: >-
How does Google Gemini's recent feature compare to ChatGPT's live video
option?
sentences:
- >-
The environmental impact got much, much worse
The much bigger problem here is the enormous competitive buildout of the
infrastructure that is imagined to be necessary for these models in the
future.
Companies like Google, Meta, Microsoft and Amazon are all spending
billions of dollars rolling out new datacenters, with a very material
impact on the electricity grid and the environment. There’s even talk of
spinning up new nuclear power stations, but those can take decades.
Is this infrastructure necessary? DeepSeek v3’s $6m training cost and
the continued crash in LLM prices might hint that it’s not. But would
you want to be the big tech executive that argued NOT to build out this
infrastructure only to be proven wrong in a few years’ time?
- >-
The most recent twist, again from December (December was a lot) is live
video. ChatGPT voice mode now provides the option to share your camera
feed with the model and talk about what you can see in real time. Google
Gemini have a preview of the same feature, which they managed to ship
the day before ChatGPT did.
- >-
So far, I think they’re a net positive. I’ve used them on a personal
level to improve my productivity (and entertain myself) in all sorts of
different ways. I think people who learn how to use them effectively can
gain a significant boost to their quality of life.
A lot of people are yet to be sold on their value! Some think their
negatives outweigh their positives, some think they are all hot air, and
some even think they represent an existential threat to humanity.
They’re actually quite easy to build
The most surprising thing we’ve learned about LLMs this year is that
they’re actually quite easy to build.
- source_sentence: >-
What are the potential environmental impacts of the competitive buildout
of infrastructure by major tech companies?
sentences:
- >-
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
- >-
The environmental impact got much, much worse
The much bigger problem here is the enormous competitive buildout of the
infrastructure that is imagined to be necessary for these models in the
future.
Companies like Google, Meta, Microsoft and Amazon are all spending
billions of dollars rolling out new datacenters, with a very material
impact on the electricity grid and the environment. There’s even talk of
spinning up new nuclear power stations, but those can take decades.
Is this infrastructure necessary? DeepSeek v3’s $6m training cost and
the continued crash in LLM prices might hint that it’s not. But would
you want to be the big tech executive that argued NOT to build out this
infrastructure only to be proven wrong in a few years’ time?
- >-
7th: Prompts.js
9th: I can now run a GPT-4 class model on my laptop
10th: ChatGPT Canvas can make API requests now, but it’s complicated
11th: Gemini 2.0 Flash: An outstanding multi-modal LLM with a sci-fi
streaming mode
19th: Building Python tools with a one-shot prompt using uv run and
Claude Projects
19th: Gemini 2.0 Flash “Thinking mode”
20th: December in LLMs has been a lot
20th: Live blog: the 12th day of OpenAI—“Early evals for OpenAI o3”
24th: Trying out QvQ—Qwen’s new visual reasoning model
31st: Things we learned about LLMs in 2024
(This list generated using Django SQL Dashboard with a SQL query written
for me by Claude.)
- source_sentence: >-
What are some of the capabilities of Large Language Models (LLMs)
mentioned in the context?
sentences:
- >-
My personal laptop is a 64GB M2 MacBook Pro from 2023. It’s a powerful
machine, but it’s also nearly two years old now—and crucially it’s the
same laptop I’ve been using ever since I first ran an LLM on my computer
back in March 2023 (see Large language models are having their Stable
Diffusion moment).
That same laptop that could just about run a GPT-3-class model in March
last year has now run multiple GPT-4 class models! Some of my notes on
that:
- >-
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.
- >-
24th: Notes on the new Claude analysis JavaScript code execution tool
27th: Run a prompt to generate and execute jq programs using llm-jq
29th: You can now run prompts against images, audio and video in your
terminal using LLM
30th: W̶e̶e̶k̶n̶o̶t̶e̶s̶ Monthnotes for October
November
4th: Claude 3.5 Haiku
7th: Project: VERDAD—tracking misinformation in radio broadcasts using
Gemini 1.5
12th: Qwen2.5-Coder-32B is an LLM that can code well that runs on my Mac
19th: Notes from Bing Chat—Our First Encounter With Manipulative AI
25th: Ask questions of SQLite databases and CSV/JSON files in your
terminal
December
4th: First impressions of the new Amazon Nova LLMs (via a new
llm-bedrock plugin)
7th: Prompts.js
- source_sentence: What significant event occurred in 2024 related to the term "slop"?
sentences:
- >-
Then there’s the rest. If you browse the Chatbot Arena leaderboard
today—still the most useful single place to get a vibes-based evaluation
of models—you’ll see that GPT-4-0314 has fallen to around 70th place.
The 18 organizations with higher scoring models are Google, OpenAI,
Alibaba, Anthropic, Meta, Reka AI, 01 AI, Amazon, Cohere, DeepSeek,
Nvidia, Mistral, NexusFlow, Zhipu AI, xAI, AI21 Labs, Princeton and
Tencent.
Training a GPT-4 beating model was a huge deal in 2023. In 2024 it’s an
achievement that isn’t even particularly notable, though I personally
still celebrate any time a new organization joins that list.
Some of those GPT-4 models run on my laptop
- |-
The year of slop
Synthetic training data works great
LLMs somehow got even harder to use
Knowledge is incredibly unevenly distributed
LLMs need better criticism
Everything tagged “llms” on my blog in 2024
- >-
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:
- source_sentence: >-
How does the user experience with the default LLM chat UI compare to using
a more familiar interface?
sentences:
- >-
The models may have got more capable, but most of the limitations
remained the same. OpenAI’s o1 may finally be able to (mostly) count the
Rs in strawberry, but its abilities are still limited by its nature as
an LLM and the constraints placed on it by the harness it’s running in.
o1 can’t run web searches or use Code Interpreter, but GPT-4o can—both
in that same ChatGPT UI. (o1 will pretend to do those things if you ask
it to, a regression to the URL hallucinations bug from early 2023).
What are we doing about this? Not much. Most users are thrown in at the
deep end. The default LLM chat UI is like taking brand new computer
users, dropping them into a Linux terminal and expecting them to figure
it all out.
- >-
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.
- >-
I think people who complain that LLM improvement has slowed are often
missing the enormous advances in these multi-modal models. Being able to
run prompts against images (and audio and video) is a fascinating new
way to apply these models.
Voice and live camera mode are science fiction come to life
The audio and live video modes that have started to emerge deserve a
special mention.
The ability to talk to ChatGPT first arrived in September 2023, but it
was mostly an illusion: OpenAI used their excellent Whisper
speech-to-text model and a new text-to-speech model (creatively named
tts-1) to enable conversations with the ChatGPT mobile apps, but the
actual model just saw text.
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.8333333333333334
name: Cosine Accuracy@1
- type: cosine_accuracy@3
value: 0.9583333333333334
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.8333333333333334
name: Cosine Precision@1
- type: cosine_precision@3
value: 0.3194444444444444
name: Cosine Precision@3
- type: cosine_precision@5
value: 0.20000000000000004
name: Cosine Precision@5
- type: cosine_precision@10
value: 0.10000000000000002
name: Cosine Precision@10
- type: cosine_recall@1
value: 0.8333333333333334
name: Cosine Recall@1
- type: cosine_recall@3
value: 0.9583333333333334
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.9228630130990606
name: Cosine Ndcg@10
- type: cosine_mrr@10
value: 0.8972222222222221
name: Cosine Mrr@10
- type: cosine_map@100
value: 0.8972222222222221
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
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
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("melghorab/legal-ft-v0")
# Run inference
sentences = [
'How does the user experience with the default LLM chat UI compare to using a more familiar interface?',
'The models may have got more capable, but most of the limitations remained the same. OpenAI’s o1 may finally be able to (mostly) count the Rs in strawberry, but its abilities are still limited by its nature as an LLM and the constraints placed on it by the harness it’s running in. o1 can’t run web searches or use Code Interpreter, but GPT-4o can—both in that same ChatGPT UI. (o1 will pretend to do those things if you ask it to, a regression to the URL hallucinations bug from early 2023).\nWhat are we doing about this? Not much. Most users are thrown in at the deep end. The default LLM chat UI is like taking brand new computer users, dropping them into a Linux terminal and expecting them to figure it all out.',
'I think people who complain that LLM improvement has slowed are often missing the enormous advances in these multi-modal models. Being able to run prompts against images (and audio and video) is a fascinating new way to apply these models.\nVoice and live camera mode are science fiction come to life\nThe audio and live video modes that have started to emerge deserve a special mention.\nThe ability to talk to ChatGPT first arrived in September 2023, but it was mostly an illusion: OpenAI used their excellent Whisper speech-to-text model and a new text-to-speech model (creatively named tts-1) to enable conversations with the ChatGPT mobile apps, but the actual model just saw text.',
]
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
- Evaluated with
InformationRetrievalEvaluator
Metric | Value |
---|---|
cosine_accuracy@1 | 0.8333 |
cosine_accuracy@3 | 0.9583 |
cosine_accuracy@5 | 1.0 |
cosine_accuracy@10 | 1.0 |
cosine_precision@1 | 0.8333 |
cosine_precision@3 | 0.3194 |
cosine_precision@5 | 0.2 |
cosine_precision@10 | 0.1 |
cosine_recall@1 | 0.8333 |
cosine_recall@3 | 0.9583 |
cosine_recall@5 | 1.0 |
cosine_recall@10 | 1.0 |
cosine_ndcg@10 | 0.9229 |
cosine_mrr@10 | 0.8972 |
cosine_map@100 | 0.8972 |
Training Details
Training Dataset
Unnamed Dataset
- Size: 156 training samples
- Columns:
sentence_0
andsentence_1
- Approximate statistics based on the first 156 samples:
sentence_0 sentence_1 type string string details - min: 14 tokens
- mean: 20.3 tokens
- max: 36 tokens
- min: 43 tokens
- mean: 130.45 tokens
- max: 204 tokens
- Samples:
sentence_0 sentence_1 What role does synthetic data play in the pretraining of models, particularly in the Phi series?
Synthetic data as a substantial component of pretraining is becoming increasingly common, and the Phi series of models has consistently emphasized the importance of synthetic data. Rather than serving as a cheap substitute for organic data, synthetic data has several direct advantages over organic data.
How does synthetic data compare to organic data in terms of advantages?
Synthetic data as a substantial component of pretraining is becoming increasingly common, and the Phi series of models has consistently emphasized the importance of synthetic data. Rather than serving as a cheap substitute for organic data, synthetic data has several direct advantages over organic data.
What analogy is used to describe LLMs in the context provided?
A drum I’ve been banging for a while is that LLMs are power-user tools—they’re chainsaws disguised as kitchen knives. They look deceptively simple to use—how hard can it be to type messages to a chatbot?—but in reality you need a huge depth of both understanding and experience to make the most of them and avoid their many pitfalls.
If anything, this problem got worse in 2024.
We’ve built computer systems you can talk to in human language, that will answer your questions and usually get them right! ... depending on the question, and how you ask it, and whether it’s accurately reflected in the undocumented and secret training set. - 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
: stepsper_device_train_batch_size
: 10per_device_eval_batch_size
: 10num_train_epochs
: 10multi_dataset_batch_sampler
: round_robin
All Hyperparameters
Click to expand
overwrite_output_dir
: Falsedo_predict
: Falseeval_strategy
: stepsprediction_loss_only
: Trueper_device_train_batch_size
: 10per_device_eval_batch_size
: 10per_gpu_train_batch_size
: Noneper_gpu_eval_batch_size
: Nonegradient_accumulation_steps
: 1eval_accumulation_steps
: Nonetorch_empty_cache_steps
: Nonelearning_rate
: 5e-05weight_decay
: 0.0adam_beta1
: 0.9adam_beta2
: 0.999adam_epsilon
: 1e-08max_grad_norm
: 1num_train_epochs
: 10max_steps
: -1lr_scheduler_type
: linearlr_scheduler_kwargs
: {}warmup_ratio
: 0.0warmup_steps
: 0log_level
: passivelog_level_replica
: warninglog_on_each_node
: Truelogging_nan_inf_filter
: Truesave_safetensors
: Truesave_on_each_node
: Falsesave_only_model
: Falserestore_callback_states_from_checkpoint
: Falseno_cuda
: Falseuse_cpu
: Falseuse_mps_device
: Falseseed
: 42data_seed
: Nonejit_mode_eval
: Falseuse_ipex
: Falsebf16
: Falsefp16
: Falsefp16_opt_level
: O1half_precision_backend
: autobf16_full_eval
: Falsefp16_full_eval
: Falsetf32
: Nonelocal_rank
: 0ddp_backend
: Nonetpu_num_cores
: Nonetpu_metrics_debug
: Falsedebug
: []dataloader_drop_last
: Falsedataloader_num_workers
: 0dataloader_prefetch_factor
: Nonepast_index
: -1disable_tqdm
: Falseremove_unused_columns
: Truelabel_names
: Noneload_best_model_at_end
: Falseignore_data_skip
: Falsefsdp
: []fsdp_min_num_params
: 0fsdp_config
: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}fsdp_transformer_layer_cls_to_wrap
: Noneaccelerator_config
: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}deepspeed
: Nonelabel_smoothing_factor
: 0.0optim
: adamw_torchoptim_args
: Noneadafactor
: Falsegroup_by_length
: Falselength_column_name
: lengthddp_find_unused_parameters
: Noneddp_bucket_cap_mb
: Noneddp_broadcast_buffers
: Falsedataloader_pin_memory
: Truedataloader_persistent_workers
: Falseskip_memory_metrics
: Trueuse_legacy_prediction_loop
: Falsepush_to_hub
: Falseresume_from_checkpoint
: Nonehub_model_id
: Nonehub_strategy
: every_savehub_private_repo
: Nonehub_always_push
: Falsegradient_checkpointing
: Falsegradient_checkpointing_kwargs
: Noneinclude_inputs_for_metrics
: Falseinclude_for_metrics
: []eval_do_concat_batches
: Truefp16_backend
: autopush_to_hub_model_id
: Nonepush_to_hub_organization
: Nonemp_parameters
:auto_find_batch_size
: Falsefull_determinism
: Falsetorchdynamo
: Noneray_scope
: lastddp_timeout
: 1800torch_compile
: Falsetorch_compile_backend
: Nonetorch_compile_mode
: Nonedispatch_batches
: Nonesplit_batches
: Noneinclude_tokens_per_second
: Falseinclude_num_input_tokens_seen
: Falseneftune_noise_alpha
: Noneoptim_target_modules
: Nonebatch_eval_metrics
: Falseeval_on_start
: Falseuse_liger_kernel
: Falseeval_use_gather_object
: Falseaverage_tokens_across_devices
: Falseprompts
: Nonebatch_sampler
: batch_samplermulti_dataset_batch_sampler
: round_robin
Training Logs
Epoch | Step | cosine_ndcg@10 |
---|---|---|
1.0 | 16 | 0.9163 |
2.0 | 32 | 0.9330 |
3.0 | 48 | 0.9330 |
3.125 | 50 | 0.9330 |
4.0 | 64 | 0.9067 |
5.0 | 80 | 0.9067 |
6.0 | 96 | 0.9247 |
6.25 | 100 | 0.9247 |
7.0 | 112 | 0.9247 |
8.0 | 128 | 0.9229 |
9.0 | 144 | 0.9229 |
9.375 | 150 | 0.9229 |
10.0 | 160 | 0.9229 |
Framework Versions
- Python: 3.11.11
- Sentence Transformers: 3.4.1
- Transformers: 4.48.3
- PyTorch: 2.5.1+cu124
- Accelerate: 1.3.0
- Datasets: 3.3.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}
}