Doctor AI

Dr. Savath Saypadith

240 ບົດຄວາມ

ການສຳຫຼວດ Gemma: ໂມເດວ Open Weights ຈາກ Google ແລະ ການໃຊ້ງານແບບ Offline

ໂພສເມື່ອ # Machine Learning # LLMs # NLP # Open Weights

ການສຳຫຼວດ Gemma: ໂມເດວ Open Weights ຂະໜາດນ້ອຍແຕ່ຊົງພະລັງຈາກ Google

ລອງຈິນຕະນາການເບິ່ງວ່າ: ທ່ານກຳລັງນັ່ງຂຽນໂປຣແກຣມຢູ່ຮ້ານກາເຟໃນນະຄອນຫຼວງວຽງຈັນ ຫຼື ກຳລັງລົງພື້ນທີ່ເກັບກຳຂໍ້ມູນກະສິກຳຢູ່ສວນກາເຟເມືອງປາກຊ່ອງ ບ່ອນທີ່ສັນຍານອິນເຕີເນັດອາດຈະບໍ່ຄ່ອຍສະຖຽນປານໃດ. ການທີ່ຈະຕ້ອງເພິ່ງພາ API ຈາກ Cloud ຕະຫຼອດເວລາເພື່ອປະມວນຜົນ AI ເປັນເລື່ອງທີ່ຫຍຸ້ງຍາກ ແລະ ອາດມີຄ່າໃຊ້ຈ່າຍສູງ. ນີ້ຄືຈຸດທີ່ໂມເດວຂະໜາດນ້ອຍ (Lightweight Models) ເຂົ້າມາມີບົດບາດສຳຄັນ.

ມື້ນີ້, ເຮົາຈະມາເຈາະເລິກ Gemma ເຊິ່ງເປັນໂມເດວ Open Weights ຈາກ Google ທີ່ຖືກອອກແບບມາໃຫ້ສາມາດນຳໃຊ້ (Run) ໄດ້ເທິງ Laptop ທົ່ວໄປ. ໃນບົດຄວາມນີ້, ເຮົາຈະມາເບິ່ງວິທີການດຶງເອົາພະລັງຂອງ Gemma ມາໃຊ້ງານປະມວນຜົນຂໍ້ມູນແບບ Offline ສຳລັບທຸລະກິດ SMEs ແລະ ນັກພັດທະນາໃນລາວ.

Gemma ແມ່ນຫຍັງ?

Gemma ເປັນໂມເດວພາສາຂະໜາດໃຫຍ່ (LLM) ທີ່ຖືກພັດທະນາຂຶ້ນໂດຍນຳໃຊ້ເຕັກໂນໂລຊີ ແລະ ສະຖາປັດຕະຍະກຳດຽວກັນກັບ Gemini ທີ່ເປັນໂມເດວເຮືອທຸງຂອງ Google. ແຕ່ສິ່ງທີ່ເຮັດໃຫ້ Gemma ໂດດເດັ່ນຄືມັນເປັນໂມເດວແບບ Open Weights ທີ່ອະນຸຍາດໃຫ້ນັກພັດທະນາສາມາດດາວໂຫຼດນ້ຳໜັກ (Weights) ຂອງໂມເດວມາໃຊ້ງານ ແລະ ປັບແຕ່ງໄດ້ເອງ.

Gemma ມາພ້ອມກັບ 2 ຂະໜາດຫຼັກຄື:

