
RAG (Retrieval-Augmented Generation) ແມ່ນສະຖາປັດຕະຍະກຳເຕັກໂນໂລຊີທີ່ຄົ້ນຫາເອກະສານພາຍນອກແບບ Real-time ແລະນຳເອົາເນື້ອຫານັ້ນມາລວມເຂົ້າໃນການສ້າງຄຳຕອບຂອງ LLM.
ໃນຂະນະທີ່ການນຳໄປປະຍຸກໃຊ້ໃນການຄົ້ນຫາຄວາມຮູ້ພາຍໃນອົງກອນ ແລະ ແຊັດບັອດສຳລັບການບໍລິການລູກຄ້າກຳລັງແຜ່ຂະຫຍາຍຢ່າງວ່ອງໄວ, ແຕ່ກໍມີສຽງສະທ້ອນຈາກໜ້າວຽກຕົວຈິງຊ້ຳໆວ່າ "ຕົ້ນແບບ (Prototype) ໃຊ້ງານໄດ້ແລ້ວ ແຕ່ບໍ່ສາມາດນຳໄປໃຊ້ງານຈິງໄດ້". ເຖິງແມ່ນວ່າການມີຢູ່ຂອງ Framework ຢ່າງ LangChain ຫຼື LlamaIndex ຈະຊ່ວຍໃຫ້ການພັດທະນາງ່າຍຂຶ້ນ, ແຕ່ຈຳນວນຂອງກັບດັກທີ່ອາດພົບໃນແຕ່ລະໄລຍະຂອງການອອກແບບ, ການພັດທະນາ ແລະ ການດຳເນີນງານ ກໍໄດ້ເພີ່ມທະວີຂຶ້ນເລື້ອຍໆ.
ບົດຄວາມນີ້ມີກຸ່ມເປົ້າໝາຍຄື:
ເມື່ອອ່ານບົດຄວາມນີ້ຈົບ, ທ່ານຈະສາມາດເຂົ້າໃຈຮູບແບບຄວາມຜິດພາດ 10 ຢ່າງທີ່ມັກເກີດຂຶ້ນຊ້ຳໆໃນໜ້າວຽກຕົວຈິງ ແລະ ວິທີການຫຼີກລ່ຽງຢ່າງເປັນລະບົບ, ພ້ອມທັງໄດ້ຮັບຄວາມຮູ້ທີ່ສາມາດນຳໄປໃຊ້ເປັນ Checklist ໃນການກວດສອບການອອກແບບ ແລະ ການພັດທະນາໄດ້ທັນທີ.
RAG ແມ່ນວິທີການທີ່ມີປະສິດທິພາບໃນການ "ເຮັດໃຫ້ LLM ມີຄວາມຮູ້ທີ່ທັນສະໄໝ ແລະ ເປັນຜູ້ຊ່ຽວຊານ", ເຮັດໃຫ້ບໍລິສັດຕ່າງໆນຳໄປໃຊ້ໃນການຜະລິດຈິງເພີ່ມທະວີຂຶ້ນເລື້ອຍໆ. ຢ່າງໃດກໍຕາມ, ຍັງມີຫຼາຍກໍລະນີທີ່ລະບົບສາມາດເຮັດວຽກໄດ້ໃນຂັ້ນຕອນ PoC ແຕ່ກັບພົບບັນຫາຄວາມຖືກຕ້ອງຂອງຄຳຕອບຫຼຸດລົງຢ່າງບໍ່ຄາດຄິດໃນສະພາບແວດລ້ອມການຜະລິດຈິງ.
ເບື້ອງຫຼັງຂອງບັນຫາດັ່ງກ່າວແມ່ນມາຈາກຂະບວນການ ຫຼື Pipeline ການປະມວນຜົນທີ່ຊັບຊ້ອນສະເພາະຂອງ RAG. ບໍ່ວ່າຈະເປັນການກຽມເອກສານລ່ວງໜ້າ, ການແບ່ງສ່ວນຂໍ້ມູນ (Chunking), ການສ້າງ Embedding, ການຄົ້ນຫາແບບ Vector, ການປະກອບ Prompt, ແລະ ການວິເຄາະຂອງ LLM, ເຊິ່ງລ້ວນແຕ່ເປັນຈຸດທີ່ມີຄວາມສ່ຽງຕໍ່ການເກີດຂໍ້ຜິດພາດໄດ້ຫຼາຍຈຸດ.
ໃນຫົວຂໍ້ H3 ຕໍ່ໄປນີ້, ພວກເຮົາຈະເຈາະເລິກເຖິງປັດໄຈທາງໂຄງສ້າງທີ່ເຮັດໃຫ້ເກີດຂໍ້ຜິດພາດໄດ້ງ່າຍ, ລວມເຖິງຈຸດທີ່ຄວນລະວັງໃນແຕ່ລະໄລຍະຂອງການອອກແບບ, ການຈັດຕັ້ງປະຕິບັດ ແລະ ການດຳເນີນງານ.
RAG (Retrieval-Augmented Generation) ໄດ້ຖືກນຳມາໃຊ້ຢ່າງກວ້າງຂວາງໃນຖານະເປັນສະຖາປັດຕະຍະກຳທີ່ຊ່ວຍບັນເທົາ "ບັນຫາຄວາມສົດໃໝ່ຂອງຂໍ້ມູນ" ແລະ "ບັນຫາການສ້າງຂໍ້ມູນທີ່ບໍ່ຖືກຕ້ອງ (Hallucination)" ຂອງ LLM ໄປພ້ອມໆກັນ. ເນື່ອງຈາກໂມເດວຢ່າງ GPT ຫຼື Claude ບໍ່ມີຂໍ້ມູນຫຼັງຈາກວັນທີຕັດຍອດ (Cut-off) ຂອງຂໍ້ມູນທີ່ໃຊ້ຝຶກສອນ, ໃນສະຖານະການທີ່ຕ້ອງການໃຫ້ອ້າງອີງເອກະສານພາຍໃນບໍລິສັດ ຫຼື ມາດຕະຖານ ຫຼື Specification ຜະລິດຕະພັນຫຼ້າສຸດ, ການໃຊ້ໂມເດວພຽງຢ່າງດຽວຈຶ່ງເຮັດວຽກໄດ້ຍາກ. RAG ຈຶ່ງເປັນວິທີການທີ່ມີປະສິດທິພາບໃນການຊົດເຊີຍຈຸດອ່ອນດັ່ງກ່າວ.
ຢ່າງໃດກໍຕາມ, ມັນກໍມີຄວາມຫຍຸ້ງຍາກທາງດ້ານໂຄງສ້າງເຊັ່ນກັນ. ຂະບວນການ ຫຼື Pipeline ຂອງ RAG ປະກອບດ້ວຍອົງປະກອບຫຼັກໆດັ່ງນີ້:
ອົງປະກອບເຫຼົ່ານີ້ມີຈຸດອ່ອນຄື ຖ້າອອກແບບຜິດພາດພຽງຈຸດດຽວ, ຄຸນນະພາບຂອງຄຳຕອບສຸດທ້າຍຈະຫຼຸດລົງຢ່າງຕໍ່ເນື່ອງ. ຕົວຢ່າງເຊັ່ນ: ຖ້າຂອບເຂດຂອງ Chunk ຖືກຕັດໃນລະຫວ່າງກາງຂອງເນື້ອຫາ, Vector ທີ່ຝັງໄວ້ອາດຈະບໍ່ສາມາດສະແດງຄວາມໝາຍໄດ້ຢ່າງຖືກຕ້ອງ, ເຮັດໃຫ້ມີລາຍງານວ່າເອກະສານທີ່ມີຄວາມກ່ຽວຂ້ອງສູງບໍ່ຖືກສະແດງຢູ່ໃນອັນດັບຕົ້ນໆຂອງການຄົ້ນຫາ.
ຍິ່ງໄປກວ່ານັ້ນ, ເມື່ອຮູບແບບການນຳໃຊ້ເພີ່ມທະວີຂຶ້ນເລື້ອຍໆ ເຊັ່ນ Agentic RAG ຫຼື RAG ທີ່ຮອງຮັບຫຼາຍຮູບແບບ (Multimodal), ຄວາມຊັບຊ້ອນຂອງຂະບວນການ ຫຼື Pipeline ກໍມີທ່າອ່ຽງສູງຂຶ້ນ. ຈຸດສຳຄັນ ຫຼື ແກນຫຼັກ ຂອງຄວາມຫຍຸ້ງຍາກໃນການສ້າງ RAG ຄືສະພາວະທີ່ "ເບິ່ງຄືວ່າເຮັດວຽກຢູ່ ແຕ່ຄວາມຖືກຕ້ອງກັບຕ່ຳ" ມັກຈະຖືກປ່ອຍປະລະເລີຍເປັນເວລາດົນ.
ຄວາມລົ້ມເຫຼວຂອງ RAG ບໍ່ໄດ້ເກີດຈາກ "ຈຸດໃດຈຸດໜຶ່ງທີ່ຜິດພາດ" ແຕ່ເປັນບັນຫາທີ່ເກີດຂຶ້ນ ກວມເອົາສາມໄລຍະ ຄື: ການອອກແບບ, ການຈັດຕັ້ງປະຕິບັດ ແລະ ການດຳເນີນງານ. ເນື່ອງຈາກລັກສະນະຂອງບັນຫາໃນແຕ່ລະໄລຍະມີຄວາມແຕກຕ່າງກັນ, ຈຶ່ງມັກຈະເຮັດໃຫ້ການລະບຸສາເຫດຊັກຊ້າ.
ໃນ ໄລຍະການອອກແບບ, ການກຳນົດຄວາມຕ້ອງການທີ່ບໍ່ຊັດເຈນຈະສົ່ງຜົນກະທົບຕໍ່ຂະບວນການໃນຂັ້ນຕອນຕໍ່ໄປ.
ສິ່ງເຫຼົ່ານີ້ຈະນຳໄປສູ່ອາການທົ່ວໄປທີ່ວ່າ "ໃນຕອນທຳອິດສາມາດເຮັດວຽກໄດ້ ແຕ່ບໍ່ມີຄວາມແມ່ນຍຳ". ຍິ່ງໄປກວ່ານັ້ນ, ການແຜ່ຫຼາຍຂອງກອບການປະເມີນຜົນເຊັ່ນ RAGAS ຫຼື TruLens ເຮັດໃຫ້ການກຳນົດຕົວຊີ້ວັດໃນຂັ້ນຕອນການອອກແບບກາຍເປັນມາດຕະຖານຂອງອຸດສາຫະກຳໄປແລ້ວ.
ໃນ ໄລຍະການຈັດຕັ້ງປະຕິບັດ, ຄວາມບໍ່ສອດຄ່ອງໃນການເລືອກເທັກໂນໂລຢີມັກຈະເກີດຂຶ້ນເລື້ອຍໆ.
ຄວາມຜິດພາດໃນການຈັດຕັ້ງປະຕິບັດມັກຈະເຮັດໃຫ້ເກີດສະພາວະທີ່ "ເບິ່ງຄືວ່າເຮັດວຽກໄດ້ ແຕ່ຄວາມແມ່ນຍຳຕ່ຳ" ເຊິ່ງເຮັດໃຫ້ການກວດພົບບັນຫາຊັກຊ້າ.
ໃນ ໄລຍະການດຳເນີນງານ, ການຄຸ້ມຄອງຄວາມທັນສະໄໝຂອງເອກະສານແມ່ນຈຸດບອດທີ່ໃຫຍ່ທີ່ສຸດ.
ການສ້າງນິໄສໃນການ ທົບທວນຂ້າມທັງສາມໄລຍະ ຄືບາດກ້າວທຳອິດໃນການປ້ອງກັນຄວາມລົ້ມເຫຼວໃນການສ້າງ RAG.
ຄວາມລົ້ມເຫຼວຂອງ RAG ມັກຈະເກີດຂຶ້ນຢ່າງເຂັ້ມຂຸ້ນໃນຂະບວນການຍົກລະດັບຈາກຂັ້ນຕອນ "ເຮັດວຽກໄດ້ແບບທົ່ວໄປ" ໄປສູ່ "ຄຸນນະພາບລະດັບການນຳໃຊ້ຈິງ". ພວກເຮົາໄດ້ຈັດກຸ່ມບັນຫາທີ່ມັກເກີດຂຶ້ນໃນ 3 ໄລຍະ ຄື: ການອອກແບບ, ການຈັດຕັ້ງປະຕິບັດ ແລະ ການດຳເນີນງານ ອອກເປັນ 10 ຮູບແບບ ເພື່ອໃຫ້ທ່ານເຂົ້າໃຈພາບລວມກ່ອນ ແລະ ນຳໄປປຽບທຽບກັບສະຖານະປັດຈຸບັນຂອງໂຄງການທ່ານ. ການວິເຄາະສາເຫດໂດຍລະອຽດ ແລະ ວິທີການຫຼີກລ່ຽງຈະຖືກອະທິບາຍຕາມລຳດັບໃນພາກຕໍ່ໄປ.
ໄລຍະການອອກແບບ (ຮູບແບບ 1-3)
ໄລຍະການຈັດຕັ້ງປະຕິບັດ (ຮູບແບບ 4-7)
ໄລຍະການດຳເນີນງານ (ຮູບແບບ 8-10)
ຄວາມຜິດພາດໃນການຕັດສິນໃຈໃນໄລຍະການອອກແບບ ຈະສົ່ງຂໍ້ມູນຕໍ່ໃຫ້ຜົນກະທົບທາງລົບຕໍ່ຂະບວນການທັງໝົດໃນພາຍຫຼັງ. ເນື່ອງຈາກການກວດພົບຂໍ້ຜິດພາດຫຼັງຈາກເລີ່ມການພັດທະນາແລ້ວຈະເຮັດໃຫ້ມີຕົ້ນທຶນໃນການແກ້ໄຂສູງ, ສະນັ້ນ ການກວດສອບ 3 ຮູບແບບຕໍ່ໄປນີ້ກ່ອນເລີ່ມຕົ້ນຈຶ່ງມີຄວາມສຳຄັນຫຼາຍ.
ຮູບແບບທີ 1: ການອອກແບບຂະໜາດ Chunk ບໍ່ເໝາະສົມ
ຖ້າ Chunk ໃຫຍ່ເກີນໄປ, ຂໍ້ມູນທີ່ບໍ່ກ່ຽວຂ້ອງຈະປົນເຂົ້າມາໃນເວລາຄົ້ນຫາ ເຮັດໃຫ້ຄວາມຖືກຕ້ອງຂອງຄຳຕອບຈາກ LLM ຫຼຸດລົງ. ໃນທາງກົງກັນຂ້າມ, ຖ້າ Chunk ນ້ອຍເກີນໄປ, ບໍລິບົດຈະຂາດຕອນ ແລະ Chunk ທີ່ບໍ່ມີຄວາມໝາຍໃນຕົວມັນເອງກໍມີໂອກາດທີ່ຈະຖືກຄົ້ນຫາພົບເປັນອັນດັບຕົ້ນໆ.
ຮູບແບບທີ 2: ບໍ່ໄດ້ຄາດການເຖິງຄວາມຫຼາກຫຼາຍຂອງ Query ຈາກຜູ້ໃຊ້
ຖ້າບໍ່ມີການກຳນົດຮູບແບບຂອງ Query ໃນໄລຍະການອອກແບບ, ລະບົບຈະສືບຕໍ່ສົ່ງຜົນການຄົ້ນຫາທີ່ບໍ່ກົງປະເດັນຕໍ່ກັບຄຳຖາມທີ່ບໍ່ໄດ້ຄາດຄິດໄວ້ໃນເວລາໃຊ້ງານຈິງ.
ຮູບແບບທີ 3: ການລະເລີຍການປະເມີນຄຸນນະພາບຂອງແຫຼ່ງຂໍ້ມູນ
ເຖິງແມ່ນວ່າຈະນຳເອກະສານທີ່ມີຄຸນນະພາບຕ່ຳມາເຮັດເປັນ Vector, ແຕ່ຄວາມຖືກຕ້ອງໃນການຄົ້ນຫາກໍຈະບໍ່ດີຂຶ້ນ. ຫຼັກການ "ຂີ້ເຫຍື້ອເຂົ້າ ກໍໄດ້ຂີ້ເຫຍື້ອອອກ (Garbage In, Garbage Out)" ກໍຍັງໃຊ້ໄດ້ກັບ RAG ເຊັ່ນດຽວກັນ.
ເຖິງແມ່ນວ່າຈະຢູ່ໃນຂັ້ນຕອນການຈັດຕັ້ງປະຕິບັດຫຼັງຈາກການອອກແບບໄດ້ຖືກກຳນົດໄວ້ແລ້ວ, ແຕ່ກໍຍັງມີຈຸດຜິດພາດທີ່ມັກເບິ່ງຂ້າມປະກົດຂຶ້ນຢ່າງຕໍ່ເນື່ອງ. ຮູບແບບທີ 4-7 ແມ່ນຕົວຢ່າງທົ່ວໄປທີ່ເຮັດໃຫ້ເກີດສະພາວະ "ເບິ່ງຄືວ່າເຮັດວຽກຢູ່ ແຕ່ບໍ່ໄດ້ຄວາມຖືກຕ້ອງ".
ຮູບແບບທີ 4: ຄວາມບໍ່ສອດຄ່ອງກັນທາງພາສາລະຫວ່າງ Embedding Model ແລະ LLM
ການນຳເອົາເອກະສານພາສາຍີ່ປຸ່ນມາເຮັດ Vectorization ດ້ວຍ Embedding Model ທີ່ເນັ້ນສະເພາະພາສາອັງກິດ ມັກຈະເຮັດໃຫ້ພື້ນທີ່ຄວາມໝາຍຂອງຄຳສັບຄາດເຄື່ອນ ແລະ ຄະແນນຄວາມຄ້າຍຄືກັນ (Similarity score) ບໍ່ສາມາດເຊື່ອຖືໄດ້. ເນື່ອງຈາກທາງເລືອກຂອງ Model ທີ່ຮອງຮັບຫຼາຍພາສາມີເພີ່ມຂຶ້ນ ເຊັ່ນ: multilingual-e5-large ຫຼື ກຸ່ມ text-embedding-3, ສະນັ້ນການກວດສອບຄວາມສອດຄ່ອງຂອງພາສາລະຫວ່າງ LLM ທີ່ໃຊ້ ແລະ Embedding Model ລ່ວງໜ້າ ຈຶ່ງເປັນສິ່ງທີ່ສຳຄັນ.
ຮູບແບບທີ 5: ການຕັ້ງຄ່າ Overlap ຂອງ Chunk ຜິດພາດ
ການຕັ້ງຄ່າ Overlap ເປັນສູນຈະເຮັດໃຫ້ບໍລິບົດຂາດຕອນ, ແຕ່ຖ້າຕັ້ງຄ່າໃຫຍ່ເກີນໄປ ຂໍ້ມູນທີ່ຊ້ຳຊ້ອນກໍຈະກາຍເປັນສິ່ງລົບກວນ (Noise). ເນື່ອງຈາກຄ່າທີ່ເໝາະສົມທີ່ສຸດຈະແຕກຕ່າງກັນໄປຕາມໂຄງສ້າງຂອງເອກະສານ, ຈຶ່ງຈຳເປັນຕ້ອງມີການປະເມີນຜົນຈາກການທົດລອງຕົວຈິງໃນຫຼາຍຮູບແບບເພື່ອປັບແຕ່ງໃຫ້ເໝາະສົມ.
ຮູບແບບທີ 6: ການຄົ້ນຫາແບບ Flat ໂດຍບໍ່ນຳໃຊ້ Metadata
ຖ້າເພິ່ງພາພຽງແຕ່ຄວາມຄ້າຍຄືກັນຂອງ Vector ຢ່າງດຽວ, ອາດມີຄວາມສ່ຽງທີ່ຄູ່ມືເວີຊັນເກົ່າຈະຖືກຄົ້ນຫາພົບໃນອັນດັບທີ່ສູງກວ່າເວີຊັນໃໝ່. ການນຳໃຊ້ເງື່ອນໄຂການກັ່ນຕອງ (Filter) ເຊັ່ນ: ວັນທີສ້າງ, ໝວດໝູ່, ຫຼື ເລກເວີຊັນ ມາປະສົມປະສານກັນ ຈະສາມາດປັບປຸງຄວາມຖືກຕ້ອງໃນການຄົ້ນຫາໄດ້.
ຮູບແບບທີ 7: ການສົ່ງຂໍ້ມູນ k ອັນດັບທຳອິດໄປໃຫ້ໂດຍບໍ່ມີການ Re-ranking
ຜົນການຄົ້ນຫາອັນດັບຕົ້ນໆຈາກ Vector Search ເຖິງວ່າຈະ "ໃກ້ຄຽງໃນດ້ານຄວາມໝາຍ", ແຕ່ກໍບໍ່ໄດ້ໝາຍຄວາມວ່າຈະ "ມີປະໂຫຍດທີ່ສຸດຕໍ່ການຕອບຄຳຖາມ" ສະເໝີໄປ. ມີລາຍງານວ່າການເພີ່ມ Model ສຳລັບ Re-ranking ທີ່ອີງໃສ່ Cross-Encoder ເຂົ້າໄປໃນຂະບວນການ (Pipeline) ຈະຊ່ວຍປັບປຸງຄຸນນະພາບຂອງບໍລິບົດທີ່ຈະສົ່ງຂໍ້ມູນຕໍ່ໃຫ້ LLM ໄດ້ດີຂຶ້ນ.
ກະລຸນາກວດສອບລາຍການຕໍ່ໄປນີ້ເປັນ Checklist ໃນການຈັດຕັ້ງປະຕິບັດ:
ຖ້າຫາກເບິ່ງຂ້າມສິ່ງເຫຼົ່ານີ້ແລ້ວນຳໄປໃຊ້ງານຈິງ, ຄ່າໃຊ້ຈ່າຍໃນການແກ້ໄຂໃນໄລຍະການດຳເນີນງານມີແນວໂນ້ມທີ່ຈະເພີ່ມທະວີຂຶ້ນເລື້ອຍໆ.
ບັນຫາທີ່ພົບຫຼັງຈາກການເປີດຕົວ ຫຼື Launch ລະບົບມັກຈະມີຕົ້ນທຶນໃນການແກ້ໄຂສູງກວ່າໄລຍະການອອກແບບຫຼາຍເທົ່າ. ຄວາມປະໝາດທີ່ວ່າ "ມັນຍັງເຮັດວຽກໄດ້ຢູ່ ກໍບໍ່ເປັນຫຍັງ" ມັກຈະນຳໄປສູ່ຄວາມຜິດພາດທີ່ເປັນເອກະລັກສະເພາະຂອງໄລຍະການດຳເນີນງານ.
ຮູບແບບທີ 8: ລະເລີຍການສ້າງດັດສະນີ (Index) ຄືນໃໝ່ເມື່ອມີການອັບເດດເອກະສານ
ກົດລະບຽບພາຍໃນບໍລິສັດ ແລະ ມາດຕະຖານ ຫຼື Specification ຂອງຜະລິດຕະພັນມີການປັບປ່ຽນຢູ່ເລື້ອຍໆ. ຖ້າຫາກຍັງສືບຕໍ່ດຳເນີນງານໂດຍທີ່ຍັງມີ Vector Index ອັນເກົ່າຕົກຄ້າງຢູ່, ກໍມີຄວາມສ່ຽງທີ່ຈະເກີດການສ້າງຄຳຕອບໂດຍອີງໃສ່ກົດລະບຽບທີ່ຍົກເລີກໄປແລ້ວ ຫຼື ມາດຕະຖານ ຫຼື Specification ເວີຊັນເກົ່າ. ການເຮັດໃຫ້ຂະບວນການ ຫຼື Pipeline ການອັບເດດຂໍ້ມູນສ່ວນຕ່າງ (Differential Update) ເປັນອັດຕະໂນມັດ ແລະ ການອອກແບບຕົວກະຕຸ້ນ (Trigger) ການອັບເດດໃຫ້ຊັດເຈນແມ່ນສິ່ງສຳຄັນ.
ຮູບແບບທີ 9: ບໍ່ມີກົນໄກໃນການປະເມີນຜົນ ແລະ ຕິດຕາມກວດກາ
ການວັດແທກຄະແນນ RAGAS ດ້ວຍ Batch ແບບປົກກະຕິ ແລະ ການສ້າງກົນໄກແຈ້ງເຕືອນເມື່ອຄະແນນຫຼຸດລົງຕໍ່າກວ່າເກນທີ່ກຳນົດໄວ້ ແມ່ນມີປະສິດທິຜົນ.
ຮູບແບບທີ 10: ບໍ່ໄດ້ພິຈາລະນາເຖິງການປ່ຽນແປງຂອງພຶດຕິກຳເນື່ອງຈາກການອັບເດດ Model Version ຂອງ LLM
ເມື່ອຜູ້ໃຫ້ບໍລິການ API ອັບເດດ Model, ແນວໂນ້ມຂອງຜົນລັອກອາດຈະປ່ຽນແປງເຖິງແມ່ນວ່າຈະໃຊ້ Prompt ເດີມກໍຕາມ. ຖ້າຫາກ Prompt Template ຫຼື Logic ການປະມວນຜົນຫຼັງຈາກນັ້ນ (Post-processing) ຂຶ້ນກັບເວີຊັນເກົ່າ, ມັນອາດຈະນຳໄປສູ່ຄຸນນະພາບທີ່ຫຼຸດລົງຢ່າງກະທັນຫັນ.
ການລວມເອົາການວັດແທກ ແລະ ການຈັດການການອັບເດດຢ່າງຕໍ່ເນື່ອງເຂົ້າໄປຕັ້ງແຕ່ຂັ້ນຕອນການອອກແບບ ຄືກຸນແຈສຳຄັນໃນການຮັກສາຄຸນນະພາບໃນໄລຍະຍາວ.
ເມື່ອທ່ານເຂົ້າໃຈພາບລວມຜ່ານລາຍການກວດສອບ (Checklist) ແລ້ວ, ຂັ້ນຕອນຕໍ່ໄປແມ່ນການທຳຄວາມເຂົ້າໃຈຢ່າງມີໂຄງສ້າງວ່າ "ເປັນຫຍັງຄວາມຜິດພາດນັ້ນຈຶ່ງເກີດຂຶ້ນ" ແລະ "ຈະຫຼີກລ່ຽງແນວໃດ".
ແຕ່ລະຮູບແບບມີສາເຫດສະເພາະໃນແຕ່ລະໄລຍະຂອງການອອກແບບ, ການຈັດຕັ້ງປະຕິບັດ (Implementation), ແລະ ການດຳເນີນງານ. ເຖິງແມ່ນວ່າຈະແກ້ໄຂພຽງແຕ່ອາການທີ່ເຫັນຢູ່ຜິວເຜີນ ແຕ່ຖ້າສາເຫດທີ່ແທ້ຈິງຍັງຄົງຢູ່ ບັນຫາເດີມກໍມີທ່າອ່ຽງທີ່ຈະເກີດຊ້ຳອີກ. ກະລຸນາອ່ານຕໍ່ໄປໂດຍປຽບທຽບວ່າບັນຫານັ້ນກົງກັບໄລຍະໃດໃນລະບົບຂອງທ່ານ.
ການຕັ້ງຄ່າຂະໜາດ Chunk ຜິດພາດ ເປັນໜຶ່ງໃນຄວາມຜິດພາດທີ່ພົບເຫັນເລື້ອຍທີ່ສຸດໃນການສ້າງ RAG. ການຕັດສິນໃຈທີ່ວ່າ "ຖ້າຕັດໃຫ້ໃຫຍ່ຂຶ້ນ ຂໍ້ມູນກໍຈະບໍ່ຕົກຫຼົ່ນ" ມັກຈະສົ່ງຜົນໃຫ້ຄວາມແມ່ນຍຳໃນການຄົ້ນຫາຫຼຸດລົງຢ່າງຫຼວງຫຼາຍ.
ເປັນຫຍັງ Chunk ທີ່ໃຫຍ່ເກີນໄປຈຶ່ງກາຍເປັນບັນຫາ?
ໃນການຄົ້ນຫາແບບ Vector, ຄວາມໝາຍຂອງ Chunk ທັງໝົດຈະຖືກບີບອັດໃຫ້ເປັນ Embedding Vector ດຽວ. ຍິ່ງ Chunk ມີຂະໜາດໃຫຍ່ເທົ່າໃດ, Vector ນັ້ນກໍຍິ່ງມີໂອກາດກາຍເປັນ "ການສະແດງອອກທີ່ບໍ່ຊັດເຈນ ເຊິ່ງເກີດຈາກການສະເລ່ຍຫຼາຍຫົວຂໍ້ເຂົ້າດ້ວຍກັນ" ໄດ້ງ່າຍຂຶ້ນ, ເຮັດໃຫ້ການຄຳນວນຄວາມຄ້າຍຄືກັນກັບ Query ບໍ່ຖືກຕ້ອງ. ສົ່ງຜົນໃຫ້ເກີດ "ຄວາມຜິດພາດໃນການຄົ້ນຫາ" ເພີ່ມຂຶ້ນ ເຊິ່ງສ່ວນທີ່ຄວນຈະ Match ກັບ Query ກັບບໍ່ປາກົດຢູ່ໃນອັນດັບຕົ້ນໆ.
ອາການທີ່ມັກພົບເຫັນ
ວິທີການທີ່ແນະນຳ: ການຄົ້ນຫາແບບ Small-to-Big (ຍຸດທະສາດ Parent-Child Chunk)
ໃນປັດຈຸບັນ, ວິທີທີ່ເປັນທີ່ນິຍົມຄືການໃຊ້ Chunk ຂະໜາດນ້ອຍ (ປະມານ 128-256 Token) ໃນຂະນະຄົ້ນຫາເພື່ອໃຫ້ໄດ້ການ Match ທີ່ມີຄວາມແມ່ນຍຳສູງ, ແລະເມື່ອສົ່ງຂໍ້ມູນເຂົ້າ LLM ຈຶ່ງສົ່ງ Parent Chunk (512-1,024 Token) ໄປໃຫ້. ວິທີນີ້ຊ່ວຍປ້ອງກັນການຂາດຫາຍຂອງບໍລິບົດ (Context) ໃນຂະນະທີ່ຍັງຮັກສາຄວາມແມ່ນຍຳໃນການຄົ້ນຫາໄວ້ໄດ້. ໃນ LlamaIndex ແລະ LangChain, ຟັງຊັນສຳລັບການນຳໃຊ້ຍຸດທະສາດນີ້ມີໃຫ້ບໍລິການເປັນມາດຕະຖານ.
ຄຳແນະນຳໃນການນຳໃຊ້ (ຄ່າອ້າງອີງ)
ຂະໜາດຂອງ Chunk ບໍ່ແມ່ນສິ່ງທີ່ "ຕັ້ງຄ່າຄັ້ງດຽວແລ້ວຈົບ". ການດຳເນີນງານໂດຍການປັບປ່ຽນໄປພ້ອມກັບການວັດແທກຄວາມແມ່ນຍຳໃນການຄົ້ນຫາເປັນໄລຍະດ້ວຍ Framework ການປະເມີນຜົນເຊັ່ນ RAGAS ແມ່ນມີຄວາມສຳຄັນຕໍ່ການຮັກສາຄຸນນະພາບໃນລະດັບ Production. ເນື່ອງຈາກຄ່າທີ່ເໝາະສົມທີ່ສຸດຈະແຕກຕ່າງກັນໄປຕາມລັກສະນະຂອງເອກະສານ ແລະ Use Case, ຕົວເລກຂ້າງເທິງນີ້ເປັນພຽງການອ້າງອີງເທົ່ານັ້ນ, ຈຶ່ງແນະນຳໃຫ້ມີການກວດສອບພາຍໃນສະພາບແວດລ້ອມຂອງບໍລິສັດທ່ານເອງ.
ສະພາວະທີ່ໂມເດວ Embedding ແລະ LLM ໃຊ້ພາສາທີ່ບໍ່ສອດຄ່ອງກັນນັ້ນ ຈະຄ່ອຍໆກັດກິນຄວາມແມ່ນຍຳຂອງ RAG ທັງລະບົບຢ່າງງຽບໆ. ເມື່ອຮູ້ສຶກວ່າ "ຜົນການຄົ້ນຫາສະແດງອອກມາ ແຕ່ຄຳຕອບກັບບໍ່ກົງປະເດັນ" — ນັ້ນຄືໜຶ່ງໃນສາເຫດທີ່ຄວນສົງໄສວ່າເກີດຈາກຄວາມບໍ່ສອດຄ່ອງ (Mismatch) ນີ້.
ໂຄງສ້າງຂອງບັນຫາ
ໂມເດວ Embedding ມີໜ້າທີ່ຄຳນວນ "ໄລຍະຫ່າງທາງຄວາມໝາຍລະຫວ່າງ Query ແລະ ເອກະສານ" ໃນຂະນະທີ່ LLM ມີໜ້າທີ່ "ອ່ານບໍລິບົດ (Context) ທີ່ໄດ້ມາເພື່ອສ້າງຄຳຕອບ". ຖ້າທັງສອງຢ່າງນີ້ເຮັດວຽກຢູ່ໃນພື້ນທີ່ພາສາທີ່ແຕກຕ່າງກັນ, ມັນອາດຈະເກີດກໍລະນີທີ່ Chunk ທີ່ກ່ຽວຂ້ອງຖືກຈັດຢູ່ໃນອັນດັບຕົ້ນໆຂອງການຄົ້ນຫາ ແຕ່ LLM ບໍ່ສາມາດຕີຄວາມໝາຍ Chunk ນັ້ນໄດ້ຢ່າງເໝາະສົມ.
ຮູບແບບຂອງຄວາມບໍ່ສອດຄ່ອງທີ່ພົບເຫັນໄດ້ທົ່ວໄປມີດັ່ງນີ້:
ວິທີການຫຼີກລ່ຽງ
ການເລືອກໂມເດວມີຕົ້ນທຶນໃນການປ່ຽນແປງທີ່ສູງຫາກຕັດສິນໃຈໄປແລ້ວ. ການສ້າງນິໄສໃນການເຮັດ A/B Testing ຫຼາຍໂມເດວຕັ້ງແຕ່ໄລຍະເລີ່ມຕົ້ນ ຄືກຸນແຈສຳຄັນໃນການປ້ອງກັນການແກ້ໄຂງານຄືນໃໝ່ໃນຂັ້ນຕອນຕໍ່ໄປ.
ທ່ານກຳລັງສົ່ງຂໍ້ມູນ chunk ຈຳນວນ k ລຳດັບທຳອິດທີ່ໄດ້ຈາກການຄົ້ນຫາແບບ Vector ໄປໃຫ້ LLM ໂດຍກົງຢູ່ຫຼືບໍ່? ເຖິງວ່າຈະເປັນການຈັດຕັ້ງປະຕິບັດທີ່ງ່າຍ ແຕ່ກໍເປັນຈຸດຜິດພາດສຳຄັນທີ່ເຮັດໃຫ້ຄຸນນະພາບຂອງຄຳຕອບຫຼຸດລົງຢ່າງຫຼວງຫຼາຍ.
ການຄົ້ນຫາແບບ Vector ຈະວັດແທກຄວາມໃກ້ຄຽງທາງດ້ານຄວາມໝາຍໂດຍໃຊ້ Cosine Similarity ແລະອື່ນໆ ແຕ່ ຄວາມກ່ຽວຂ້ອງກັບ Query ແລະປະລິມານຂໍ້ມູນທີ່ຈຳເປັນຕໍ່ການຕອບຄຳຖາມນັ້ນ ບໍ່ຈຳເປັນຕ້ອງກົງກັນສະເໝີໄປ. ເຖິງແມ່ນວ່າຄະແນນຄວາມຄ້າຍຄືກັນຈະສູງ ແຕ່ກໍມີແນວໂນ້ມທີ່ chunk ເຊິ່ງສາມາດຕອບຄຳຖາມໄດ້ຢ່າງຖືກຕ້ອງນັ້ນ ອາດຈະບໍ່ໄດ້ຢູ່ໃນລຳດັບຕົ້ນໆ.
ເປັນຫຍັງການສົ່ງ chunk ຈຳນວນ k ລຳດັບທຳອິດໄປໂດຍກົງຈຶ່ງກາຍເປັນບັນຫາ
ວິທີແກ້ໄຂ: ການນຳໃຊ້ການຈັດລຳດັບໃໝ່ (Re-ranking)
ການແຊກຂັ້ນຕອນການຈັດລຳດັບໃໝ່ໂດຍໃຊ້ແບບຈຳລອງ Cross-Encoder ໄວ້ລະຫວ່າງໄລຍະການດຶງຂໍ້ມູນ (Retrieval) ແລະ ໄລຍະການສ້າງຄຳຕອບ (Generation) ແມ່ນມີປະສິດທິຜົນ. ເນື່ອງຈາກ Cross-Encoder ຈະປ້ອນ Query ແລະ chunk ເຂົ້າໄປພ້ອມກັນເພື່ອປະເມີນຄວາມກ່ຽວຂ້ອງຢ່າງລະອຽດ ຈຶ່ງຄາດຫວັງໄດ້ວ່າຈະມີຄວາມແມ່ນຍຳໃນການຈັດລຳດັບສູງກວ່າການຄົ້ນຫາແບບ Vector ດ້ວຍວິທີ Bi-Encoder.
ໃນປັດຈຸບັນມີການນຳໃຊ້ Rerank endpoint ຂອງ Cohere, ຊຸດ BAAI/bge-reranker ແລະ ແບບຈຳລອງ Local ທີ່ມີນ້ຳໜັກເບົາເຊັ່ນ FlashRank ຢ່າງແຜ່ຫຼາຍ. ການນຳເອົາສິ່ງເຫຼົ່ານີ້ມາປະສົມປະສານກັນ ຈະຊ່ວຍໃຫ້ທ່ານສາມາດຄັດກອງ chunk ທີ່ຈະສົ່ງໃຫ້ LLM ໄດ້ຢ່າງມີປະສິດທິພາບ ແລະ ເພີ່ມຄຸນນະພາບຂອງ Context ໃຫ້ສູງຂຶ້ນ.
ຈຸດສຳຄັນໃນການຈັດຕັ້ງປະຕິບັດ
ລະບົບ RAG ບໍ່ແມ່ນສິ່ງທີ່ "ສ້າງແລ້ວຈົບໄປ". ການປ່ອຍໃຫ້ Vector Index ຄົງຄ່າໄວ້ ໂດຍບໍ່ມີການອັບເດດເຖິງແມ່ນວ່າເອກະສານຈະມີການປ່ຽນແປງແລ້ວ ກໍເປັນໜຶ່ງໃນຮູບແບບຄວາມຜິດພາດທີ່ພົບເຫັນເລື້ອຍໆໃນການນຳໃຊ້ງານຈິງ.
ເປັນຫຍັງຈຶ່ງກາຍເປັນບັນຫາ
ສິ່ງທີ່ຖືກຈັດເກັບໄວ້ໃນ Vector Store ເປັນພຽງ Snapshot ໃນເວລາທີ່ສ້າງ Index ເທົ່ານັ້ນ. ໃນກໍລະນີທີ່ຕ້ອງຈັດການກັບເອກະສານທີ່ມີການອັບເດດເລື້ອຍໆ ເຊັ່ນ: ກົດລະບຽບພາຍໃນ, ມາດຕະຖານ ຫຼື Specification ຂອງຜະລິດຕະພັນ, ຫຼືເອກະສານ API, ຖ້າ Index ຍັງເປັນຂໍ້ມູນເກົ່າ ຈະເຮັດໃຫ້ເກີດບັນຫາດັ່ງນີ້:
ການຂາດການອອກແບບ "ການອັບເດດສ່ວນຕ່າງ (Differential Update)" ທີ່ມັກຖືກມອງຂ້າມ
ຫຼາຍທີມມັກຈະຄິດເຖິງການ "ສ້າງ Index ໃໝ່ທັງໝົດ" ແຕ່ມີທ່າອ່ຽງທີ່ຈະນຳໃຊ້ງານຈິງໂດຍບໍ່ໄດ້ອອກແບບກົນໄກ "ການອັບເດດສ່ວນຕ່າງ". ການສ້າງ Index ໃໝ່ທັງໝົດຈະໃຊ້ຕົ້ນທຶນ ແລະ ເວລາເພີ່ມທະວີຂຶ້ນເລື້ອຍໆ ຕາມຈຳນວນເອກະສານທີ່ເພີ່ມຂຶ້ນ, ເຊິ່ງໃນສະພາບແວດລ້ອມທີ່ມີການອັບເດດເລື້ອຍໆນັ້ນ ມັກຈະບໍ່ສາມາດປະຕິບັດໄດ້ຈິງ.
ໃນ Document Loader ຂອງ LlamaIndex ແລະ LangChain ໄດ້ມີການພັດທະນາຟັງຊັນກວດສອບສ່ວນຕ່າງໃຫ້ມີຄວາມພ້ອມຫຼາຍຂຶ້ນ. ຂໍແນະນຳໃຫ້ອອກແບບໂດຍການຈັດການຄ່າ Hash ຫຼື Timestamp ຂອງເອກະສານ ແລະ ເຮັດການ Embedding ສະເພາະ Chunk ທີ່ມີການປ່ຽນແປງເທົ່ານັ້ນ (ກະລຸນາກວດສອບມາດຕະຖານ ຫຼື Specification ລ່າສຸດໃນເອກະສານທາງການຂອງແຕ່ລະ Framework).
ຈຸດສຳຄັນຂອງວິທີການຫຼີກລ່ຽງບັນຫາ
ຄວາມສົດໃໝ່ຂອງ Index ມີຜົນໂດຍກົງຕໍ່ຄຸນນະພາບຄຳຕອບຂອງ RAG. ເມື່ອເຂົ້າສູ່ໄລຍະການດຳເນີນງານແລ້ວ, ຄວນໃຫ້ຄວາມສຳຄັນກັບການເຮັດໃຫ້ຂະບວນການອັບເດດເປັນອັດຕະໂນມັດ ແລະ ການສ້າງລະບົບຕິດຕາມກວດກາ.
ມີການລາຍງານກໍລະນີທີ່ບັນຫາທີ່ບໍ່ຄາດຄິດເກີດຂຶ້ນໃນສະພາບແວດລ້ອມການໃຊ້ງານຈິງ ຫາກພໍໃຈພຽງແຕ່ຂັ້ນຕອນທີ່ວ່າ "ສ້າງສິ່ງທີ່ເຮັດວຽກໄດ້ແລ້ວ". ໃນການປະຕິບັດ RAG, ຂັ້ນຕອນທີ່ເບິ່ງຄືວ່າຖືກຕ້ອງໃນຕອນທຳອິດ ອາດສົ່ງຜົນເສຍຕໍ່ຄວາມແມ່ນຍຳໃນການຄົ້ນຫາ ແລະ ປະສິດທິພາບດ້ານຕົ້ນທຶນຢ່າງຫຼວງຫຼາຍ. ໃນທີ່ນີ້, ພວກເຮົາຈະຍົກຕົວຢ່າງຮູບແບບການປະຕິບັດງານທີ່ບໍ່ເໝາະສົມ (NG) 2 ຢ່າງທີ່ມັກພົບເຫັນເລື້ອຍໆໃນໜ້າວຽກຕົວຈິງ ພ້ອມທັງອະທິບາຍວ່າບັນຫາດັ່ງກ່າວແມ່ນຫຍັງ.
ການນຳເອົາ PDF ມາປ່ຽນເປັນເວັກເຕີ (Vectorization) ໂດຍກົງ ເປັນໜຶ່ງໃນຕົວຢ່າງທີ່ບໍ່ຄວນເຮັດ (NG) ທີ່ພົບເຫັນເລື້ອຍໃນການສ້າງ RAG. ເຖິງວ່າຈະເບິ່ງຄືວ່າງ່າຍ ແຕ່ຕ້ອງລະວັງ ເພາະມັນເປັນສາເຫດທີ່ເຮັດໃຫ້ຄວາມຖືກຕ້ອງໃນການຄົ້ນຫາຫຼຸດລົງຢ່າງຫຼວງຫຼາຍ.
ເປັນຫຍັງຈຶ່ງບໍ່ຄວນເຮັດ: ບັນຫາດ້ານໂຄງສ້າງທີ່ PDF ມີ
PDF ເປັນຮູບແບບທີ່ໃຫ້ຄວາມສຳຄັນກັບຮູບແບບການພິມ (Layout) ເຮັດໃຫ້ມີສິ່ງລົບກວນ (Noise) ປົນເຂົ້າມາໃນຂັ້ນຕອນການສະກັດຂໍ້ຄວາມ. ບັນຫາຫຼັກໆມີດັ່ງນີ້:
ຫາກສິ່ງລົບກວນເຫຼົ່ານີ້ຖືກນຳໄປປ່ຽນເປັນເວັກເຕີໂດຍກົງ ຈະເຮັດໃຫ້ຄຸນນະພາບຂອງ Embedding Vector ຫຼຸດລົງ ແລະ ເຮັດໃຫ້ການຄົ້ນຫາ Chunk ທີ່ມີຄວາມກ່ຽວຂ້ອງສູງເຮັດໄດ້ຍາກຂຶ້ນ.
ວິທີແກ້ໄຂ: ການສ້າງຂະບວນການ ຫຼື Pipeline ໃນການກຽມຂໍ້ມູນ
ການນຳໃຊ້ Library ຕ່າງໆ ເຊັ່ນ PyMuPDF, pdfplumber ແລະ Unstructured ເພື່ອເຮັດການກຽມຂໍ້ມູນ (Pre-processing) ແມ່ນໄດ້ຮັບຄວາມນິຍົມຢ່າງກວ້າງຂວາງ. ຂັ້ນຕອນພື້ນຖານມີດັ່ງນີ້:
Tesseract ຫຼື Azure Document Intelligenceການກຽມຂໍ້ມູນ PDF ເປັນພື້ນຖານທີ່ສົ່ງຜົນຕໍ່ຄຸນນະພາບຂອງ RAG ທັງໝົດ. ການຈັດສັນເວລາໃຫ້ພຽງພໍໃນຂັ້ນຕອນກ່ອນການປ່ຽນເປັນເວັກເຕີ ແມ່ນສິ່ງທີ່ຂາດບໍ່ໄດ້ເພື່ອຮັບປະກັນຄຸນນະພາບໃນລະດັບທີ່ນຳໄປໃຊ້ງານຈິງໄດ້.
ການນຳເອົາ Chunk ທີ່ຄົ້ນຫາພົບມາໃສ່ໃນຊ່ອງ Context ຂອງ Prompt ຈຳນວນຫຼວງຫຼາຍ ໂດຍຄິດວ່າ "ສົ່ງໄປໃຫ້ໝົດທຸກຢ່າງແມ່ນປອດໄພ" ນັ້ນ ເປັນໜຶ່ງໃນຕົວຢ່າງທີ່ບໍ່ຄວນເຮັດ (NG) ເຊິ່ງພົບເຫັນໄດ້ເລື້ອຍໆໃນການເຮັດວຽກຕົວຈິງ.
ເຖິງແມ່ນວ່າຈະເບິ່ງຄືວ່າຂໍ້ມູນຍິ່ງຫຼາຍ ຄວາມຖືກຕ້ອງຂອງຄຳຕອບກໍຍິ່ງເພີ່ມຂຶ້ນ ແຕ່ໃນຄວາມເປັນຈິງແລ້ວ ມັກຈະສົ່ງຜົນກົງກັນຂ້າມ. ມີການລາຍງານກໍລະນີທີ່ວ່າ ເມື່ອ Context ຍາວຂຶ້ນ LLM ຈະຕັດສິນໃຈໄດ້ຍາກຂຶ້ນວ່າ "ຂໍ້ມູນໃດສຳຄັນ" ເຮັດໃຫ້ຄຸນນະພາບຂອງຄຳຕອບຫຼຸດລົງ. ປະກົດການນີ້ເປັນທີ່ຮູ້ຈັກກັນໃນຊື່ບັນຫາ "Lost in the Middle" ເຊິ່ງການຄົ້ນຄວ້າໄດ້ສະແດງໃຫ້ເຫັນວ່າ ຂໍ້ມູນທີ່ຖືກວາງໄວ້ບໍລິເວນກາງຂອງ Prompt ຈະຖືກ Model ອ້າງອີງເຖິງໄດ້ຍາກຂຶ້ນ.
ຂັ້ນຕອນຄວາມຜິດພາດທີ່ພົບເລື້ອຍ
ປັດໄຈທີ່ເຮັດໃຫ້ບັນຫາຮ້າຍແຮງຂຶ້ນ
ຈຸດສຳຄັນໃນການແກ້ໄຂ
ໃນປັດຈຸບັນທີ່ Context Window ຂອງ GPT ແລະ Claude ໄດ້ຮັບການຂະຫຍາຍອອກຢ່າງຫຼວງຫຼາຍ ແຕ່ "ສົ່ງໄປໄດ້ຍາວ = ຄວນສົ່ງໄປຍາວ" ນັ້ນບໍ່ແມ່ນຄວາມຈິງ. ເພື່ອຮັກສາຄວາມສົມດຸນລະຫວ່າງ ຄວາມຖືກຕ້ອງ, ຕົ້ນທຶນ ແລະ ຄວາມໜ່ວງ, ການອອກແບບໂດຍຍຶດຖືຫຼັກການໃຫ້ປະລິມານ Context ຢູ່ໃນລະດັບທີ່ຈຳເປັນໜ້ອຍທີ່ສຸດສະເໝີ ແມ່ນສິ່ງທີ່ສຳຄັນ.
ໃນຂະນະທີ່ທຸ່ມເທໃຫ້ກັບການອອກແບບ Chunk ແລະ ການເລືອກອັນກໍຣິດຶມໃນການຄົ້ນຫາ, ກໍຍັງມີຈຸດຜິດພາດທີ່ມັກຈະຖືກມອງຂ້າມ. ກໍລະນີທີ່ມີການເປີດຕົວ ຫຼື Launch ໂດຍບໍ່ມີການກຳນົດຕົວຊີ້ວັດການປະເມີນຜົນ ແລະ ການຫຼຸດລົງຂອງຄວາມແມ່ນຍໍາໃນສະພາບແວດລ້ອມທີ່ມີເອກະສານຫຼາຍພາສາປົນກັນນັ້ນ ແມ່ນບັນຫາທີ່ຖືກລາຍງານຊ້ຳໆໃນໜ້າວຽກຕົວຈິງ. ໃນຫົວຂໍ້ H3 ຕໍ່ໄປນີ້, ພວກເຮົາຈະເຈາະເລິກເຖິງຈຸດຜິດພາດທັງສອງຢ່າງນີ້ ແລະ ສະເໜີແນວທາງການແກ້ໄຂທີ່ເປັນຮູບປະທຳ.
ສະຖານະທີ່ລະບົບ RAG "ເຮັດວຽກໄດ້" ກັບສະຖານະທີ່ "ສາມາດຕອບຄຳຖາມໄດ້ຢ່າງຖືກຕ້ອງ" ນັ້ນແມ່ນຄົນລະເລື່ອງກັນຢ່າງສິ້ນເຊິງ. ຖ້າຫາກເປີດຕົວ ຫຼື Launch ສູ່ການໃຊ້ງານຈິງໂດຍບໍ່ມີຕົວຊີ້ວັດການປະເມີນຜົນ, ທ່ານອາດຈະຮູ້ຕົວຊ້າເກີນໄປເມື່ອຄຸນນະພາບຫຼຸດລົງ ແລະ ອາດເຮັດໃຫ້ຄຳຮ້ອງຮຽນຈາກຜູ້ໃຊ້ກາຍເປັນຊ່ອງທາງດຽວໃນການຮັບຟັງຄຳຕິຊົມ.
ຄວາມສ່ຽງຫຼັກທີ່ເກີດຈາກການເປີດຕົວໂດຍບໍ່ມີການປະເມີນຜົນ
RAGAS ເປັນກອບການເຮັດວຽກ (Framework) ທີ່ຖືກອ້າງອີງຢ່າງກວ້າງຂວາງສຳລັບການປະເມີນຜົນ RAG ເຊິ່ງສາມາດວັດແທກຄຸນນະພາບຂອງລະບົບໄດ້ຢ່າງຮອບດ້ານໂດຍໃຊ້ຕົວຊີ້ວັດຫຼັກໆ ດັ່ງນີ້:
ຂັ້ນຕອນການປະເມີນຜົນຂັ້ນຕອນຕໍ່າສຸດທີ່ຄວນປະຕິບັດກ່ອນການເປີດຕົວ ຫຼື Launch ມີດັ່ງນີ້:
ການເປີດຕົວ ຫຼື Launch ໂດຍອີງໃສ່ພຽງແຕ່ການປະເມີນຜົນແບບອັດຕະວິໄສທີ່ວ່າ "ຮູ້ສຶກວ່າຄວາມຖືກຕ້ອງໜ້າຈະດີ" ນັ້ນຖືເປັນຂໍ້ບົກຜ່ອງທາງໂຄງສ້າງໃນມຸມມອງຂອງການຮັບປະກັນຄຸນນະພາບ. ການສ້າງພື້ນຖານການປະເມີນຜົນໃຫ້ພ້ອມ ຄືບາດກ້າວທຳອິດທີ່ສຳຄັນໃນການຮັບປະກັນຄວາມໜ້າເຊື່ອຖືຂອງລະບົບ RAG.
ຖານຂໍ້ມູນຄວາມຮູ້ທີ່ມີທັງພາສາຍີ່ປຸ່ນ ແລະ ພາສາອັງກິດປະປົນກັນ ເປັນແຫຼ່ງທີ່ມັກເຮັດໃຫ້ເກີດບັນຫາຄວາມຖືກຕ້ອງໃນການຄົ້ນຫາຫຼຸດລົງ ເຊິ່ງມັກຈະຖືກມອງຂ້າມໃນ RAG. ເຖິງແມ່ນວ່າ Embedding Model ທີ່ຮອງຮັບຫຼາຍພາສາຈະມີການພັດທະນາຢ່າງຕໍ່ເນື່ອງ, ແຕ່ໃນການນຳໃຊ້ຈິງກໍຍັງມີລາຍງານບັນຫາທີ່ເກີດຈາກການປະປົນກັນຂອງພາສາຢູ່ເລື້ອຍໆ.
ເປັນຫຍັງຄວາມຖືກຕ້ອງຈຶ່ງຫຼຸດລົງ
Embedding Model ມັກຈະມີການກະຈາຍຕົວໃນ Vector Space ທີ່ແຕກຕ່າງກັນໄປຕາມແຕ່ລະພາສາ. ເຖິງແມ່ນວ່າເອກະສານພາສາອັງກິດຈະມີຄວາມໝາຍໃກ້ຄຽງກັບຄຳຖາມພາສາຍີ່ປຸ່ນ, ແຕ່ໄລຍະຫ່າງຂອງ Vector ກໍອາດຈະຫ່າງກັນ ເຮັດໃຫ້ເກີດກໍລະນີທີ່ຜົນການຄົ້ນຫາຕົກຫຼົ່ນໄປໄດ້ງ່າຍ.
ປັດໄຈຫຼັກທີ່ເຮັດໃຫ້ເກີດການຫຼຸດລົງມີດັ່ງນີ້:
ສະຖານະການຕົວຢ່າງ
ສົມມຸດວ່າເປັນລະບົບທີ່ມີຄູ່ມືຜະລິດຕະພັນເປັນພາສາຍີ່ປຸ່ນ ແລະ ມາດຕະຖານ ຫຼື Specification ທາງເຕັກນິກເປັນພາສາອັງກິດ. ເມື່ອມີຄຳຖາມພາສາຍີ່ປຸ່ນວ່າ "ການຄວບຄຸມຄວາມໄວຮອບຂອງພັດລົມລະບາຍຄວາມຮ້ອນ", ເຖິງແມ່ນວ່າ "cooling fan RPM control" ໃນເອກະສານພາສາອັງກິດຈະເປັນແຫຼ່ງຄຳຕອບທີ່ເໝາະສົມທີ່ສຸດໃນດ້ານຄວາມໝາຍ, ແຕ່ກໍມັກຈະເກີດກໍລະນີທີ່ມັນບໍ່ຂຶ້ນມາຢູ່ໃນອັນດັບຕົ້ນໆຂອງການຄົ້ນຫາ.
ວິທີແກ້ໄຂ
ບັນຫາການປະປົນກັນຂອງພາສາມັກຈະຖືກຄົ້ນພົບໃນຂັ້ນຕອນທີ່ "ໄດ້ລອງໃຊ້ຈຶ່ງຮູ້". ການກວດສອບໂຄງສ້າງພາສາຂອງເອກະສານຕັ້ງແຕ່ຂັ້ນຕອນການອອກແບບ ແລະ ການກຽມວິທີຮັບມືໄວ້ລ່ວງໜ້າ ຄືທາງລັດທີ່ຈະນຳໄປສູ່ການນຳໃຊ້ງານຈິງໄດ້ຢ່າງມີປະສິດທິພາບ.
ອີງຕາມຮູບແບບຄວາມຜິດພາດທີ່ໄດ້ແນະນຳມາຕະຫຼອດນັ້ນ, ໃນການອອກແບບ RAG ແນວຄິດທີ່ວ່າ "ເລືອກໂຄງສ້າງທີ່ບໍ່ເປ່ເພງ່າຍ" ແມ່ນມີຄວາມສຳຄັນຫຼາຍກວ່າ "ການຕັ້ງເປົ້າໝາຍໃຫ້ສົມບູນແບບຕັ້ງແຕ່ຕົ້ນ". ຖ້າຫາກຂາດຍຸດທະສາດການຄົ້ນຫາ, ການອອກແບບ Chunk, ຫຼື ຕົວຊີ້ວັດການປະເມີນຜົນຢ່າງໃດຢ່າງໜຶ່ງໄປ, ບັນຫາກໍຈະປາກົດຂຶ້ນມາໃນໄລຍະໃດໜຶ່ງຢ່າງແນ່ນອນ. ໃນທີ່ນີ້, ພວກເຮົາຈະເຈາະເລິກເຖິງແນວຄິດການອອກແບບຂອງ Hybrid Search ເຊິ່ງຖືວ່າມີປະສິດທິພາບສູງ ແລະ ຮູບແບບຂອງ Agentic RAG ທີ່ສາມາດຕອບສະໜອງຕໍ່ Query ທີ່ມີຄວາມຊັບຊ້ອນໄດ້ຢ່າງຍືດຫຍຸ່ນ.
ໃນການນຳໃຊ້ງານຈິງ, ມັກຈະເກີດຄຳຖາມທີ່ການຄົ້ນຫາແບບ Vector ພຽງຢ່າງດຽວບໍ່ສາມາດກວມເອົາໄດ້ໝົດ. Hybrid Search ເປັນໜຶ່ງໃນວິທີການທີ່ມີຜົນງານດີທີ່ສຸດໃນປັດຈຸບັນ ເພື່ອຊ່ວຍອຸດຊ່ອງວ່າງດັ່ງກ່າວ.
ຈຸດອ່ອນຂອງການຄົ້ນຫາແບບ Vector ແລະ BM25
ການລວມທັງສອງວິທີເຂົ້າດ້ວຍກັນ ສາມາດກວມເອົາໄດ້ທັງຄວາມໃກ້ຄຽງທາງຄວາມໝາຍ ແລະ ການກົງກັນຂອງຕົວອັກສອນ.
ວິທີການລວມຄະແນນ: RRF ເປັນກະແສຫຼັກ
Reciprocal Rank Fusion (RRF) ໄດ້ຮັບການຍອມຮັບຢ່າງກວ້າງຂວາງໃນການລວມຄະແນນ. ມັນເປັນວິທີທີ່ງ່າຍດາຍໂດຍການໃຫ້ຄ່ານ້ຳໜັກກັບອັນດັບຂອງຜົນການຄົ້ນຫາແຕ່ລະອັນດ້ວຍຄ່າປີ້ນ (Reciprocal) ແລ້ວນຳມາລວມກັນ, ເຊິ່ງມີຂໍ້ດີຄືສາມາດລວມສອງລະບົບທີ່ມີສະເກັດຄະແນນຕ່າງກັນໄດ້ໂດຍບໍ່ຈຳເປັນຕ້ອງເຮັດການ Normalize. ພື້ນຖານການຄົ້ນຫາຫຼັກໆ ເຊັ່ນ Elasticsearch, OpenSearch, ແລະ Weaviate ກຳລັງພັດທະນາການຮອງຮັບ Hybrid Search ທີ່ອີງໃສ່ RRF ໂດຍກົງ (Native support), ເຮັດໃຫ້ຕົ້ນທຶນໃນການຈັດຕັ້ງປະຕິບັດຫຼຸດລົງກວ່າແຕ່ກ່ອນ.
ກໍລະນີທີ່ເຫັນຜົນໄດ້ຊັດເຈນ
ມີການລາຍງານຈາກຫຼາຍກໍລະນີວ່າ ຄວາມຖືກຕ້ອງໃນການຄົ້ນຫາສຳລັບຄຳຖາມທີ່ມີຊື່ສະເພາະນັ້ນມີທ່າອ່ຽງດີຂຶ້ນ. ວິທີການທີ່ງ່າຍຕໍ່ການດຳເນີນງານຄື: ເລີ່ມຕົ້ນໂດຍການຕັ້ງຄ່ານ້ຳໜັກຂອງ BM25 ໃຫ້ຕ່ຳໄວ້ກ່ອນເພື່ອໃຫ້ການຄົ້ນຫາແບບ Vector ເປັນຕົວນຳ, ຈາກນັ້ນຈຶ່ງປັບອັດຕາສ່ວນໂດຍເບິ່ງຈາກບັນທຶກຄວາມຖືກຕ້ອງ. ເມື່ອນຳໄປລວມກັບ Agentic RAG ໃນພາກຖັດໄປ, ການວາງ Hybrid Search ໃຫ້ເປັນພື້ນຖານຂອງຊັ້ນການຄົ້ນຫາ (Search layer) ຈະຊ່ວຍເພີ່ມຄວາມສາມາດໃນການຮັບມືກັບຄຳຖາມທີ່ຊັບຊ້ອນໄດ້ສູງຂຶ້ນອີກຂັ້ນ.
RAG ແບບປົກກະຕິຈະຕັ້ງສົມມຸດຕິຖານວ່າເປັນ ຂະບວນການ ຫຼື Pipeline ທີ່ງ່າຍດາຍຄື "1 ຄິວຣີ (Query) → 1 ການຄົ້ນຫາ → 1 ຄຳຕອບ". ແຕ່ໃນການເຮັດວຽກຕົວຈິງ, ມັກຈະມີຄິວຣີທີ່ຕ້ອງການການວິເຄາະຫຼາຍຂັ້ນຕອນ ຫຼື ການລວມແຫຼ່ງຂໍ້ມູນຫຼາຍແຫຼ່ງ. ການອອກແບບຮູບແບບ Agentic RAG ແມ່ນມີໄວ້ເພື່ອຮອງຮັບຄິວຣີທີ່ຊັບຊ້ອນເຫຼົ່ານີ້.
Agentic RAG ໝາຍເຖິງສະຖາປັດຕະຍະກຳທີ່ເຮັດໃຫ້ LLM ເຮັດໜ້າທີ່ເປັນຕົວແທນ (Agent) ເພື່ອດຳເນີນການຄົ້ນຫາ, ຕັດສິນໃຈ ແລະ ຄົ້ນຫາຊ້ຳໃນຮູບແບບວົງຈອນຢ່າງອິດສະຫຼະ. ຮູບແບບການອອກແບບຫຼັກໆສາມາດແບ່ງອອກໄດ້ເປັນ 3 ປະເພດດັ່ງນີ້:
ຕົວຢ່າງເຊັ່ນ: ຄິວຣີທີ່ວ່າ "ຈົ່ງປຽບທຽບເຫດຜົນທາງເຕັກນິກທີ່ເຮັດໃຫ້ລາຄາຂອງຜະລິດຕະພັນ A ແລະ B ແຕກຕ່າງກັນ" ແມ່ນຍາກທີ່ຈະຕອບໄດ້ດ້ວຍການຄົ້ນຫາພຽງຄັ້ງດຽວ. ຖ້າໃຊ້ຮູບແບບ Plan-and-Execute, ມັນສາມາດແຍກການເຮັດວຽກອອກເປັນ 3 ຂັ້ນຕອນຄື: ຄົ້ນຫາ ມາດຕະຖານ ຫຼື Specification ຂອງຜະລິດຕະພັນ A, ຄົ້ນຫາ ມາດຕະຖານ ຫຼື Specification ຂອງຜະລິດຕະພັນ B, ແລະ ການວິເຄາະປຽບທຽບ.
ໃນການນຳໃຊ້ຄວນລະວັງຈຸດຕ່າງໆດັ່ງນີ້:
Agentic RAG ມີປະສິດທິພາບສູງ ແຕ່ກໍມີຈຸດທີ່ອາດເກີດຂໍ້ຜິດພາດເພີ່ມຂຶ້ນຕາມຄວາມຊັບຊ້ອນ. ດັ່ງນັ້ນ, ການໃຊ້ໂຄງສ້າງແບບປະສົມ (Hybrid) ທີ່ໃຊ້ RAG ແບບປົກກະຕິສຳລັບຄິວຣີທີ່ງ່າຍດາຍ ແລະ ເປີດໃຊ້ Agent ສະເພາະຄິວຣີທີ່ຊັບຊ້ອນເທົ່ານັ້ນ, ຖືເປັນແນວທາງທີ່ມີປະສິດທິຜົນໃນດ້ານຄວາມສະຖຽນຂອງການດຳເນີນງານ.
ພວກເຮົາໄດ້ຄັດເລືອກ 2 ຄຳຖາມທີ່ພົບເລື້ອຍຈາກນັກພັດທະນາ ແລະ ວິສະວະກອນທີ່ກຳລັງເຮັດວຽກກ່ຽວກັບການສ້າງ ແລະ ດຳເນີນງານ RAG. ຄຳຖາມທີ່ວ່າ "RAG ຍັງມີຄວາມໝາຍສຳລັບເອກະສານຂະໜາດນ້ອຍຢູ່ຫຼືບໍ່" ແລະ "ຄວນເລືອກ LLM ຕົວໃດ" ແມ່ນຍັງເປັນຄຳຖາມທີ່ໄດ້ຍິນເລື້ອຍໆໃນພາກປະຕິບັດຕົວຈິງ. ເນື່ອງຈາກມັນສົ່ງຜົນໂດຍກົງຕໍ່ການຕັດສິນໃຈໃນການອອກແບບ, ພວກເຮົາຈະອະທິບາຍໂດຍການນຳເອົາມຸມມອງທີ່ເປັນຮູບປະທຳມາປະກອບ.
ສະຫຼຸບກໍຄື, RAG ສາມາດເຮັດວຽກໄດ້ຢ່າງມີປະສິດທິພາບເຖິງແມ່ນວ່າຈະມີຈຳນວນເອກະສານໜ້ອຍກໍຕາມ. ຢ່າງໃດກໍຕາມ, ຍ້ອນຂະໜາດທີ່ນ້ອຍຈຶ່ງເຮັດໃຫ້ຈຸດທີ່ຄວນລະວັງໃນການອອກແບບມີຄວາມແຕກຕ່າງກັນ.
ໃນສະພາບແວດລ້ອມຂະໜາດນ້ອຍ (ປະມານຫຼັກສິບຫາຫຼັກຮ້ອຍ), ເນື່ອງຈາກຂະໜາດດັດຊະນີຂອງການຄົ້ນຫາແບບ Vector ມີຂະໜາດນ້ອຍ, ຄວາມໜ່ວງໃນການຄົ້ນຫາ (Search Latency) ຈຶ່ງມີແນວໂນ້ມທີ່ຈະຕໍ່າ. ໃນທາງກົງກັນຂ້າມ, ຍ້ອນຈຳນວນ Chunk ທີ່ເປັນໄປໄດ້ມີໜ້ອຍ, ຈຶ່ງຕ້ອງລະວັງວ່າຄວາມລະອຽດໃນການອອກແບບ Chunk ຈະສົ່ງຜົນໂດຍກົງຕໍ່ຄຸນນະພາບຂອງຄຳຕອບ.
ຕົວຢ່າງກໍລະນີການນຳໃຊ້ (Use Case) ທີ່ເຫັນຜົນໄດ້ງ່າຍ:
ໃນທາງກົງກັນຂ້າມ, ສິ່ງທີ່ຕ້ອງລະວັງຄື ເມື່ອເອກະສານມີໜ້ອຍ ກໍລະນີທີ່ "ຄົ້ນຫາບໍ່ພົບ" ຈະເພີ່ມຂຶ້ນ. ໃນກໍລະນີທີ່ບໍ່ມີ Chunk ທີ່ກົງກັບ Query, LLM ຈະພະຍາຍາມເສີມຂໍ້ມູນດ້ວຍຂໍ້ມູນທີ່ມີຢູ່ ເຊິ່ງເຮັດໃຫ້ເກີດອາການຫຼອນ (Hallucination) ໄດ້ງ່າຍ. ການໃສ່ຄຳສັ່ງທີ່ຊັດເຈນໃນ Prompt ວ່າ "ຖ້າບໍ່ມີຂໍ້ມູນລະບຸໄວ້ໃນເອກະສານ ໃຫ້ຕອບວ່າບໍ່ຮູ້" ແມ່ນມີຄວາມສຳຄັນເປັນພິເສດ.
ສະຫຼຸບປະເດັນສຳຄັນ:
ໃນການສ້າງ RAG, ແນວຄິດພື້ນຖານໃນການເລືອກ LLM ບໍ່ແມ່ນການຕັດສິນວ່າ "ຕົວໃດເກັ່ງທີ່ສຸດ" ແຕ່ແມ່ນ "ຕົວໃດທີ່ເໝາະສົມກັບກໍລະນີການນຳໃຊ້ (Use case) ຂອງທ່ານ". GPT, Claude ແລະ Gemini ລ້ວນແຕ່ມີປະສິດທິພາບສູງ ເຊິ່ງຍາກທີ່ຈະຕັດສິນຄວາມດີ-ຄວາມດ້ອຍໄດ້ຢ່າງຊັດເຈນ.
ຄຸນລັກສະນະຂອງແຕ່ລະໂມເດວ ແລະ ກໍລະນີການນຳໃຊ້ທີ່ເໝາະສົມ:
ຈຸດທີ່ຄວນກວດສອບໃນເວລາຄັດເລືອກ:
ໃນການປະຕິບັດງານຈິງ, ແນວທາງທີ່ມີປະສິດທິພາບຄືການບໍ່ເພິ່ງພາໂມເດວໃດໜຶ່ງພຽງຢ່າງດຽວ ແຕ່ໃຫ້ປະເມີນຫຼາຍໆໂມເດວແລ້ວຈຶ່ງຄັດເລືອກ. ແນະນຳໃຫ້ໃຊ້ Framework ການປະເມີນຜົນເຊັ່ນ RAGAS ໂດຍໃຊ້ເອກະສານ ແລະ ຊຸດ Query ຂອງບໍລິສັດຕົນເອງ ເພື່ອວັດແທກຄະແນນຕົວຈິງກ່ອນຈະຕັດສິນໃຈເລືອກໂມເດວທີ່ຈະນຳໃຊ້ຈິງ. ຖ້າເລືອກພຽງເພາະ "ມັນມີຊື່ສຽງ", ອາດຈະເກີດບັນຫາທີ່ບໍ່ຄາດຄິດໃນດ້ານຄວາມແມ່ນຍຳ, ຕົ້ນທຶນ ຫຼື Latency ໄດ້.
ຮູບແບບຄວາມຜິດພາດທັງ 10 ຢ່າງທີ່ໄດ້ອະທິບາຍມາເຖິງຕອນນີ້ ແມ່ນແຝງຕົວຢູ່ໃນແຕ່ລະໄລຍະຂອງການອອກແບບ, ການຈັດຕັ້ງປະຕິບັດ ແລະ ການດຳເນີນງານ. ແທນທີ່ຈະພະຍາຍາມແກ້ໄຂທຸກຢ່າງໃນຄັ້ງດຽວ, ການນຳໃຊ້ລາຍການກວດສອບ (Checklist) ໃນແຕ່ລະໄລຍະເພື່ອຄ່ອຍໆແກ້ໄຂບັນຫາໄປເທື່ອລະຂັ້ນແມ່ນວິທີການທີ່ເປັນຈິງຫຼາຍກວ່າ.
ການນຳໃຊ້ກອບການປະເມີນຜົນ (Evaluation Framework) ເຊັ່ນ RAGAS ຫຼື TruLens, ພ້ອມທັງການປະເມີນຜົນແບບປະລິມານໂດຍການລວມເອົາຕົວຊີ້ວັດຫຼາຍຢ່າງ ເຊັ່ນ: ຄວາມຖືກຕ້ອງຂອງການດຶງຂໍ້ມູນ (Retrieval accuracy), ຄວາມກ່ຽວຂ້ອງຂອງຄຳຕອບ (Answer Relevancy) ແລະ ຄວາມຊື່ສັດຕໍ່ຂໍ້ມູນ (Faithfulness) ກຳລັງກາຍເປັນມາດຕະຖານ. ການວັດແທກຄ່າພື້ນຖານ (Baseline) ກ່ອນການນຳໃຊ້ຈິງ ຈະຊ່ວຍໃຫ້ການໝູນວຽນຮອບວຽນການປັບປຸງງ່າຍຂຶ້ນ.
ຈຸດສຳຄັນ ຫຼື ແກນຫຼັກ ໃນການນຳໃຊ້ລາຍການກວດສອບມີດັ່ງນີ້:
ສິ່ງທີ່ມັກຈະຖືກມອງຂ້າມໂດຍສະເພາະແມ່ນ "ການຕິດຕາມຜົນຢ່າງຕໍ່ເນື່ອງໃນໄລຍະການດຳເນີນງານ". ທຸກຄັ້ງທີ່ມີການອັບເດດເອກະສານ, Index ມັກຈະເກົ່າລົງ ແລະ ຄຸນນະພາບຂອງຄຳຕອບກໍມີແນວໂນ້ມທີ່ຈະຫຼຸດລົງຢ່າງງຽບໆ. ການສ້າງລະບົບກວດສອບຄຸນນະພາບໄວ້ໃນໂຄງສ້າງພື້ນຖານ ຫຼື Infrastructure ຈະນຳໄປສູ່ການດຳເນີນງານທີ່ໝັ້ນຄົງໃນໄລຍະຍາວ.
RAG ບໍ່ແມ່ນລະບົບທີ່ສ້າງຄັ້ງດຽວແລ້ວຈົບ, ແຕ່ເປັນລະບົບທີ່ຕ້ອງໄດ້ຮັບການພັດທະນາຢ່າງຕໍ່ເນື່ອງໃຫ້ສອດຄ່ອງກັບຂໍ້ມູນ ແລະ ຄຳຖາມຂອງຜູ້ໃຊ້. ການເຮັດໃຫ້ລາຍການກວດສອບກາຍເປັນ "ນິໄສໃນການດຳເນີນງານ" ແທນທີ່ຈະເປັນພຽງ "ພິທີກຳໃນຕອນອອກແບບ" ແມ່ນເສັ້ນທາງລັດທີ່ຈະນຳໄປສູ່ຄວາມສຳເລັດໃນການເປີດຕົວ ຫຼື Launch ລະບົບຢ່າງແທ້ຈິງ.

