Liam Wilbur commited on
Commit
95d91c5
·
1 Parent(s): 7f345d5

Updated Readme

Browse files
Files changed (1) hide show
  1. README.md +35 -467
README.md CHANGED
@@ -1,488 +1,56 @@
1
  ---
 
 
 
2
  tags:
3
  - sentence-transformers
4
- - sentence-similarity
5
  - feature-extraction
6
- - dense
7
- - generated_from_trainer
8
- - dataset_size:3270
9
- - loss:OnlineContrastiveLoss
10
- - dataset_size:2044
11
- - dataset_size:1634
12
  base_model: sentence-transformers/all-MiniLM-L6-v2
13
- widget:
14
- - source_sentence: Door Chain
15
- sentences:
16
- - install new FILTER PAN COVER
17
- - replace Burner Baffle
18
- - install new Elbow - Fitting
19
- - source_sentence: install new Gasket
20
- sentences:
21
- - replace CIRCUIT FUSE
22
- - CIRCUIT FUSE
23
- - LWCO Board needs replacement
24
- - source_sentence: Hinge Cam
25
- sentences:
26
- - install new FILTER PAN COVER
27
- - replace Rotary Switch
28
- - Filter Dryer needs replacement
29
- - source_sentence: microwave
30
- sentences:
31
- - replace limit switch
32
- - replace FILTER ENVELOPE
33
- - unit
34
- - source_sentence: install new Actuator Switch
35
- sentences:
36
- - water arrestor needs replacement
37
- - replace hi limit switch
38
- - replace fan switch
39
- pipeline_tag: sentence-similarity
40
- library_name: sentence-transformers
41
- metrics:
42
- - pearson_cosine
43
- - spearman_cosine
44
- model-index:
45
- - name: SentenceTransformer based on sentence-transformers/all-MiniLM-L6-v2
46
- results:
47
- - task:
48
- type: semantic-similarity
49
- name: Semantic Similarity
50
- dataset:
51
- name: sts b
52
- type: sts-b
53
- metrics:
54
- - type: pearson_cosine
55
- value: 0.8696194628511225
56
- name: Pearson Cosine
57
- - type: spearman_cosine
58
- value: 0.8671637425670679
59
- name: Spearman Cosine
60
- - task:
61
- type: semantic-similarity
62
- name: Semantic Similarity
63
- dataset:
64
- name: mtb
65
- type: mtb
66
- metrics:
67
- - type: pearson_cosine
68
- value: 0.8135998600118043
69
- name: Pearson Cosine
70
- - type: spearman_cosine
71
- value: 0.7237156305132463
72
- name: Spearman Cosine
73
  ---
74
 
