huseinzol05's picture
Update README.md
993afdd
metadata
language:
  - ms

Full Parameter Finetuning 7B 32768 context length Mistral on Malaysian text

README at https://github.com/mesolitica/malaya/tree/5.1/session/mistral#7b-32768-context-length

WandB, https://wandb.ai/mesolitica/fpf-mistral-7b-hf-32k?workspace=user-husein-mesolitica

from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
import torch

TORCH_DTYPE = 'bfloat16'
nf4_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type='nf4',
    bnb_4bit_use_double_quant=True,
    bnb_4bit_compute_dtype=getattr(torch, TORCH_DTYPE)
)

tokenizer = AutoTokenizer.from_pretrained('mesolitica/mistral-7b-32768-fpf')
model = AutoModelForCausalLM.from_pretrained(
    'mesolitica/mistral-7b-32768-fpf',
    use_flash_attention_2 = True,
    quantization_config = nf4_config
)

prompt = '<s>Soalan: KWSP tu apa?\nJawapan:'
inputs = tokenizer([prompt], return_tensors='pt', add_special_tokens=False).to('cuda')
generate_kwargs = dict(
    inputs,
    max_new_tokens=512,
    top_p=0.95,
    top_k=50,
    temperature=0.9,
    do_sample=True,
    num_beams=1,
    repetition_penalty=1.05,
)
r = model.generate(**generate_kwargs)
print(tokenizer.decode(r[0]))
<s> Soalan: KWSP tu apa?
Jawapan: kwsp ialah kwsp iaitu kumpulan wang simpanan pekerja</s>
prompt = '<s>Soalan: kenapa malaysia suka makan nasi lemak?\nJawapan:'
inputs = tokenizer([prompt], return_tensors='pt', add_special_tokens=False).to('cuda')
generate_kwargs = dict(
    inputs,
    max_new_tokens=512,
    top_p=0.95,
    top_k=50,
    temperature=0.9,
    do_sample=True,
    num_beams=1,
    repetition_penalty=1.05,
)
r = model.generate(**generate_kwargs)
print(tokenizer.decode(r[0]))
<s> Soalan: kenapa malaysia suka makan nasi lemak?
Jawapan:Nasi Lemak merupakan antara sarapan pagi yang paling popular dalam kalangan rakyat Malaysia terutamanya orang Melayu. Ia mudah didapati di mana-mana sahaja seperti restoran mamak, gerai tepi jalan, gerai di pasar pagi, di stesen minyak, pasar malam, dan sebagainya. Sajian ini juga dikenali sebagai Nasi lemak antarabangsa kerana mendapat sambutan hangat daripada seluruh dunia. Selain itu, nasi lemak mempunyai bau yang sangat menyelerakan dan rasanya juga sangat unik. Tidak hairanlah mengapa ia digemari oleh ramai orang.Nasi lemak mempunyai santan, kerisik, dan serbuk kunyit yang ditumis dalam lemak kelapa dan dibungkus dalam daun pisang atau mangkuk plastik. Nasi lemak biasanya disajikan bersama ayam goreng, daging rendang, telur rebus, ikan bilis, timun, dan sambal yang dibuat daripada kacang tanah, udang atau petai. Variasi lain termasuk parutan kelapa muda, bilis goreng, udang goreng, dan sotong goreng. Di Malaysia, nasi lemak boleh didapati di gerai di jalanan, restoran tradisional, gerai di pasar pagi, dan di gerai tepi jalan di seluruh negara.</s>
prompt = '<s>Soalan: macam mana nak install awscli dalam ubuntu\nJawapan:'
inputs = tokenizer([prompt], return_tensors='pt', add_special_tokens=False).to('cuda')
generate_kwargs = dict(
    inputs,
    max_new_tokens=512,
    top_p=0.95,
    top_k=50,
    temperature=0.9,
    do_sample=True,
    num_beams=1,
    repetition_penalty=1.05,
)
r = model.generate(**generate_kwargs)
print(tokenizer.decode(r[0]))
<s> Soalan: macam mana nak install awscli dalam ubuntu
Jawapan: Anda boleh memasang awscli dalam Ubuntu dengan menggunakan pengurus pakej apt-get. Caranya adalah seperti berikut: 1. Buka terminal dan kemas kini senarai pakej dengan menjalankan arahan berikut: ```sudo apt-get update``` 2. Pasang awscli dengan menjalankan arahan berikut: ```sudo apt-get install awscli``` Selepas menyelesaikan langkah-langkah di atas, anda akan mempunyai awscli dipasang dalam Ubuntu anda. Anda boleh menggunakannya untuk berinteraksi dengan AWS SDK dalam kod Python anda.</s>