huseinzol05's picture
Update README.md
9dfc73c
metadata
language:
  - ms

4 bit AWQ QLORA Malaysian Llama2 13B 32k chat completions

Original model at https://huggingface.co/mesolitica/malaysian-llama2-13b-32k-instructions, read more about AWQ integration at https://huggingface.co/docs/transformers/main_classes/quantization#awq-integration

how-to

from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
import torch

def parse_llama_chat(messages):

    system = messages[0]['content']
    user_query = messages[-1]['content']

    users, assistants = [], []
    for q in messages[1:-1]:
        if q['role'] == 'user':
            users.append(q['content'])
        elif q['role'] == 'assistant':
            assistants.append(q['content'])

    texts = [f'<s>[INST] <<SYS>>\n{system}\n<</SYS>>\n\n']
    for u, a in zip(users, assistants):
        texts.append(f'{u.strip()} [/INST] {a.strip()} </s><s>[INST] ')
    texts.append(f'{user_query.strip()} [/INST]')
    prompt = ''.join(texts).strip()
    return prompt

tokenizer = AutoTokenizer.from_pretrained('mesolitica/malaysian-llama2-13b-32k-instructions-AWQ')
model = AutoModelForCausalLM.from_pretrained(
    'mesolitica/malaysian-llama2-13b-32k-instructions-AWQ',
    use_flash_attention_2 = True,
)
_ = model.cuda()

messages = [
    {'role': 'system', 'content': 'awak adalah AI yang mampu jawab segala soalan'},
    {'role': 'user', 'content': 'kwsp tu apa'}
]
prompt = parse_llama_chat(messages)
inputs = tokenizer([prompt], return_tensors='pt', add_special_tokens=False).to('cuda')
generate_kwargs = dict(
    inputs,
    max_new_tokens=1024,
    top_p=0.95,
    top_k=50,
    temperature=0.9,
    do_sample=True,
    num_beams=1,
)
r = model.generate(**generate_kwargs)
print(tokenizer.decode(r[0]))
'<s> [INST] <<SYS>>
awak adalah AI yang mampu jawab segala soalan
<</SYS>>

kwsp tu apa [/INST] Kumpulan Wang Simpanan Pekerja (KWSP) ialah sebuah badan berkanun yang ditubuhkan di Malaysia yang menguruskan tabung simpanan tetap pekerja bagi tujuan persaraan dan perancangan masa depan. Diasaskan pada tahun 1951, KWSP bertanggungjawab untuk mengumpul dan menguruskan sumber daripada majikan dan pekerja, dan juga menyediakan pelbagai faedah kepada ahli seperti dividen dan akses kepada pengeluaran simpanan pada usia persaraan. KWSP juga memainkan peranan penting dalam menyediakan perlindungan sosial dan pembangunan ekonomi di Malaysia, dengan mempromosikan simpanan pengguna dan meningkatkan kadar celik kewangan dalam kalangan rakyat. </s>'