75
- # SentenceTransformer based on sentence-transformers/all-MiniLM-L6-v2
76
-
77
- This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [sentence-transformers/all-MiniLM-L6-v2](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2). It maps sentences & paragraphs to a 384-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.
78
-
79
- ## Model Details
80
-
81
- ### Model Description
82
- - **Model Type:** Sentence Transformer
83
- - **Base model:** [sentence-transformers/all-MiniLM-L6-v2](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2) <!-- at revision c9745ed1d9f207416be6d2e6f8de32d1f16199bf -->
84
- - **Maximum Sequence Length:** 256 tokens
85
- - **Output Dimensionality:** 384 dimensions
86
- - **Similarity Function:** Cosine Similarity
87
- <!-- - **Training Dataset:** Unknown -->
88
- <!-- - **Language:** Unknown -->
89
- <!-- - **License:** Unknown -->
90
-
91
- ### Model Sources
92
-
93
- - **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
94
- - **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
95
- - **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)
96
-
97
- ### Full Model Architecture
98
-
99
- ```
100
- SentenceTransformer(
101
- (0): Transformer({'max_seq_length': 256, 'do_lower_case': False, 'architecture': 'BertModel'})
102
- (1): Pooling({'word_embedding_dimension': 384, '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})
103
- (2): Normalize()
104
- )
105
- ```
106
-
107
- ## Usage
108
-
109
- ### Direct Usage (Sentence Transformers)
110
-
111
- First install the Sentence Transformers library:
112
-
113
- ```bash
114
- pip install -U sentence-transformers
115
- ```
116
-
117
- Then you can load this model and run inference.
118
- ```python
119
- from sentence_transformers import SentenceTransformer
120
-
121
- # Download from the 🤗 Hub
122
- model = SentenceTransformer("sentence_transformers_model_id")
123
- # Run inference
124
- sentences = [
125
- 'install new Actuator Switch',
126
- 'replace fan switch',
127
- 'replace hi limit switch',
128
- ]
129
- embeddings = model.encode(sentences)
130
- print(embeddings.shape)
131
- # [3, 384]
132
-
133
- # Get the similarity scores for the embeddings
134
- similarities = model.similarity(embeddings, embeddings)
135
- print(similarities)
136
- # tensor([[1.0000, 0.8321, 0.8193],
137
- # [0.8321, 1.0000, 0.8154],
138
- # [0.8193, 0.8154, 1.0000]])
139
- ```
140
-
141
- <!--
142
- ### Direct Usage (Transformers)
143
-
144
- <details><summary>Click to see the direct usage in Transformers</summary>
145
-
146
- </details>
147
- -->
148
-
149
- <!--
150
- ### Downstream Usage (Sentence Transformers)
151
-
152
- You can finetune this model on your own dataset.
153
-
154
- <details><summary>Click to expand</summary>
155
 
156
- </details>
157
- -->
158
 
159
- <!--
160
- ### Out-of-Scope Use
161
 
162
- *List how the model may foreseeably be misused and address what users ought not to do with the model.*
163
- -->
164
 
165
- ## Evaluation
 
 
166
 
167
- ### Metrics
168
 
169
- #### Semantic Similarity
170
-
171
- * Datasets: `sts-b` and `mtb`
172
- * Evaluated with [<code>EmbeddingSimilarityEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.EmbeddingSimilarityEvaluator)
173
-
174
- | Metric | sts-b | mtb |
175
- |:--------------------|:-----------|:-----------|
176
- | pearson_cosine | 0.8696 | 0.8136 |
177
- | **spearman_cosine** | **0.8672** | **0.7237** |
178
-
179
- <!--
180
- ## Bias, Risks and Limitations
181
-
182
- *What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
183
- -->
184
-
185
- <!--
186
- ### Recommendations
187
-
188
- *What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
189
- -->
190
 
191
  ## Training Details
192
 
