File size: 26,943 Bytes
7cefd1b 7239a28 60590a5 7239a28 7cefd1b 4279d25 7532c53 5b3765e d44c691 be99697 7532c53 1612feb f4da9e4 cac2508 187e805 cac2508 76cd35b cac2508 1612feb 9886323 1612feb 9886323 baa6ff4 7532c53 5b3765e be99697 5b3765e be99697 0c28e17 e2129d8 0c28e17 5b3765e eb1b736 c0a4afe feb3531 c0a4afe feb3531 c0a4afe 81b9cdf c0a4afe feb3531 81b9cdf feb3531 5a08721 feb3531 5a08721 af73c89 c0a4afe af73c89 c28cf33 eb1b736 |
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 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 |
---
language:
- ms
- ta
- zh
- id
library_name: transformers
base_model:
- mesolitica/nanot5-small-malaysian-cased
pipeline_tag: translation
---
# NanoT5 Small Malaysian Translation V2
Finetuned https://huggingface.co/mesolitica/nanot5-small-malaysian-cased using 2048 context length on 7B tokens of translation dataset.
- This model able to translate from localize text into standard text.
- This model able to reverse translate from standard to localize text, suitable for text augmentation.
- This model able to translate code.
- This model natively code switching.
- This model should maintain `\n`, `\t`, `\r` as it is.
Wandb at https://wandb.ai/huseinzol05/nanot5-small-malaysian-cased-translation-v4-multipack-post-v3
## Evaluation
![image/png](https://cdn-uploads.huggingface.co/production/uploads/5e73316106936008a9ee6523/afX5IvJA71jg9nschp6vM.png)
- IIUM Confession-EN is a gold label, we pay human to translate local malay from IIUM Confession to standard English.
- Other than that are from FLORES200.
All evaluations at https://github.com/mesolitica/malaya/tree/master/session/translation/end-to-end/evaluate
## Public API
Go to https://playground.mesolitica.com, first registration will get free $1 credits,
<img src="https://mesolitica.com/images/front-translation-v2.png" width="50%">
## how we trained it?
We done 3 phases,
1. First phase, trained on 5% of the 6B tokens noisy translation dataset that include all prefixes on padding based training to improve attention bias.
1. Second phase, trained on 6B tokens noisy translation dataset on packing based and this required to freeze attention bias to speed up the training.
2. Third phase, trained on 1B tokens higher quality translation dataset on packing based and this required to freeze attention bias to speed up the training.
## Supported prefix
1. `'terjemah ke Mandarin: '`
3. `'terjemah ke Tamil: '`
4. `'terjemah ke Jawa: '` <b><sup>+</sup></b>
5. `'terjemah ke Melayu: '`
6. `'terjemah ke Inggeris: '`
7. `'terjemah ke johor: '` <b><sup>++</sup></b>
8. `'terjemah ke kedah: '` <b><sup>++</sup></b>
9. `'terjemah ke kelantan: '` <b><sup>++</sup></b>
10. `'terjemah ke pasar Melayu: '` <b><sup>+</sup></b>
11. `'terjemah ke melaka: '` <b><sup>++</sup></b>
12. `'terjemah ke negeri sembilan: '` <b><sup>++</sup></b>
13. `'terjemah ke pahang: '` <b><sup>++</sup></b>
14. `'terjemah ke perak: '` <b><sup>++</sup></b>
15. `'terjemah ke sabah: '` <b><sup>++</sup></b>
16. `'terjemah ke sarawak: '` <b><sup>++</sup></b>
17. `'terjemah ke terengganu: '` <b><sup>++</sup></b>
18. `'terjemah ke Jawi: '` <b><sup>++</sup></b>
19. `'terjemah ke Manglish: '` <b><sup>+</sup></b>
20. `'terjemah ke Banjar: '` <b><sup>+</sup></b>
21. `'terjemah ke pasar Mandarin: '` <b><sup>+</sup></b>
22. `'terjemah ke Cantonese: '` <b><sup>++</sup></b>
- <b><sup>+</sup></b>, minimum support.
- <b><sup>++</sup></b>, initial support.
## how to
```python
from transformers import AutoTokenizer, T5ForConditionalGeneration
tokenizer = AutoTokenizer.from_pretrained('mesolitica/nanot5-small-malaysian-translation-v2')
model = T5ForConditionalGeneration.from_pretrained('mesolitica/nanot5-small-malaysian-translation-v2')
strings = [
'ak tak paham la',
'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:',
"Memanglah. Ini tak payah expert, aku pun tau. It's a gesture, bodoh.",
'jam 8 di pasar KK memang org ramai 😂, pandai dia pilih tmpt.',
'Jadi haram jadah😀😃🤭',
'nak gi mana tuu',
'Macam nak ambil half day',
"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.",
]
all_special_ids = [0, 1, 2]
prefix = 'terjemah ke Melayu: '
input_ids = [{'input_ids': tokenizer.encode(f'{prefix}{s}{tokenizer.eos_token}', return_tensors='pt')[
0]} for s in strings]
padded = tokenizer.pad(input_ids, padding='longest')
outputs = model.generate(**padded, max_length = 100)
tokenizer.batch_decode([[i for i in o if i not in all_special_ids] for o in outputs])
```
Output,
```
[' Saya tidak faham',
' Hi guys! Saya perasan semalam dan hari ini ramai yang menerima cookies. Jadi hari ini saya ingin berkongsi beberapa post mortem batch pertama kami:',
' Memanglah. Tak perlu pakar, saya juga tahu. Ini adalah satu isyarat, bodoh.',
' Orang ramai di pasar KK pada jam 8 pagi, mereka sangat pandai memilih tempat.',
' Jadi haram jadah 😀😃🤭',
' Di mana kamu pergi?',
' Saya ingin mengambil separuh hari',
' 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.']
```
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.
## translate code
### from English to Malay
````python
code_english = """
Here's a detailed Python code solution for implementing a Convolutional Neural Network (CNN) for image classification on the CIFAR-10 dataset:
```python
import tensorflow as tf
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from sklearn.model_selection import GridSearchCV
from tensorflow.keras.wrappers.scikit_learn import KerasClassifier
import numpy as np
import matplotlib.pyplot as plt
# Load and preprocess the CIFAR-10 dataset
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0
y_train = tf.keras.utils.to_categorical(y_train, num_classes=10)
y_test = tf.keras.utils.to_categorical(y_test, num_classes=10)
# Define the CNN architecture
def create_model(learning_rate=0.001, dropout_rate=0.5, num_filters=32):
model = Sequential()
model.add(Conv2D(num_filters, (3, 3), activation='relu', padding='same', input_shape=(32, 32, 3)))
model.add(Conv2D(num_filters, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(dropout_rate))
model.add(Conv2D(num_filters * 2, (3, 3), activation='relu', padding='same'))
model.add(Conv2D(num_filters * 2, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(dropout_rate))
model.add(Conv2D(num_filters * 4, (3, 3), activation='relu', padding='same'))
model.add(Conv2D(num_filters * 4, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(dropout_rate))
model.add(Flatten())
model.add(Dense(512, activation='relu'))
model.add(Dropout(dropout_rate))
model.add(Dense(10, activation='softmax'))
optimizer = Adam(learning_rate=learning_rate)
model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
return model
```
Explanation:
a) Data preprocessing:
- The CIFAR-10 dataset is loaded using `cifar10.load_data()`.
- The pixel values of the images are normalized to the range [0, 1] by dividing them by 255.
- The labels are converted to categorical format using `to_categorical()`.
b) CNN Architecture:
- The CNN architecture consists of three convolutional blocks, each containing two convolutional layers followed by a max-pooling layer and dropout regularization.
- The number of filters in each convolutional block is increased progressively (32, 64, 128).
- ReLU activation function is used in the convolutional layers.
- The final layers are fully connected, with a softmax activation for multi-class classification.
"""
input_ids = tokenizer.encode(f'terjemah ke Melayu: {code_english}{tokenizer.eos_token}', return_tensors = 'pt')
outputs = model.generate(input_ids, max_length = 1024)
outputs = [i for i in outputs[0] if i not in all_special_ids]
print(tokenizer.decode(outputs, spaces_between_special_tokens = False))
````
Output,
````
Berikut adalah penyelesaian kod Python yang terperinci untuk melaksanakan Rangkaian Neural Konvolusi (CNN) untuk pengelasan imej pada dataset CIFAR-10:
```python
import tensorflow as tf
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from sklearn.model_selection import GridSearchCV
from tensorflow.keras.wrappers.scikit_learn import KerasClassifier
import numpy as np
import matplotlib.pyplot as plt
# Muatkan dan praproses dataset CIFAR-10
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0
y_train = tf.keras.utils.to_categorical(y_train, num_classes=10)
y_test = tf.keras.utils.to_categorical(y_test, num_classes=10)
# Tentukan senibina CNN
def create_model(learning_rate=0.001, dropout_rate=0.5, num_filters=32):
model = Sequential()
model.add(Conv2D(num_filters, (3, 3), activation='relu', padding='same', input_shape=(32, 32, 3)))
model.add(Conv2D(num_filters, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(dropout_rate))
model.add(Conv2D(num_filters * 2, (3, 3), activation='relu', padding='same'))
model.add(Conv2D(num_filters * 2, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(dropout_rate))
model.add(Conv2D(num_filters * 4, (3, 3), activation='relu', padding='same'))
model.add(Conv2D(num_filters * 4, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(dropout_rate))
model.add(Flatten())
model.add(Dense(512, activation='relu'))
model.add(Dropout(dropout_rate))
model.add(Dense(10, activation='softmax'))
optimizer = Adam(learning_rate=learning_rate)
model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
return model
```
Penjelasan:
a) Prapemprosesan data:
- Dataset CIFAR-10 dimuatkan menggunakan `cifar10.load_data()`.
- Nilai piksel imej dinormalisasi ke julat [0, 1] dengan membahagikannya dengan 255.
- Label ditukar kepada format kategori menggunakan `to_categorical()`.
b) Senibina CNN:
- Senibina CNN terdiri daripada tiga blok konvolusi, setiap satu mengandungi dua lapisan konvolusi diikuti oleh lapisan max-pooling dan regularisasi dropout.
- Bilangan penapis dalam setiap blok konvolusi meningkat secara beransur-ansur (32, 64, 128).
-
````
**Increase `max_length` should complete the result**.
### from Indonesian to Malay
````python
code_indon = """
`Untuk menggunakan numpy, pertama-tama, Anda perlu menginstalnya melalui pip. Anda dapat melakukannya dengan menjalankan perintah `pip install numpy` di terminal Anda.
Setelah numpy terinstal, Anda dapat mengimpor modul numpy dengan menambahkan baris `import numpy as np` di awal program Anda.
Berikut adalah contoh beberapa operasi dasar numpy:
``` python
import numpy as np
# membuat array numpy dari list
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
# membuat array numpy dengan rentang nilai tertentu
my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan loncatan
# membuat array numpy dengan nilai acak
my_random_array = np.random.rand(3, 3) # 3 baris dan 3 kolom
# mengakses elemen array numpy
print(my_array[0]) # mengakses elemen pertama
# melakukan operasi matematika pada array numpy
my_array = my_array + 1 # menambah setiap elemen dengan 1
my_array = my_array * 2 # mengalikan setiap elemen dengan 2
# mengubah bentuk array numpy
my_array = np.reshape(my_array, (2, 5)) # menjadi array 2D dengan 2 baris dan 5 kolom
```
Itulah beberapa operasi dasar numpy. Anda dapat menemukan dokumentasi resmi numpy di https://numpy.org/doc/stable/.
"""
input_ids = tokenizer.encode(f'terjemah ke Melayu: {code_indon}{tokenizer.eos_token}', return_tensors = 'pt')
outputs = model.generate(input_ids, max_length = 1024)
outputs = [i for i in outputs[0] if i not in all_special_ids]
print(tokenizer.decode(outputs, spaces_between_special_tokens = False))
````
Output,
````
`Untuk menggunakan numpy, pertama sekali, anda perlu memasangnya melalui pip. Anda boleh melakukannya dengan menjalankan perintah `pip install numpy` di terminal anda.
Setelah numpy dipasang, anda boleh mengimport modul numpy dengan menambahkan baris `import numpy as np` pada permulaan program anda.
Berikut adalah contoh beberapa operasi asas numpy:
``` python
import numpy as np
# membuat array numpy dari senarai
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
# membuat array numpy dengan nilai tertentu
my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan lompat
# membuat array numpy dengan nilai rawak
my_random_array = np.random.rand(3, 3) # 3 baris dan 3 lajur
# mengakses elemen array numpy
print(my_array[0]) # mengakses elemen pertama
# melakukan operasi matematik pada array numpy
my_array = my_array + 1 # menambah setiap elemen dengan 1
my_array = my_array * 2 # mendarab setiap elemen dengan 2
# mengubah bentuk array numpy
my_array = np.reshape(my_array, (2, 5)) # menjadi array 2D dengan 2 baris dan 5 lajur
```
Itulah beberapa operasi asas numpy. Anda boleh menemui dokumentasi rasmi numpy di https://numpy.org/doc/stable/.
````
### from Indonesian to Jawi
````python
code_indon = """
`Untuk menggunakan numpy, pertama-tama, Anda perlu menginstalnya melalui pip. Anda dapat melakukannya dengan menjalankan perintah `pip install numpy` di terminal Anda.
Setelah numpy terinstal, Anda dapat mengimpor modul numpy dengan menambahkan baris `import numpy as np` di awal program Anda.
Berikut adalah contoh beberapa operasi dasar numpy:
``` python
import numpy as np
# membuat array numpy dari list
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
# membuat array numpy dengan rentang nilai tertentu
my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan loncatan
# membuat array numpy dengan nilai acak
my_random_array = np.random.rand(3, 3) # 3 baris dan 3 kolom
# mengakses elemen array numpy
print(my_array[0]) # mengakses elemen pertama
# melakukan operasi matematika pada array numpy
my_array = my_array + 1 # menambah setiap elemen dengan 1
my_array = my_array * 2 # mengalikan setiap elemen dengan 2
# mengubah bentuk array numpy
my_array = np.reshape(my_array, (2, 5)) # menjadi array 2D dengan 2 baris dan 5 kolom
```
Itulah beberapa operasi dasar numpy. Anda dapat menemukan dokumentasi resmi numpy di https://numpy.org/doc/stable/.
"""
input_ids = tokenizer.encode(f'terjemah ke Jawi: {code_indon}\n{tokenizer.eos_token}', return_tensors = 'pt')
outputs = model.generate(input_ids, max_length = 1024)
outputs = [i for i in outputs[0] if i not in all_special_ids]
print(tokenizer.decode(outputs, spaces_between_special_tokens = False))
````
Output,
````
`اونتوق مڠݢوناکن نومڤي، ڤرتام-تام، اندا ڤرلو مڠينتسڽ ملالوکن ڤيڤ. اندا داڤت ملاکوکنڽ دڠن منجالنکن ڤرينته `ڤيڤ اڤڤل نومڤي` د تيمورن اندا.
سلڤس نومڤي ترينستل، اندا داڤت مڠيڤور مودول نومڤي دڠن منمبهكن باريس `ايڤنين نومڤي اس نوؿ` د اول ڤروڬرام اندا.
بريکوت اداله چونتوه ببراڤ اوڤراسي داسر نومڤي:
``` python
ايمڤورت نومڤي اس نوؿ
# ممبوات اراي نومڤي دري سناراي
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
# ممبوات اراي نومڤي دڠن رنتڠ نيلاي ترتنتو
my_range = np.arange(0, 10, 2) # نيلاي اول، نيلاي اخير، دان لونچتن
# ممبوات اراي نومڤي دڠن نيلاي اچق
my_random_array = np.random.rand(3, 3) # ٣ باريس دان ٣ لوروس
# مڠاکس ايليمن اراي نومڤي
ڤوجود(my_array[0]) # مڠاکس ايليمن ڤرتام
# ملاکوکن اوڤراسي ماتماتيك ڤد اراي نومڤي
my_array = my_array + ١ # منمبه ستياڤ ايليمن دڠن ١
my_array = my_array * ٢ # مڠاکسس ستياڤ ايليمن دڠن ٢
# مڠوبه بنتوق اراي نومڤي
my_array = np.reshape(my_array, (2, 5)) # منجادي اراي ٢د دڠن ٢ باريس دان ٥ لوروس
```
اداله ببراڤ اوڤراسي داسر نومڤي. اندا داڤت منموکن دوكومنتاسي ريسمي نومڤي د https://numpy.org/doc/stable/.
````
### from Indonesian to Terengganu
````python
code_indon = """
`Untuk menggunakan numpy, pertama-tama, Anda perlu menginstalnya melalui pip. Anda dapat melakukannya dengan menjalankan perintah `pip install numpy` di terminal Anda.
Setelah numpy terinstal, Anda dapat mengimpor modul numpy dengan menambahkan baris `import numpy as np` di awal program Anda.
Berikut adalah contoh beberapa operasi dasar numpy:
``` python
import numpy as np
# membuat array numpy dari list
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
# membuat array numpy dengan rentang nilai tertentu
my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan loncatan
# membuat array numpy dengan nilai acak
my_random_array = np.random.rand(3, 3) # 3 baris dan 3 kolom
# mengakses elemen array numpy
print(my_array[0]) # mengakses elemen pertama
# melakukan operasi matematika pada array numpy
my_array = my_array + 1 # menambah setiap elemen dengan 1
my_array = my_array * 2 # mengalikan setiap elemen dengan 2
# mengubah bentuk array numpy
my_array = np.reshape(my_array, (2, 5)) # menjadi array 2D dengan 2 baris dan 5 kolom
```
Itulah beberapa operasi dasar numpy. Anda dapat menemukan dokumentasi resmi numpy di https://numpy.org/doc/stable/.
"""
input_ids = tokenizer.encode(f'terjemah ke terengganu: {code_indon}{tokenizer.eos_token}', return_tensors = 'pt')
outputs = model.generate(input_ids, max_length = 1024)
outputs = [i for i in outputs[0] if i not in all_special_ids]
print(tokenizer.decode(outputs, spaces_between_special_tokens = False))
````
Output,
````
`Kalu gune numpy, pertama-tama, mung kene ngambik die melalui pip. Mung buleh ngate ngah jalankan perintah `pip install numpy` dalang terminal mung.
Lepas numpy terinstal, mung buleh ngimport modul numpy tu dengan tambah baris `import numpy as np` dalang awal program mung.
Ni contoh sikit-sikit operasi dasar numpy:
``` python
import numpy as np
# buat array numpy dari list
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
# buat array numpy tu dengan rentang nilai tertentu
my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, ngah lompat
# buat array numpy tu dengan nilai acak
my_random_array = np.random.rand(3, 3) # 3 baris ngah 3 kolom
# akses elemen array numpy
print(my_array[0]) # akses elemen pertama
# buat operasi matematik dalang array numpy
my_array = my_array + 1 # tambah tiap tiap elemen denge 1
my_array = my_array * 2 # darab tiap tiap elemen denge 2
# ubah bentuk array numpy
my_array = np.reshape(my_array, (2, 5)) # jadi array 2D denge 2 baris ngah 5 kolom
```
Itu la sikit-sikit operasi dasar numpy. Mung buleh nemu dokumentasi rasmi numpy dalang https://numpy.org/doc/stable/.
````
### from Indonesian to Perak
How about to include some random sampling,
````python
code_indon = """
`Untuk menggunakan numpy, pertama-tama, Anda perlu menginstalnya melalui pip. Anda dapat melakukannya dengan menjalankan perintah `pip install numpy` di terminal Anda.
Setelah numpy terinstal, Anda dapat mengimpor modul numpy dengan menambahkan baris `import numpy as np` di awal program Anda.
Berikut adalah contoh beberapa operasi dasar numpy:
``` python
import numpy as np
# membuat array numpy dari list
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
# membuat array numpy dengan rentang nilai tertentu
my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, dan loncatan
# membuat array numpy dengan nilai acak
my_random_array = np.random.rand(3, 3) # 3 baris dan 3 kolom
# mengakses elemen array numpy
print(my_array[0]) # mengakses elemen pertama
# melakukan operasi matematika pada array numpy
my_array = my_array + 1 # menambah setiap elemen dengan 1
my_array = my_array * 2 # mengalikan setiap elemen dengan 2
# mengubah bentuk array numpy
my_array = np.reshape(my_array, (2, 5)) # menjadi array 2D dengan 2 baris dan 5 kolom
```
Itulah beberapa operasi dasar numpy. Anda dapat menemukan dokumentasi resmi numpy di https://numpy.org/doc/stable/.
"""
input_ids = tokenizer.encode(f'terjemah ke perak: {code_indon}{tokenizer.eos_token}', return_tensors = 'pt')
outputs = model.generate(input_ids, max_length = 1024, top_p=0.95,
top_k=50,
temperature=0.9,
do_sample=True,)
outputs = [i for i in outputs[0] if i not in all_special_ids]
print(tokenizer.decode(outputs, spaces_between_special_tokens = False))
````
Output,
````
Nih lah, ape yang teman teman nak buat ni. Miker nak kene buat macam tu.
**Dok suruh kome pasang numpy dari list, cuba masukkan baris `import numpy as np` dalam baris yang dah siap.
* Ni contoh beberapa operasi dasar numpy:
```python
import numpy as np
# buat array numpy dari list
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
# buat array numpy dalam nilai tertentu
my_range = np.arange(0, 10, 2) # nilai awal, nilai akhir, ngan jumpe
# buat array numpy dalam nilai acak
my_random_array = np.random.rand(3, 3) # 3 baris ngan 3 kolom
# access elemen array numpy
print(my_array[0]) # access element pertama
# buat operasi matematik kat array numpy
my_array = my_array + 1 # tambah setiap elemen ngan 1
my_array = my_array * 2 # darab tiap elemen ngan 2
# ubah bentuk array numpy
my_array = np.reshape(my_array, (2, 5)) # jadi array 2D dengan 2 baris ngan 5 kolom
```
Ate, ni beberapa operasi dasar numpy. Kome boleh cari dokumentasi rasmi numpy kat https://numpy.org/doc/stable/.
````
## how to generate more randomly?
Use random sampling, read more at https://huggingface.co/blog/how-to-generate#sampling
Below is to convert a news snippet to Sabah,
```python
news = """
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.
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.
Beliau memberitahu FMT, inisiatif ini boleh menjadikan Malaysia pemain berdaya saing di peringkat serantau dan antarabangsa.
"""
input_ids = tokenizer.encode(f'terjemah ke sabah: {news}{tokenizer.eos_token}', return_tensors = 'pt')
outputs = model.generate(
input_ids,
max_length=200,
top_p=0.95,
top_k=50,
temperature=0.9,
do_sample=True,
num_return_sequences=5
)
out = tokenizer.batch_decode([[i for i in o if i not in all_special_ids] for o in outputs])
for o in out:
print(o.strip(), '\n------\n')
```
Output,
```
Tingu ja la, mungkin ada buyuk-buyuk kasi betripak bah, sidak yang kritik pasal bajet 2025 yang papai dekat Anwar tu? Kin panas betul la cerita hari tu. Dorang ni main otak-otak ja, tapi orang tingu ja kerajaan sudah ndapok. Tingu ja la, mungkin ada buyuk-buyuk yang kita nda tau. Bah, mungkin ada buyuk-buyuk yang kita nda tau. Anu bah, mungkin ada buyuk yang kita nda tau. Ndapapa kalau nda faham lagi? Anu bah, kita mesti bikin kerajaan jadi lebih banyak tempat yang lagi banyak lagi yang boleh buat negeri kita jadi lebih banyak.
------
Bah, palui betul keadaan orang ramai pasal bajet 2025 yang dibahaskan oleh Perdana Menteri, Anwar Ibrahim tu, tu sebab dorang tingu saja, dorang fikir betul-betul depan, nda payah la nak betulkan ekonomi lama-lama.
Bawani Lelchumanan dari Business School Sunway tu cakap, kita gabung tu untuk naikkan negara kita jadi gulung tikar kalau mau masuk sektor semikonduktor, ekonomi hijau, ekonomi Islam, ndak payah la ubah ekonomi digital tu.
Kito bilang dari FMT, mungkin kita boleh buat Malaysia jadi gulung tikar di peringkat serantau. Sia boleh buat Malaysia jadi pemain kuat di peringkat antarabangsa.
Anu bah, kalau ada apa-apa nda, tanya dia? Tingu saja la, mungkin ada buyuk-buyuk yang kita nda tau. Tingu ja, mungkin ada cara lain yang sia-kita mau. Bilang la, mungkin ada
------
Bah, kunuk sia mau bilang sama dia:
Anwar kunuk kerajaan kita dulu suka tingu, hari tu dia mikir depan-depan, betul ka? Lah, palui betul la kalau dorang main-main. Tingu saja, ekonomi kita ni macam dulu-dulu saja. Bawa betul la, bilang pasal ni:
Sia di sini nda mau betrip-trip bah, sama sama dia-kita. Dorang bilang macam-macam mau bikin semua ini orang. Kalau kita mau maju sama-sama, mesti ada duit lebih.
Bah, itu cerita pasal kerajaan ni, tapi kalau kita mau maju, boleh buyuk-buyuk. Kalau betul sia main-main, memang sia tingu saja la. Kalau ada apa-apa yang kita mau, kita mesti la mau betrip sama sama-sama. Tingu saja la, mungkin ada yang mau kita nda jadi lebih kuat sama n
------
Bah, palui betul la si ekonomi ni, baru-baru ni ada orang puji-puji pasal bajet 2025 tu. Kamurang nampak macam dulu dah fikir-fikir dulu. Tapi semua orang cakap elok-elok, orang kita semua mau pastikan negara kita ni jadi orang yang mau ubah. Kin panas bah, orang Sabah cakap kita boleh buat sesuatu.
Anu bah, mungkin ada buyuk-buyuk yang kita nda tau. Kalau ada yang mau, kita bikin perubahan apa-apa saja. Nanti kita semua jadi orang yang nak melabur sama orang yang mau maju sama negara ni. Kin panas bah, tapi kalau semua orang pandai, mesti la kita jaga diri. Kamurang fikir macam mana?
------
Bah, kunuk sia mau bilang pasal bah, mungkin ada buyuk-buyuk yang nda kasi baik dalam negara kalau kita mau baik-baik saja. Anu bah, sudah ada orang-orang Malaysia yang kita nda tau sama kasi orang-orang yang ada kepentingan, sudah tentu ada orang yang mau bilang apa-apa. Bawani Lelchumanan dari Universitas Sunway tu cakap, duit negara kita ni masih ada yang mau kita maju, dorang mau bikin duit lebih, jangan sampai kita jadi juara. Ndak mau bikin Malaysia jadi juara untuk lawan, tapi mungkin kita perlu ada cara lain.
------
```
## speed up inference
Use SDPA fork at https://github.com/mesolitica/t5-sdpa,
Or you can finish the PR at https://github.com/huggingface/transformers/pull/31167 lol.
## how to finetune your own dataset?
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. |