Views
No views yet
ColBERT(
(0): Transformer({'max_seq_length': 127, 'do_lower_case': False, 'architecture': 'BertModel'})
(1): Dense({'in_features': 768, 'out_features': 128, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity', 'use_residual': False})
)pip install -U pylate1from pylate import indexes, models, retrieve
2
3# Step 1: Load the ColBERT model
4model = models.ColBERT(
5 model_name_or_path="aditeyabaral/langcache-colbert-v1",
6)
7
8# Step 2: Initialize the PLAID index
9index = indexes.PLAID(
10 index_folder="pylate-index",
11 index_name="index",
12 override=True, # This overwrites the existing index if any
13)
14
15# Step 3: Encode the documents
16documents_ids = ["1", "2", "3"]
17documents = ["document 1 text", "document 2 text", "document 3 text"]
18
19documents_embeddings = model.encode(
20 documents,
21 batch_size=32,
22 is_query=False, # Ensure that it is set to False to indicate that these are documents, not queries
23 show_progress_bar=True,
24)
25
26# Step 4: Add document embeddings to the index by providing embeddings and corresponding ids
27index.add_documents(
28 documents_ids=documents_ids,
29 documents_embeddings=documents_embeddings,
30)1# To load an index, simply instantiate it with the correct folder/name and without overriding it
2index = indexes.PLAID(
3 index_folder="pylate-index",
4 index_name="index",
5)1# Step 1: Initialize the ColBERT retriever
2retriever = retrieve.ColBERT(index=index)
3
4# Step 2: Encode the queries
5queries_embeddings = model.encode(
6 ["query for document 3", "query for document 1"],
7 batch_size=32,
8 is_query=True, # # Ensure that it is set to False to indicate that these are queries
9 show_progress_bar=True,
10)
11
12# Step 3: Retrieve top-k documents
13scores = retriever.retrieve(
14 queries_embeddings=queries_embeddings,
15 k=10, # Retrieve the top 10 matches for each query
16)1from pylate import rank, models
2
3queries = [
4 "query A",
5 "query B",
6]
7
8documents = [
9 ["document A", "document B"],
10 ["document 1", "document C", "document B"],
11]
12
13documents_ids = [
14 [1, 2],
15 [1, 3, 2],
16]
17
18model = models.ColBERT(
19 model_name_or_path="aditeyabaral/langcache-colbert-v1",
20)
21
22queries_embeddings = model.encode(
23 queries,
24 is_query=True,
25)
26
27documents_embeddings = model.encode(
28 documents,
29 is_query=False,
30)
31
32reranked_documents = rank.rerank(
33 documents_ids=documents_ids,
34 queries_embeddings=queries_embeddings,
35 documents_embeddings=documents_embeddings,
36)test_tripletpylate.evaluation.colbert_triplet.ColBERTTripletEvaluator| Metric | Value |
|---|---|
| accuracy | 0.9847 |
anchor, positive, and negative_1| anchor | positive | negative_1 | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative_1 |
|---|---|---|
Any Canadian teachers (B.Ed. holders) teaching in U.S. schools? | Any Canadian teachers (B.Ed. holders) teaching in U.S. schools? | Are there many Canadians living and working illegally in the United States? |
Are there any underlying psychological tricks/tactics that are used when designing the lines for rides at amusement parks? | Are there any underlying psychological tricks/tactics that are used when designing the lines for rides at amusement parks? | Is there any tricks for straight lines mcqs? |
Can I pay with a debit card on PayPal? | Can I pay with a debit card on PayPal? | Can you transfer PayPal funds onto a debit card/credit card? |
pylate.losses.contrastive.Contrastiveanchor, positive, and negative_1| anchor | positive | negative_1 | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| anchor | positive | negative_1 |
|---|---|---|
What high potential jobs are there other than computer science? | What high potential jobs are there other than computer science? | Why IT or Computer Science jobs are being over rated than other Engineering jobs? |
Would India ever be able to develop a missile system like S300 or S400 missile? | Would India ever be able to develop a missile system like S300 or S400 missile? | Should India buy the Russian S400 air defence missile system? |
water from the faucet is being drunk by a yellow dog | A yellow dog is drinking water from the faucet | Do you get more homework in 9th grade than 8th? |
pylate.losses.contrastive.Contrastiveper_device_train_batch_size: 48num_train_epochs: 5learning_rate: 0.0002warmup_steps: 0.1optim: adamw_torchweight_decay: 0.001eval_strategy: stepsper_device_eval_batch_size: 48eval_on_start: Truepush_to_hub: Truehub_model_id: aditeyabaral/langcache-colbert-v1load_best_model_at_end: Trueddp_find_unused_parameters: Truebatch_sampler: no_duplicatesper_device_train_batch_size: 48num_train_epochs: 5max_steps: -1learning_rate: 0.0002lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_steps: 0.1optim: adamw_torchoptim_args: Noneweight_decay: 0.001adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08optim_target_modules: Nonegradient_accumulation_steps: 1average_tokens_across_devices: Truemax_grad_norm: 1.0label_smoothing_factor: 0.0bf16: Falsefp16: Falsebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Nonetorch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneuse_liger_kernel: Falseliger_kernel_config: Noneuse_cache: Falseneftune_noise_alpha: Nonetorch_empty_cache_steps: Noneauto_find_batch_size: Falselog_on_each_node: Truelogging_nan_inf_filter: Trueinclude_num_input_tokens_seen: nolog_level: passivelog_level_replica: warningdisable_tqdm: Falseproject: huggingfacetrackio_space_id: trackioeval_strategy: stepsper_device_eval_batch_size: 48prediction_loss_only: Trueeval_on_start: Trueeval_do_concat_batches: Trueeval_use_gather_object: Falseeval_accumulation_steps: Noneinclude_for_metrics: []batch_eval_metrics: Falsesave_only_model: Falsesave_on_each_node: Falseenable_jit_checkpoint: Falsepush_to_hub: Truehub_private_repo: Nonehub_model_id: aditeyabaral/langcache-colbert-v1hub_strategy: every_savehub_always_push: Falsehub_revision: Noneload_best_model_at_end: Trueignore_data_skip: Falserestore_callback_states_from_checkpoint: Falsefull_determinism: Falseseed: 42data_seed: Noneuse_cpu: Falseaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}parallelism_config: Nonedataloader_drop_last: Truedataloader_num_workers: 0dataloader_pin_memory: Truedataloader_persistent_workers: Falsedataloader_prefetch_factor: Noneremove_unused_columns: Truelabel_names: Nonetrain_sampling_strategy: randomlength_column_name: lengthddp_find_unused_parameters: Trueddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falseddp_backend: Noneddp_timeout: 1800fsdp: []fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}deepspeed: Nonedebug: []skip_memory_metrics: Truedo_predict: Falseresume_from_checkpoint: Nonewarmup_ratio: Nonelocal_rank: -1prompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss | Validation Loss | accuracy |
|---|---|---|---|---|
| 0 | 0 | - | 527.3283 | 0.8206 |
| 0.0661 | 1000 | 73.6149 | - | - |
| 0.1322 | 2000 | 5.4919 | - | - |
| 0.1983 | 3000 | 0.3036 | - | - |
| 0.2644 | 4000 | 0.2963 | - | - |
| 0.3305 | 5000 | 0.3388 | - | - |
| 0.3966 | 6000 | 0.2512 | - | - |
| 0.4627 | 7000 | 0.2497 | - | - |
| 0.5288 | 8000 | 0.2427 | - | - |
| 0.5948 | 9000 | 0.2585 | - | - |
| 0.6609 | 10000 | 0.5272 | - | - |
| 0.7270 | 11000 | 0.2143 | - | - |
| 0.7931 | 12000 | 0.2065 | - | - |
| 0.8592 | 13000 | 0.4024 | - | - |
| 0.9253 | 14000 | 0.6400 | - | - |
| 0.9914 | 15000 | 0.8233 | - | - |
| 1.0575 | 16000 | 0.7687 | - | - |
| 1.1236 | 17000 | 0.7550 | - | - |
| 1.1897 | 18000 | 0.6507 | - | - |
| 1.2558 | 19000 | 0.6809 | - | - |
| 1.3219 | 20000 | 0.6523 | - | - |
| 1.3880 | 21000 | 0.5745 | - | - |
| 1.4541 | 22000 | 0.5485 | - | - |
| 1.5202 | 23000 | 0.5092 | - | - |
| 1.5863 | 24000 | 0.4815 | - | - |
| 1.6523 | 25000 | 0.4785 | - | - |
| 1.7184 | 26000 | 0.4901 | - | - |
| 1.7845 | 27000 | 0.4581 | - | - |
| 1.8506 | 28000 | 0.5224 | - | - |
| 1.9167 | 29000 | 0.4892 | - | - |
| 1.9828 | 30000 | 0.4884 | - | - |
| 2.0489 | 31000 | 0.4530 | - | - |
| 2.1150 | 32000 | 0.4356 | - | - |
| 2.1811 | 33000 | 0.4555 | - | - |
| 2.2472 | 34000 | 0.4360 | - | - |
| 2.3133 | 35000 | 0.4478 | - | - |
| 2.3794 | 36000 | 0.4297 | - | - |
| 2.4455 | 37000 | 0.3896 | - | - |
| 2.5116 | 38000 | 0.3594 | - | - |
| 2.5777 | 39000 | 0.3581 | - | - |
| 2.6438 | 40000 | 0.3270 | - | - |
| 2.7098 | 41000 | 0.3995 | - | - |
| 2.7759 | 42000 | 0.3665 | - | - |
| 2.8420 | 43000 | 0.4018 | - | - |
| 2.9081 | 44000 | 0.4260 | - | - |
| 2.9742 | 45000 | 0.3957 | - | - |
| 3.0403 | 46000 | 0.3659 | - | - |
| 3.1064 | 47000 | 0.3826 | - | - |
| 3.1725 | 48000 | 0.3603 | - | - |
| 3.2386 | 49000 | 0.3646 | - | - |
| 3.3047 | 50000 | 0.4069 | - | - |
| 0 | 0 | - | - | 0.9847 |
| 3.3047 | 50000 | - | 2.1447 | - |
| 3.3708 | 51000 | 0.3493 | - | - |
| 3.4369 | 52000 | 0.3207 | - | - |
| 3.5030 | 53000 | 0.3311 | - | - |
| 3.5691 | 54000 | 0.3208 | - | - |
| 3.6352 | 55000 | 0.2760 | - | - |
| 3.7013 | 56000 | 0.3244 | - | - |
| 3.7673 | 57000 | 0.2789 | - | - |
| 3.8334 | 58000 | 0.3038 | - | - |
| 3.8995 | 59000 | 0.3958 | - | - |
| 3.9656 | 60000 | 0.3338 | - | - |
| 4.0317 | 61000 | 0.3445 | - | - |
| 4.0978 | 62000 | 0.3291 | - | - |
| 4.1639 | 63000 | 0.3225 | - | - |
| 4.2300 | 64000 | 0.3386 | - | - |
| 4.2961 | 65000 | 0.3439 | - | - |
| 4.3622 | 66000 | 0.3378 | - | - |
| 4.4283 | 67000 | 0.2919 | - | - |
| 4.4944 | 68000 | 0.3099 | - | - |
| 4.5605 | 69000 | 0.2911 | - | - |
| 4.6266 | 70000 | 0.2644 | - | - |
| 4.6927 | 71000 | 0.3037 | - | - |
| 4.7588 | 72000 | 0.2862 | - | - |
| 4.8249 | 73000 | 0.2931 | - | - |
| 4.8909 | 74000 | 0.3613 | - | - |
| 4.9570 | 75000 | 0.3131 | - | - |
1@inproceedings{reimers-2019-sentence-bert,
2 title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
3 author = "Reimers, Nils and Gurevych, Iryna",
4 booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
5 month = "11",
6 year = "2019",
7 publisher = "Association for Computational Linguistics",
8 url = "https://arxiv.org/abs/1908.10084"
9}1@inproceedings{DBLP:conf/cikm/ChaffinS25,
2 author = {Antoine Chaffin and
3 Rapha{"{e}}l Sourty},
4 editor = {Meeyoung Cha and
5 Chanyoung Park and
6 Noseong Park and
7 Carl Yang and
8 Senjuti Basu Roy and
9 Jessie Li and
10 Jaap Kamps and
11 Kijung Shin and
12 Bryan Hooi and
13 Lifang He},
14 title = {PyLate: Flexible Training and Retrieval for Late Interaction Models},
15 booktitle = {Proceedings of the 34th {ACM} International Conference on Information
16 and Knowledge Management, {CIKM} 2025, Seoul, Republic of Korea, November
17 10-14, 2025},
18 pages = {6334--6339},
19 publisher = {{ACM}},
20 year = {2025},
21 url = {https://github.com/lightonai/pylate},
22 doi = {10.1145/3746252.3761608},
23}