Malaysian-Audio-Qwen2.5-7B-Speech-Instruct

Speech model on top of mesolitica/Malaysian-Qwen2.5-7B-Audio-Instruct. It designs for voice assistant general question answer.

How we trained it?

Speech instructions, actual conversations related to coding, politics, chat assistant and general QA.

Dataset

  1. mesolitica/Malaysian-UltraChat-Speech-Multiturn-Instructions, 1 epoch.
  2. mesolitica/Malaysian-Multiturn-Chat-Assistant, 1 epoch.
  3. mesolitica/Malaysian-Speech-Instructions, 1 epoch.
  4. mesolitica/Malaysian-Reasoning-Speech-Instructions, 1 epoch.
  5. mesolitica/Malaysian-Speech-Description-Timestamp-Instructions, random sampling 0.2 epoch.
  6. mesolitica/Cantonese-Radio-Description-Instructions, random sampling 0.2 epoch.
  7. mesolitica/Emilia-Mandarin-Description-Instructions, random sampling 0.2 epoch.
  8. mesolitica/Malaysian-SFT/combined-malaysian-sft-5k-sample.jsonl, text corpus, 1 epoch.
  9. mesolitica/Malaysian-Instructions/voice_assistant, text only instructions, 1 epoch.
  10. mesolitica/Malaysian-Instructions/mixed_manglish, text only instructions, 1 epoch.
  11. mesolitica/Malaysian-Instructions/manglish, text only instructions, 1 epoch.
  12. mesolitica/Malaysian-Instructions/longer_respond, text only instructions, 1 epoch.

With total 3.14B tokens (include text only instructions) or 9584.595 audio hours.

Benchmark

image/png

How to generate

You can try more examples at https://github.com/mesolitica/malaya-speech/tree/master/speech/speech-instructions

from transformers import AutoProcessor, AutoModel
from transformers import TextStreamer
import librosa
import torch

model = AutoModel.from_pretrained(
    'mesolitica/Malaysian-Qwen2.5-7B-Speech-Instruct',
    torch_dtype = 'auto',
    trust_remote_code = True,
)
_ = model.cuda()
processor = AutoProcessor.from_pretrained(
    'mesolitica/Malaysian-Qwen2.5-7B-Speech-Instruct',
    trust_remote_code = True,
)

conversation = [
    {"role": "user", "content": [
        {"type": "audio", "audio_url": 'speech/kemiskinan.mp3'},
    ]},
]
text = processor.apply_chat_template(conversation, add_generation_prompt=True, tokenize=False)
audios = []
for message in conversation:
    if isinstance(message["content"], list):
        for ele in message["content"]:
            if ele["type"] == "audio":
                audios.append(librosa.load(
                    ele['audio_url'],
                    sr=processor.feature_extractor.sampling_rate)[0]
                )

inputs = processor(text=text, audios=audios, return_tensors="pt", padding=True).to('cuda')
inputs['input_features'] = inputs['input_features'].to(model.dtype)
with torch.no_grad():
    generate_kwargs = dict(
        **inputs,
        max_new_tokens=2048,
        top_p=0.95,
        top_k=50,
        temperature=0.01,
        do_sample=True,
        repetition_penalty=1.05,
    )
    generation_output = model.generate(**generate_kwargs)
generate_ids = generation_output[:, inputs.input_ids.size(1):]
output = processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
print(output)

Output,

Malaysia telah mencapai kemajuan yang ketara dalam mengurangkan kemiskinan sejak beberapa dekad yang lalu, tetapi masih terdapat kumpulan orang di negara ini yang hidup dalam kemiskinan. Menurut Bank Dunia, pada tahun 2016, kadar kemiskinan Malaysia adalah sekitar 5.6%, iaitu penurunan yang ketara daripada parasnya yang paling tinggi pada awal 1970-an.

Walau bagaimanapun, walaupun dengan pengurangan keseluruhan ini, kemiskinan kekal sebagai isu penting bagi sesetengah komuniti dan wilayah tertentu di Malaysia. Terdapat beberapa faktor yang menyumbang kepada kelaziman berterusan kemiskinan di negara ini:

1. Ketidaksamaan pendapatan: Walaupun pertumbuhan ekonomi keseluruhan Malaysia, jurang antara orang kaya dan miskin telah bertambah lebar. Ini disebabkan oleh pelbagai faktor seperti perbezaan serantau, diskriminasi kaum dan etnik, dan kekurangan akses kepada pendidikan berkualiti.
2. Kos sara hidup yang tinggi: Harga barangan dan perkhidmatan di Malaysia semakin meningkat, menjadikannya sukar untuk isi rumah berpendapatan rendah membeli keperluan asas. Kenaikan kos perumahan, pendidikan dan penjagaan kesihatan telah menjadi penyumbang utama kepada kemiskinan.
3. Pekerjaan tidak formal: Sebahagian besar tenaga kerja Malaysia bekerja secara tidak formal, tanpa faedah atau perlindungan sosial. Ini boleh membawa kepada gaji rendah dan kekurangan mobiliti menaik, seterusnya mengekalkan kemiskinan.
4. Diskriminasi dan peminggiran: Komuniti tertentu, termasuk Orang Asli (orang asli) dan pekerja migran, menghadapi diskriminasi dan peminggiran sistemik, yang boleh mengehadkan akses mereka kepada peluang pendidikan, pekerjaan dan pembangunan ekonomi.
5. Perubahan iklim dan bencana alam: Bencana alam seperti banjir dan tanah runtuh boleh memberi kesan yang ketara kepada komuniti yang sudah rentan, selalunya membawa kepada kemerosotan lagi dalam taraf hidup mereka.

