File size: 36,321 Bytes
6cbf52b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6095780
6cbf52b
 
 
 
 
 
 
 
 
6095780
6cbf52b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6095780
6cbf52b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6095780
6cbf52b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6095780
 
 
 
 
 
 
 
6cbf52b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
---
tags:
- sentence-transformers
- sentence-similarity
- feature-extraction
- dense
- generated_from_trainer
- dataset_size:2609
- loss:MultipleNegativesRankingLoss
base_model: google/embeddinggemma-300m
widget:
- source_sentence: 'query: Kalau si koruptor ternyata udah nggak punya harta lagi
    buat bayar uang pengganti, apa konsekuensinya?'
  sentences:
  - 'passage: Hukumnya adalah tindak pidana yang diancam dengan pidana penjara paling
    lama 4 tahun atau pidana denda paling banyak kategori IV karena menggunakan ancaman
    kekerasan. (Pasal 302 KUHP)'
  - 'passage: Kalau harta bendanya tidak mencukupi, terpidana bisa dipidana penjara
    yang lamanya tidak melebihi ancaman maksimum pidana pokoknya dan sudah ditentukan
    langsung di dalam putusan pengadilan.'
  - 'passage: Penyitaan dan pelelangan harta bila uang pengganti tidak dibayar.'
- source_sentence: 'query: Apa artinya menimbulkan persangkaan palsu dalam KUHP?'
  sentences:
  - 'passage: Ya, karena pejabat yang melebihi kewenangannya atau tanpa memperhatikan
    tata cara yang ditetapkan undang-undang memaksa masuk ke rumah atau ruangan tertutup
    milik orang lain, dan tidak segera pergi setelah ditegur oleh pihak yang berhak,
    dapat dijerat pidana penjara paling lama 1 tahun 6 bulan. (Pasal 535 KUHP)'
  - 'passage: Pengaduan fitnah adalah mengajukan pengaduan atau pemberitahuan palsu
    secara tertulis kepada pejabat yang berwenang sehingga kehormatan orang lain diserang.
    (Pasal 437 ayat (1) KUHP)'
  - 'passage: Menimbulkan persangkaan palsu adalah melakukan suatu perbuatan yang
    menyebabkan orang lain disangka telah melakukan suatu tindak pidana, padahal sebenarnya
    tidak. (Pasal 438 KUHP)'
- source_sentence: 'query: Kapan suatu penipuan bisa disebut sebagai penipuan ringan?'
  sentences:
  - 'passage: Penipuan disebut ringan jika barang yang diserahkan bukan ternak atau
    sumber mata pencaharian dan nilainya tidak lebih dari satu juta rupiah, atau jika
    nilai keuntungan yang diperoleh pelaku tidak lebih dari satu juta rupiah. (Pasal
    494 KUHP)'
  - 'passage: Penipuan oleh penjual tidak memandang nilai kerugian atau keuntungan
    sebagai dasar penggolongan ringan, melainkan fokus pada tindakan menyerahkan barang
    lain atau berbohong soal sifat barang. (Pasal 493 KUHP)'
  - 'passage: Pasal 111: Setiap orang yang tanpa hak menanam, memelihara, memiliki,
    menyimpan, menguasai, atau menyediakan Narkotika Golongan I dalam bentuk tanaman
    dipidana penjara 4-12 tahun dan denda Rp800 juta-Rp8 miliar. Jika beratnya melebihi
    1 kg atau 5 pohon, ancamannya penjara seumur hidup atau 5-20 tahun dengan denda
    ditambah sepertiga.'
