Doctor AI

Dr. Savath Saypadith

240 ບົດຄວາມ

ຍຸກແຫ່ງ Small Language Models (SLMs): ເປັນຫຍັງໂມເດວຂະໜາດນ້ອຍເຊັ່ນ Phi-3 ຈຶ່ງເປັນອະນາຄົດຂອງ Edge AI

ໂພສເມື່ອ # AI # Small Language Models # Edge AI # Deep Learning

ຍຸກແຫ່ງ Small Language Models (SLMs): ເປັນຫຍັງໂມເດວຂະໜາດນ້ອຍເຊັ່ນ Phi-3 ຈຶ່ງເປັນອະນາຄົດຂອງ Edge AI

ປັດຈຸບັນ, ໂລກຂອງປັນຍາປະດິດ (AI) ກຳລັງຖືກຄອບງຳດ້ວຍ Large Language Models (LLMs) ຂະໜາດມະຫາສານ ເຊັ່ນ GPT-4 ຫຼື Llama 3 ທີ່ມີເຖິງ 70B ພາຣາມິເຕີຂຶ້ນໄປ. ແຕ່ສຳລັບນັກພັດທະນາ (Developers) ແລະ ວິສະວະກອນໃນປະເທດລາວ, ການນຳໃຊ້ໂມເດວຂະໜາດໃຫຍ່ເຫຼົ່ານີ້ໃນສາຍການຜະລິດຈິງ (Production) ມັກຈະພົບກັບສິ່ງທ້າທາຍໃຫຍ່ໆ: ຄ່າໃຊ້ຈ່າຍຂອງ GPU ແລະ ຄວາມໜ່ວງ (Latency) ຂອງເຄືອຂ່າຍອິນເຕີເນັດ.

ລອງນຶກພາບລະບົບ AI ສຳລັບວິເຄາະເຊັນເຊີ IoT ກະສິກຳໃນສວນກາເຟຢູ່ເມືອງປາກຊ່ອງ ຫຼື ລະບົບແຈ້ງເຕືອນລະດັບນ້ຳຂອງທີ່ຕ້ອງເຮັດວຽກແບບທັນທີ (Real-time) ເທິງ Raspberry Pi ຫຼື Edge Device ຂະໜາດນ້ອຍ. ການເຊື່ອມຕໍ່ Cloud ຕະຫຼອດເວລາອາດເປັນໄປໄດ້ຍາກ ແລະ ບໍ່ປອດໄພສະເໝີໄປ. ນີ້ຄືຈຸດທີ່ Small Language Models (SLMs) ເຊັ່ນ Phi-3 ຈາກ Microsoft ເຂົ້າມາປ່ຽນແປງກົດເກນ.

ສະຖາປັດຕະຍະກຳຂອງ Phi-3: ໂມເດວທີ່ຮຽນຮູ້ຈາກຄຸນນະພາບ, ບໍ່ແມ່ນປະລິມານ

ກົດເກນການຂະຫຍາຍຕົວ (Chinchilla Scaling Laws) ມັກຈະຊີ້ໃຫ້ເຫັນວ່າ ຍິ່ງໂມເດວໃຫຍ່ ແລະ ຂໍ້ມູນຫຼາຍປະສິດທິພາບຍິ່ງດີ. ແຕ່ Phi-3 (ໂດຍສະເພາະ Phi-3-mini ທີ່ຂະໜາດພຽງ 3.8B parameters) ໄດ້ພິສູດວ່າອັດຕາສ່ວນການຮຽນຮູ້ສາມາດຖືກປັບປຸງໄດ້ ຫາກເຮົາຝຶກສອນມັນດ້ວຍ “ຂໍ້ມູນລະດັບປຶ້ມແບບຮຽນ” (Textbook-quality data).

ໃນທາງສະຖາປັດຕະຍະກຳ, Phi-3 ໃຊ້ Decoder-only Transformer ໂດຍມີການປັບແຕ່ງທີ່ສຳຄັນເພື່ອຫຼຸດການໃຊ້ໜ່ວຍຄວາມຈຳ (Memory Footprint):

ການນຳໃຊ້ SLMs ເທິງ Edge Devices ໃນລາວ (ດ້ວຍ 4-bit Quantization)

ເພື່ອຈະເອົາໂມເດວ 3.8B ໄປວາງເທິງ Edge Server ທີ່ມີ VRAM ພຽງ 4GB - 8GB (ເຊັ່ນ Jetson Nano ຫຼື ເຄື່ອງ Server ສຳລັບຂະໜາດກາງຂອງ SMEs ໃນວຽງຈັນ), ເຮົາຈຳເປັນຕ້ອງໃຊ້ເຕັກນິກ Quantization ເຊັ່ນ NF4 (Normal Float 4-bit) ຜ່ານຫ້ອງສະໝຸດ bitsandbytes.

ລອງມາເບິ່ງຕົວຢ່າງການຂຽນໂຄດພາສາ Python ເພື່ອໂຫຼດ ແລະ ດຳເນີນການ Inference ແບບ Offline ສຳລັບການສະຫຼຸບຂໍ້ມູນກະສິກຳ:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

# 1. ຕັ້ງຄ່າ Configuration ສຳລັບ 4-bit Quantization ເພື່ອປະຢັດພື້ນທີ່ VRAM ດຶງປະສິດທິພາບສູງສຸດ
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_use_double_quant=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16
)

model_id = "microsoft/Phi-3-mini-4k-instruct"

