huseinzol05 commited on
Commit
a587235
·
verified ·
1 Parent(s): d95c904

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +674 -1
README.md CHANGED
@@ -24,4 +24,677 @@ Finetuned https://huggingface.co/mesolitica/nanot5-small-malaysian-cased using 2
24
  - Better Cantonese translation compared to V2.
25
  - Better Tamil and Tanglish translation compared to V2.
26
 
27
- Wandb at https://wandb.ai/huseinzol05/nanot5-small-malaysian-cased-translation-v5-multipack-post, **still on training**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  - Better Cantonese translation compared to V2.
25
  - Better Tamil and Tanglish translation compared to V2.
26
 
27
+ Wandb at https://wandb.ai/huseinzol05/nanot5-small-malaysian-cased-translation-v5-multipack-post
28
+
29
+ ## Public API
30
+
31
+ Go to https://playground.mesolitica.com, first registration will get free $1 credits,
32
+
33
+ <img src="https://mesolitica.com/images/front-translation-v2.png" width="50%">
34
+
35
+ ## Supported prefix
36
+
37
+ 1. `'terjemah ke Mandarin: '`
38
+ 3. `'terjemah ke Tamil: '`
39
+ 4. `'terjemah ke Jawa: '` <b><sup>+</sup></b>
40
+ 5. `'terjemah ke Melayu: '`
41
+ 6. `'terjemah ke Inggeris: '`
42
+ 7. `'terjemah ke johor: '` <b><sup>++</sup></b>
43
+ 8. `'terjemah ke kedah: '` <b><sup>++</sup></b>
44
+ 9. `'terjemah ke kelantan: '` <b><sup>++</sup></b>
45
+ 10. `'terjemah ke pasar Melayu: '` <b><sup>+</sup></b>
46
+ 11. `'terjemah ke melaka: '` <b><sup>++</sup></b>
47
+ 12. `'terjemah ke negeri sembilan: '` <b><sup>++</sup></b>
48
+ 13. `'terjemah ke pahang: '` <b><sup>++</sup></b>
49
+ 14. `'terjemah ke perak: '` <b><sup>++</sup></b>
50
+ 15. `'terjemah ke sabah: '` <b><sup>++</sup></b>
51
+ 16. `'terjemah ke sarawak: '` <b><sup>++</sup></b>
52
+ 17. `'terjemah ke terengganu: '` <b><sup>++</sup></b>
53
+ 18. `'terjemah ke Jawi: '` <b><sup>++</sup></b>
54
+ 19. `'terjemah ke Manglish: '` <b><sup>+</sup></b>
55
+ 20. `'terjemah ke Banjar: '` <b><sup>+</sup></b>
56
+ 21. `'terjemah ke pasar Mandarin: '` <b><sup>+</sup></b>
57
+ 22. `'terjemah ke Cantonese: '` <b><sup>++</sup></b>
58
+
59
+ - <b><sup>+</sup></b>, minimum support.
60
+ - <b><sup>++</sup></b>, initial support.
61
+
62
+ ## how to
63
+
64
+ ```python
65
+ from transformers import AutoTokenizer, T5ForConditionalGeneration
66
+
67
+ tokenizer = AutoTokenizer.from_pretrained('mesolitica/nanot5-small-malaysian-translation-v2.1')
68
+ model = T5ForConditionalGeneration.from_pretrained('mesolitica/nanot5-small-malaysian-translation-v2.1')
69
+
70
+ strings = [
71
+ 'ak tak paham la',
72
+ 'Hi guys! I noticed semalam & harini dah ramai yang dapat cookies ni kan. So harini i nak share some post mortem of our first batch:',
73
+ "Memanglah. Ini tak payah expert, aku pun tau. It's a gesture, bodoh.",
74
+ 'jam 8 di pasar KK memang org ramai 😂, pandai dia pilih tmpt.',
75
+ 'Jadi haram jadah😀😃🤭',
76
+ 'nak gi mana tuu',
77
+ 'Macam nak ambil half day',
78
+ "Bayangkan PH dan menang pru-14. Pastu macam-macam pintu belakang ada. Last-last Ismail Sabri naik. That's why I don't give a fk about politics anymore. Sumpah dah fk up dah.",
79
+ ]
80
+ all_special_ids = [0, 1, 2]
81
+ prefix = 'terjemah ke Melayu: '
82
+ input_ids = [{'input_ids': tokenizer.encode(f'{prefix}{s}{tokenizer.eos_token}', return_tensors='pt')[
83
+ 0]} for s in strings]
84
+ padded = tokenizer.pad(input_ids, padding='longest')
85
+ outputs = model.generate(**padded, max_length = 100)
86
+ tokenizer.batch_decode([[i for i in o if i not in all_special_ids] for o in outputs])
87
+ ```
88
+
89
+ Output,
90
+
91
+ ```
92
+ [' Saya tidak faham',
93
+ ' Hi guys! Saya perasan semalam dan hari ini ramai yang menerima cookies. Jadi hari ini saya ingin berkongsi beberapa post mortem batch pertama kami:',
94
+ ' Memanglah. Tak perlu pakar, saya juga tahu. Ini adalah satu isyarat, bodoh.',
95
+ ' Orang ramai di pasar KK pada jam 8 pagi, mereka sangat pandai memilih tempat.',
96
+ ' Jadi haram jadah 😀😃🤭',
97
+ ' Di mana kamu pergi?',
98
+ ' Saya ingin mengambil separuh hari',
99
+ ' Bayangkan PH dan menang PRU-14. Terdapat pelbagai pintu belakang. Akhirnya, Ismail Sabri naik. Itulah sebabnya saya tidak lagi bercakap tentang politik. Saya bersumpah sudah berputus asa.']
100
+ ```
101
+
102
+ Input text can be any languages that speak in Malaysia, as long you use proper prefix, it should be able to translate to target language.
103
+
104
+ ## translate code
105
+
106
+ ### from English to Malay
107
+
108
+ ````python
109
+ code_english = """
110
+ Here's a detailed Python code solution for implementing a Convolutional Neural Network (CNN) for image classification on the CIFAR-10 dataset:
111
+
112
+ ```python
113
+ import tensorflow as tf
114
+ from tensorflow.keras.datasets import cifar10
115
+ from tensorflow.keras.models import Sequential
116
+ from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
117
+ from tensorflow.keras.optimizers import Adam
118
+ from tensorflow.keras.preprocessing.image import ImageDataGenerator
119
+ from sklearn.model_selection import GridSearchCV
120
+ from tensorflow.keras.wrappers.scikit_learn import KerasClassifier
121
+ import numpy as np
122
+ import matplotlib.pyplot as plt
123
+
124
+ # Load and preprocess the CIFAR-10 dataset
125
+ (x_train, y_train), (x_test, y_test) = cifar10.load_data()
126
+ x_train = x_train.astype('float32') / 255.0
127
+ x_test = x_test.astype('float32') / 255.0
128
+ y_train = tf.keras.utils.to_categorical(y_train, num_classes=10)
129
+ y_test = tf.keras.utils.to_categorical(y_test, num_classes=10)
130
+
131
+ # Define the CNN architecture
132
+ def create_model(learning_rate=0.001, dropout_rate=0.5, num_filters=32):
133
+ model = Sequential()
134
+ model.add(Conv2D(num_filters, (3, 3), activation='relu', padding='same', input_shape=(32, 32, 3)))
135
+ model.add(Conv2D(num_filters, (3, 3), activation='relu'))
136
+ model.add(MaxPooling2D(pool_size=(2, 2)))
137
+ model.add(Dropout(dropout_rate))
138
+
139
+ model.add(Conv2D(num_filters * 2, (3, 3), activation='relu', padding='same'))
140
+ model.add(Conv2D(num_filters * 2, (3, 3), activation='relu'))
141
+ model.add(MaxPooling2D(pool_size=(2, 2)))
142
+ model.add(Dropout(dropout_rate))
143
+
144
+ model.add(Conv2D(num_filters * 4, (3, 3), activation='relu', padding='same'))
145
+ model.add(Conv2D(num_filters * 4, (3, 3), activation='relu'))
146
+ model.add(MaxPooling2D(pool_size=(2, 2)))
147
+ model.add(Dropout(dropout_rate))
148
+
149
+ model.add(Flatten())
150
+ model.add(Dense(512, activation='relu'))
151
+ model.add(Dropout(dropout_rate))
152
+ model.add(Dense(10, activation='softmax'))
153
+
154
+ optimizer = Adam(learning_rate=learning_rate)
155
+ model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
156
+ return model
157
+ ```
158
+
159
+ Explanation:
160
+
161
+ a) Data preprocessing:
162
+ - The CIFAR-10 dataset is loaded using `cifar10.load_data()`.
163
+ - The pixel values of the images are normalized to the range [0, 1] by dividing them by 255.
164
+ - The labels are converted to categorical format using `to_categorical()`.
165
+
166
+ b) CNN Architecture:
167
+ - The CNN architecture consists of three convolutional blocks, each containing two convolutional layers followed by a max-pooling layer and dropout regularization.
168
+ - The number of filters in each convolutional block is increased progressively (32, 64, 128).
169
+ - ReLU activation function is used in the convolutional layers.
170
+ - The final layers are fully connected, with a softmax activation for multi-class classification.
171
+ """
172
+
173
+ input_ids = tokenizer.encode(f'terjemah ke Melayu: {code_english}{tokenizer.eos_token}', return_tensors = 'pt')
174
+ outputs = model.generate(input_ids, max_length = 1024)
175
+ outputs = [i for i in outputs[0] if i not in all_special_ids]
176
+ print(tokenizer.decode(outputs, spaces_between_special_tokens = False))
177
+ ````
178
+
179
+ Output,
180
+
181
+ ````
182
+ Berikut adalah penyelesaian kod Python yang terperinci untuk melaksanakan Rangkaian Neural Konvolusi (CNN) untuk pengelasan imej pada dataset CIFAR-10:
183
+
184
+ ```python
185
+ import tensorflow as tf
186
+ from tensorflow.keras.datasets import cifar10
187
+ from tensorflow.keras.models import Sequential
188
+ from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
189
+ from tensorflow.keras.optimizers import Adam
190
+ from tensorflow.keras.preprocessing.image import ImageDataGenerator
191
+ from sklearn.model_selection import GridSearchCV
192
+ from tensorflow.keras.wrappers.scikit_learn import KerasClassifier
193
+ import numpy as np
194
+ import matplotlib.pyplot as plt
195
+
196
+ # Muatkan dan praproses dataset CIFAR-10
197
+ (x_train, y_train), (x_test, y_test) = cifar10.load_data()
198
+ x_train = x_train.astype('float32') / 255.0
199
+ x_test = x_test.astype('float32') / 255.0
200
+ y_train = tf.keras.utils.to_categorical(y_train, num_classes=10)
201
+ y_test = tf.keras.utils.to_categorical(y_test, num_classes=10)
202
+
203
+ # Tentukan senibina CNN
204
+ def create_model(learning_rate=0.001, dropout_rate=0.5, num_filters=32):
205
+ model = Sequential()
206
+ model.add(Conv2D(num_filters, (3, 3), activation='relu', padding='same', input_shape=(32, 32, 3)))
207
+ model.add(Conv2D(num_filters, (3, 3), activation='relu'))
208
+ model.add(MaxPooling2D(pool_size=(2, 2)))
209
+ model.add(Dropout(dropout_rate))
210
+
211
+ model.add(Conv2D(num_filters * 2, (3, 3), activation='relu', padding='same'))
212
+ model.add(Conv2D(num_filters * 2, (3, 3), activation='relu'))
213
+ model.add(MaxPooling2D(pool_size=(2, 2)))
214
+ model.add(Dropout(dropout_rate))
215
+
216
+ model.add(Conv2D(num_filters * 4, (3, 3), activation='relu', padding='same'))
217
+ model.add(Conv2D(num_filters * 4, (3, 3), activation='relu'))
218
+ model.add(MaxPooling2D(pool_size=(2, 2)))
219
+ model.add(Dropout(dropout_rate))
220
+
221
+ model.add(Flatten())
222
+ model.add(Dense(512, activation='relu'))
223
+ model.add(Dropout(dropout_rate))
224
+ model.add(Dense(10, activation='softmax'))
225
+
226
+ optimizer = Adam(learning_rate=learning_rate)
227
+ model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
228
+ return model
229
+ ```
230
+
231
+ Penjelasan:
232
+
233
+ a) Prapemprosesan data:
234
+ - Dataset CIFAR-10 dimuatkan menggunakan `cifar10.load_data()`.
235
+ - Nilai piksel imej dinormalisasi ke julat [0, 1] dengan membahagikan mereka dengan 255.
236
+ - Label ditukar kepada format kategori menggunakan `to_categorical()`.
237
+
238
+ b) Senibina CNN:
239
+ - Senibina CNN terdiri daripada tiga blok konvolusi, setiap satu mengandungi dua lapisan konvolusi diikuti oleh lapisan max-pooling dan regularisasi dropout.
240
+ - Bilangan penapis dalam setiap blok konvolusi meningkat secara beransur-ansur (32, 64, 128).
241
+ -
242
+ ````
243
+
244
+ **Increase `max_length` should complete the result**.
245
+
246
+ ### from Indonesian to Malay
247
+
248
+ ````python
249
+ code_indon = """
250
+ `Untuk menggunakan numpy, pertama-tama, Anda perlu menginstalnya melalui pip. Anda dapat melakukannya dengan menjalankan perintah `pip install numpy` di terminal Anda.
251
+ Setelah numpy terinstal, Anda dapat mengimpor modul numpy dengan menambahkan baris `import numpy as np` di awal program Anda.
252
+ Berikut adalah contoh beberapa operasi dasar numpy:
253
+ ``` python
254
+ import numpy as np
255
+ # membuat array numpy dari list
256
+ my_list = [1, 2, 3, 4, 5]
257
+ my_array = np.array(my_list)
258
+ # membuat array numpy dengan rentang nilai tertentu
259
+ my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan loncatan
260
+ # membuat array numpy dengan nilai acak
261
+ my_random_array = np.random.rand(3, 3) # 3 baris dan 3 kolom
262
+ # mengakses elemen array numpy
263
+ print(my_array[0]) # mengakses elemen pertama
264
+ # melakukan operasi matematika pada array numpy
265
+ my_array = my_array + 1 # menambah setiap elemen dengan 1
266
+ my_array = my_array * 2 # mengalikan setiap elemen dengan 2
267
+ # mengubah bentuk array numpy
268
+ my_array = np.reshape(my_array, (2, 5)) # menjadi array 2D dengan 2 baris dan 5 kolom
269
+ ```
270
+ Itulah beberapa operasi dasar numpy. Anda dapat menemukan dokumentasi resmi numpy di https://numpy.org/doc/stable/.
271
+ """
272
+ input_ids = tokenizer.encode(f'terjemah ke Melayu: {code_indon}{tokenizer.eos_token}', return_tensors = 'pt')
273
+ outputs = model.generate(input_ids, max_length = 1024)
274
+ outputs = [i for i in outputs[0] if i not in all_special_ids]
275
+ print(tokenizer.decode(outputs, spaces_between_special_tokens = False))
276
+ ````
277
+
278
+ Output,
279
+
280
+ ````
281
+ `Untuk menggunakan numpy, pertama sekali, anda perlu memasangnya melalui pip. Anda boleh melakukannya dengan menjalankan perintah `pip install numpy` di terminal anda.
282
+ Setelah numpy dipasang, anda boleh mengimport modul numpy dengan menambahkan baris `import numpy as np` di awal program anda.
283
+ Berikut adalah contoh beberapa operasi asas numpy:
284
+ ``` python
285
+ import numpy as np
286
+ # membuat array numpy dari senarai
287
+ my_list = [1, 2, 3, 4, 5]
288
+ my_array = np.array(my_list)
289
+ # membuat array numpy dengan rentang nilai tertentu
290
+ my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan lompat
291
+ # membuat array numpy dengan nilai rawak
292
+ my_random_array = np.random.rand(3, 3) # 3 baris dan 3 lajur
293
+ # mengakses elemen array numpy
294
+ print(my_array[0]) # mengakses elemen pertama
295
+ # melakukan operasi matematik pada array numpy
296
+ my_array = my_array + 1 # menambah setiap elemen dengan 1
297
+ my_array = my_array * 2 # mendarab setiap elemen dengan 2
298
+ # mengubah bentuk array numpy
299
+ my_array = np.reshape(my_array, (2, 5)) # menjadi array 2D dengan 2 baris dan 5 lajur
300
+ ```
301
+ Itulah beberapa operasi asas numpy. Anda boleh mencari dokumentasi rasmi numpy di https://numpy.org/doc/stable/.
302
+ ````
303
+
304
+ ### from Indonesian to Jawi
305
+
306
+ ````python
307
+ code_indon = """
308
+ `Untuk menggunakan numpy, pertama-tama, Anda perlu menginstalnya melalui pip. Anda dapat melakukannya dengan menjalankan perintah `pip install numpy` di terminal Anda.
309
+ Setelah numpy terinstal, Anda dapat mengimpor modul numpy dengan menambahkan baris `import numpy as np` di awal program Anda.
310
+ Berikut adalah contoh beberapa operasi dasar numpy:
311
+ ``` python
312
+ import numpy as np
313
+ # membuat array numpy dari list
314
+ my_list = [1, 2, 3, 4, 5]
315
+ my_array = np.array(my_list)
316
+ # membuat array numpy dengan rentang nilai tertentu
317
+ my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan loncatan
318
+ # membuat array numpy dengan nilai acak
319
+ my_random_array = np.random.rand(3, 3) # 3 baris dan 3 kolom
320
+ # mengakses elemen array numpy
321
+ print(my_array[0]) # mengakses elemen pertama
322
+ # melakukan operasi matematika pada array numpy
323
+ my_array = my_array + 1 # menambah setiap elemen dengan 1
324
+ my_array = my_array * 2 # mengalikan setiap elemen dengan 2
325
+ # mengubah bentuk array numpy
326
+ my_array = np.reshape(my_array, (2, 5)) # menjadi array 2D dengan 2 baris dan 5 kolom
327
+ ```
328
+ Itulah beberapa operasi dasar numpy. Anda dapat menemukan dokumentasi resmi numpy di https://numpy.org/doc/stable/.
329
+ """
330
+ input_ids = tokenizer.encode(f'terjemah ke Jawi: {code_indon}{tokenizer.eos_token}', return_tensors = 'pt')
331
+ outputs = model.generate(input_ids, max_length = 1024)
332
+ outputs = [i for i in outputs[0] if i not in all_special_ids]
333
+ print(tokenizer.decode(outputs, spaces_between_special_tokens = False))
334
+ ````
335
+
336
+ Output,
337
+
338
+ ````
339
+ `اونتوق مڠݢوناکن نومڤي، ڤرتام-تام، اندا ڤرلو مڠينساليهاڽ ملالوءي ڤيڤ. اندا داڤت ملاکوکنڽ دڠن منجالنکن ڤرينته `ڤيڤ همبل نومڤي` د ترمينت اندا.
340
+ سلڤس نومڤي ترينسالي, اندا داڤت مڠيمڤور مودول نومڤي دڠن منمبهکن باريس `ايمڤورت نومڤي اس نوءڤي` د اول ڤروجيک اندا.
341
+ بريکوت اداله چونتوه ببراڤ اوڤراسي داسر نومڤي:
342
+ ``` python
343
+ ايمڤورت نومڤي اس نو؟
344
+ # ممبوات اريڠ نومڤي دري سناراي
345
+ my_list = [1, 2, 3, 4, 5]
346
+ my_array = np.array(my_list)
347
+ # ممبوات اريڠ نومڤي دڠن رنتڠ نيلاي ترتنتو
348
+ my_range = np.arange(0، 10, 2) # نيلاي اول، نيلاي اخير، دان لونچتن
349
+ # ممبوات اريڠ نومڤي دڠن نيلاي اچق
350
+ my_random_array = np.random.rand(3, 3) # 3 باريس دان 3 لنتور
351
+ # مڠاقساليس ايليمن نومڤي
352
+ ڤوتر��(my_array[0]) # مڠاقساليس ايليمن ڤرتام
353
+ # ملاکوکن اوڤراسي ماتماتيك ڤد اريڠ نومڤي
354
+ my_array = my_array + 1 # منمبه ستياڤ ايليمن دڠن ١
355
+ my_array = my_array * 2 # مڠيراکن ستياڤ ايليمن دڠن ٢
356
+ # مڠوبه بنتوق اريڠ نومڤي
357
+ my_array = np.reshape(my_array, (2, 5)) # منجادي اريڠ ٢د دڠن ٢ باريس دان ٥ لنتور
358
+ ```
359
+ اداله ببراڤ اوڤراسي داسر نومڤي. اندا داڤت منموکن دوتاسي ريسمي نومڤي د https://numpy.org/doc/stable/.
360
+ ````
361
+
362
+ ### from Indonesian to Terengganu
363
+
364
+ ````python
365
+ code_indon = """
366
+ `Untuk menggunakan numpy, pertama-tama, Anda perlu menginstalnya melalui pip. Anda dapat melakukannya dengan menjalankan perintah `pip install numpy` di terminal Anda.
367
+ Setelah numpy terinstal, Anda dapat mengimpor modul numpy dengan menambahkan baris `import numpy as np` di awal program Anda.
368
+ Berikut adalah contoh beberapa operasi dasar numpy:
369
+ ``` python
370
+ import numpy as np
371
+ # membuat array numpy dari list
372
+ my_list = [1, 2, 3, 4, 5]
373
+ my_array = np.array(my_list)
374
+ # membuat array numpy dengan rentang nilai tertentu
375
+ my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan loncatan
376
+ # membuat array numpy dengan nilai acak
377
+ my_random_array = np.random.rand(3, 3) # 3 baris dan 3 kolom
378
+ # mengakses elemen array numpy
379
+ print(my_array[0]) # mengakses elemen pertama
380
+ # melakukan operasi matematika pada array numpy
381
+ my_array = my_array + 1 # menambah setiap elemen dengan 1
382
+ my_array = my_array * 2 # mengalikan setiap elemen dengan 2
383
+ # mengubah bentuk array numpy
384
+ my_array = np.reshape(my_array, (2, 5)) # menjadi array 2D dengan 2 baris dan 5 kolom
385
+ ```
386
+ Itulah beberapa operasi dasar numpy. Anda dapat menemukan dokumentasi resmi numpy di https://numpy.org/doc/stable/.
387
+ """
388
+ input_ids = tokenizer.encode(f'terjemah ke terengganu: {code_indon}\n{tokenizer.eos_token}', return_tensors = 'pt')
389
+ outputs = model.generate(input_ids, max_length = 1024)
390
+ outputs = [i for i in outputs[0] if i not in all_special_ids]
391
+ print(tokenizer.decode(outputs, spaces_between_special_tokens = False))
392
+ ````
393
+
394
+ **`\n` is important, we found out if omit `\n` in dialects will cause repetitive generation**.
395
+
396
+ Output,
397
+
398
+ ````
399
+ `` Untuk gune numpy, pertama-tama, mung kene pasang die melalui pip. Mung buleh buat ni dengan jalankan perintah `pip install numpy` dalang terminal mung.
400
+ Lepas numpy tu dipasang, mung buleh import modul numpy tu dengan tambah baris `import numpy as np` dalang awal program mung.
401
+ Ni contoh sikit operasi dasar numpy:
402
+ ``` python
403
+ import numpy as np
404
+ # buat array numpy dari list
405
+ my_list = [1, 2, 3, 4, 5]
406
+ my_array = np.array(my_list)
407
+ # buat array numpy tu dengan rentang nilai tertentu
408
+ my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan lompat
409
+ # buat array numpy tu dengan nilai acak
410
+ my_random_array = np.random.rand(3, 3) # 3 baris ngah 3 kolom
411
+ # akses elemen array numpy
412
+ print(my_array[0]) # akses elemen pertama
413
+ # buat operasi matematik dalang array numpy
414
+ my_array = my_array + 1 # tambah tiap-tiap elemen dengan 1
415
+ my_array = my_array * 2 # kira tiap-tiap elemen dengan 2
416
+ # ubah bentuk array numpy
417
+ my_array = np.reshape(my_array, (2, 5)) # jadi array 2D ngah 2 baris ngah 5 kolom
418
+ ```
419
+ Itu la beberapa operasi dasar numpy. Mung buleh nemu dokumentasi rasmi numpy dalang https://numpy.org/doc/stable/.
420
+ ````
421
+
422
+ ### from Indonesian to Perak
423
+
424
+ How about to include some random sampling,
425
+
426
+ ````python
427
+ code_indon = """
428
+ `Untuk menggunakan numpy, pertama-tama, Anda perlu menginstalnya melalui pip. Anda dapat melakukannya dengan menjalankan perintah `pip install numpy` di terminal Anda.
429
+ Setelah numpy terinstal, Anda dapat mengimpor modul numpy dengan menambahkan baris `import numpy as np` di awal program Anda.
430
+ Berikut adalah contoh beberapa operasi dasar numpy:
431
+ ``` python
432
+ import numpy as np
433
+ # membuat array numpy dari list
434
+ my_list = [1, 2, 3, 4, 5]
435
+ my_array = np.array(my_list)
436
+ # membuat array numpy dengan rentang nilai tertentu
437
+ my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan loncatan
438
+ # membuat array numpy dengan nilai acak
439
+ my_random_array = np.random.rand(3, 3) # 3 baris dan 3 kolom
440
+ # mengakses elemen array numpy
441
+ print(my_array[0]) # mengakses elemen pertama
442
+ # melakukan operasi matematika pada array numpy
443
+ my_array = my_array + 1 # menambah setiap elemen dengan 1
444
+ my_array = my_array * 2 # mengalikan setiap elemen dengan 2
445
+ # mengubah bentuk array numpy
446
+ my_array = np.reshape(my_array, (2, 5)) # menjadi array 2D dengan 2 baris dan 5 kolom
447
+ ```
448
+ Itulah beberapa operasi dasar numpy. Anda dapat menemukan dokumentasi resmi numpy di https://numpy.org/doc/stable/.
449
+ """
450
+ input_ids = tokenizer.encode(f'terjemah ke perak: {code_indon}\n{tokenizer.eos_token}', return_tensors = 'pt')
451
+ outputs = model.generate(input_ids, max_length = 1024, top_p=0.95,
452
+ top_k=50,
453
+ temperature=0.9,
454
+ do_sample=True,)
455
+ outputs = [i for i in outputs[0] if i not in all_special_ids]
456
+ print(tokenizer.decode(outputs, spaces_between_special_tokens = False))
457
+ ````
458
+
459
+ **`\n` is important, we found out if omit `\n` in dialects will cause repetitive generation**.
460
+
461
+ Output,
462
+
463
+ ````
464
+ Nih lah, ape yang teman teman nak buat ni. Miker nak kene buat macam tu.
465
+
466
+ **Dok suruh kome pasang numpy dari list, cuba masukkan baris `import numpy as np` dalam baris yang dah siap.
467
+ * Ni contoh beberapa operasi dasar numpy:
468
+
469
+ ```python
470
+ import numpy as np
471
+ # buat array numpy dari list
472
+ my_list = [1, 2, 3, 4, 5]
473
+ my_array = np.array(my_list)
474
+ # buat array numpy dalam nilai tertentu
475
+ my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, ngan jumpe
476
+ # buat array numpy dalam nilai acak
477
+ my_random_array = np.random.rand(3, 3) # 3 baris ngan 3 kolom
478
+ # access elemen array numpy
479
+ print(my_array[0]) # access element pertama
480
+ # buat operasi matematik kat array numpy
481
+ my_array = my_array + 1 # tambah setiap elemen ngan 1
482
+ my_array = my_array * 2 # darab tiap elemen ngan 2
483
+ # ubah bentuk array numpy
484
+ my_array = np.reshape(my_array, (2, 5)) # jadi array 2D dengan 2 baris ngan 5 kolom
485
+ ```
486
+ Ate, ni beberapa operasi dasar numpy. Kome boleh cari dokumentasi rasmi numpy kat https://numpy.org/doc/stable/.
487
+ ````
488
+
489
+ ### from Indonesian to Kedah
490
+
491
+ How about to include some random sampling,
492
+
493
+ ````python
494
+ code_indon = """
495
+ `Untuk menggunakan numpy, pertama-tama, Anda perlu menginstalnya melalui pip. Anda dapat melakukannya dengan menjalankan perintah `pip install numpy` di terminal Anda.
496
+ Setelah numpy terinstal, Anda dapat mengimpor modul numpy dengan menambahkan baris `import numpy as np` di awal program Anda.
497
+ Berikut adalah contoh beberapa operasi dasar numpy:
498
+ ``` python
499
+ import numpy as np
500
+ # membuat array numpy dari list
501
+ my_list = [1, 2, 3, 4, 5]
502
+ my_array = np.array(my_list)
503
+ # membuat array numpy dengan rentang nilai tertentu
504
+ my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan loncatan
505
+ # membuat array numpy dengan nilai acak
506
+ my_random_array = np.random.rand(3, 3) # 3 baris dan 3 kolom
507
+ # mengakses elemen array numpy
508
+ print(my_array[0]) # mengakses elemen pertama
509
+ # melakukan operasi matematika pada array numpy
510
+ my_array = my_array + 1 # menambah setiap elemen dengan 1
511
+ my_array = my_array * 2 # mengalikan setiap elemen dengan 2
512
+ # mengubah bentuk array numpy
513
+ my_array = np.reshape(my_array, (2, 5)) # menjadi array 2D dengan 2 baris dan 5 kolom
514
+ ```
515
+ Itulah beberapa operasi dasar numpy. Anda dapat menemukan dokumentasi resmi numpy di https://numpy.org/doc/stable/.
516
+ """
517
+ input_ids = tokenizer.encode(f'terjemah ke kedah: {code_indon}\n{tokenizer.eos_token}', return_tensors = 'pt')
518
+ outputs = model.generate(input_ids, max_length = 1024, top_p=0.95,
519
+ top_k=50,
520
+ temperature=0.9,
521
+ do_sample=True,)
522
+ outputs = [i for i in outputs[0] if i not in all_special_ids]
523
+ print(tokenizer.decode(outputs, spaces_between_special_tokens = False))
524
+ ````
525
+
526
+ **`\n` is important, we found out if omit `\n` in dialects will cause repetitive generation**.
527
+
528
+ Output,
529
+
530
+ ````
531
+ `Nak guna numpy, hang kena pasang pip pulak. Hang boleh buat macam ni dengan jalankan perintah `pip install numpy` kat terminal hang.
532
+ Lepas numpy install, hang boleh pasang modul numpy dengan tambah baris `import numpy as np` kat awal program hang.
533
+ Ni contoh macam mana operasi asas numpy tu:
534
+ ``` python
535
+ import numpy as np
536
+ # buat array numpy dari list
537
+ my_list = [1, 2, 3, 4, 5]
538
+ my_array = np.array(my_list)
539
+ # buat array numpy dengan rentang nilai tertentu
540
+ my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan lompat
541
+ # buat array numpy dengan nilai acak
542
+ my_random_array = np.random.rand(3, 3) # 3 baris ngan 3 lajur
543
+ # akses elemen array numpy
544
+ print(my_array[0]) # akses elemen pertama
545
+ # buat operasi matematik kat array numpy
546
+ my_array = my_array + 1 # tambah tiap-tiap elemen dengan 1
547
+ my_array = my_array * 2 # bulat tiap-tiap elemen dengan 2
548
+ # ubah bentuk array numpy
549
+ my_array = np.reshape(my_array, (2, 5)) # jadi array 2D ngan 2 baris ngan 5 lajur
550
+ ```
551
+ Itu la beberapa operasi asas numpy. Hang boleh cari dokumentasi rasmi numpy kat https://numpy.org/doc/stable/.
552
+ ````
553
+
554
+ ### from Indonesian to Manglish
555
+
556
+ How about to include some random sampling,
557
+
558
+ ````python
559
+ code_indon = """
560
+ `Untuk menggunakan numpy, pertama-tama, Anda perlu menginstalnya melalui pip. Anda dapat melakukannya dengan menjalankan perintah `pip install numpy` di terminal Anda.
561
+ Setelah numpy terinstal, Anda dapat mengimpor modul numpy dengan menambahkan baris `import numpy as np` di awal program Anda.
562
+ Berikut adalah contoh beberapa operasi dasar numpy:
563
+ ``` python
564
+ import numpy as np
565
+ # membuat array numpy dari list
566
+ my_list = [1, 2, 3, 4, 5]
567
+ my_array = np.array(my_list)
568
+ # membuat array numpy dengan rentang nilai tertentu
569
+ my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan loncatan
570
+ # membuat array numpy dengan nilai acak
571
+ my_random_array = np.random.rand(3, 3) # 3 baris dan 3 kolom
572
+ # mengakses elemen array numpy
573
+ print(my_array[0]) # mengakses elemen pertama
574
+ # melakukan operasi matematika pada array numpy
575
+ my_array = my_array + 1 # menambah setiap elemen dengan 1
576
+ my_array = my_array * 2 # mengalikan setiap elemen dengan 2
577
+ # mengubah bentuk array numpy
578
+ my_array = np.reshape(my_array, (2, 5)) # menjadi array 2D dengan 2 baris dan 5 kolom
579
+ ```
580
+ Itulah beberapa operasi dasar numpy. Anda dapat menemukan dokumentasi resmi numpy di https://numpy.org/doc/stable/.
581
+ """
582
+ input_ids = tokenizer.encode(f'terjemah ke kedah: {code_indon}\n{tokenizer.eos_token}', return_tensors = 'pt')
583
+ outputs = model.generate(input_ids, max_length = 1024, top_p=0.95,
584
+ top_k=50,
585
+ temperature=0.9,
586
+ do_sample=True,)
587
+ outputs = [i for i in outputs[0] if i not in all_special_ids]
588
+ print(tokenizer.decode(outputs, spaces_between_special_tokens = False))
589
+ ````
590
+
591
+ **`\n` is important, we found out if omit `\n` in dialects will cause repetitive generation**.
592
+
593
+ Output,
594
+
595
+ ````
596
+ `Nak guna numpy, hang kena pasang pip pulak. Hang boleh buat macam ni dengan jalankan perintah `pip install numpy` kat terminal hang.
597
+ Lepas numpy install, hang boleh pasang modul numpy dengan tambah baris `import numpy as np` kat awal program hang.
598
+ Ni contoh macam mana operasi asas numpy tu:
599
+ ``` python
600
+ import numpy as np
601
+ # buat array numpy dari list
602
+ my_list = [1, 2, 3, 4, 5]
603
+ my_array = np.array(my_list)
604
+ # buat array numpy dengan rentang nilai tertentu
605
+ my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan lompat
606
+ # buat array numpy dengan nilai acak
607
+ my_random_array = np.random.rand(3, 3) # 3 baris ngan 3 lajur
608
+ # akses elemen array numpy
609
+ print(my_array[0]) # akses elemen pertama
610
+ # buat operasi matematik kat array numpy
611
+ my_array = my_array + 1 # tambah tiap-tiap elemen dengan 1
612
+ my_array = my_array * 2 # bulat tiap-tiap elemen dengan 2
613
+ # ubah bentuk array numpy
614
+ my_array = np.reshape(my_array, (2, 5)) # jadi array 2D ngan 2 baris ngan 5 lajur
615
+ ```
616
+ Itu la beberapa operasi asas numpy. Hang boleh cari dokumentasi rasmi numpy kat https://numpy.org/doc/stable/.
617
+ ````
618
+
619
+ ## how to generate more randomly?
620
+
621
+ Use random sampling, read more at https://huggingface.co/blog/how-to-generate#sampling
622
+
623
+ Below is to convert a news snippet to Sabah,
624
+
625
+ ```python
626
+ news = """
627
+ Ahli ekonomi memuji Belanjawan 2025 dibentangkan Perdana Menteri, Anwar Ibrahim semalam yang disifatkan berfikiran ke depan dan ternyata Madani dengan penekanan lebih ke atas penstrukturan semula ekonomi jangka panjang.
628
+
629
+ Bawani Lelchumanan dari Business School Universiti Sunway berkata, fokus Belanjawan 2025 untuk meningkatkan daya saing global negara dengan menyokong inisiatif dalam sektor seperti semikonduktor, tenaga hijau, kewangan Islam dan transformasi digital.
630
+
631
+ Beliau memberitahu FMT, inisiatif ini boleh menjadikan Malaysia pemain berdaya saing di peringkat serantau dan antarabangsa.
632
+ """
633
+ input_ids = tokenizer.encode(f'terjemah ke sabah: {news}{tokenizer.eos_token}', return_tensors = 'pt')
634
+ outputs = model.generate(
635
+ input_ids,
636
+ max_length=200,
637
+ top_p=0.95,
638
+ top_k=50,
639
+ temperature=0.9,
640
+ do_sample=True,
641
+ num_return_sequences=5
642
+ )
643
+ out = tokenizer.batch_decode([[i for i in o if i not in all_special_ids] for o in outputs])
644
+ for o in out:
645
+ print(o.strip(), '\n------\n')
646
+ ```
647
+
648
+ Output,
649
+
650
+ ```
651
+ Bah, kunuk sia mau bilang sama semua orang yang suka kasi oghang dalam soal bilang apa ni. Palui betul la kalau kita main santut ja dalam duit kita. Kin panas betul kalau kerajaan bilang sama kita.
652
+
653
+ Kamurang cakap ada benda macam ni:
654
+
655
+ 1. Palui betul la kalau ada yang main santut ja dalam hal ni. Tingu saja la, tapi palui betul la, bikin orang jadi gerigitan dalam hal ni. Anu bah, mungkin kita nda dapat orang besar macam ini, padahal negara kita jadi gini. Ndak payah la kita pening kepala fikir macam mana mau maju.
656
+ ------
657
+
658
+ Bah, sia kasi puji, orang-orang ekonomi puji Perdana Menteri, Anwar Ibrahim, terang-terang cakap dia fikir depan-depan dan nda ada cakap kita lebih dalam hal nduduk sama-sama.
659
+
660
+ Bawani Lelchumanan dari Universiti Sunway cakap, benda ni fokus untuk bikin negara kita jadi lebih baik kalau dapat projek macam semikonduktor, tenaga hijau, kewangan Islam sama transformasi digital.
661
+
662
+ Bah, dia kata macam tu la, boleh jadi pemain Malaysia yang boleh jadi pemain yang boleh tahan dalam pasaran sama pun sama dengan dunia.
663
+
664
+ Adui dogo, kamurang tau la, sapa tau. Kita mesti nda main-main dalam bidang ni. Kita mesti pandai-pandai lah jadi pemain untuk negara kita, bukan saja.
665
+ ------
666
+
667
+ Bah, bilang la kamurang:
668
+
669
+ Kin kamurang puji si Anwar tu pasal bah, ucapan Najib tu. Sia ingat, patut la dia fikir depan-depan sama kita kena fokus sama restructure ekonomi jangka panjang.
670
+
671
+ Bawani Lelchumanan dari Universiti Sunway ni cakap, dia mau putuskan belanjawan 2025 tu jadi lebih baik untuk negara, kasi kerjasama sama kita. Kita bikin semua benda macam semikonduktor la, energy hijau la, kewangan Islam la.
672
+
673
+ Kamurang tu beritahu FMT, bagus tu akan jadi pemain Malaysia punya saham kat peringkat regional-ranking. Macam-macam lagi la kalau nda. Kita masih lebih fokus sama ekonomi negara kita. Anu bah, kita mesti pikir satu benda baru. Kamurang harap sia-harap dorang pun tau.
674
+ ------
675
+
676
+ Anu bah, kamurang ada sapa-sapa yang puji kalau si Anwar tu cakap yang dia cakap dulu, dia fikir depan-depan macam mana. Tapi kalau fikir macam mana? Dorang pasti la dengar:
677
+
678
+ Orang punya bisnes pun boleh cakap macam tu, tapi sapa yang fikir itu. Sia tau la, banyak duit. Dorang bikin kerajaan yang jadi lebih stabil, macam orang lain yang susah untuk cari makan. Kin panas betul la kalau kita bikin ekonomi. Macam mana kita mau maju macam ni?
679
+
680
+ Kita kena lawan Najib dulu, baru lah jadi macam ni. Kin panas betul kalau dia orang sini mau pigi sini.
681
+ ------
682
+
683
+ Bah, kunuk sia mau bilang sama kamurang yang mau bilang. Ini Najib dulu kasi duit untuk pembangunan negara, tapi orang lain fikir mau maju la.
684
+
685
+ Bawani Lelchumanan dari Universiti Sunway tu cakap, kita sudah fokus sama duit untuk bangun yang lagi laju dari segi bisnes. Kita semua boleh fokus sama bisnes macam semikonduktor, energy, duit untuk Islam, sama perubahan digital.
686
+
687
+ Dia bilang sama orang, ini sudah boleh jadi pemain paling power, paling power di rantau kita.
688
+
689
+ Kin-dakwa mau bilang sama la yang sudah ada. Kamurang faham ni!
690
+ ------
691
+ ```
692
+
693
+ ## speed up inference
694
+
695
+ Use SDPA fork at https://github.com/mesolitica/t5-sdpa,
696
+ Or you can finish the PR at https://github.com/huggingface/transformers/pull/31167 lol.
697
+
698
+ ## how to finetune your own dataset?
699
+
700
+ We finetuned using T5 SDPA multipacking forked at https://github.com/mesolitica/t5-sdpa-multipack, super undocumented, but scripts from https://github.com/huggingface/transformers/tree/main/examples/pytorch/translation should work also.