- source_sentence: 'query: Tetangga saya kedapatan menanam ganja di kebun belakang
    rumahnya sebanyak 6 pohon. Bisa nggak dia dilaporkan dan dipidana?'
  sentences:
  - 'passage: Pasal 113: Setiap orang yang tanpa hak memproduksi, mengimpor, mengekspor,
    atau menyalurkan Narkotika Golongan I dipidana penjara 5-15 tahun dan denda Rp1-10
    miliar. Jika beratnya melebihi 1 kg tanaman atau 5 gram bukan tanaman, ancamannya
    pidana mati, seumur hidup, atau 5-20 tahun dengan denda ditambah sepertiga.'
  - 'passage: Pasal 478: Jika Tindak Pidana sebagaimana dimaksud dalam Pasal 476 dan
    Pasal 477 ayat (1) huruf f dan huruf g dilakukan tidak dalam sebuah rumah atau
    pekarangan tertutup yang ada rumahnya, dan harga Barang yang dicurinya tidak lebih
    dari Rp500.000,00 (lima ratus ribu rupiah), dipidana karena pencurian ringan,
    dengan pidana denda paling banyak kategori II. Pasal ini berlaku karena Arif Budiman
    mengambil barang milik orang lain senilai Rp200.000,00 (di bawah ambang batas
    Rp500.000,00) di lokasi yang bukan merupakan rumah atau pekarangan tertutup, sehingga
    perbuatannya memenuhi kualifikasi pencurian ringan yang hanya diancam pidana denda
    paling banyak kategori II.'
  - 'passage: Pasal 111: Setiap orang yang tanpa hak menanam, memelihara, memiliki,
    menyimpan, menguasai, atau menyediakan Narkotika Golongan I dalam bentuk tanaman
    dipidana penjara 4-12 tahun dan denda Rp800 juta-Rp8 miliar. Jika beratnya melebihi
    1 kg atau 5 pohon, ancamannya penjara seumur hidup atau 5-20 tahun dengan denda
    ditambah sepertiga.'
- source_sentence: 'query: Apa syarat bagi dokter untuk bisa menyerahkan narkotika
    kepada pasien?'
  sentences:
  - 'passage: Pasal 53: Untuk kepentingan pengobatan dan berdasarkan indikasi medis,
    dokter dapat memberikan Narkotika Golongan II atau Golongan III dalam jumlah terbatas
    dan sediaan tertentu kepada pasien.'
  - 'passage: Pasal 448: (1) Dipidana dengan pidana penjara paling lama 1 (satu) tahun
    atau pidana denda paling banyak kategori II, Setiap Orang yang: a. secara melawan
    hukum memaksa orang lain supaya melakukan, tidak melakukan, atau membiarkan sesuatu,
    dengan Kekerasan atau Ancaman Kekerasan, baik terhadap orang itu sendiri maupun
    orang lain; atau b. memaksa orang lain supaya melakukan, tidak melakukan, atau
    membiarkan sesuatu dengan ancaman pencemaran atau pencemaran tertulis. (2) Tindak
    Pidana sebagaimana dimaksud pada ayat (1) huruf b hanya dapat dituntut atas pengaduan
    dari Korban Tindak Pidana. Pasal ini berlaku karena Bram Sulistyo memaksa Andi
    Firmansyah untuk melakukan sesuatu (mencabut laporan ketenagakerjaan) dengan ancaman
    pencemaran nama baik (ancaman membocorkan aib pribadi), yang memenuhi unsur tindak
    pidana dalam Pasal 448 ayat (1) huruf b KUHP 2023. Karena menggunakan ancaman
    pencemaran, tindak pidana ini merupakan delik aduan sebagaimana Pasal 448 ayat
    (2)'
  - 'passage: Pasal 43: Penyerahan Narkotika oleh dokter hanya dapat dilaksanakan
    untuk menjalankan praktik dokter dengan memberikan Narkotika melalui suntikan,
    menolong orang sakit dalam keadaan darurat dengan memberikan Narkotika melalui
    suntikan, atau menjalankan tugas di daerah terpencil yang tidak ada apotek.'