print("ກຳລັງໂຫຼດໂມເດວ Phi-3 ດ້ວຍນ້ຳໜັກ 4-bit...")
# 2. ໂຫຼດ Tokenizer ແລະ Model ສູ່ Edge GPU
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    quantization_config=bnb_config,
    device_map="auto",
    trust_remote_code=True
)

# 3. ສ້າງ Prompt ສຳລັບ Context ໃນລາວ (ສົມມຸດມີການແປ ຫຼື ໂມເດວຖືກປັບຈູນມາແລ້ວ)
prompt_text = "Analyze the key factors affecting Arabica coffee yield in Paksong during the monsoon season."
sys_prompt = "You are an AI agricultural assistant for Lao farmers."
messages = [
    {"role": "system", "content": sys_prompt},
    {"role": "user", "content": prompt_text}
]

inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to("cuda")

# 4. Inference Model 
outputs = model.generate(
    inputs,
    max_new_tokens=150,
    temperature=0.3, # ຄ່າຕ່ຳເພື່ອໃຫ້ຂໍ້ມູນຕອບກັບມີຄວາມຖືກຕ້ອງສູງສຸດ (ບໍ່ເພີ້ເຈີ້/Hallucinate)
    do_sample=True
)

# 5. ສະແດງຜົນ
response = tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True)
print("ຜົນການວິເຄາະ:\n", response)

ສິ່ງທ້າທາຍ ແລະ ການປັບຈູນ (Fine-Tuning) ສຳລັບພາສາລາວ ດວຍ QLoRA

ຂໍ້ຈຳກັດຫຼັກຂອງ Phi-3 ຄືຄວາມສາມາດພາສາລາວທີ່ແນ່ນອນວ່າຍັງບໍ່ທຽບເທົ່າພາສາອັງກິດ (ເນື່ອງຈາກການເຂົ້າລະຫັດ Tokenizer ຍັງບໍ່ໄດ້ລວມພາສາລາວແບບຮອບດ້ານ). ດັ່ງນັ້ນ ສຳລັບນັກວິໄຈລາວ, ວິທີແກ້ແມ່ນການເຮັດ Continuous Pre-training ເພື່ອເພີ່ມຄຳສັບພາສາລາວເຂົ້າໄປໃນ Vocabulary ຈາກນັ້ນຈຶ່ງເຮັດ Fine-tuning ດ້ວຍເຕັກນິກ Low-Rank Adaptation (LoRA).

ໃນທາງຄະນິດສາດ, ໂມເດວ LLM ມີເອກະທະພາຣາມິເຕີ (Weight Matrix) ຂະໜາດໃຫຍ່ W0Rd×kW_0 \in \mathbb{R}^{d \times k}. ແທນທີ່ເຮົາຈະປັບປຸງ W0W_0 ທັງໝົດເຊິ່ງໃຊ້ໜ່ວຍຄວາມຈຳສູງ, LoRA ຈະຊອກຫາການປ່ຽນແປງຄ່ານ້ຳໜັກ (ΔW\Delta W) ຜ່ານການຄູນເມທຣິກລະດັບຕ່ຳ (Low-rank decomposition):

W=W0+ΔW=W0+BAW = W_0 + \Delta W = W_0 + B A

ໂດຍທີ່ BRd×rB \in \mathbb{R}^{d \times r} ແລະ ARr×kA \in \mathbb{R}^{r \times k}, ແລະ ຄ່າ Rank rr ຈະມີຄ່ານ້ອຍຫຼາຍເມື່ອທຽບກັບ dd ແລະ kk (ເຊັ່ນ r=16r=16). ເມື່ອບວກກັບ Quantization ຈຶ່ງເກີດເປັນ QLoRA ທີ່ເຮັດໃຫ້ນັກສຶກສາ ແລະ ນັກພັດທະນາໃນລາວສາມາດສອນໂມເດວໃຫ້ເຂົ້າໃຈພາສາລາວ, ວັດທະນະທຳປະເພນີຊາດ (ເຊັ່ນ ງານບຸນທາດຫຼວງ) ຫຼື ຮູ້ຈັກກົດໝາຍທ້ອງຖິ່ນໄດ້ໂດຍໃຊ້ພຽງກາດຈໍດຽວເຊັ່ນ RTX 3090.

ຂໍ້ສັງເກດສຳຄັນ (Key Takeaways)

ສະຫຼຸບ ການກ້າວເຂົ້າມາຂອງ Small Language Models ບໍ່ພຽງແຕ່ເປັນການພັດທະນາທາງໄອທີຂອງໂລກເທົ່ານັ້ນ, ແຕ່ມັນຍັງເປັນການເປີດປະຕູສູ່ຄວາມເທົ່າທຽມທາງເຕັກໂນໂລຊີສຳລັບປະເທດພວມພັດທະນາຢ່າງລາວ. ໂມເດວທີ່ນ້ອຍລົງໝາຍເຖິງຄ່າໃຊ້ຈ່າຍທີ່ຕ່ຳລົງ ເພີ່ມອິດສະຫຼະພາບໃຫ້ແກ່ບັນດາ SMEs, Startup ໂດຍສະເພາະຢ່າງຍິ່ງການເອົາ AI ມາຊ່ວຍປະມວນຜົນການສັນຈອນໃນນະຄອນຫຼວງວຽງຈັນ ຫຼື ສ້າງລະບົບຜູ້ຊ່ວຍສະເໝືອນຈິງ (Virtual Assistant) ແບບອອັອຟລາຍ. ຍຸກຂອງ Edge AI ມາຮອດແລ້ວ ແລະ ມັນຈະມີບົດບາດສຳຄັນໃນການຂັບເຄື່ອນເສດຖະກິດດິຈິຕອລຂອງລາວໃນອະນາຄົດ.