ເປັນຫຍັງນັກພັດທະນາໃນລາວຈຶ່ງຄວນໃຊ້ Gemma ແບບ Offline?

  1. ຄວາມປອດໄພຂອງຂໍ້ມູນ (Data Privacy): ຖ້າທ່ານກຳລັງພັດທະນາລະບົບໃຫ້ກັບຄລີນິກທ້ອງຖິ່ນ ຫຼື SME ເຊັ່ນ: ບໍລິສັດຂົນສົ່ງທີ່ຕ້ອງຈັດການກັບຂໍ້ມູນລູກຄ້າ, ການປະມວນຜົນລາຍຊື່ ແລະ ເອກະສານພາຍໃນເຄື່ອງ (Local) ຈະປອດໄພກວ່າການສົ່ງຂໍ້ມູນໄປຍັງ Cloud ຕ່າງປະເທດ.
  2. ເຂົ້າເຖິງໄດ້ທຸກທີ່ (Offline Capability): ບໍ່ວ່າຈະຢູ່ນະຄອນຫຼວງ ຫຼື ຢູ່ເຂດຫ່າງໄກສອກຫຼີກ ຖ້າທ່ານໂຫຼດໂມເດວມາໄວ້ໃນເຄື່ອງແລ້ວ ທ່ານສາມາດປະມວນຜົນ ວິເຄາະຂໍ້ມູນ ຫຼື ຂຽນໂຄ້ດຕໍ່ໄດ້ໂດຍບໍ່ຕ້ອງອາໄສອິນເຕີເນັດເລີຍ.
  3. ຄວາມໜ່ວງຕ່ຳ (Low Latency): ການຕອບສະໜອງເກີດຂຶ້ນພາຍໃນເຄື່ອງຂອງເຮົາເອງ ເຮັດໃຫ້ບໍ່ຕ້ອງລໍຖ້າການຮັບ-ສົ່ງຂໍ້ມູນຜ່ານເຄືອຂ່າຍ.

ການຕິດຕັ້ງ ແລະ ການໃຊ້ງານ Gemma ດ້ວຍ Python

ໃນພາກສ່ວນນີ້, ເຮົາຈະມາທົດລອງ Run ໂມເດວ gemma-2b-it (Instruction Tuned) ເທິງເຄື່ອງ Laptop ໂດຍໃຊ້ຫໍສະໝຸດ transformers ແລະ PyTorch.

1. ການກຽມຄວາມພ້ອມ (Prerequisites)

ກ່ອນອື່ນໝົດ, ທ່ານຕ້ອງມີ Python ຕັ້ງຢູ່ໃນເຄື່ອງ ແລະ ຕ້ອງໄປຂໍ Access Token ຈາກເວັບໄຊ Hugging Face (ຍອມຮັບເງື່ອນໄຂຂອງ Gemma). ຈາກນັ້ນໃຫ້ຕິດຕັ້ງ Package ທີ່ຈຳເປັນ:

pip install transformers torch accelerate

2. ຂຽນໂຄ້ດເພື່ອ Run ໂມເດວ

ລອງມາຂຽນ Python script ງ່າຍໆ ເພື່ອໃຫ້ Gemma ຊ່ວຍຮ່າງແຜນການຕະຫຼາດສຳລັບທຸລະກິດ Logistic ຂະໜາດນ້ອຍ ທີ່ຕ້ອງປະເຊີນກັບບັນຫາລົດຕິດໃນນະຄອນຫຼວງວຽງຈັນ.

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

# ໃສ່ Hugging Face Token ຂອງທ່ານໄດ້ທີ່ນີ້ ຫຼື ໃຊ້ huggingface-cli login
model_id = "google/gemma-2b-it"

print("ກຳລັງໂຫຼດ Tokenizer ແລະ ໂມເດວ...")
# ໂຫຼດ Tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_id)

# ໂຫຼດ Model ດ້ວຍຮູບແບບ bfloat16 ເພື່ອປະຢັດ RAM/VRAM
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto" # ໃຫ້ລະບົບເລືອກໃຊ້ GPU ອັດຕະໂນມັດ ຖ້າມີ
)

# ສ້າງ Prompt ໂດຍຈຳລອງສະຖານະການໃນລາວ
prompt = "Write a short creative proposal for a local logistics SME addressing how to deliver packages efficiently despite the heavy afternoon traffic in Vientiane capital."

# ຈັດແບບຂອງ Prompt ໃຫ້ເຂົ້າກັບຮູບແບບທີ່ Gemma ເຂົ້າໃຈ
chat = [
    {"role": "user", "content": prompt}
]
formatted_prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)

# ປ່ຽນຂໍ້ຄວາມເປັນ Pytorch Tensors
inputs = tokenizer(formatted_prompt, return_tensors="pt").to(model.device)

print("ກຳລັງປະມວນຜົນ (Inference)...")
# ສ້າງຄຳຕອບ
outputs = model.generate(
    **inputs,
    max_new_tokens=250,
    temperature=0.7
)