193
- ### Training Dataset
194
-
195
- #### Unnamed Dataset
196
-
197
- * Size: 1,634 training samples
198
- * Columns: <code>sentence1</code>, <code>sentence2</code>, and <code>label</code>
199
- * Approximate statistics based on the first 1000 samples:
200
- | | sentence1 | sentence2 | label |
201
- |:--------|:--------------------------------------------------------------------------------|:---------------------------------------------------------------------------------|:------------------------------------------------|
202
- | type | string | string | int |
203
- | details | <ul><li>min: 3 tokens</li><li>mean: 4.34 tokens</li><li>max: 8 tokens</li></ul> | <ul><li>min: 3 tokens</li><li>mean: 4.53 tokens</li><li>max: 10 tokens</li></ul> | <ul><li>0: ~18.30%</li><li>1: ~81.70%</li></ul> |
204
- * Samples:
205
- | sentence1 | sentence2 | label |
206
- |:-----------------------------|:---------------------------|:---------------|
207
- | <code>Expansion Valve</code> | <code>TXV Valve</code> | <code>1</code> |
208
- | <code>Drive Motor</code> | <code>gear motor</code> | <code>1</code> |
209
- | <code>Motor Mount</code> | <code>motor bracket</code> | <code>1</code> |
210
- * Loss: [<code>OnlineContrastiveLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#onlinecontrastiveloss)
211
-
212
- ### Evaluation Dataset
213
-
214
- #### Unnamed Dataset
215
-
216
- * Size: 818 evaluation samples
217
- * Columns: <code>sentence1</code>, <code>sentence2</code>, and <code>label</code>
218
- * Approximate statistics based on the first 818 samples:
219
- | | sentence1 | sentence2 | label |
220
- |:--------|:---------------------------------------------------------------------------------|:---------------------------------------------------------------------------------|:------------------------------------------------|
221
- | type | string | string | int |
222
- | details | <ul><li>min: 3 tokens</li><li>mean: 5.53 tokens</li><li>max: 10 tokens</li></ul> | <ul><li>min: 3 tokens</li><li>mean: 5.93 tokens</li><li>max: 14 tokens</li></ul> | <ul><li>0: ~50.00%</li><li>1: ~50.00%</li></ul> |
223
- * Samples:
224
- | sentence1 | sentence2 | label |
225
- |:-------------------------------------------|:--------------------------------------------|:---------------|
226
- | <code>Power Relay needs replacement</code> | <code>relay needs replacement</code> | <code>1</code> |
227
- | <code>Target needs replacement</code> | <code>ceramic tile needs replacement</code> | <code>1</code> |
228
- | <code>install new Infinite Switch</code> | <code>install new inf switch</code> | <code>1</code> |
229
- * Loss: [<code>OnlineContrastiveLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#onlinecontrastiveloss)
230
-
231
- ### Training Hyperparameters
232
- #### Non-Default Hyperparameters
233
-
234
- - `eval_strategy`: epoch
235
- - `per_device_train_batch_size`: 256
236
- - `per_device_eval_batch_size`: 256
237
- - `learning_rate`: 1e-05
238
- - `num_train_epochs`: 4
239
- - `warmup_ratio`: 0.02
240
- - `bf16`: True
241
- - `load_best_model_at_end`: True
242
-
243
- #### All Hyperparameters
244
- <details><summary>Click to expand</summary>
245
-
246
- - `overwrite_output_dir`: False
247
- - `do_predict`: False
248
- - `eval_strategy`: epoch
249
- - `prediction_loss_only`: True
250
- - `per_device_train_batch_size`: 256
251
- - `per_device_eval_batch_size`: 256
252
- - `per_gpu_train_batch_size`: None
253
- - `per_gpu_eval_batch_size`: None
254
- - `gradient_accumulation_steps`: 1
255
- - `eval_accumulation_steps`: None
256
- - `torch_empty_cache_steps`: None
257
- - `learning_rate`: 1e-05
258
- - `weight_decay`: 0.0
259
- - `adam_beta1`: 0.9
260
- - `adam_beta2`: 0.999
261
- - `adam_epsilon`: 1e-08
262
- - `max_grad_norm`: 1.0
263
- - `num_train_epochs`: 4
264
- - `max_steps`: -1
265
- - `lr_scheduler_type`: linear
266
- - `lr_scheduler_kwargs`: {}
267
- - `warmup_ratio`: 0.02
268
- - `warmup_steps`: 0
269
- - `log_level`: passive
270
- - `log_level_replica`: warning
271
- - `log_on_each_node`: True
272
- - `logging_nan_inf_filter`: True
273
- - `save_safetensors`: True
274
- - `save_on_each_node`: False
275
- - `save_only_model`: False
276
- - `restore_callback_states_from_checkpoint`: False
277
- - `no_cuda`: False
278
- - `use_cpu`: False
279
- - `use_mps_device`: False
280
- - `seed`: 42
281
- - `data_seed`: None
282
- - `jit_mode_eval`: False
283
- - `use_ipex`: False
284
- - `bf16`: True
285
- - `fp16`: False
286
- - `fp16_opt_level`: O1
287
- - `half_precision_backend`: auto
288
- - `bf16_full_eval`: False
289
- - `fp16_full_eval`: False
290
- - `tf32`: None
291
- - `local_rank`: 0
292
- - `ddp_backend`: None
293
- - `tpu_num_cores`: None
294
- - `tpu_metrics_debug`: False
295
- - `debug`: []
296
- - `dataloader_drop_last`: False
297
- - `dataloader_num_workers`: 0
298
- - `dataloader_prefetch_factor`: None
299
- - `past_index`: -1
300
- - `disable_tqdm`: False
301
- - `remove_unused_columns`: True
302
- - `label_names`: None
303
- - `load_best_model_at_end`: True
304
- - `ignore_data_skip`: False
305
- - `fsdp`: []
306
- - `fsdp_min_num_params`: 0
307
- - `fsdp_config`: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
308
- - `fsdp_transformer_layer_cls_to_wrap`: None
309
- - `accelerator_config`: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
310
- - `deepspeed`: None
311
- - `label_smoothing_factor`: 0.0
312
- - `optim`: adamw_torch
313
- - `optim_args`: None
314
- - `adafactor`: False
315
- - `group_by_length`: False
316
- - `length_column_name`: length
317
- - `ddp_find_unused_parameters`: None
318
- - `ddp_bucket_cap_mb`: None
319
- - `ddp_broadcast_buffers`: False
320
- - `dataloader_pin_memory`: True
321
- - `dataloader_persistent_workers`: False
322
- - `skip_memory_metrics`: True
323
- - `use_legacy_prediction_loop`: False
324
- - `push_to_hub`: False
325
- - `resume_from_checkpoint`: None
326
- - `hub_model_id`: None
327
- - `hub_strategy`: every_save
328
- - `hub_private_repo`: None
329
- - `hub_always_push`: False
330
- - `hub_revision`: None
331
- - `gradient_checkpointing`: False
332
- - `gradient_checkpointing_kwargs`: None
333
- - `include_inputs_for_metrics`: False
334
- - `include_for_metrics`: []
335
- - `eval_do_concat_batches`: True
336
- - `fp16_backend`: auto
337
- - `push_to_hub_model_id`: None
338
- - `push_to_hub_organization`: None
339
- - `mp_parameters`:
340
- - `auto_find_batch_size`: False
341
- - `full_determinism`: False
342
- - `torchdynamo`: None
343
- - `ray_scope`: last
344
- - `ddp_timeout`: 1800
345
- - `torch_compile`: False
346
- - `torch_compile_backend`: None
347
- - `torch_compile_mode`: None
348
- - `include_tokens_per_second`: False
349
- - `include_num_input_tokens_seen`: False
350
- - `neftune_noise_alpha`: None
351
- - `optim_target_modules`: None
352
- - `batch_eval_metrics`: False
353
- - `eval_on_start`: False
354
- - `use_liger_kernel`: False
355
- - `liger_kernel_config`: None
356
- - `eval_use_gather_object`: False
357
- - `average_tokens_across_devices`: False
358
- - `prompts`: None
359
- - `batch_sampler`: batch_sampler
360
- - `multi_dataset_batch_sampler`: proportional
361
- - `router_mapping`: {}
362
- - `learning_rate_mapping`: {}
363
-
364
- </details>
365
-
366
- ### Training Logs
367
- | Epoch | Step | Training Loss | Validation Loss | sts-b_spearman_cosine | mtb_spearman_cosine |
368
- |:-------:|:-----:|:-------------:|:---------------:|:---------------------:|:-------------------:|
369
- | -1 | -1 | - | - | 0.8672 | 0.7237 |
370
- | 1.0 | 7 | - | 28.7758 | - | - |
371
- | 2.0 | 14 | - | 20.5461 | - | - |
372
- | 3.0 | 21 | - | 14.5468 | - | - |
373
- | 4.0 | 28 | - | 12.2789 | - | - |
374
- | 5.0 | 35 | - | 7.4563 | - | - |
375
- | 6.0 | 42 | - | 4.7709 | - | - |
376
- | 7.0 | 49 | - | 3.7263 | - | - |
377
- | 8.0 | 56 | - | 3.2799 | - | - |
378
- | 9.0 | 63 | - | 3.4937 | - | - |
379
- | 10.0 | 70 | - | 3.3956 | - | - |
380
- | 11.0 | 77 | - | 3.2518 | - | - |
381
- | 12.0 | 84 | - | 2.4912 | - | - |
382
- | 13.0 | 91 | - | 1.7859 | - | - |
383
- | 14.0 | 98 | - | 1.4185 | - | - |
384
- | 14.2857 | 100 | 9.9923 | - | - | - |
385
- | 15.0 | 105 | - | 1.4582 | - | - |
386
- | 16.0 | 112 | - | 1.4355 | - | - |
387
- | 17.0 | 119 | - | 1.2700 | - | - |
388
- | 18.0 | 126 | - | 0.9766 | - | - |
389
- | 19.0 | 133 | - | 0.9087 | - | - |
390
- | 20.0 | 140 | - | 0.8227 | - | - |
391
- | 21.0 | 147 | - | 0.7897 | - | - |
392
- | 22.0 | 154 | - | 0.6956 | - | - |
393
- | 23.0 | 161 | - | 0.7913 | - | - |
394
- | 24.0 | 168 | - | 0.7902 | - | - |
395
- | 25.0 | 175 | - | 0.7534 | - | - |
396
- | 26.0 | 182 | - | 0.6562 | - | - |
397
- | 27.0 | 189 | - | 0.5444 | - | - |
398
- | 28.0 | 196 | - | 0.4464 | - | - |
399
- | 28.5714 | 200 | 0.2576 | - | - | - |
400
- | 29.0 | 203 | - | 0.4410 | - | - |
401
- | 30.0 | 210 | - | 0.4314 | - | - |
402
- | 31.0 | 217 | - | 0.3471 | - | - |
403
- | 32.0 | 224 | - | 0.3472 | - | - |
404
- | 33.0 | 231 | - | 0.3445 | - | - |
405
- | 34.0 | 238 | - | 0.3404 | - | - |
406
- | 35.0 | 245 | - | 0.3378 | - | - |
407
- | 36.0 | 252 | - | 0.3370 | - | - |
408
- | 37.0 | 259 | - | 0.3355 | - | - |
409
- | 38.0 | 266 | - | 0.3339 | - | - |
410
- | 39.0 | 273 | - | 0.3326 | - | - |
411
- | 40.0 | 280 | - | 0.3328 | - | - |
412
- | 41.0 | 287 | - | 0.3308 | - | - |
413
- | 42.0 | 294 | - | 0.3308 | - | - |
414
- | 42.8571 | 300 | 0.1918 | - | - | - |
415
- | 43.0 | 301 | - | 0.3306 | - | - |
416
- | 44.0 | 308 | - | 0.3304 | - | - |
417
- | 45.0 | 315 | - | 0.3294 | - | - |
418
- | 46.0 | 322 | - | 0.3295 | - | - |
419
- | 47.0 | 329 | - | 0.3295 | - | - |
420
- | 48.0 | 336 | - | 0.3297 | - | - |
421
- | 49.0 | 343 | - | 0.3295 | - | - |
422
- | 50.0 | 350 | - | 0.3295 | - | - |
423
- | **1.0** | **4** | **-** | **0.191** | **-** | **-** |
424
- | 2.0 | 8 | - | 0.1209 | - | - |
425
- | 3.0 | 12 | - | 0.1106 | - | - |
426
- | 4.0 | 16 | - | 0.1035 | - | - |
427
- | 5.0 | 20 | - | 0.0995 | - | - |
428
- | 6.0 | 24 | - | 0.0955 | - | - |
429
- | 7.0 | 28 | - | 0.0587 | - | - |
430
- | 8.0 | 32 | - | 0.0574 | - | - |
431
- | 9.0 | 36 | - | 0.0 | - | - |
432
- | 10.0 | 40 | - | 0.0 | - | - |
433
- | 11.0 | 44 | - | 0.0 | - | - |
434
- | 12.0 | 48 | - | 0.0 | - | - |
435
- | 12.5 | 50 | 0.4241 | - | - | - |
436
- | 13.0 | 52 | - | 0.0 | - | - |
437
- | 14.0 | 56 | - | 0.0 | - | - |
438
- | 15.0 | 60 | - | 0.0 | - | - |
439
- | 1.0 | 7 | - | 0.0684 | - | - |
440
- | 2.0 | 14 | - | 0.0 | - | - |
441
- | 3.0 | 21 | - | 0.0 | - | - |
442
- | 4.0 | 28 | - | 0.0 | - | - |
443
-
444
- * The bold row denotes the saved checkpoint.
445
-
446
- ### Framework Versions
447
- - Python: 3.11.0rc1
448
- - Sentence Transformers: 5.0.0
449
- - Transformers: 4.53.1
450
- - PyTorch: 2.7.1+cu126
451
- - Accelerate: 1.8.1
452
- - Datasets: 3.6.0
453
- - Tokenizers: 0.21.2
454
-
455
- ## Citation
456
-
457
- ### BibTeX
458
-
459
- #### Sentence Transformers
460
- ```bibtex
461
- @inproceedings{reimers-2019-sentence-bert,
462
- title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
463
- author = "Reimers, Nils and Gurevych, Iryna",
464
- booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
465
- month = "11",
466
- year = "2019",
467
- publisher = "Association for Computational Linguistics",
468
- url = "https://arxiv.org/abs/1908.10084",
469
- }
470
- ```
471
-
472
- <!--
473
- ## Glossary
474
 
475
- *Clearly define terms in order to be accessible across audiences.*
476
- -->
 
477
 
478
- <!--
479
- ## Model Card Authors
480
 
481
- *Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
482
- -->
 
483
 
484
- <!--
485
- ## Model Card Contact
486
 
487
- *Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
488
- -->
 
 
1
  ---
2
+ license: apache-2.0
3
+ library_name: sentence-transformers
4
+ pipeline_tag: sentence-similarity
5
  tags:
6
  - sentence-transformers
 
7
  - feature-extraction
8
+ - semantic-search
9
+ - automotive-parts
10
+ - synonyms
 
 
 
11
  base_model: sentence-transformers/all-MiniLM-L6-v2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  ---
13
 
14
+ # Automotive Parts Synonym Model
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
+ A fine-tuned SentenceTransformer model specialized for finding synonyms and related terms in automotive parts and service descriptions.
 
17
 
18
+ ## Model Description
 
19
 
20
+ This model is fine-tuned from `sentence-transformers/all-MiniLM-L6-v2` specifically for automotive parts synonym detection. It can identify when different part names refer to the same or similar components.
 
21
 
22
+ **Base Model:** `sentence-transformers/all-MiniLM-L6-v2`
23
+ **Output Dimensions:** 384
24
+ **Max Sequence Length:** 256 tokens
25
 
26
+ ## Intended Use
27
 
28
+ - **Primary:** Finding synonymous automotive parts and service terms
29
+ - **Secondary:** Semantic search for automotive repair descriptions
30
+ - **Examples:**
31
+ - "Drive Motor" ↔ "gear motor"
32
+ - "install new Actuator Switch" ↔ "replace fan switch"
33
+ - "TXV Valve" ↔ "Expansion Valve"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
 
35
  ## Training Details
36
 
37
+ **Training Strategy:** 3-phase approach
38
+ 1. **Contextual Training** (30 epochs): Full phrases with synonyms/antonyms
39
+ 2. **Foundation Training** (15 epochs): Word-to-word synonyms/antonyms
40
+ 3. **Real-world Fine-tuning** (4 epochs): Search phrases and repair descriptions
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
 
42
+ **Loss Function:** OnlineContrastiveLoss with varying margins (0.6 0.4 → 0.4)
43
+ **Training Data:** Automotive parts synonym/antonym pairs with contextual repair descriptions
44
+ **LoRA:** Used for parameter-efficient fine-tuning (r=16, alpha=16)
45
 
46
+ ## Performance
 
47
 
48
+ Evaluated on STS-B and MTB datasets:
49
+ - **STS-B Spearman:** 0.867
50
+ - **MTB Spearman:** 0.724
51
 
52
+ ## Limitations
 
53
 
54
+ - Optimized specifically for automotive parts and repair terminology
55
+ - May not perform well on general-domain text
56
+ - Best results on short phrases (3-10 tokens) typical of part names