pipeline_tag: sentence-similarity
library_name: sentence-transformers
metrics:
- cosine_accuracy
model-index:
- name: SentenceTransformer based on google/embeddinggemma-300m
  results:
  - task:
      type: triplet
      name: Triplet
    dataset:
      name: val
      type: val
    metrics:
    - type: cosine_accuracy
      value: 0.9465753436088562
      name: Cosine Accuracy
  - task:
      type: triplet
      name: Triplet
    dataset:
      name: test
      type: test
    metrics:
    - type: cosine_accuracy
      value: 0.9357045292854309
      name: Cosine Accuracy
---

# SentenceTransformer based on google/embeddinggemma-300m

This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [google/embeddinggemma-300m](https://huggingface.co/google/embeddinggemma-300m). It maps sentences & paragraphs to a 768-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:** [google/embeddinggemma-300m](https://huggingface.co/google/embeddinggemma-300m) <!-- at revision 57c266a740f537b4dc058e1b0cda161fd15afa75 -->
- **Maximum Sequence Length:** 2048 tokens
- **Output Dimensionality:** 768 dimensions
- **Similarity Function:** Cosine Similarity
<!-- - **Training Dataset:** Unknown -->
<!-- - **Language:** Unknown -->
<!-- - **License:** Unknown -->

### Model Sources

- **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
- **Repository:** [Sentence Transformers on GitHub](https://github.com/huggingface/sentence-transformers)
- **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)

### Full Model Architecture

```
SentenceTransformer(
  (0): Transformer({'max_seq_length': 2048, 'do_lower_case': False, 'architecture': 'Gemma3TextModel'})
  (1): Pooling({'word_embedding_dimension': 768, '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})
  (2): Dense({'in_features': 768, 'out_features': 3072, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
  (3): Dense({'in_features': 3072, 'out_features': 768, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
  (4): Normalize()
)
```

## Usage

### Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

```bash
pip install -U sentence-transformers
```

Then you can load this model and run inference.
```python
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("TextModel/Gemma-Crime-Indo")
# Run inference
queries = [
    "query: Apa syarat bagi dokter untuk bisa menyerahkan narkotika kepada pasien?",
]
documents = [
    'passage: Pasal 43: Penyerahan Narkotika oleh dokter hanya dapat dilaksanakan untuk menjalankan praktik dokter dengan memberikan Narkotika melalui suntikan, menolong orang sakit dalam keadaan darurat dengan memberikan Narkotika melalui suntikan, atau menjalankan tugas di daerah terpencil yang tidak ada apotek.',
    'passage: Pasal 53: Untuk kepentingan pengobatan dan berdasarkan indikasi medis, dokter dapat memberikan Narkotika Golongan II atau Golongan III dalam jumlah terbatas dan sediaan tertentu kepada pasien.',
    'passage: Pasal 448: (1) Dipidana dengan pidana penjara paling lama 1 (satu) tahun atau pidana denda paling banyak kategori II, Setiap Orang yang: a. secara melawan hukum memaksa orang lain supaya melakukan, tidak melakukan, atau membiarkan sesuatu, dengan Kekerasan atau Ancaman Kekerasan, baik terhadap orang itu sendiri maupun orang lain; atau b. memaksa orang lain supaya melakukan, tidak melakukan, atau membiarkan sesuatu dengan ancaman pencemaran atau pencemaran tertulis. (2) Tindak Pidana sebagaimana dimaksud pada ayat (1) huruf b hanya dapat dituntut atas pengaduan dari Korban Tindak Pidana. Pasal ini berlaku karena Bram Sulistyo memaksa Andi Firmansyah untuk melakukan sesuatu (mencabut laporan ketenagakerjaan) dengan ancaman pencemaran nama baik (ancaman membocorkan aib pribadi), yang memenuhi unsur tindak pidana dalam Pasal 448 ayat (1) huruf b KUHP 2023. Karena menggunakan ancaman pencemaran, tindak pidana ini merupakan delik aduan sebagaimana Pasal 448 ayat (2)',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 768] [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[0.7065, 0.5494, 0.1299]])
```

<!--
### Direct Usage (Transformers)

<details><summary>Click to see the direct usage in Transformers</summary>

</details>
-->

<!--
### Downstream Usage (Sentence Transformers)

You can finetune this model on your own dataset.

<details><summary>Click to expand</summary>

</details>
-->

<!--
### Out-of-Scope Use

*List how the model may foreseeably be misused and address what users ought not to do with the model.*
-->

## Evaluation

### Metrics

#### Triplet

* Datasets: `val` and `test`
* Evaluated with [<code>TripletEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.TripletEvaluator)

| Metric              | val        | test       |
|:--------------------|:-----------|:-----------|
| **cosine_accuracy** | **0.9466** | **0.9357** |

<!--
## Bias, Risks and Limitations

*What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
-->

<!--
### Recommendations

*What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
-->

## Training Details

### Training Dataset

#### Unnamed Dataset

* Size: 2,609 training samples
* Columns: <code>anchor</code>, <code>positive</code>, and <code>negative</code>
* Approximate statistics based on the first 1000 samples:
  |         | anchor                                                                            | positive                                                                           | negative                                                                            |
  |:--------|:----------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|
  | type    | string                                                                            | string                                                                             | string                                                                              |
  | details | <ul><li>min: 16 tokens</li><li>mean: 28.3 tokens</li><li>max: 65 tokens</li></ul> | <ul><li>min: 25 tokens</li><li>mean: 62.4 tokens</li><li>max: 131 tokens</li></ul> | <ul><li>min: 20 tokens</li><li>mean: 52.37 tokens</li><li>max: 121 tokens</li></ul> |
* Samples:
  | anchor                                                                                                                                                                                                                                                                      | positive                                                                                                                                                                                                                                                                                                          | negative                                                                                                                                                                                                                                                                                                                                                       |
  |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | <code>query: Kalo mau lapor ke polisi soal pencemaran nama baik, apa emang harus nunggu korban datang lapor sendiri atau polisi bisa langsung tangkap pelakunya?</code>                                                                                                     | <code>passage: Pasal 24 KUHP: Dalam hal tertentu, pelaku Tindak Pidana hanya dapat dituntut atas dasar pengaduan. Tindak Pidana aduan harus ditentukan secara tegas dalam Undang-Undang.</code>                                                                                                                   | <code>passage: Pasal 28 KUHP: Pengaduan dilakukan dengan cara menyampaikan pemberitahuan dan permohonan untuk dituntut. Pengaduan sebagaimana dimaksud diajukan secara lisan atau tertulis kepada Pejabat yang berwenang.</code>                                                                                                                               |
  | <code>query: Anak saya yang masih 14 tahun kena aniaya sama tetangga, saya sebagai bapaknya yang lapor polisi. Tapi ternyata Anak saya yang masih 14 tahun kena aniaya, saya sebagai bapaknya yang mau lapor polisi. Apakah saya berhak melapor mewakili anak saya??</code> | <code>passage: Pasal 25 KUHP: Dalam hal Korban Tindak Pidana aduan belum berumur 16 tahun, yang berhak mengadu merupakan Orang Tua atau walinya. Dalam hal Orang Tua atau wali tidak ada atau Orang Tua/wali itu sendiri yang harus diadukan, pengaduan dilakukan oleh keluarga sedarah dalam garis lurus.</code> | <code>passage: Pasal 26 KUHP: Dalam hal Korban Tindak Pidana aduan berada di bawah pengampuan, yang berhak mengadu merupakan pengampunya, kecuali bagi Korban yang berada dalam pengampuan karena boros. Jika pengampu tidak ada atau pengampu itu sendiri yang harus diadukan, pengaduan dilakukan oleh suami/istri atau keluarga sedarah.</code>             |
  | <code>query: Saya kemarin udah lapor polisi soal kejadian yang menimpa saya, tapi sekarang saya udah maafin pelakunya dan mau cabut laporan. Apa yang bakal terjadi sama perkara ini?</code>                                                                                | <code>passage: Pasal 30 KUHP: Pengaduan dapat ditarik kembali oleh pengadu dalam waktu 3 Bulan terhitung sejak tanggal pengaduan diajukan. Pengaduan yang ditarik kembali tidak dapat diajukan lagi.</code>                                                                                                       | <code>passage: Pasal 29 KUHP: Pengaduan harus diajukan dalam tenggang waktu 6 Bulan terhitung sejak tanggal orang yang berhak mengadu mengetahui adanya Tindak Pidana jika bertempat tinggal di wilayah NKRI. Jika yang berhak mengadu lebih dari 1 orang, tenggang waktu dihitung sejak tanggal masing-masing pengadu mengetahui adanya Tindak Pidana.</code> |
* Loss: [<code>MultipleNegativesRankingLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#multiplenegativesrankingloss) with these parameters:
  ```json
  {
      "scale": 20.0,
      "similarity_fct": "cos_sim",
      "gather_across_devices": false
  }
  ```

### Evaluation Dataset

#### Unnamed Dataset

* Size: 730 evaluation samples
* Columns: <code>anchor</code>, <code>positive</code>, and <code>negative</code>
* Approximate statistics based on the first 730 samples:
  |         | anchor                                                                              | positive                                                                            | negative                                                                            |
  |:--------|:------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|
  | type    | string                                                                              | string                                                                              | string                                                                              |
  | details | <ul><li>min: 11 tokens</li><li>mean: 42.05 tokens</li><li>max: 138 tokens</li></ul> | <ul><li>min: 16 tokens</li><li>mean: 81.78 tokens</li><li>max: 643 tokens</li></ul> | <ul><li>min: 12 tokens</li><li>mean: 69.84 tokens</li><li>max: 254 tokens</li></ul> |
* Samples:
  | anchor                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | positive                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | negative                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | <code>query: Bisa nggak orang yang tinggal di luar negeri ikut kena jerat hukum karena dia bantu-bantu kasus korupsi yang terjadi di Indonesia?</code>                                                                                                                                                                                                                                                                                                                                                             | <code>passage: Bisa, orang di luar wilayah Indonesia yang memberikan bantuan, sarana, atau keterangan agar terjadi korupsi akan dipidana sama seperti pelaku utamanya.</code>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | <code>passage: Pasal 15: percobaan, pembantuan, atau pemufakatan jahat dipidana sama dengan delik asal</code>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | <code>query: Yoga Andrianto, seorang influencer di Bandung dengan ratusan ribu pengikut, pada tahun 2024 secara konsisten mengunggah konten video di platform media sosial yang berisi penghinaan terhadap DPR RI sebagai lembaga negara. Konten tersebut dibuat dengan maksud agar isi penghinaan diketahui oleh khalayak umum secara luas. Akibat viralnya konten tersebut, terjadi aksi demonstrasi yang berujung pada kerusuhan di beberapa kota. Pasal apa yang tepat dikenakan kepada Yoga Andrianto?</code> | <code>passage: Pasal 241: (1) Setiap Orang yang menyiarkan, mempertunjukkan, atau menempelkan tulisan atau gambar sehingga terlihat oleh umum, memperdengarkan rekaman sehingga terdengar oleh umum, atau menyebarluaskan dengan sarana teknologi informasi yang berisi penghinaan terhadap pemerintah atau lembaga negara, dengan maksud agar isi penghinaan diketahui umum, dipidana dengan pidana penjara paling lama 3 (tiga) tahun atau pidana denda paling banyak kategori IV. (2) Dalam hal Tindak Pidana sebagaimana dimaksud pada ayat (1) berakibat terjadinya kerusuhan dalam masyarakat, dipidana dengan pidana penjara paling lama 4 (empat) tahun atau pidana denda paling banyak kategori V.. Pasal ini berlaku karena Yoga Andrianto menyebarluaskan melalui sarana teknologi informasi konten berisi penghinaan terhadap DPR RI sebagai lembaga negara dengan maksud agar isi penghinaan diketahui umum, memenuhi unsur Pasal 241 ayat (1). Karena perbuatannya berakibat terjadinya kerusuhan dalam masyarakat, ancaman pida...</code> | <code>passage: Pasal 300: Setiap Orang Di Muka Umum yang: a. melakukan perbuatan yang bersifat permusuhan; b. menyatakan kebencian atau permusuhan; atau c. menghasut untuk melakukan Kekerasan, atau diskriminasi, terhadap agama, kepercayaan orang lain, golongan, atau kelompok atas dasar agama atau kepercayaan di Indonesia, dipidana dengan pidana penjara paling lama 3 (tiga) tahun atau pidana denda paling banyak kategori IV.. Pasal ini mengatur pernyataan kebencian atau hasutan terhadap kelompok atas dasar agama, bukan penghinaan terhadap pemerintah atau lembaga negara..</code> |
  | <code>query: Apa perbedaan hukuman bagi pembantu aborsi jika perbuatannya mengakibatkan kematian, antara yang izin sama yang tidak izin?</code>                                                                                                                                                                                                                                                                                                                                                                    | <code>passage: Jika mengakibatkan kematian, aborsi dengan persetujuan diancam penjara paling lama 8 tahun, sedangkan aborsi tanpa persetujuan diancam penjara paling lama 15 tahun. (Pasal 464 ayat (2) dan (3) KUHP)</code>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | <code>passage: Jika mengakibatkan kematian, pembunuhan biasa yang dilakukan oleh seseorang dengan sengaja merampas nyawa orang lain diancam penjara paling lama 15 tahun. (Pasal 458 ayat (1) KUHP)</code>                                                                                                                                                                                                                                                                                                                                                                                             |
* Loss: [<code>MultipleNegativesRankingLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#multiplenegativesrankingloss) with these parameters:
  ```json
  {
      "scale": 20.0,
      "similarity_fct": "cos_sim",
      "gather_across_devices": false
  }
  ```

### Training Hyperparameters
#### Non-Default Hyperparameters

- `eval_strategy`: epoch
- `per_device_train_batch_size`: 4
- `per_device_eval_batch_size`: 4
- `gradient_accumulation_steps`: 4
- `learning_rate`: 1e-05
- `weight_decay`: 0.01
- `num_train_epochs`: 4
- `warmup_ratio`: 0.3
- `warmup_steps`: 0.3
- `fp16`: True
- `load_best_model_at_end`: True
- `dataloader_pin_memory`: False
- `gradient_checkpointing`: True
- `batch_sampler`: no_duplicates

#### All Hyperparameters
<details><summary>Click to expand</summary>

- `do_predict`: False
- `eval_strategy`: epoch
- `prediction_loss_only`: True
- `per_device_train_batch_size`: 4
- `per_device_eval_batch_size`: 4
- `gradient_accumulation_steps`: 4
- `eval_accumulation_steps`: None
- `torch_empty_cache_steps`: None
- `learning_rate`: 1e-05
- `weight_decay`: 0.01
- `adam_beta1`: 0.9
- `adam_beta2`: 0.999
- `adam_epsilon`: 1e-08
- `max_grad_norm`: 1.0
- `num_train_epochs`: 4
- `max_steps`: -1
- `lr_scheduler_type`: linear
- `lr_scheduler_kwargs`: None
- `warmup_ratio`: 0.3
- `warmup_steps`: 0.3
- `log_level`: passive
- `log_level_replica`: warning
- `log_on_each_node`: True
- `logging_nan_inf_filter`: True
- `enable_jit_checkpoint`: False
- `save_on_each_node`: False
- `save_only_model`: False
- `restore_callback_states_from_checkpoint`: False
- `use_cpu`: False
- `seed`: 42
- `data_seed`: None
- `bf16`: False
- `fp16`: True
- `bf16_full_eval`: False
- `fp16_full_eval`: False
- `tf32`: None
- `local_rank`: -1
- `ddp_backend`: None
- `debug`: []
- `dataloader_drop_last`: False
- `dataloader_num_workers`: 0
- `dataloader_prefetch_factor`: None
- `disable_tqdm`: False
- `remove_unused_columns`: True
- `label_names`: None
- `load_best_model_at_end`: True
- `ignore_data_skip`: False
- `fsdp`: []
- `fsdp_config`: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
- `accelerator_config`: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
- `parallelism_config`: None
- `deepspeed`: None
- `label_smoothing_factor`: 0.0
- `optim`: adamw_torch_fused
- `optim_args`: None
- `group_by_length`: False
- `length_column_name`: length
- `project`: huggingface
- `trackio_space_id`: trackio
- `ddp_find_unused_parameters`: None
- `ddp_bucket_cap_mb`: None
- `ddp_broadcast_buffers`: False
- `dataloader_pin_memory`: False
- `dataloader_persistent_workers`: False
- `skip_memory_metrics`: True
- `push_to_hub`: False
- `resume_from_checkpoint`: None
- `hub_model_id`: None
- `hub_strategy`: every_save
- `hub_private_repo`: None
- `hub_always_push`: False
- `hub_revision`: None
- `gradient_checkpointing`: True
- `gradient_checkpointing_kwargs`: None
- `include_for_metrics`: []
- `eval_do_concat_batches`: True
- `auto_find_batch_size`: False
- `full_determinism`: False
- `ddp_timeout`: 1800
- `torch_compile`: False
- `torch_compile_backend`: None
- `torch_compile_mode`: None
- `include_num_input_tokens_seen`: no
- `neftune_noise_alpha`: None
- `optim_target_modules`: None
- `batch_eval_metrics`: False
- `eval_on_start`: False
- `use_liger_kernel`: False
- `liger_kernel_config`: None
- `eval_use_gather_object`: False
- `average_tokens_across_devices`: True
- `use_cache`: False
- `prompts`: None
- `batch_sampler`: no_duplicates
- `multi_dataset_batch_sampler`: proportional
- `router_mapping`: {}
- `learning_rate_mapping`: {}

</details>

### Training Logs
| Epoch   | Step    | Training Loss | Validation Loss | val_cosine_accuracy | test_cosine_accuracy |
|:-------:|:-------:|:-------------:|:---------------:|:-------------------:|:--------------------:|
| -1      | -1      | -             | -               | 0.9192              | 0.9097               |
| 1.0     | 82      | 0.2979        | 0.2212          | 0.9438              | -                    |
| **2.0** | **164** | **0.1132**    | **0.2597**      | **0.9466**          | **-**                |
| 3.0     | 246     | 0.0371        | 0.2365          | 0.9411              | -                    |
| 4.0     | 328     | 0.0233        | 0.2106          | 0.9411              | -                    |
| -1      | -1      | -             | -               | 0.9466              | 0.9357               |

* The bold row denotes the saved checkpoint.

### Framework Versions
- Python: 3.12.12
- Sentence Transformers: 5.2.3
- Transformers: 5.0.0
- PyTorch: 2.10.0+cu128
- Accelerate: 1.12.0
- Datasets: 4.8.3
- Tokenizers: 0.22.2

## Citation

### BibTeX

#### Sentence Transformers
```bibtex
@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",
}
```

#### MultipleNegativesRankingLoss
```bibtex
@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}
}
```

<!--
## Glossary

*Clearly define terms in order to be accessible across audiences.*
-->

<!--
## Model Card Authors

*Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
-->

<!--
## Model Card Contact

*Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
-->