# ຖອດລະຫັດ ແລະ ສະແດງຜົນ
response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print("\n=== ຜົນໄດ້ຮັບຈາກ Gemma ===\n")
print(response)

ໝາຍເຫດ: ໃນປັດຈຸບັນ Gemma ອາດຈະຍັງບໍ່ສາມາດສື່ສານເປັນພາສາລາວໄດ້ຢ່າງສົມບູນແບບ. ແນວໃດກໍຕາມ, ການປ້ອນຄຳສັ່ງ (Prompt) ເປັນພາສາອັງກິດກ່ຽວກັບສະພາບແວດລ້ອມໃນລາວ ຈະຊ່ວຍໃຫ້ເຮົາໄດ້ໂຄງຮ່າງຄວາມຄິດທີ່ດີມານຳໃຊ້ຕໍ່ໄດ້. ສຳລັບນັກພັດທະນາຂັ້ນສູງ, ນີ້ຄືໂອກາດດີໃນການນຳເອົາ Dataset ພາສາລາວມາ Fine-tune ຕໍ່ຍອດ (ເຊັ່ນ: ການໃຊ້ເຕັກນິກ LoRA).

ການປັບແຕ່ງ (Optimization) ສຳລັບ Laptop ທີ່ມີສະເປັກຈຳກັດ

ຖ້າທ່ານຕ້ອງການ Run ໂມເດວ gemma-7b ທີ່ໃຫ້ຜົນລັບສະຫຼາດຂຶ້ນ ແຕ່ມີ RAM ພຽງແຕ່ 8GB-16GB. ທ່ານສາມາດໃຊ້ເທັກນິກ Quantization (ການລົດຄວາມລະອຽດຂອງນ້ຳໜັກໂມເດວຈາກ 16-bit ມາເປັນ 4-bit) ໂດຍໃຊ້ bitsandbytes.

ພຽງແຕ່ເພີ່ມການຕິດຕັ້ງ:

pip install bitsandbytes

ແລະ ປັບປຸງໂຄ້ດໃນຕອນໂຫຼດໂມເດວ:

from transformers import BitsAndBytesConfig

quantization_config = BitsAndBytesConfig(load_in_4bit=True)

model = AutoModelForCausalLM.from_pretrained(
    "google/gemma-7b-it",
    quantization_config=quantization_config,
    device_map="auto"
)

ດ້ວຍວິທີນີ້, ທ່ານຈະສາມາດນຳໃຊ້ໂມເດວ LLM ຂະໜາດໃຫຍ່ຂຶ້ນໄດ້ ເຖິງແມ່ນວ່າອຸປະກອນຂອງທ່ານຈະບໍ່ແມ່ນເຄື່ອງ Server ລະດັບສູງກໍຕາມ.

Key Takeaways

ບົດສະຫຼຸບ

ການມາເຖິງຂອງໂມເດວ Open Weights ຂະໜາດນ້ອຍເຊັ່ນ Gemma ເປັນການເປີດປະຕູສູ່ຄວາມເປັນໄປໄດ້ໃໝ່ໆ ໃຫ້ກັບນັກພັດທະນາໃນປະເທດລາວ. ມັນຊ່ວຍທຳລາຍຂໍ້ຈຳກັດດ້ານອິນເຕີເນັດ ແລະ ຄ່າໃຊ້ຈ່າຍຂອງ Cloud API, ເຮັດໃຫ້ເຮົາສາມາດນຳເອົາປັນຍາປະດິດມາໃຊ້ແກ້ປັນຫາສະເພາະໜ້າໄດ້ຢ່າງເປັນອິດສະຫຼະ ແລະ ປອດໄພຍິ່ງຂຶ້ນ. ເຖິງເວລາແລ້ວທີ່ເຮົາຈະເລີ່ມທົດລອງ ແລະ ພັດທະນາ Application ທີ່ຕອບໂຈດຄົນລາວດ້ວຍກັນເອງ! ບາງທີ ໂປຣເຈັກຕໍ່ໄປຂອງທ່ານອາດຈະເປັນ AI ຜູ້ຊ່ວຍສຳລັບຊາວສວນກາເຟກໍເປັນໄດ້.