ການສ້າງລະບົບຖາມ-ຕອບ (Question-Answering System) ແບບງ່າຍໆ
ການສ້າງລະບົບຖາມ-ຕອບ (Question-Answering System) ແບບງ່າຍໆດ້ວຍ NLP
ລອງນຶກພາບເບິ່ງວ່າ ທ່ານກຳລັງສ້າງແອັບພລິເຄຊັນສຳລັບນັກທ່ອງທ່ຽວ ຫຼື ພັດທະນາລະບົບ Chatbot ສຳລັບຮ້ານຄ້າ SME ຂອງທ່ານໃນວຽງຈັນ ເຊິ່ງລູກຄ້າມັກຈະຖາມຄຳຖາມຊ້ຳໆກັນໃນ Facebook Page. ແທນທີ່ຈະໃຫ້ລູກຄ້າໄປອ່ານເອກະສານຍາວໆ ຫຼື ລໍຖ້າແອດມິນມາຕອບ, ຈະດີກວ່າບໍ່ຖ້າ AI ສາມາດອ່ານຂໍ້ມູນແລ້ວ “ດຶງເອົາຄຳຕອບ” ມາໃຫ້ລູກຄ້າໄດ້ທັນທີ? ຕົວຢ່າງ: “ຄ່າສົ່ງໄປຫຼວງພະບາງເທົ່າໃດ?” ຫຼື “ທາດຫຼວງສ້າງຂຶ້ນໃນປີໃດ?“.
ນີ້ຄືສິ່ງທີ່ເຮົາເອີ້ນວ່າ Question-Answering System (ລະບົບຖາມ-ຕອບ) ເຊິ່ງເປັນໜຶ່ງໃນແໜງການທີ່ສຳຄັນທີ່ສຸດຂອງ Natural Language Processing (NLP). ໃນບົດຄວາມນີ້, ເຮົາຈະມາລົງເລິກວິທີການສ້າງລະບົບນີ້ແບບງ່າຍໆສຳລັບນັກພັດທະນາລະດັບກາງ ໂດຍໃຊ້ Python ແລະ Pre-trained Model.
ລະບົບຖາມ-ຕອບ (QA System) ເຮັດວຽກແນວໃດ?
ໃນທາງ NLP, ລະບົບ QA ຫຼັກໆແບ່ງອອກເປັນ 2 ປະເພດຄື:
- Generative QA: ເປີດໃຫ້ AI (ເຊັ່ນ: ChatGPT ຫຼື Large Language Models ໃຫຍ່ໆ) ສ້າງຄຳຕອບໃໝ່ຂຶ້ນມາເອງຈາກຄວາມຮູ້ທີ່ມັນມີ.
- Extractive QA: ກຳນົດ “ບົດຄວາມອ້າງອີງ (Context)” ໃຫ້ AI, ແລ້ວໃຫ້ມັນໄປຄົ້ນຫາ ແລະ “ຕັດເອົາ” ຂໍ້ຄວາມທີ່ເປັນຄຳຕອບອອກມາ.
ມື້ນີ້ເຮົາຈະໂຟກັສໄປທີ່ Extractive QA ເພາະມັນເໝາະສຳລັບອົງກອນ ຫຼື ທຸລະກິດໃນລາວທີ່ຕ້ອງການຄວາມຖືກຕ້ອງສູງ ໂດຍອີງໃສ່ຂໍ້ມູນຂອງຕົນເອງ (ເຊັ່ນ: ຄູ່ມືການປູກກາເຟແຄມບໍລະເວນຢູ່ປາກຊ່ອງ ຫຼື ກົດລະບຽບການລາພັກຂອງພະນັກງານ).
ກະກຽມເຄື່ອງມືສຳລັບນັກພັດທະນາ (Intermediate Setup)
ເຮົາຈະນຳໃຊ້ transformers library ຂອງ Hugging Face ເຊິ່ງເຮັດໃຫ້ນັກພັດທະນາມີຄວາມສະດວກ ບໍ່ຈຳເປັນຕ້ອງຂຽນ Neural Network Architecture ຕັ້ງແຕ່ເລີ່ມຕົ້ນ, ແຕ່ສາມາດຮຽກໃຊ້ໂມເດວທີ່ຖືກຝຶກມາແລ້ວ (Pre-trained model) ໄດ້ເລີຍ.
ຂັ້ນຕອນທີ 1: ຕິດຕັ້ງໄລບຣາຣີ (Libraries)
ກ່ອນອື່ນໝົດ, ໃຫ້ເປີດ Terminal (Command Prompt) ແລ້ວຕິດຕັ້ງ Library ທີ່ຈຳເປັນໃນສະພາບແວດລ້ອມ Python ຂອງທ່ານ:
pip install transformers torch
ຂັ້ນຕອນທີ 2: ຂຽນໂຄ້ດເພື່ອສ້າງ AI Assistant
ເຮົາຈະໃຊ້ Multilingual Model ເຊິ່ງຖືກຝຶກໃຫ້ເຂົ້າໃຈຫຼາຍພາສາ ເພື່ອມາຊອກຫາຄຳຕອບຈາກບົດຄວາມກ່ຽວກັບ ພຣະທາດຫຼວງວຽງຈັນ.
from transformers import pipeline
# ຂັ້ນຕອນ 1: ໂຫຼດໂມເດວແບບ Pipeline ສຳລັບ Question-Answering
# ໃນທີ່ນີ້ພວກເຮົາໃຊ້ xlm-roberta ທີ່ຝຶກເທິງຊຸດຂໍ້ມູນ SQuAD2 ເຊິ່ງຮອງຮັບຫຼາກຫຼາຍພາສາ
print("ກຳລັງໂຫຼດໂມເດວ (ອາດໃຊ້ເວລາຈັກໜ່ອຍສຳລັບການໂຫຼດຊ່ວງທຳອິດ)...")
qa_pipeline = pipeline("question-answering", model="deepset/xlm-roberta-large-squad2")
# ຂັ້ນຕອນ 2: ກຳນົດຂໍ້ມູນອ້າງອີງ (Context)
context = """
ພຣະທາດຫຼວງ ເປັນປູຊະນີຍະສະຖານທີ່ສຳຄັນທີ່ສຸດໃນນະຄອນຫຼວງວຽງຈັນ, ປະເທດລາວ.
ຖືກສ້າງຂຶ້ນໃນສະຕະວັດທີ 16 (ປີ 1566) ໂດຍສົມເດັດພຣະເຈົ້າໄຊເສດຖາທິຣາດ.
ງານບຸນນະມັດສະການພຣະທາດຫຼວງຈະຈັດຂຶ້ນຢ່າງຍິ່ງໃຫຍ່ໃນເດືອນ 12 ລາວຂອງທຸກໆປີ.
"""
# ຂັ້ນຕອນ 3: ຕັ້ງຄຳຖາມ (Question)
question = "ພຣະທາດຫຼວງສ້າງຂຶ້ນໃນປີໃດ?"
# ຂັ້ນຕອນ 4: ປະມວນຜົນເພື່ອຫາຄຳຕອບ
prediction = qa_pipeline(question=question, context=context)
# ສະແດງຜົນ
print(f"ຄຳຖາມ: {question}")
print(f"ຄຳຕອບທີ່ AI ດຶງມາໄດ້: {prediction['answer']}")
print(f"ຄວາມໝັ້ນໃຈ (Confidence Score): {prediction['score']:.4f}")
ຜົນໄດ້ຮັບທີ່ຄາດຫວັງ (Expected Output):
ຄຳຖາມ: ພຣະທາດຫຼວງສ້າງຂຶ້ນໃນປີໃດ?
ຄຳຕອບທີ່ AI ດຶງມາໄດ້: 1566
ຄວາມໝັ້ນໃຈ (Confidence Score): 0.9852
(ໝາຍເຫດ: ເນື່ອງຈາກພາສາລາວຍັງມີຂໍ້ຈຳກັດໃນໂມເດວຫຼາຍພາສາ ຜົນການທົດສອບຕົວຈິງໃນປະໂຫຍກທີ່ຊັບຊ້ອນຂຶ້ນ ອາດມີການຕັດຄຳທີ່ຜິດພ້ຽນໄປແດ່)
ຄວາມທ້າທາຍຂອງ NLP ໃນພາສາລາວ (Localizing the Tech)
ເຖິງແມ່ນວ່າໂມເດວລະດັບໂລກຈະສະຫຼາດຫຼາຍ, ແຕ່ການນຳມາໃຊ້ໃນປະເທດລາວຍັງມີຄວາມທ້າທາຍເຊັ່ນ:
- ການຕັດຄຳ (Word Tokenization): ພາສາລາວບໍ່ໄດ້ຕີຍະຫວ່າງ (Space) ລະຫວ່າງຄຳສັບແບບພາສາອັງກິດ. ສະນັ້ນ, ກ່ອນຈະປ້ອນຂໍ້ມູນເຂົ້າໂມເດວສຳລັບໂປຣເຈັກໃຫຍ່ໆ, ນັກພັດທະນາລາວຈຳເປັນຕ້ອງໃຊ້ Library ຊ່ວຍຕັດຄຳເຊັ່ນ
LaoNLPເພື່ອໃຫ້ Computer ເຂົ້າໃຈຂອບເຂດຂອງແຕ່ລະຄຳສັບໄດ້ດີຂຶ້ນ. - ຊຸດຂໍ້ມູນ (Datasets): ໂມເດວສ່ວນໃຫຍ່ຮຽນຮູ້ຜ່ານຊຸດຂໍ້ມູນມາດຕະຖານເຊັ່ນ SQuAD (Stanford Question Answering Dataset) ເຊິ່ງເປັນພາສາອັງກິດ. ການຈະມີລະບົບ QA ທີ່ເກັ່ງພາສາລາວແທ້ໆ, ວົງການໄອທີລາວເຮົາຈຳເປັນຕ້ອງມີການສ້າງ “Lao QA Dataset” ຂຶ້ນມາຮ່ວມກັນເພື່ອຝຶກໂມເດວໂດຍສະເພາະ.
ຂໍ້ສັງເກດສຳຄັນ (Key Takeaways)
- ນັກພັດທະນາສາມາດສ້າງລະບົບຄວາມເຂົ້າໃຈພາສາ (NLP) ໄດ້ໄວຂຶ້ນຜ່ານ Frameworks ຄື
transformers. - Extractive QA ເປັນວິທີການທີ່ຊ່ວຍດຶງຄຳຕອບຈາກເອກະສານ ຫຼື ບົດຄວາມຄູ່ມືຕ່າງໆໄດ້ໂດຍອັດຕະໂນມັດ, ຫຼຸດພາລະການຕອບຄຳຖາມຂອງພະນັກງານ Customer Service ໄດ້ຢ່າງຫຼວງຫຼາຍ.
- ການນຳໃຊ້ໂມເດວແບບ Multilingual ທີ່ຝຶກມາແລ້ວເປັນຈຸດເລີ່ມຕົ້ນທີ່ດີສຳລັບພາສາລາວ, ແຕ່ເພື່ອຄວາມສົມບູນແບບ ຍັງຕ້ອງປະສົມປະສານເຕັກນິກການປະມວນຜົນຂໍ້ຄວາມ (Text Preprocessing) ທີ່ຖືກຕ້ອງຕາມຫຼັກໄວຍາກອນລາວນຳອີກ.
ສະຫຼຸບ
ການສ້າງລະບົບຖາມ-ຕອບດ້ວຍກົນໄກຂອງ Natural Language Processing ບໍ່ແມ່ນເລື່ອງທີ່ໄກຕົວນັກພັດທະນາລາວອີກຕໍ່ໄປ. ດ້ວຍ Code ພຽງບໍ່ເທົ່າໃດແຖວໃນ Python, ພວກເຮົາຍັງສາມາດປ່ຽນຂໍ້ມູນຄູ່ມືບ໋ອກ, ກົດລະບຽບການເຮັດວຽກ, ຫຼື ປະຫວັດສາດການທ່ອງທ່ຽວ ໃຫ້ກາຍເປັນ AI ທີ່ສາມາດໂຕ້ຕອບ ແລະ ໃຫ້ຂໍ້ມູນທີ່ຊັດເຈນແກ່ຜູ້ຄົນໄດ້ຕະຫຼອດ 24 ຊົ່ວໂມງ. ການເລີ່ມຕົ້ນທົດລອງຂຽນໂປຣແກຣມ NLP ໃນມື້ນີ້ ຈະເປັນພື້ນຖານອັນສຳຄັນໃນການແກ້ໄຂບັນຫາໃນສັງຄົມ ແລະ ຊຸກຍູ້ທຸລະກິດ SME ຂອງລາວໃຫ້ມຸ່ງໜ້າສູ່ຍຸກດິຈິຕອນຢ່າງເຕັມຕົວ.