Untuk menangani cabaran ini, kerajaan Malaysia telah melaksanakan pelbagai dasar dan program yang bertujuan untuk mengurangkan kemiskinan dan menggalakkan inklusi sosial. Walau bagaimanapun, lebih banyak usaha diperlukan untuk memastikan semua rakyat Malaysia dapat mendapat manfaat sepenuhnya daripada pertumbuhan ekonomi negara dan tiada siapa pun yang ditinggalkan.

More examples

We cover more examples such as RAG multi-turn, force specific languages, voice assistant mode, reasoning and longer respond at https://github.com/mesolitica/malaya/wiki/Malaysian-Speech-Instruct

Support in vLLM

You can use this fork to serve the model in vLLM, https://github.com/mesolitica/vllm-llmaudio

import base64
from openai import OpenAI

openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8001/v1"

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

with open('speech/kemiskinan.mp3', 'rb') as fopen:
    audio_base64 = base64.b64encode(fopen.read()).decode('utf-8')
  
model = 'mesolitica/Malaysian-Qwen2.5-7B-Speech-Instruct'

chat_completion_from_base64 = client.chat.completions.create(
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "input_audio",
                "input_audio": {
                    "data": audio_base64,
                    "format": "mp3"
                },
            },
            {
                "type": "text",
                "text": "explain the audio"
            },
        ],
        
    }],
    model=model,
    max_completion_tokens=1024,
    temperature=0.6,
    top_p=0.9,
)

Output,

ChatCompletion(id='chatcmpl-da66988137c340b2a599788e59cd51e3', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='Malaysia telah mencapai kemajuan yang ketara dalam mengurangkan kemiskinan sejak beberapa dekad yang lalu, tetapi masih terdapat sebilangan besar orang yang hidup dalam kemiskinan. Menurut Bank Dunia, pada 2016, 0.6% daripada penduduk Malaysia hidup di bawah garis kemiskinan negara, yang ditakrifkan sebagai pendapatan bulanan sebanyak RM2,200 (kira-kira USD 520). Walau bagaimanapun, ini adalah peningkatan ketara daripada kadar kemiskinan 15.8% pada tahun 1970.\n\nWalaupun kadar kemiskinan ini agak rendah, Malaysia masih mempunyai masalah yang ketara dengan ketidaksamaan pendapatan. Menurut Bank Dunia, pekali Gini Malaysia, ukuran ketidaksamaan pendapatan, ialah 0.41 pada 2019, yang agak tinggi berbanding negara lain di rantau ini. Ini menunjukkan bahawa walaupun Malaysia telah berjaya mengurangkan kemiskinan secara keseluruhan, faedah pertumbuhan ekonomi tidak diagihkan sama rata, dan masih terdapat sebilangan besar orang yang hidup dalam kemiskinan.\n\nTerdapat beberapa sebab mengapa kemiskinan berterusan di Malaysia walaupun negara itu menjadi salah satu yang paling kaya di Asia Tenggara. Ini termasuk:\n\n1. Ketidaksamaan pendapatan: Seperti yang dinyatakan sebelum ini, Malaysia mempunyai tahap ketidaksamaan pendapatan yang agak tinggi. Ini bermakna sebahagian besar kekayaan negara tertumpu di tangan sebilangan kecil orang, manakala ramai yang lain hidup dalam kemiskinan.\n2. Pendidikan dan kemahiran: Terdapat korelasi yang kuat antara tahap pendidikan dan tahap pendapatan. Di Malaysia, terdapat jurang yang ketara dalam akses kepada pendidikan berkualiti antara bandar dan luar bandar, serta antara kumpulan sosio-ekonomi yang berbeza. Ini bermakna ramai orang tidak mempunyai kemahiran atau pendidikan yang diperlukan untuk mendapatkan pekerjaan yang membayar dengan baik, yang boleh mengekalkan kemiskinan.\n3. Geografi dan infrastruktur: Sesetengah kawasan di Malaysia, terutamanya di kawasan luar bandar dan terpencil, mempunyai akses terhad kepada perkhidmatan asas seperti elektrik, air bersih dan pengangkutan. Ini boleh menyukarkan orang yang tinggal di kawasan ini untuk mengakses pasaran dan peluang ekonomi, yang membawa kepada kemiskinan.\n4. Diskriminasi dan peminggiran: Terdapat juga isu diskriminasi dan peminggiran dalam masyarakat Malaysia, terutamanya terhadap kumpulan etnik dan agama tertentu. Ini boleh mengehadkan peluang ekonomi dan mengekalkan kemiskinan.\n\nUntuk menangani kemiskinan di Malaysia, kerajaan telah melaksanakan pelbagai program dan dasar, termasuk program pemindahan tunai, latihan kemahiran dan program pembangunan komuniti. Walau bagaimanapun, lebih banyak perlu dilakukan untuk menangani punca kemiskinan, seperti ketidaksamaan pendapatan dan diskriminasi, dan untuk memastikan faedah pertumbuhan ekonomi diagihkan dengan lebih saksama.', refusal=None, role='assistant', annotations=None, audio=None, function_call=None, tool_calls=[], reasoning_content=None), stop_reason=None)], created=1750399729, model='mesolitica/Malaysian-Qwen2.5-7B-Speech-Instruct', object='chat.completion', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=856, prompt_tokens=597, total_tokens=1453, completion_tokens_details=None, prompt_tokens_details=None), prompt_logprobs=None, kv_transfer_params=None)

Source code

Source code at https://github.com/mesolitica/malaya/tree/master/session/audiollm

Downloads last month
34
Safetensors
Model size
8.25B params
Tensor type
I64
·
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for mesolitica/Malaysian-Qwen2.5-7B-Speech-Instruct

Collection including mesolitica/Malaysian-Qwen2.5-7B-Speech-Instruct