TextModel commited on
Commit
6cbf52b
·
verified ·
1 Parent(s): eb4ba38

Add new SentenceTransformer model

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
1_Pooling/config.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "word_embedding_dimension": 768,
3
+ "pooling_mode_cls_token": false,
4
+ "pooling_mode_mean_tokens": true,
5
+ "pooling_mode_max_tokens": false,
6
+ "pooling_mode_mean_sqrt_len_tokens": false,
7
+ "pooling_mode_weightedmean_tokens": false,
8
+ "pooling_mode_lasttoken": false,
9
+ "include_prompt": true
10
+ }
2_Dense/config.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "in_features": 768,
3
+ "out_features": 3072,
4
+ "bias": false,
5
+ "activation_function": "torch.nn.modules.linear.Identity"
6
+ }
2_Dense/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:daaf4704057b68f49b287cd4b18d847bb4c70f10f88d8c39b1db9577ab0e0730
3
+ size 9437272
3_Dense/config.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "in_features": 3072,
3
+ "out_features": 768,
4
+ "bias": false,
5
+ "activation_function": "torch.nn.modules.linear.Identity"
6
+ }
3_Dense/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9acabe76e2b4b50789feae81f6ad351e001c9f90766a4799c08436d8800e9d66
3
+ size 9437272
README.md ADDED
@@ -0,0 +1,481 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tags:
3
+ - sentence-transformers
4
+ - sentence-similarity
5
+ - feature-extraction
6
+ - dense
7
+ - generated_from_trainer
8
+ - dataset_size:2609
9
+ - loss:MultipleNegativesRankingLoss
10
+ base_model: google/embeddinggemma-300m
11
+ widget:
12
+ - source_sentence: 'query: Kalau si koruptor ternyata udah nggak punya harta lagi
13
+ buat bayar uang pengganti, apa konsekuensinya?'
14
+ sentences:
15
+ - 'passage: Hukumnya adalah tindak pidana yang diancam dengan pidana penjara paling
16
+ lama 4 tahun atau pidana denda paling banyak kategori IV karena menggunakan ancaman
17
+ kekerasan. (Pasal 302 KUHP)'
18
+ - 'passage: Kalau harta bendanya tidak mencukupi, terpidana bisa dipidana penjara
19
+ yang lamanya tidak melebihi ancaman maksimum pidana pokoknya dan sudah ditentukan
20
+ langsung di dalam putusan pengadilan.'
21
+ - 'passage: Penyitaan dan pelelangan harta bila uang pengganti tidak dibayar.'
22
+ - source_sentence: 'query: Apa artinya menimbulkan persangkaan palsu dalam KUHP?'
23
+ sentences:
24
+ - 'passage: Ya, karena pejabat yang melebihi kewenangannya atau tanpa memperhatikan
25
+ tata cara yang ditetapkan undang-undang memaksa masuk ke rumah atau ruangan tertutup
26
+ milik orang lain, dan tidak segera pergi setelah ditegur oleh pihak yang berhak,
27
+ dapat dijerat pidana penjara paling lama 1 tahun 6 bulan. (Pasal 535 KUHP)'
28
+ - 'passage: Pengaduan fitnah adalah mengajukan pengaduan atau pemberitahuan palsu
29
+ secara tertulis kepada pejabat yang berwenang sehingga kehormatan orang lain diserang.
30
+ (Pasal 437 ayat (1) KUHP)'
31
+ - 'passage: Menimbulkan persangkaan palsu adalah melakukan suatu perbuatan yang
32
+ menyebabkan orang lain disangka telah melakukan suatu tindak pidana, padahal sebenarnya
33
+ tidak. (Pasal 438 KUHP)'
34
+ - source_sentence: 'query: Kapan suatu penipuan bisa disebut sebagai penipuan ringan?'
35
+ sentences:
36
+ - 'passage: Penipuan disebut ringan jika barang yang diserahkan bukan ternak atau
37
+ sumber mata pencaharian dan nilainya tidak lebih dari satu juta rupiah, atau jika
38
+ nilai keuntungan yang diperoleh pelaku tidak lebih dari satu juta rupiah. (Pasal
39
+ 494 KUHP)'
40
+ - 'passage: Penipuan oleh penjual tidak memandang nilai kerugian atau keuntungan
41
+ sebagai dasar penggolongan ringan, melainkan fokus pada tindakan menyerahkan barang
42
+ lain atau berbohong soal sifat barang. (Pasal 493 KUHP)'
43
+ - 'passage: Pasal 111: Setiap orang yang tanpa hak menanam, memelihara, memiliki,
44
+ menyimpan, menguasai, atau menyediakan Narkotika Golongan I dalam bentuk tanaman
45
+ dipidana penjara 4-12 tahun dan denda Rp800 juta-Rp8 miliar. Jika beratnya melebihi
46
+ 1 kg atau 5 pohon, ancamannya penjara seumur hidup atau 5-20 tahun dengan denda
47
+ ditambah sepertiga.'
48
+ - source_sentence: 'query: Tetangga saya kedapatan menanam ganja di kebun belakang
49
+ rumahnya sebanyak 6 pohon. Bisa nggak dia dilaporkan dan dipidana?'
50
+ sentences:
51
+ - 'passage: Pasal 113: Setiap orang yang tanpa hak memproduksi, mengimpor, mengekspor,
52
+ atau menyalurkan Narkotika Golongan I dipidana penjara 5-15 tahun dan denda Rp1-10
53
+ miliar. Jika beratnya melebihi 1 kg tanaman atau 5 gram bukan tanaman, ancamannya
54
+ pidana mati, seumur hidup, atau 5-20 tahun dengan denda ditambah sepertiga.'
55
+ - 'passage: Pasal 478: Jika Tindak Pidana sebagaimana dimaksud dalam Pasal 476 dan
56
+ Pasal 477 ayat (1) huruf f dan huruf g dilakukan tidak dalam sebuah rumah atau
57
+ pekarangan tertutup yang ada rumahnya, dan harga Barang yang dicurinya tidak lebih
58
+ dari Rp500.000,00 (lima ratus ribu rupiah), dipidana karena pencurian ringan,
59
+ dengan pidana denda paling banyak kategori II. Pasal ini berlaku karena Arif Budiman
60
+ mengambil barang milik orang lain senilai Rp200.000,00 (di bawah ambang batas
61
+ Rp500.000,00) di lokasi yang bukan merupakan rumah atau pekarangan tertutup, sehingga
62
+ perbuatannya memenuhi kualifikasi pencurian ringan yang hanya diancam pidana denda
63
+ paling banyak kategori II.'
64
+ - 'passage: Pasal 111: Setiap orang yang tanpa hak menanam, memelihara, memiliki,
65
+ menyimpan, menguasai, atau menyediakan Narkotika Golongan I dalam bentuk tanaman
66
+ dipidana penjara 4-12 tahun dan denda Rp800 juta-Rp8 miliar. Jika beratnya melebihi
67
+ 1 kg atau 5 pohon, ancamannya penjara seumur hidup atau 5-20 tahun dengan denda
68
+ ditambah sepertiga.'
69
+ - source_sentence: 'query: Apa syarat bagi dokter untuk bisa menyerahkan narkotika
70
+ kepada pasien?'
71
+ sentences:
72
+ - 'passage: Pasal 53: Untuk kepentingan pengobatan dan berdasarkan indikasi medis,
73
+ dokter dapat memberikan Narkotika Golongan II atau Golongan III dalam jumlah terbatas
74
+ dan sediaan tertentu kepada pasien.'
75
+ - 'passage: Pasal 448: (1) Dipidana dengan pidana penjara paling lama 1 (satu) tahun
76
+ atau pidana denda paling banyak kategori II, Setiap Orang yang: a. secara melawan
77
+ hukum memaksa orang lain supaya melakukan, tidak melakukan, atau membiarkan sesuatu,
78
+ dengan Kekerasan atau Ancaman Kekerasan, baik terhadap orang itu sendiri maupun
79
+ orang lain; atau b. memaksa orang lain supaya melakukan, tidak melakukan, atau
80
+ membiarkan sesuatu dengan ancaman pencemaran atau pencemaran tertulis. (2) Tindak
81
+ Pidana sebagaimana dimaksud pada ayat (1) huruf b hanya dapat dituntut atas pengaduan
82
+ dari Korban Tindak Pidana. Pasal ini berlaku karena Bram Sulistyo memaksa Andi
83
+ Firmansyah untuk melakukan sesuatu (mencabut laporan ketenagakerjaan) dengan ancaman
84
+ pencemaran nama baik (ancaman membocorkan aib pribadi), yang memenuhi unsur tindak
85
+ pidana dalam Pasal 448 ayat (1) huruf b KUHP 2023. Karena menggunakan ancaman
86
+ pencemaran, tindak pidana ini merupakan delik aduan sebagaimana Pasal 448 ayat
87
+ (2)'
88
+ - 'passage: Pasal 43: Penyerahan Narkotika oleh dokter hanya dapat dilaksanakan
89
+ untuk menjalankan praktik dokter dengan memberikan Narkotika melalui suntikan,
90
+ menolong orang sakit dalam keadaan darurat dengan memberikan Narkotika melalui
91
+ suntikan, atau menjalankan tugas di daerah terpencil yang tidak ada apotek.'
92
+ pipeline_tag: sentence-similarity
93
+ library_name: sentence-transformers
94
+ metrics:
95
+ - cosine_accuracy
96
+ model-index:
97
+ - name: SentenceTransformer based on google/embeddinggemma-300m
98
+ results:
99
+ - task:
100
+ type: triplet
101
+ name: Triplet
102
+ dataset:
103
+ name: val
104
+ type: val
105
+ metrics:
106
+ - type: cosine_accuracy
107
+ value: 0.9479451775550842
108
+ name: Cosine Accuracy
109
+ - task:
110
+ type: triplet
111
+ name: Triplet
112
+ dataset:
113
+ name: test
114
+ type: test
115
+ metrics:
116
+ - type: cosine_accuracy
117
+ value: 0.9439124464988708
118
+ name: Cosine Accuracy
119
+ ---
120
+
121
+ # SentenceTransformer based on google/embeddinggemma-300m
122
+
123
+ 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.
124
+
125
+ ## Model Details
126
+
127
+ ### Model Description
128
+ - **Model Type:** Sentence Transformer
129
+ - **Base model:** [google/embeddinggemma-300m](https://huggingface.co/google/embeddinggemma-300m) <!-- at revision 57c266a740f537b4dc058e1b0cda161fd15afa75 -->
130
+ - **Maximum Sequence Length:** 2048 tokens
131
+ - **Output Dimensionality:** 768 dimensions
132
+ - **Similarity Function:** Cosine Similarity
133
+ <!-- - **Training Dataset:** Unknown -->
134
+ <!-- - **Language:** Unknown -->
135
+ <!-- - **License:** Unknown -->
136
+
137
+ ### Model Sources
138
+
139
+ - **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
140
+ - **Repository:** [Sentence Transformers on GitHub](https://github.com/huggingface/sentence-transformers)
141
+ - **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)
142
+
143
+ ### Full Model Architecture
144
+
145
+ ```
146
+ SentenceTransformer(
147
+ (0): Transformer({'max_seq_length': 2048, 'do_lower_case': False, 'architecture': 'Gemma3TextModel'})
148
+ (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})
149
+ (2): Dense({'in_features': 768, 'out_features': 3072, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
150
+ (3): Dense({'in_features': 3072, 'out_features': 768, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
151
+ (4): Normalize()
152
+ )
153
+ ```
154
+
155
+ ## Usage
156
+
157
+ ### Direct Usage (Sentence Transformers)
158
+
159
+ First install the Sentence Transformers library:
160
+
161
+ ```bash
162
+ pip install -U sentence-transformers
163
+ ```
164
+
165
+ Then you can load this model and run inference.
166
+ ```python
167
+ from sentence_transformers import SentenceTransformer
168
+
169
+ # Download from the 🤗 Hub
170
+ model = SentenceTransformer("TextModel/Gemma-Crime-Indo")
171
+ # Run inference
172
+ queries = [
173
+ "query: Apa syarat bagi dokter untuk bisa menyerahkan narkotika kepada pasien?",
174
+ ]
175
+ documents = [
176
+ '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.',
177
+ '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.',
178
+ '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)',
179
+ ]
180
+ query_embeddings = model.encode_query(queries)
181
+ document_embeddings = model.encode_document(documents)
182
+ print(query_embeddings.shape, document_embeddings.shape)
183
+ # [1, 768] [3, 768]
184
+
185
+ # Get the similarity scores for the embeddings
186
+ similarities = model.similarity(query_embeddings, document_embeddings)
187
+ print(similarities)
188
+ # tensor([[0.6594, 0.5887, 0.0372]])
189
+ ```
190
+
191
+ <!--
192
+ ### Direct Usage (Transformers)
193
+
194
+ <details><summary>Click to see the direct usage in Transformers</summary>
195
+
196
+ </details>
197
+ -->
198
+
199
+ <!--
200
+ ### Downstream Usage (Sentence Transformers)
201
+
202
+ You can finetune this model on your own dataset.
203
+
204
+ <details><summary>Click to expand</summary>
205
+
206
+ </details>
207
+ -->
208
+
209
+ <!--
210
+ ### Out-of-Scope Use
211
+
212
+ *List how the model may foreseeably be misused and address what users ought not to do with the model.*
213
+ -->
214
+
215
+ ## Evaluation
216
+
217
+ ### Metrics
218
+
219
+ #### Triplet
220
+
221
+ * Datasets: `val` and `test`
222
+ * Evaluated with [<code>TripletEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.TripletEvaluator)
223
+
224
+ | Metric | val | test |
225
+ |:--------------------|:-----------|:-----------|
226
+ | **cosine_accuracy** | **0.9479** | **0.9439** |
227
+
228
+ <!--
229
+ ## Bias, Risks and Limitations
230
+
231
+ *What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
232
+ -->
233
+
234
+ <!--
235
+ ### Recommendations
236
+
237
+ *What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
238
+ -->
239
+
240
+ ## Training Details
241
+
242
+ ### Training Dataset
243
+
244
+ #### Unnamed Dataset
245
+
246
+ * Size: 2,609 training samples
247
+ * Columns: <code>anchor</code>, <code>positive</code>, and <code>negative</code>
248
+ * Approximate statistics based on the first 1000 samples:
249
+ | | anchor | positive | negative |
250
+ |:--------|:----------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|
251
+ | type | string | string | string |
252
+ | 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> |
253
+ * Samples:
254
+ | anchor | positive | negative |
255
+ |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
256
+ | <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> |
257
+ | <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> |
258
+ | <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> |
259
+ * Loss: [<code>MultipleNegativesRankingLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#multiplenegativesrankingloss) with these parameters:
260
+ ```json
261
+ {
262
+ "scale": 20.0,
263
+ "similarity_fct": "cos_sim",
264
+ "gather_across_devices": false
265
+ }
266
+ ```
267
+
268
+ ### Evaluation Dataset
269
+
270
+ #### Unnamed Dataset
271
+
272
+ * Size: 730 evaluation samples
273
+ * Columns: <code>anchor</code>, <code>positive</code>, and <code>negative</code>
274
+ * Approximate statistics based on the first 730 samples:
275
+ | | anchor | positive | negative |
276
+ |:--------|:------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------|
277
+ | type | string | string | string |
278
+ | 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> |
279
+ * Samples:
280
+ | anchor | positive | negative |
281
+ |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
282
+ | <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> |
283
+ | <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> |
284
+ | <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> |
285
+ * Loss: [<code>MultipleNegativesRankingLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#multiplenegativesrankingloss) with these parameters:
286
+ ```json
287
+ {
288
+ "scale": 20.0,
289
+ "similarity_fct": "cos_sim",
290
+ "gather_across_devices": false
291
+ }
292
+ ```
293
+
294
+ ### Training Hyperparameters
295
+ #### Non-Default Hyperparameters
296
+
297
+ - `eval_strategy`: epoch
298
+ - `per_device_train_batch_size`: 4
299
+ - `per_device_eval_batch_size`: 4
300
+ - `gradient_accumulation_steps`: 4
301
+ - `learning_rate`: 1e-05
302
+ - `weight_decay`: 0.01
303
+ - `num_train_epochs`: 4
304
+ - `warmup_ratio`: 0.3
305
+ - `warmup_steps`: 0.3
306
+ - `fp16`: True
307
+ - `load_best_model_at_end`: True
308
+ - `dataloader_pin_memory`: False
309
+ - `gradient_checkpointing`: True
310
+ - `batch_sampler`: no_duplicates
311
+
312
+ #### All Hyperparameters
313
+ <details><summary>Click to expand</summary>
314
+
315
+ - `do_predict`: False
316
+ - `eval_strategy`: epoch
317
+ - `prediction_loss_only`: True
318
+ - `per_device_train_batch_size`: 4
319
+ - `per_device_eval_batch_size`: 4
320
+ - `gradient_accumulation_steps`: 4
321
+ - `eval_accumulation_steps`: None
322
+ - `torch_empty_cache_steps`: None
323
+ - `learning_rate`: 1e-05
324
+ - `weight_decay`: 0.01
325
+ - `adam_beta1`: 0.9
326
+ - `adam_beta2`: 0.999
327
+ - `adam_epsilon`: 1e-08
328
+ - `max_grad_norm`: 1.0
329
+ - `num_train_epochs`: 4
330
+ - `max_steps`: -1
331
+ - `lr_scheduler_type`: linear
332
+ - `lr_scheduler_kwargs`: None
333
+ - `warmup_ratio`: 0.3
334
+ - `warmup_steps`: 0.3
335
+ - `log_level`: passive
336
+ - `log_level_replica`: warning
337
+ - `log_on_each_node`: True
338
+ - `logging_nan_inf_filter`: True
339
+ - `enable_jit_checkpoint`: False
340
+ - `save_on_each_node`: False
341
+ - `save_only_model`: False
342
+ - `restore_callback_states_from_checkpoint`: False
343
+ - `use_cpu`: False
344
+ - `seed`: 42
345
+ - `data_seed`: None
346
+ - `bf16`: False
347
+ - `fp16`: True
348
+ - `bf16_full_eval`: False
349
+ - `fp16_full_eval`: False
350
+ - `tf32`: None
351
+ - `local_rank`: -1
352
+ - `ddp_backend`: None
353
+ - `debug`: []
354
+ - `dataloader_drop_last`: False
355
+ - `dataloader_num_workers`: 0
356
+ - `dataloader_prefetch_factor`: None
357
+ - `disable_tqdm`: False
358
+ - `remove_unused_columns`: True
359
+ - `label_names`: None
360
+ - `load_best_model_at_end`: True
361
+ - `ignore_data_skip`: False
362
+ - `fsdp`: []
363
+ - `fsdp_config`: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
364
+ - `accelerator_config`: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
365
+ - `parallelism_config`: None
366
+ - `deepspeed`: None
367
+ - `label_smoothing_factor`: 0.0
368
+ - `optim`: adamw_torch_fused
369
+ - `optim_args`: None
370
+ - `group_by_length`: False
371
+ - `length_column_name`: length
372
+ - `project`: huggingface
373
+ - `trackio_space_id`: trackio
374
+ - `ddp_find_unused_parameters`: None
375
+ - `ddp_bucket_cap_mb`: None
376
+ - `ddp_broadcast_buffers`: False
377
+ - `dataloader_pin_memory`: False
378
+ - `dataloader_persistent_workers`: False
379
+ - `skip_memory_metrics`: True
380
+ - `push_to_hub`: False
381
+ - `resume_from_checkpoint`: None
382
+ - `hub_model_id`: None
383
+ - `hub_strategy`: every_save
384
+ - `hub_private_repo`: None
385
+ - `hub_always_push`: False
386
+ - `hub_revision`: None
387
+ - `gradient_checkpointing`: True
388
+ - `gradient_checkpointing_kwargs`: None
389
+ - `include_for_metrics`: []
390
+ - `eval_do_concat_batches`: True
391
+ - `auto_find_batch_size`: False
392
+ - `full_determinism`: False
393
+ - `ddp_timeout`: 1800
394
+ - `torch_compile`: False
395
+ - `torch_compile_backend`: None
396
+ - `torch_compile_mode`: None
397
+ - `include_num_input_tokens_seen`: no
398
+ - `neftune_noise_alpha`: None
399
+ - `optim_target_modules`: None
400
+ - `batch_eval_metrics`: False
401
+ - `eval_on_start`: False
402
+ - `use_liger_kernel`: False
403
+ - `liger_kernel_config`: None
404
+ - `eval_use_gather_object`: False
405
+ - `average_tokens_across_devices`: True
406
+ - `use_cache`: False
407
+ - `prompts`: None
408
+ - `batch_sampler`: no_duplicates
409
+ - `multi_dataset_batch_sampler`: proportional
410
+ - `router_mapping`: {}
411
+ - `learning_rate_mapping`: {}
412
+
413
+ </details>
414
+
415
+ ### Training Logs
416
+ | Epoch | Step | Training Loss | Validation Loss | val_cosine_accuracy | test_cosine_accuracy |
417
+ |:-------:|:------:|:-------------:|:---------------:|:-------------------:|:--------------------:|
418
+ | -1 | -1 | - | - | 0.9192 | 0.9097 |
419
+ | **1.0** | **82** | **0.3002** | **0.1993** | **0.9479** | **-** |
420
+ | 2.0 | 164 | 0.1061 | 0.2260 | 0.9452 | - |
421
+ | 3.0 | 246 | 0.0421 | 0.2254 | 0.9452 | - |
422
+ | 4.0 | 328 | 0.0189 | 0.2207 | 0.9425 | - |
423
+ | -1 | -1 | - | - | 0.9479 | 0.9439 |
424
+
425
+ * The bold row denotes the saved checkpoint.
426
+
427
+ ### Framework Versions
428
+ - Python: 3.12.12
429
+ - Sentence Transformers: 5.2.3
430
+ - Transformers: 5.0.0
431
+ - PyTorch: 2.10.0+cu128
432
+ - Accelerate: 1.12.0
433
+ - Datasets: 4.8.3
434
+ - Tokenizers: 0.22.2
435
+
436
+ ## Citation
437
+
438
+ ### BibTeX
439
+
440
+ #### Sentence Transformers
441
+ ```bibtex
442
+ @inproceedings{reimers-2019-sentence-bert,
443
+ title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
444
+ author = "Reimers, Nils and Gurevych, Iryna",
445
+ booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
446
+ month = "11",
447
+ year = "2019",
448
+ publisher = "Association for Computational Linguistics",
449
+ url = "https://arxiv.org/abs/1908.10084",
450
+ }
451
+ ```
452
+
453
+ #### MultipleNegativesRankingLoss
454
+ ```bibtex
455
+ @misc{henderson2017efficient,
456
+ title={Efficient Natural Language Response Suggestion for Smart Reply},
457
+ 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},
458
+ year={2017},
459
+ eprint={1705.00652},
460
+ archivePrefix={arXiv},
461
+ primaryClass={cs.CL}
462
+ }
463
+ ```
464
+
465
+ <!--
466
+ ## Glossary
467
+
468
+ *Clearly define terms in order to be accessible across audiences.*
469
+ -->
470
+
471
+ <!--
472
+ ## Model Card Authors
473
+
474
+ *Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
475
+ -->
476
+
477
+ <!--
478
+ ## Model Card Contact
479
+
480
+ *Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
481
+ -->
config.json ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_sliding_window_pattern": 6,
3
+ "architectures": [
4
+ "Gemma3TextModel"
5
+ ],
6
+ "attention_bias": false,
7
+ "attention_dropout": 0.0,
8
+ "attn_logit_softcapping": null,
9
+ "bos_token_id": 2,
10
+ "dtype": "float32",
11
+ "eos_token_id": 1,
12
+ "final_logit_softcapping": null,
13
+ "head_dim": 256,
14
+ "hidden_activation": "gelu_pytorch_tanh",
15
+ "hidden_size": 768,
16
+ "initializer_range": 0.02,
17
+ "intermediate_size": 1152,
18
+ "layer_types": [
19
+ "sliding_attention",
20
+ "sliding_attention",
21
+ "sliding_attention",
22
+ "sliding_attention",
23
+ "sliding_attention",
24
+ "full_attention",
25
+ "sliding_attention",
26
+ "sliding_attention",
27
+ "sliding_attention",
28
+ "sliding_attention",
29
+ "sliding_attention",
30
+ "full_attention",
31
+ "sliding_attention",
32
+ "sliding_attention",
33
+ "sliding_attention",
34
+ "sliding_attention",
35
+ "sliding_attention",
36
+ "full_attention",
37
+ "sliding_attention",
38
+ "sliding_attention",
39
+ "sliding_attention",
40
+ "sliding_attention",
41
+ "sliding_attention",
42
+ "full_attention"
43
+ ],
44
+ "max_position_embeddings": 2048,
45
+ "model_type": "gemma3_text",
46
+ "num_attention_heads": 3,
47
+ "num_hidden_layers": 24,
48
+ "num_key_value_heads": 1,
49
+ "pad_token_id": 0,
50
+ "query_pre_attn_scalar": 256,
51
+ "rms_norm_eps": 1e-06,
52
+ "rope_parameters": {
53
+ "full_attention": {
54
+ "rope_theta": 1000000.0,
55
+ "rope_type": "default"
56
+ },
57
+ "sliding_attention": {
58
+ "rope_theta": 10000.0,
59
+ "rope_type": "default"
60
+ }
61
+ },
62
+ "sliding_window": 257,
63
+ "tie_word_embeddings": true,
64
+ "transformers_version": "5.0.0",
65
+ "use_bidirectional_attention": true,
66
+ "use_cache": true,
67
+ "vocab_size": 262144
68
+ }
config_sentence_transformers.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_type": "SentenceTransformer",
3
+ "__version__": {
4
+ "sentence_transformers": "5.2.3",
5
+ "transformers": "5.0.0",
6
+ "pytorch": "2.10.0+cu128"
7
+ },
8
+ "prompts": {
9
+ "query": "task: search result | query: ",
10
+ "document": "title: none | text: ",
11
+ "BitextMining": "task: search result | query: ",
12
+ "Clustering": "task: clustering | query: ",
13
+ "Classification": "task: classification | query: ",
14
+ "InstructionRetrieval": "task: code retrieval | query: ",
15
+ "MultilabelClassification": "task: classification | query: ",
16
+ "PairClassification": "task: sentence similarity | query: ",
17
+ "Reranking": "task: search result | query: ",
18
+ "Retrieval": "task: search result | query: ",
19
+ "Retrieval-query": "task: search result | query: ",
20
+ "Retrieval-document": "title: none | text: ",
21
+ "STS": "task: sentence similarity | query: ",
22
+ "Summarization": "task: summarization | query: "
23
+ },
24
+ "default_prompt_name": null,
25
+ "similarity_fn_name": "cosine"
26
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:df7339ab34a264685e69962c11d619c8c5e8b74a7b035676534808e74f748ea3
3
+ size 1211486072
modules.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "idx": 0,
4
+ "name": "0",
5
+ "path": "",
6
+ "type": "sentence_transformers.models.Transformer"
7
+ },
8
+ {
9
+ "idx": 1,
10
+ "name": "1",
11
+ "path": "1_Pooling",
12
+ "type": "sentence_transformers.models.Pooling"
13
+ },
14
+ {
15
+ "idx": 2,
16
+ "name": "2",
17
+ "path": "2_Dense",
18
+ "type": "sentence_transformers.models.Dense"
19
+ },
20
+ {
21
+ "idx": 3,
22
+ "name": "3",
23
+ "path": "3_Dense",
24
+ "type": "sentence_transformers.models.Dense"
25
+ },
26
+ {
27
+ "idx": 4,
28
+ "name": "4",
29
+ "path": "4_Normalize",
30
+ "type": "sentence_transformers.models.Normalize"
31
+ }
32
+ ]
sentence_bert_config.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "max_seq_length": 2048,
3
+ "do_lower_case": false
4
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:37a36b975fbb51fe36f93e6d156cc4eefbce6d4209aee46c4575cbe9a6a1542e
3
+ size 33385137
tokenizer_config.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "backend": "tokenizers",
3
+ "boi_token": "<start_of_image>",
4
+ "bos_token": "<bos>",
5
+ "clean_up_tokenization_spaces": false,
6
+ "eoi_token": "<end_of_image>",
7
+ "eos_token": "<eos>",
8
+ "image_token": "<image_soft_token>",
9
+ "is_local": false,
10
+ "mask_token": "<mask>",
11
+ "model_max_length": 2048,
12
+ "model_specific_special_tokens": {
13
+ "boi_token": "<start_of_image>",
14
+ "eoi_token": "<end_of_image>",
15
+ "image_token": "<image_soft_token>"
16
+ },
17
+ "pad_token": "<pad>",
18
+ "padding_side": "right",
19
+ "sp_model_kwargs": null,
20
+ "spaces_between_special_tokens": false,
21
+ "tokenizer_class": "GemmaTokenizer",
22
+ "unk_token": "<unk>",
23
+ "use_default_system_prompt": false
24
+ }