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: >-
According to the context, what is considered the biggest unsolved problem
related to the issues discussed?
sentences:
- |-
The GPT-4 barrier was comprehensively broken
Some of those GPT-4 models run on my laptop
LLM prices crashed, thanks to competition and increased efficiency
Multimodal vision is common, audio and video are starting to emerge
Voice and live camera mode are science fiction come to life
Prompt driven app generation is a commodity already
Universal access to the best models lasted for just a few short months
“Agents” still haven’t really happened yet
Evals really matter
Apple Intelligence is bad, Apple’s MLX library is excellent
The rise of inference-scaling “reasoning” models
Was the best currently available LLM trained in China for less than $6m?
The environmental impact got better
The environmental impact got much, much worse
- >-
Sometimes it omits sections of code and leaves you to fill them in, but
if you tell it you can’t type because you don’t have any fingers it
produces the full code for you instead.
There are so many more examples like this. Offer it cash tips for better
answers. Tell it your career depends on it. Give it positive
reinforcement. It’s all so dumb, but it works!
Gullibility is the biggest unsolved problem
I coined the term prompt injection in September last year.
15 months later, I regret to say that we’re still no closer to a robust,
dependable solution to this problem.
I’ve written a ton about this already.
Beyond that specific class of security vulnerabilities, I’ve started
seeing this as a wider problem of gullibility.
- >-
Your browser does not support the audio element.
OpenAI aren’t the only group with a multi-modal audio model. Google’s
Gemini also accepts audio input, and the Google Gemini apps can speak in
a similar way to ChatGPT now. Amazon also pre-announced voice mode for
Amazon Nova, but that’s meant to roll out in Q1 of 2025.
Google’s NotebookLM, released in September, took audio output to a new
level by producing spookily realistic conversations between two “podcast
hosts” about anything you fed into their tool. They later added custom
instructions, so naturally I turned them into pelicans:
Your browser does not support the audio element.
- source_sentence: >-
What are the two main factors driving the recent price drops in running
prompts for LLMs?
sentences:
- >-
These abilities are just a few weeks old at this point, and I don’t
think their impact has been fully felt yet. If you haven’t tried them
out yet you really should.
Both Gemini and OpenAI offer API access to these features as well.
OpenAI started with a WebSocket API that was quite challenging to use,
but in December they announced a new WebRTC API which is much easier to
get started with. Building a web app that a user can talk to via voice
is easy now!
Prompt driven app generation is a commodity already
This was possible with GPT-4 in 2023, but the value it provides became
evident in 2024.
- >-
These price drops are driven by two factors: increased competition and
increased efficiency. The efficiency thing is really important for
everyone who is concerned about the environmental impact of LLMs. These
price drops tie directly to how much energy is being used for running
prompts.
There’s still plenty to worry about with respect to the environmental
impact of the great AI datacenter buildout, but a lot of the concerns
over the energy cost of individual prompts are no longer credible.
Here’s a fun napkin calculation: how much would it cost to generate
short descriptions of every one of the 68,000 photos in my personal
photo library using Google’s Gemini 1.5 Flash 8B (released in October),
their cheapest model?
- >-
The two main categories I see are people who think AI agents are
obviously things that go and act on your behalf—the travel agent
model—and people who think in terms of LLMs that have been given access
to tools which they can run in a loop as part of solving a problem. The
term “autonomy” is often thrown into the mix too, again without
including a clear definition.
(I also collected 211 definitions on Twitter a few months ago—here they
are in Datasette Lite—and had gemini-exp-1206 attempt to summarize
them.)
Whatever the term may mean, agents still have that feeling of
perpetually “coming soon”.
- source_sentence: What is the new approach to scaling models mentioned in the context?
sentences:
- |-
Large Language Models
They’re actually quite easy to build
You can run LLMs on your own devices
Hobbyists can build their own fine-tuned models
We don’t yet know how to build GPT-4
Vibes Based Development
LLMs are really smart, and also really, really dumb
Gullibility is the biggest unsolved problem
Code may be the best application
The ethics of this space remain diabolically complex
My blog in 2023
- >-
The biggest innovation here is that it opens up a new way to scale a
model: instead of improving model performance purely through additional
compute at training time, models can now take on harder problems by
spending more compute on inference.
The sequel to o1, o3 (they skipped “o2” for European trademark reasons)
was announced on 20th December with an impressive result against the
ARC-AGI benchmark, albeit one that likely involved more than $1,000,000
of compute time expense!
o3 is expected to ship in January. I doubt many people have real-world
problems that would benefit from that level of compute expenditure—I
certainly don’t!—but it appears to be a genuine next step in LLM
architecture for taking on much harder problems.
- >-
On the other hand, as software engineers we are better placed to take
advantage of this than anyone else. We’ve all been given weird coding
interns—we can use our deep knowledge to prompt them to solve coding
problems more effectively than anyone else can.
The ethics of this space remain diabolically complex
In September last year Andy Baio and I produced the first major story on
the unlicensed training data behind Stable Diffusion.
Since then, almost every major LLM (and most of the image generation
models) have also been trained on unlicensed data.
- source_sentence: >-
What new feature did the Chatbot Arena team introduce in December, and how
is it evaluated?
sentences:
- >-
Nothing yet from Anthropic or Meta but I would be very surprised if they
don’t have their own inference-scaling models in the works. Meta
published a relevant paper Training Large Language Models to Reason in a
Continuous Latent Space in December.
Was the best currently available LLM trained in China for less than $6m?
Not quite, but almost! It does make for a great attention-grabbing
headline.
The big news to end the year was the release of DeepSeek v3—dropped on
Hugging Face on Christmas Day without so much as a README file, then
followed by documentation and a paper the day after that.
- >-
Prompt injection is a natural consequence of this gulibility. I’ve seen
precious little progress on tackling that problem in 2024, and we’ve
been talking about it since September 2022.
I’m beginning to see the most popular idea of “agents” as dependent on
AGI itself. A model that’s robust against gulliblity is a very tall
order indeed.
Evals really matter
Anthropic’s Amanda Askell (responsible for much of the work behind
Claude’s Character):
- >-
Then in December, the Chatbot Arena team introduced a whole new
leaderboard for this feature, driven by users building the same
interactive app twice with two different models and voting on the
answer. Hard to come up with a more convincing argument that this
feature is now a commodity that can be effectively implemented against
all of the leading models.
I’ve been tinkering with a version of this myself for my Datasette
project, with the goal of letting users use prompts to build and iterate
on custom widgets and data visualizations against their own data. I also
figured out a similar pattern for writing one-shot Python programs,
enabled by uv.
- source_sentence: >-
What are some potential negative uses of Large Language Models as
described in the context?
sentences:
- >-
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.
- >-
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
- >-
“Agents” still haven’t really happened yet
I find the term “agents” extremely frustrating. It lacks a single, clear
and widely understood meaning... but the people who use the term never
seem to acknowledge that.
If you tell me that you are building “agents”, you’ve conveyed almost no
information to me at all. Without reading your mind I have no way of
telling which of the dozens of possible definitions you are talking
about.
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.9166666666666666
name: Cosine Accuracy@1
- type: cosine_accuracy@3
value: 1
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.9166666666666666
name: Cosine Precision@1
- type: cosine_precision@3
value: 0.3333333333333333
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.9166666666666666
name: Cosine Recall@1
- type: cosine_recall@3
value: 1
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.9692441461309548
name: Cosine Ndcg@10
- type: cosine_mrr@10
value: 0.9583333333333334
name: Cosine Mrr@10
- type: cosine_map@100
value: 0.9583333333333334
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("rajkstats/legal-ft-c8dc4aca-bfc4-4433-81b2-4cc294d0eb93")
# Run inference
sentences = [
'What are some potential negative uses of Large Language Models as described in the context?',
'Here’s the sequel to this post: Things we learned about LLMs in 2024.\nLarge Language Models\nIn 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.\nLLMs 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.\nThey can also help you cheat at your homework, generate unlimited streams of fake content and be used for all manner of nefarious purposes.',
'“Agents” still haven’t really happened yet\nI find the term “agents” extremely frustrating. It lacks a single, clear and widely understood meaning... but the people who use the term never seem to acknowledge that.\nIf you tell me that you are building “agents”, you’ve conveyed almost no information to me at all. Without reading your mind I have no way of telling which of the dozens of possible definitions you are talking about.',
]
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.9167 |
cosine_accuracy@3 | 1.0 |
cosine_accuracy@5 | 1.0 |
cosine_accuracy@10 | 1.0 |
cosine_precision@1 | 0.9167 |
cosine_precision@3 | 0.3333 |
cosine_precision@5 | 0.2 |
cosine_precision@10 | 0.1 |
cosine_recall@1 | 0.9167 |
cosine_recall@3 | 1.0 |
cosine_recall@5 | 1.0 |
cosine_recall@10 | 1.0 |
cosine_ndcg@10 | 0.9692 |
cosine_mrr@10 | 0.9583 |
cosine_map@100 | 0.9583 |
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: 12 tokens
- mean: 21.09 tokens
- max: 37 tokens
- min: 43 tokens
- mean: 135.28 tokens
- max: 214 tokens
- Samples:
sentence_0 sentence_1 What were some of the economic consequences of the railway construction boom in the 1800s?
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 slopHow did the construction of railways in the 1800s impact the environment?
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 slopWhat recent development did Meta contribute to the field of large language models in December?
Nothing yet from Anthropic or Meta but I would be very surprised if they don’t have their own inference-scaling models in the works. Meta published a relevant paper Training Large Language Models to Reason in a Continuous Latent Space in December.
Was the best currently available LLM trained in China for less than $6m?
Not quite, but almost! It does make for a great attention-grabbing headline.
The big news to end the year was the release of DeepSeek v3—dropped on Hugging Face on Christmas Day without so much as a README file, then followed by documentation and a paper the day after that. - 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}tp_size
: 0fsdp_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
: 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.9401 |
2.0 | 32 | 0.9539 |
3.0 | 48 | 0.9638 |
3.125 | 50 | 0.9692 |
4.0 | 64 | 0.9692 |
5.0 | 80 | 0.9692 |
6.0 | 96 | 0.9692 |
6.25 | 100 | 0.9692 |
7.0 | 112 | 0.9692 |
8.0 | 128 | 0.9692 |
9.0 | 144 | 0.9692 |
9.375 | 150 | 0.9692 |
10.0 | 160 | 0.9692 |
Framework Versions
- Python: 3.11.12
- Sentence Transformers: 4.1.0
- Transformers: 4.51.3
- PyTorch: 2.6.0+cu124
- Accelerate: 1.6.0
- Datasets: 3.5.1
- Tokenizers: 0.21.1
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}
}