Chi
ສຳເລັດການສຶກສາສາຂາວິທະຍາສາດຄອມພິວເຕີ (Information Science) ຈາກມະຫາວິທະຍາໄລແຫ່ງຊາດລາວ ໂດຍໃນລະຫວ່າງການສຶກສາມີສ່ວນຮ່ວມໃນການພັດທະນາຊອບແວສະຖິຕິ (Statistical Software) ຈາກປະສົບການຕົວຈິງ ຈຶ່ງໄດ້ສ້າງພື້ນຖານດ້ານການວິເຄາະຂໍ້ມູນ (Data Analysis) ແລະ ການໂປຣແກຣມມິງ (Programming) ຢ່າງເຂັ້ມແຂງ. ຕັ້ງແຕ່ປີ 2021 ໄດ້ກ້າວເຂົ້າສູ່ເສັ້ນທາງການພັດທະນາ Web ແລະ ແອັບພລິເຄຊັນ (Application) ແລະ ຕັ້ງແຕ່ປີ 2023 ເປັນຕົ້ນມາ ໄດ້ສັ່ງສົມປະສົບການພັດທະນາຢ່າງເຕັມຮູບແບບທັງໃນດ້ານ Frontend ແລະ Backend. ໃນບໍລິສັດ ຮັບຜິດຊອບການອອກແບບ ແລະ ພັດທະນາ Web Service ທີ່ນຳໃຊ້ AI ພ້ອມທັງມີສ່ວນຮ່ວມໃນໂຄງການທີ່ປະສົມປະສານ ການປະມວນຜົນພາສາທຳມະຊາດ (NLP: Natural Language Processing), ການຮຽນຮູ້ຂອງເຄື່ອງ (Machine Learning), Generative AI ແລະ ໂມເດນພາສາຂະໜາດໃຫຍ່ (LLM: Large Language Model) ເຂົ້າກັບລະບົບທຸລະກິດ. ມີຄວາມກະຕືລືລົ້ນໃນການຕິດຕາມເທັກໂນໂລຊີໃໝ່ລ່າສຸດຢູ່ສະເໝີ ແລະ ໃຫ້ຄວາມສຳຄັນກັບຄວາມວ່ອງໄວໃນທຸກຂັ້ນຕອນ ຕັ້ງແຕ່ການທົດສອບດ້ານເທັກນິກ ຈົນເຖິງການນຳໄປໃຊ້ງານຈິງໃນລະບົບ Production.

Yusuke Ishihara
ເລີ່ມຂຽນໂປຣແກຣມຕັ້ງແຕ່ອາຍຸ 13 ປີ ດ້ວຍ MSX. ຫຼັງຈົບການສຶກສາຈາກມະຫາວິທະຍາໄລ Musashi, ໄດ້ເຮັດວຽກໃນການພັດທະນາລະບົບຂະໜາດໃຫຍ່ ລວມທັງລະບົບຫຼັກຂອງສາຍການບິນ ແລະ ໂຄງສ້າງ Windows Server Hosting/VPS ທຳອິດຂອງຍີ່ປຸ່ນ. ຮ່ວມກໍ່ຕັ້ງ Site Engine Inc. ໃນປີ 2008. ກໍ່ຕັ້ງ Unimon Inc. ໃນປີ 2010 ແລະ Enison Inc. ໃນປີ 2025, ນຳພາການພັດທະນາລະບົບທຸລະກິດ, NLP ແລະ ແພລດຟອມ. ປັດຈຸບັນສຸມໃສ່ການພັດທະນາຜະลິດຕະພັນ ແລະ ການສົ່ງເສີມ AI/DX ໂດຍນຳໃຊ້ generative AI ແລະ LLM.