
ການອອກແບບໜ່ວຍຄວາມຈຳໄລຍະຍາວສຳລັບ AI Agent ແມ່ນການອອກແບບສະຖາປັດຕະຍະກຳເພື່ອໃຫ້ Agent ສາມາດຮັກສາ ແລະ ນຳໃຊ້ບໍລິບົດຂອງວຽກງານຂ້າມຜ່ານເຊສຊັນການສົນທະນາໄດ້.
ການໃຊ້ພຽງແຕ່ RAG ມາດຕະຖານ ຫຼື Context Window ຢ່າງດຽວນັ້ນ ເປັນເລື່ອງຍາກທີ່ຈະຈື່ຈຳກະແສວຽກງານທີ່ດຳເນີນໄປຕະຫຼອດຫຼາຍອາທິດ ຫຼື ຫຼາຍເດືອນ. ໃນບົດຄວາມນີ້, ພວກເຮົາຈະອະທິບາຍຮູບແບບການອອກແບບທີ່ເຮັດໃຫ້ສາມາດຮັກສາບໍລິບົດໃນໄລຍະຍາວໄດ້ ໂດຍການນຳເອົາ MemGPT ຈາກ UC Berkeley ແລະ GraphRAG ຈາກ Microsoft Research ມາປະສົມປະສານກັນ.
ຜູ້ອ່ານເປົ້າໝາຍຄື ວິສະວະກອນທີ່ເຮັດວຽກກ່ຽວກັບການພັດທະນາ ແລະ ການດຳເນີນງານຂອງລະບົບ AI, ລວມເຖິງສະຖາປະນິກທີ່ກຳລັງປະສົບກັບບັນຫາໃນການຈັດການບໍລິບົດຂອງ Agent. ເມື່ອອ່ານບົດຄວາມນີ້ຈົບ, ທ່ານຈະສາມາດຮຽນຮູ້ເນື້ອຫາຕໍ່ໄປນີ້:
ເມື່ອເຊດຊັນສິ້ນສຸດລົງ, AI agent ຈະລືມທຸກຢ່າງ—ທ່ານເຄີຍຮູ້ສຶກກັງວົນກ່ຽວກັບການນຳໄປໃຊ້ໃນວຽກງານເມື່ອໄດ້ຍິນແບບນັ້ນບໍ?
Context window ມີຂີດຈຳກັດທາງກາຍະພາບ, ເມື່ອການສົນທະນາຍາວຂຶ້ນ ຂໍ້ມູນເກົ່າກໍຈະຖືກດັນອອກໄປຕາມລຳດັບ. ຖ້າເປັນການຖາມ-ຕອບແບບຄັ້ງດຽວຈົບກໍຖືວ່າພຽງພໍ, ແຕ່ສຳລັບວຽກງານທີ່ຕ້ອງໃຊ້ເວລາຫຼາຍມື້ໃນການບໍລິຫານໂຄງການ ຫຼື ການສະເໜີແນະໂດຍອີງໃສ່ປະຫວັດການຕອບໂຕ້ຂອງລູກຄ້າແຕ່ລະຄົນ, agent ທີ່ບໍ່ສາມາດສືບຕໍ່ "ສິ່ງທີ່ໄດ້ລົມກັນໃນຄັ້ງກ່ອນ" ໄດ້ນັ້ນ ຈະເຜີຍໃຫ້ເຫັນເຖິງຂີດຈຳກັດຢ່າງໄວວາ.
ການອອກແບບຄວາມຈຳໄລຍະຍາວ ຄືການສ້າງກົນໄກເພື່ອສະສົມຂໍ້ມູນໄວ້ພາຍນອກ window ນີ້ ແລະ ເອີ້ນກັບຄືນມາໃຊ້ໃນເວລາທີ່ຈຳເປັນ. ຖ້າບໍ່ອອກແບບໃຫ້ເໝາະສົມວ່າຈະເກັບຫຍັງໄວ້ບ່ອນໃດ ແລະ ຈະອ້າງອີງເມື່ອໃດ, ຄວາມຈຳກໍຈະມີແຕ່ເພີ່ມຂຶ້ນຈົນກາຍເປັນສິ່ງລົບກວນທີ່ນຳມາໃຊ້ງານບໍ່ໄດ້. ຕໍ່ຈາກນີ້, ພວກເຮົາຈະເຈາະເລິກໂດຍແບ່ງອອກເປັນສາມມຸມມອງ ຄື: ຄວາມແຕກຕ່າງທາງໂຄງສ້າງກັບຄວາມຈຳໄລຍະສັ້ນ, ວິທີການນຳໄປປັບໃຊ້ກັບສະຖານະການວຽກງານຕົວຈິງ, ແລະ ການຈັດປະເພດຂອງຄວາມຈຳ.
Context Window ແມ່ນຂີດຈຳກັດຂອງຂໍ້ຄວາມທີ່ LLM ສາມາດອ້າງອີງໄດ້ໃນການອະນຸມານຄັ້ງດຽວ. ອີງຕາມເອກະສານ MemGPT (ຕາຕະລາງທີ 1), llama-2 ມີຂີດຈຳກັດຢູ່ທີ່ 4,000 token ແລະ GPT ມີຂີດຈຳກັດຢູ່ທີ່ປະມານ 8,000 token ໃນເວລານັ້ນ, ເຊິ່ງຂໍ້ມູນທີ່ເກີນກວ່ານີ້ຈະບໍ່ສາມາດອ້າງອີງໄດ້ພາຍໃນເຊສຊັນນັ້ນ.
ໃນຕອນທຳອິດ ເຮົາມັກຈະຄິດວ່າ "ການເພີ່ມຄວາມຍາວຂອງ Context ຈະຊ່ວຍແກ້ໄຂບັນຫານີ້ໄດ້", ແຕ່ການເພີ່ມຄວາມຍາວຂອງ Window ພຽງຢ່າງດຽວ ບໍ່ສາມາດຮັກສາປະຫວັດການເຮັດວຽກທີ່ກິນເວລາຫຼາຍອາທິດ ຫຼື ຫຼາຍເດືອນໄດ້. ເນື່ອງຈາກເມື່ອຈົບເຊສຊັນການສົນທະນາ, ຄວາມຊົງຈຳຈະຖືກຣີເຊັດ ແລະ ເຊສຊັນຕໍ່ໄປຈະເລີ່ມຕົ້ນຈາກໜ້າກະດາດເປົ່າ.
ຄວາມແຕກຕ່າງລະຫວ່າງຄວາມຊົງຈຳໄລຍະສັ້ນ ແລະ ຄວາມຊົງຈຳໄລຍະຍາວ ບໍ່ແມ່ນພຽງແຕ່ເລື່ອງຂອງໄລຍະເວລາໃນການຮັກສາຂໍ້ມູນເທົ່ານັ້ນ. ຄວາມຊົງຈຳໄລຍະສັ້ນຈະຖືກຜູກມັດດ້ວຍຂີດຈຳກັດຂອງຈຳນວນ token, ໃນຂະນະທີ່ຄວາມຊົງຈຳໄລຍະຍາວຈະຂຽນຂໍ້ມູນລົງໃນບ່ອນຈັດເກັບຂໍ້ມູນພາຍນອກ (External Storage) ເຮັດໃຫ້ບໍ່ມີຂີດຈຳກັດດ້ານຄວາມຈຸຢ່າງແທ້ຈິງ ແລະ ສາມາດຮັກສາຂໍ້ມູນໄວ້ໄດ້ຢ່າງຖາວອນຂ້າມເຊສຊັນ. ກົນໄກການອັບເດດກໍແຕກຕ່າງກັນ, ໂດຍຄວາມຊົງຈຳໄລຍະສັ້ນຈະຖືກຂຽນທັບໂດຍອັດຕະໂນມັດຕາມກະແສການສົນທະນາ, ໃນຂະນະທີ່ຄວາມຊົງຈຳໄລຍະຍາວສາມາດຄວບຄຸມການຂຽນ ຫຼື ການອັບເດດໄດ້ດ້ວຍ Trigger ທີ່ຊັດເຈນ. ໃນດ້ານການຄົ້ນຫາເຊັ່ນກັນ, ຕ່າງຈາກຄວາມຊົງຈຳໄລຍະສັ້ນທີ່ອ້າງອີງຂໍ້ຄວາມທັງໝົດພາຍໃນ Window ພ້ອມກັນ, ຄວາມຊົງຈຳໄລຍະຍາວຈະເລືອກດຶງເອົາສະເພາະສ່ວນທີ່ຈຳເປັນເທົ່ານັ້ນ.
ໃນລະບົບການເຮັດວຽກ, ການຕິດຕໍ່ສື່ສານກັບລູກຄ້າໃນອະດີດ ແລະ ປະຫວັດການຕັດສິນໃຈຕ່າງໆ ມີຜົນໂດຍກົງຕໍ່ການຕັດສິນໃຈໃນພາຍຫຼັງ. ການທີ່ຈະນຳຂໍ້ມູນເຫຼົ່ານັ້ນມາໃຊ້ປະໂຫຍດໄດ້ໂດຍຂ້າມເຊສຊັນນັ້ນ, ບໍ່ແມ່ນການຂະຫຍາຍຄວາມຊົງຈຳໄລຍະສັ້ນ, ແຕ່ເປັນກົນໄກຄວາມຊົງຈຳໄລຍະຍາວທີ່ເຮັດວຽກຮ່ວມກັບບ່ອນຈັດເກັບຂໍ້ມູນພາຍນອກ ເຊິ່ງເປັນສິ່ງທີ່ຂາດບໍ່ໄດ້.
ຄວາມຈຳເປັນຂອງຄວາມຈຳໄລຍະຍາວຈະປ່ຽນແປງໄປຕາມຄວາມຕໍ່ເນື່ອງ ແລະ ຄວາມຊັບຊ້ອນຂອງວຽກງານ. ຖ້າເປັນການຖາມ-ຕອບແບບຄັ້ງດຽວຈົບ, RAG ມາດຕະຖານກໍພຽງພໍແລ້ວ, ແຕ່ຖ້າຫາກຕ້ອງຕິດຕາມໂຄງການດຽວກັນເປັນເວລາຫຼາຍອາທິດ ຫຼື ຫຼາຍເດືອນ, ການຮັກສາບໍລິບົດ (Context) ໃຫ້ຂ້າມຜ່ານແຕ່ລະເຊດຊັນ (Session) ແມ່ນສິ່ງທີ່ຂາດບໍ່ໄດ້.
ໃນສະຖານະການດັ່ງຕໍ່ໄປນີ້, ການອອກແບບຄວາມຈຳໄລຍະຍາວຈະມີຄວາມສຳຄັນເປັນພິເສດ:
ໃນກໍລະນີທີ່ວຽກງານມີຄວາມຊັບຊ້ອນຕໍ່າ ແລະ ການສອບຖາມມີຄວາມເປັນອິດສະລະຕໍ່ກັນ, ສາມາດຈັດການໄດ້ພາຍໃນຂອບເຂດຂອງ Context Window, ແຕ່ສຳລັບວຽກງານທີ່ມີຜູ້ມີສ່ວນກ່ຽວຂ້ອງຫຼາຍຝ່າຍ ແລະ ການຕັດສິນໃຈຂຶ້ນຢູ່ກັບປະຫວັດຄວາມເປັນມາໃນອະດີດ, ຈຳເປັນຕ້ອງມີສະຖາປັດຕະຍະກຳຄວາມຈຳໄລຍະຍາວ.
ສິ່ງທີ່ຄືກັນໃນສະຖານະການວຽກງານເຫຼົ່ານີ້ຄື: "ບໍລິບົດໃນອະດີດສົ່ງຜົນໂດຍກົງຕໍ່ຄຸນນະພາບຂອງການຕັດສິນໃຈໃນປັດຈຸບັນ".
ຄຳຖາມທີ່ວ່າ "ບໍ່ຮູ້ວ່າຄວນໃຫ້ Agent ຈື່ຈຳຫຍັງແດ່" ເປັນສິ່ງທີ່ມັກຈະເກີດຂຶ້ນໃນໄລຍະເລີ່ມຕົ້ນຂອງການອອກແບບ. ຖ້າອ້າງອີງຕາມການຈັດປະເພດຄວາມຈຳຂອງວິທະຍາສາດສະໝອງ (Cognitive Science), ເຮົາຈະເຫັນໂຄງສ້າງທີ່ຈຳເປັນສຳລັບການອອກແບບຄວາມຈຳໄລຍະຍາວຂອງ AI Agent.
ຄວາມຈຳທີ່ Agent ຄວນຮັກສາໄວ້ ສາມາດແບ່ງອອກໄດ້ເປັນ 3 ປະເພດໃຫຍ່ໆ:
ຄວາມຈຳເຫດການ (Episodic Memory): ການບັນທຶກເຫດການຕາມລຳດັບເວລາ ເຊັ່ນ "ເມື່ອໃດ, ກັບໃຜ, ໄດ້ລົມຫຍັງກັນ". ຕົວຢ່າງເຊັ່ນ: ທີ່ມາຂອງການປ່ຽນແປງ ມາດຕະຖານ ຫຼື Specification ທີ່ຕັດສິນໃຈໃນການປະຊຸມເມື່ອອາທິດທີ່ຜ່ານມາ ຫຼື ລຳດັບຄວາມສຳຄັນຂອງຄວາມຕ້ອງການທີ່ຜູ້ໃຊ້ໄດ້ສະແດງອອກໃນອະດີດ. ສິ່ງນີ້ຈະເປັນພື້ນຖານໃນການຮັກສາຄວາມຕໍ່ເນື່ອງຂອງການສົນທະນາຂ້າມເຊສຊັນ (Session).
ຄວາມຈຳຄວາມໝາຍ (Semantic Memory): ລະບົບຄວາມຮູ້ກ່ຽວກັບແນວຄິດ, ກົດລະບຽບ ແລະ ຄຳສັບໃນຂອບເຂດວຽກງານ. ເປັນການລວບລວມຂໍ້ເທັດຈິງທີ່ສາມາດເຂົ້າໃຈໄດ້ເຖິງແມ່ນຈະແຍກອອກຈາກບໍລິບົດ ເຊັ່ນ "ລູກຄ້າລາຍນີ້ມັກການອອກໃບແຈ້ງໜີ້ໃນທ້າຍເດືອນ" ຫຼື "ຜະລິດຕະພັນ A ບໍ່ຢູ່ພາຍໃຕ້ກົດລະບຽບສະເພາະໃດໜຶ່ງ". ນີ້ຍັງເປັນພື້ນທີ່ທີ່ GraphRAG ສະແດງຈຸດເດັ່ນໄດ້ເປັນພິເສດ.
ຄວາມຈຳຂັ້ນຕອນ (Procedural Memory): ຮູບແບບຂອງຂັ້ນຕອນການປະຕິບັດວຽກງານ ຫຼື Workflow. ເປັນຄວາມຮູ້ທີ່ເປັນແບບແຜນຂອງການປະຕິບັດງານທີ່ເຮັດຊ້ຳໆ ເຊັ່ນ "ຂັ້ນຕອນການອະນຸມັດແມ່ນ ຫົວໜ້າ → ຝ່າຍກົດໝາຍ → ຝ່າຍບັນຊີ" ຫຼື "ເມື່ອເກີດຂໍ້ຜິດພາດ ໃຫ້ກວດສອບ Log ກ່ອນແລ້ວຈຶ່ງລອງໃໝ່".
ຖ້າຫາກເກັບຄວາມຈຳທັງ 3 ປະເພດນີ້ໄວ້ໃນ Vector Store ດຽວກັນໂດຍບໍ່ແຍກປະເພດ, ຈະມີຄວາມສ່ຽງສູງທີ່ລະບົບຈະບໍ່ສາມາດແຍກແຍະປະເພດຂອງຄວາມຈຳໃນເວລາຄົ້ນຫາ ແລະ ອາດຈະດຶງເອົາບໍລິບົດທີ່ບໍ່ກ່ຽວຂ້ອງອອກມາ. ດັ່ງນັ້ນ, ການແຍກບ່ອນຈັດເກັບຂໍ້ມູນໃນຂັ້ນຕອນການອອກແບບ ແລະ ການກຳນົດຍຸດທະສາດການເຮັດ Index ໃຫ້ເໝາະສົມກັບຄວາມຈຳແຕ່ລະປະເພດຈຶ່ງມີຄວາມສຳຄັນຫຼາຍ. ຂໍ້ຈຳກັດຂອງ RAG ມາດຕະຖານທີ່ຈະກ່າວເຖິງໃນພາກຕໍ່ໄປ ກໍຈະເຂົ້າໃຈໄດ້ງ່າຍຂຶ້ນຫາກເຮົາຄຳນຶງເຖິງການຈັດປະເພດເຫຼົ່ານີ້.
"ເລື່ອງທີ່ເວົ້າກັນເມື່ອອາທິດແລ້ວ ຈື່ໄດ້ບໍ່?" —— ຄຳເວົ້ານີ້ທີ່ມະນຸດເຮົາເຂົ້າໃຈກັນໄດ້ຕາມປົກກະຕິ ແຕ່ກັບ AI agent ອາດຈະບໍ່ເຂົ້າໃຈ. RAG ມາດຕະຖານແມ່ນກົນໄກທີ່ດຶງເອົາເອກະສານທີ່ກ່ຽວຂ້ອງມາຕອບຄຳຖາມໂດຍໃຊ້ການຄົ້ນຫາແບບ Vector. ເຖິງວ່າຈະເຮັດວຽກໄດ້ດີໃນການອ້າງອີງແບບຄັ້ງດຽວ ແຕ່ການຮັກສາບໍລິບົດທີ່ກວມເອົາແກນເວລາ ເຊັ່ນ: "ການສົນທະນາເມື່ອອາທິດແລ້ວ" ຫຼື "ທີ່ມາຂອງການຕັດສິນໃຈໃນຄັ້ງກ່ອນ" ນັ້ນ ບໍ່ໄດ້ຖືກອອກແບບມາໃຫ້ຮອງຮັບແຕ່ຕົ້ນ.
ເມື່ອຈົບເຊສຊັນ (Session) ຄວາມຈຳກໍຈະຖືກຣີເຊັດ. ໃນການສົນທະນາຄັ້ງຕໍ່ໄປ ຕ້ອງໄດ້ອະທິບາຍສະຖານະການໃໝ່ຕັ້ງແຕ່ຕົ້ນ. ຫາກນຳໄປໃຊ້ໃນວຽກງານ ຂໍ້ຈຳກັດນີ້ຈະກາຍເປັນອຸປະສັກໃນທັນທີ. ຕໍ່ໄປນີ້ ພວກເຮົາຈະມາເຈາະເລິກເຖິງ 3 ບັນຫາທີ່ RAG ຢ່າງດຽວບໍ່ສາມາດແກ້ໄຂໄດ້.
ການນຳໃຊ້ Vector Search ເຂົ້າມາຊ່ວຍອາດຈະເບິ່ງຄືວ່າເປັນການແກ້ໄຂບັນຫາຄວາມຈຳໄລຍະຍາວໄດ້ ເມື່ອເຮົາເລີ່ມລົງມືປະຕິບັດໄປໄດ້ໄລຍະໜຶ່ງ ມັກຈະພົບກັບກຳແພງທີ່ວ່າ "ເຖິງຈະດຶງເອົາຂໍ້ມູນທີ່ມີຄວາມໝາຍໃກ້ຄຽງກັນມາໄດ້ ແຕ່ການສົນທະນາກັບບໍ່ຕໍ່ເນື່ອງ".
ບັນຫາ ຈຸດສຳຄັນ ຫຼື ແກນຫຼັກ ຂອງ RAG ມາດຕະຖານ ຄືການທີ່ການໃຫ້ຄະແນນ (Scoring) ເບິ່ງພຽງແຕ່ "ຄວາມຄ້າຍຄືກັນໃນລະດັບ Chunk" ເທົ່ານັ້ນ. ເນື່ອງຈາກແຕ່ລະ Chunk ຖືກປະເມີນຢ່າງເປັນອິດສະຫຼະ ຈຶ່ງບໍ່ສາມາດສະແດງເຖິງຄວາມສຳພັນທາງເຫດຜົນ ຫຼື ລຳດັບເວລາທີ່ກວມເອົາຫຼາຍ Session ໄດ້. ຄວາມສຳພັນທາງເວລາ ເຊັ່ນ "ແນວທາງທີ່ຕົກລົງກັນໃນການປະຊຸມອາທິດແລ້ວນີ້" ຫຼື "ຂັ້ນຕອນການອະນຸມັດທີ່ປ່ຽນແປງໄປເມື່ອຫຼາຍເດືອນກ່ອນ" ມັກຈະບໍ່ປາກົດຢູ່ໃນບໍລິເວນໃກ້ຄຽງກັນໃນ Vector Space ເຮັດໃຫ້ເກີດການຂາດຕອນຂອງບໍລິບົດ (Context). ນອກຈາກນີ້, ຖ້າພະຍາຍາມດຶງເອົາ Chunk ທີ່ກ່ຽວຂ້ອງມາຈຳນວນຫຼາຍ ກໍຈະເຮັດໃຫ້ Context Window ຂອງ LLM ເຕັມຢ່າງວ່ອງໄວ. ດັ່ງທີ່ບົດຄວາມວິໄຈ MemGPT (arXiv: 2310.08560) ໄດ້ຊີ້ໃຫ້ເຫັນວ່າ ຄວາມຍາວຂອງ Context ໃນໂມເດວຫຼັກໆໃນເວລານັ້ນມີຈຳກັດພຽງແຕ່ຫຼັກພັນ Token ເທົ່ານັ້ນ (ຕົວຢ່າງ: llama‑1 = 2,000 tokens, llama‑2 = 4,000 tokens, gpt‑3.5‑turbo = 4,000 tokens, gpt‑4 = 8,000 tokens) ເຮັດໃຫ້ການອອກແບບທີ່ສົ່ງ Chunk ຈຳນວນຫຼາຍໄປພ້ອມກັນນັ້ນບໍ່ສາມາດປະຕິບັດໄດ້ຈິງ.
ຍິ່ງໄປກວ່ານັ້ນ, ບັນຫາພື້ນຖານກໍຄື Vector Search ຕັດສິນໃຈພຽງແຕ່ "ຈະດຶງຂໍ້ມູນຫຍັງມາ" ແຕ່ບໍ່ມີເຫດຜົນໃນການຈັດການຄວາມຈຳວ່າ "ຄວນອັບເດດຄວາມຈຳເມື່ອໃດ" ຫຼື "ຈະຈັດການກັບຂໍ້ມູນທີ່ຂັດແຍ່ງກັນແນວໃດ". ສົ່ງຜົນໃຫ້ຂໍ້ມູນເກົ່າແລະຂໍ້ມູນໃໝ່ປົນກັນຢູ່ໃນຜົນການຄົ້ນຫາ ເຊິ່ງສ້າງຄວາມສ່ຽງໃຫ້ Agent ຕອບຄຳຖາມໂດຍອີງໃສ່ສົມມຸດຕິຖານທີ່ຜິດພາດ.
ເມື່ອບັນທຶກການເຮັດວຽກ (Business log) ມີຈຳນວນຫຼາຍເຖິງຫຼາຍໝື່ນລາຍການ, ຄວາມແມ່ນຍຳຂອງການຄົ້ນຫາແບບ Vector ມັກຈະຫຼຸດລົງໄວກວ່າທີ່ຄາດໄວ້.
ສາເຫດໜຶ່ງແມ່ນ ການປົນເປື້ອນຂອງລາຍການທີ່ມີຄວາມໝາຍໃກ້ຄຽງກັນ ແຕ່ມີບໍລິບົດທີ່ແຕກຕ່າງກັນ. ຕົວຢ່າງເຊັ່ນ: ວະລີທີ່ວ່າ "ລໍຖ້າການອະນຸມັດ" (Approval pending) ຈະປາກົດຢູ່ໃນທັງການອະນຸມັດຂັ້ນຕອນການສະເໜີຂໍອະນຸມັດ ແລະ ການອະນຸມັດສິດໃນການເຂົ້າເຖິງລະບົບ. ໃນພື້ນທີ່ Vector, ໄລຍະຫ່າງຂອງທັງສອງຢ່າງນີ້ຈະໃກ້ຄຽງກັນ ເຮັດໃຫ້ເອກະສານທີ່ບໍ່ກ່ຽວຂ້ອງມີໂອກາດປົນເຂົ້າມາໃນຜົນການຄົ້ນຫາອັນດັບຕົ້ນໆໄດ້ງ່າຍ.
ເມື່ອຈັດລະບຽບແຫຼ່ງທີ່ມາຂອງສິ່ງລົບກວນ (Noise) ທີ່ເປັນເອກະລັກຂອງບັນທຶກຂະໜາດໃຫຍ່, ສາມາດສະຫຼຸບໄດ້ດັ່ງນີ້:
ຄວາມຮຸນແຮງຂອງການຫຼຸດລົງຂອງຄວາມແມ່ນຍຳຈະແຕກຕ່າງກັນໄປຕາມລັກສະນະຂອງບັນທຶກ. ໃນກໍລະນີທີ່ເນັ້ນໃສ່ບັນທຶກທີ່ມີໂຄງສ້າງ (CSV ຫຼື DB record) ສາມາດແກ້ໄຂໄດ້ດ້ວຍການປັບລະດັບຄວາມລະອຽດຂອງການແບ່ງ Chunk, ໃນຂະນະທີ່ຖ້າມີຂໍ້ຄວາມທີ່ບໍ່ມີໂຄງສ້າງ (ອີເມວ, ບົດບັນທຶກການປະຊຸມ, ປະຫວັດການສົນທະນາ) ປົນຢູ່, ຂັ້ນຕອນການກຳຈັດສິ່ງລົບກວນໃນການປະມວນຜົນເບື້ອງຕົ້ນ (Pre-processing) ແມ່ນສິ່ງທີ່ຂາດບໍ່ໄດ້.
ບັນຫາເຫຼົ່ານີ້ບໍ່ສາມາດແກ້ໄຂໄດ້ດ້ວຍການພຽງແຕ່ເພີ່ມຂະໜາດຂອງ Index. ໃນທາງກົງກັນຂ້າມ, ຍິ່ງເປົ້າໝາຍການຄົ້ນຫາມີຫຼາຍຂຶ້ນເທົ່າໃດ, ຄວາມສ່ຽງທີ່ລາຍການທີ່ບໍ່ກ່ຽວຂ້ອງຈະຂຶ້ນມາຢູ່ໃນອັນດັບຄະແນນສູງກໍຍິ່ງເພີ່ມທະວີຂຶ້ນເລື້ອຍໆ. ການປະສົມປະສານລະຫວ່າງ MemGPT ແລະ GraphRAG ທີ່ຈະອະທິບາຍໃນພາກຕໍ່ໄປ ແມ່ນວິທີການຮັບມືກັບບັນຫາທາງໂຄງສ້າງນີ້ໃນລະດັບສະຖາປັດຕະຍະກຳ.
ທ່ານເຄີຍຮູ້ສຶກບໍ່ວ່າ "ເປັນຫຍັງ Agent ຈຶ່ງບໍ່ຈື່ເນື້ອໃນການປະຊຸມເມື່ອອາທິດທີ່ຜ່ານມາ ທັງທີ່ໄດ້ໃສ່ RAG ມາດຕະຖານ ຫຼື Specification ເຂົ້າໄປແລ້ວ?" ຄຳຖາມນັ້ນຄື ຈຸດສຳຄັນ ຫຼື ແກນຫຼັກ ທີ່ MemGPT ແລະ GraphRAG ກຳລັງພະຍາຍາມແກ້ໄຂ.
ທັງສອງຢ່າງນີ້ຕ່າງກໍຊ່ວຍເສີມຈຸດອ່ອນຂອງກັນແລະກັນ.
ຂອບເຂດທີ່ MemGPT ເຂົ້າມາເສີມ:
ຂອບເຂດທີ່ GraphRAG ເຂົ້າມາເສີມ:
ຜົນປະໂຫຍດທີ່ເກີດຈາກການນຳມາປະສົມປະສານກັນ:
MemGPT ຈະຄຸ້ມຄອງບໍລິບົດຕາມລຳດັບເວລາວ່າ "ເວົ້າຫຍັງ, ກັບໃຜ, ເມື່ອໃດ" ໃນຂະນະທີ່ GraphRAG ຈະສະໜອງຄວາມຮູ້ທາງໂຄງສ້າງວ່າ "ບຸກຄົນ ຫຼື ແນວຄິດນັ້ນ ມີຄວາມເຊື່ອມຕໍ່ກັນແນວໃດພາຍໃນອົງກອນ".
ສະຫຼຸບ: MemGPT ມີການອອກແບບທີ່ຈຳລອງລຳດັບຊັ້ນຂອງໜ່ວຍຄວາມຈຳໃນ OS ເພື່ອບັນລຸການມີໜ່ວຍຄວາມຈຳໄລຍະຍາວທີ່ເກີນກວ່າຂໍ້ຈຳກັດດ້ານບໍລິບົດ (Context) ຂອງ LLM.
MemGPT ແມ່ນເຟຣມເວີກທີ່ທີມວິໄຈຈາກ UC Berkeley ແລະ ອື່ນໆ ໄດ້ ເປີດຕົວ ຫຼື Launch ໃນປີ 2023 ໂດຍມີການຈັດການໜ່ວຍຄວາມຈຳດ້ວຍການແຍກບໍລິບົດຫຼັກ (Main context) ແລະ ບ່ອນຈັດເກັບຂໍ້ມູນພາຍນອກ (External storage) ອອກຈາກກັນ. ໃນຫົວຂໍ້ H3 ຕໍ່ໄປນີ້, ພວກເຮົາຈະອະທິບາຍກ່ຽວກັບໂຄງສ້າງຂອງສະຖາປັດຕະຍະກຳ, ການຕັ້ງຄ່າເບື້ອງຕົ້ນ ແລະ ຂັ້ນຕອນການຄວບຄຸມການຮຽກໃຊ້ຟັງຊັນ (Function call) ຕາມລຳດັບ.
ເມື່ອເຫັນ MemGPT ເປັນຄັ້ງທຳອິດ, ຫຼາຍຄົນມັກຈະເຂົ້າໃຈຜິດວ່າ "ມັນເປັນພຽງປລັກອິນຂະຫຍາຍໜ່ວຍຄວາມຈຳເທົ່ານັ້ນ". ແຕ່ໃນຄວາມເປັນຈິງແລ້ວ, ມັນແມ່ນສະຖາປັດຕະຍະກຳແບບລຳດັບຊັ້ນທີ່ໄດ້ຮັບແຮງບັນດານໃຈມາຈາກການຈັດການໜ່ວຍຄວາມຈຳຂອງ OS, ແລະການເຂົ້າໃຈແນວຄິດການອອກແບບດັ່ງກ່າວຖືເປັນ ຈຸດສຳຄັນ ຫຼື ແກນຫຼັກ ຂອງການນຳໃຊ້ໜ່ວຍຄວາມຈຳໄລຍະຍາວ.
ໃນບົດວິໄຈຂອງ MemGPT (UC Berkeley ແລະຄະນະ, ເດືອນຕຸລາ 2023) ໄດ້ສະເໜີໂຄງສ້າງທີ່ປຽບທຽບ LLM ໃຫ້ເປັນຄືກັບ OS, ໂດຍຖືເອົາ Context Window ເປັນ "ໜ່ວຍຄວາມຈຳຫຼັກ (RAM)" ແລະ ບ່ອນຈັດເກັບຂໍ້ມູນພາຍນອກເປັນ "ດິດ (Disk)". ອີງຕາມຕາຕະລາງປຽບທຽບໃນບົດວິໄຈ, ຄວາມຍາວຂອງ Context ໃນໂມເດວຫຼັກໆໃນເວລານັ້ນມີພຽງແຕ່ 2,000 tokens ສຳລັບ llama-1 ແລະ 8,000 tokens ສຳລັບ GPT-4 ເທົ່ານັ້ນ, ເຊິ່ງການບັນຈຸບໍລິບົດຂອງວຽກງານໄລຍະຍາວໃຫ້ຢູ່ໃນ Window ດຽວແມ່ນມີຄວາມຫຍຸ້ງຍາກໃນດ້ານໂຄງສ້າງ.
ອົງປະກອບຫຼັກຂອງສະຖາປັດຕະຍະກຳມີ 3 ຊັ້ນ ດັ່ງນີ້:
ການຕັ້ງຄ່າ MemGPT ຕ້ອງລະວັງວ່າຂັ້ນຕອນຈະແຕກຕ່າງກັນລະຫວ່າງສະພາບແວດລ້ອມແບບ Local ຫຼື Cloud API. ຖ້າໃຊ້ Local LLM (ເຊັ່ນ: LM Studio) ຈະຕ້ອງມີການດາວໂຫຼດ Model ແລະ ຕັ້ງຄ່າ API endpoint ເພີ່ມເຕີມ, ສ່ວນການໃຊ້ OpenAI API key ແມ່ນສາມາດຕັ້ງຄ່າ Environment variable ເພື່ອດຳເນີນການກວດສອບການເຮັດວຽກໄດ້ຢ່າງວ່ອງໄວ.
ຂັ້ນຕອນການຕິດຕັ້ງ (ກໍລະນີໃຊ້ OpenAI API)
ກ່ອນອື່ນ, ກະລຸນາກຽມສະພາບແວດລ້ອມ Python 3.10 ຂຶ້ນໄປ.
pip install pymemgpt
ຫຼັງຈາກຕິດຕັ້ງແລ້ວ, ໃຫ້ໃຊ້ຄຳສັ່ງລຸ່ມນີ້ເພື່ອເປີດຕົວ Wizard ການຕັ້ງຄ່າເບື້ອງຕົ້ນແບບໂຕ້ຕອບ:
memgpt configure
ໃນ Wizard ໃຫ້ຕັ້ງຄ່າຫົວຂໍ້ຕໍ່ໄປນີ້ຕາມລຳດັບ:
openai (ຖ້າເປັນ Local LLM ໃຫ້ເລືອກ local)chroma (Local) ຫຼື postgresການສ້າງ Agent ເບື້ອງຕົ້ນ
ຫຼັງຈາກຕັ້ງຄ່າສຳເລັດແລ້ວ, ໃຫ້ສ້າງ Agent ດ້ວຍຄຳສັ່ງລຸ່ມນີ້:
memgpt run --agent my_agent
ໃນການເປີດໃຊ້ງານຄັ້ງທຳອິດ, ລະບົບຈະຮຽກຮ້ອງໃຫ້ທ່ານປ້ອນ System Prompt (Persona/ການຕັ້ງຄ່າຕົວຕົນ) ແລະ ຄ່າເລີ່ມຕົ້ນຂອງຄວາມຊົງຈຳຂອງບຸກຄົນ.
"ການນຳໃຊ້ MemGPT ມາແລ້ວ ແຕ່ຍັງປະສົບກັບບັນຫາທີ່ບໍ່ສາມາດຄວບຄຸມໄດ້ວ່າ ເອເຈນ (Agent) ຈະຂຽນຂໍ້ມູນຄວາມຈຳຕອນໃດ ແລະ ອ່ານຂໍ້ມູນຕອນໃດ" ເປັນສຽງສະທ້ອນທີ່ມັກໄດ້ຍິນເລື້ອຍໆໃນໜ້າວຽກການພັດທະນາ. ໃນ MemGPT, ການຄວບຄຸມນີ້ຖືກເຮັດໃຫ້ເກີດຂຶ້ນຜ່ານກົນໄກການຮຽກໃຊ້ຟັງຊັນ (Function Call).
ເອເຈນຂອງ MemGPT ຈະຈັດການກັບຄວາມຈຳໂດຍການຮຽກໃຊ້ຟັງຊັນສະເພາະດັ່ງຕໍ່ໄປນີ້ ຄວບຄູ່ໄປກັບການຕອບໂຕ້ດ້ວຍຂໍ້ຄວາມປົກກະຕິທີ່ເປັນຜົນລວມຈາກ LLM:
core_memory_append: ເພີ່ມຂໍ້ມູນເຂົ້າໄປໃນພື້ນທີ່ຄວາມຈຳຫຼັກພາຍໃນ Main Contextcore_memory_replace: ຂຽນທັບ ແລະ ອັບເດດລາຍການຄວາມຈຳທີ່ມີຢູ່ແລ້ວarchival_memory_insert: ບັນທຶກຂໍ້ມູນໄວ້ໃນບ່ອນຈັດເກັບຂໍ້ມູນພາຍນອກໄລຍະຍາວarchival_memory_search: ດຶງຂໍ້ມູນຈາກບ່ອນຈັດເກັບຂໍ້ມູນພາຍນອກໂດຍໃຊ້ຄຳສຳຄັນ ຫຼື ຄວາມຄ້າຍຄືກັນທາງຄວາມໝາຍຟັງຊັນເຫຼົ່ານີ້ຖືກກຳນົດໄວ້ໃນ System Prompt, ໂດຍ LLM ຈະເປັນຜູ້ວິເຄາະ ແລະ ຕັດສິນໃຈເອງວ່າ "ຄວນຮຽກໃຊ້ຟັງຊັນໃດ". ຕົວຢ່າງເຊັ່ນ: ຖ້າຜູ້ໃຊ້ເວົ້າວ່າ "ຕໍ່ໄປນີ້ ວຽກນີ້ຈະໃຫ້ຜູ້ຮັບຜິດຊອບ A ເປັນຄົນສືບຕໍ່", ເອເຈນຈະຮຽກໃຊ້ core_memory_replace ເພື່ອອັບເດດຂໍ້ມູນຜູ້ຮັບຜິດຊອບ, ເຊິ່ງເປັນຂະບວນການທີ່ເກີດຂຶ້ນ.
ມີ 3 ຈຸດທີ່ຄວນລະວັງໃນເວລາປະຕິບັດງານ:
ສະຫຼຸບ: GraphRAG ສະກັດເອົາ Entity ແລະ Relation ຈາກເອກະສານການເຮັດວຽກ ແລ້ວເຮັດດັດຊະນີເປັນ Knowledge Graph ເຊິ່ງຊ່ວຍໃຫ້ສາມາດຄົ້ນຫາຂໍ້ມູນໃນລະດັບເລິກທີ່ຂ້າມຜ່ານບໍລິບົດຕ່າງໆໄດ້.
GraphRAG ແມ່ນໂຄງການທີ່ Microsoft Research ໄດ້ເປີດຕົວ ຫຼື Launch ໃນເດືອນກຸມພາ 2024. ຈຸດເດັ່ນຂອງມັນຄືການປ່ຽນຂໍ້ຄວາມໃຫ້ເປັນໂຄງສ້າງກຣາຟ ແລະ ສາມາດຄົ້ນຫາໂດຍທີ່ຍັງຮັກສາຄວາມສຳພັນລະຫວ່າງ Entity ໄວ້ໄດ້.
ໃນຕອນທຳອິດ ເຮົາມັກຈະຄິດວ່າ "ການສະກັດເອົາ Entity ໃຫ້ໄດ້ຫຼາຍທີ່ສຸດຈະຊ່ວຍເພີ່ມຄວາມຖືກຕ້ອງ" ແຕ່ໃນຄວາມເປັນຈິງແລ້ວ ການກຳນົດຂອບເຂດຄວາມລະອຽດຂອງ Entity ໃຫ້ແຄບລົງ ແລະ ຈຳກັດໄວ້ສະເພາະໜ່ວຍທີ່ມີຄວາມໝາຍທາງທຸລະກິດ ຈະຊ່ວຍໃຫ້ຄຸນນະພາບການຄົ້ນຫາດີຂຶ້ນ. ການສະກັດເອົາຫຼາຍເກີນໄປຈະເພີ່ມ Noise ໃຫ້ກັບກຣາຟ ແລະ ເປັນສາເຫດທີ່ເຮັດໃຫ້ຕົ້ນທຶນໃນການຄົ້ນຫາເສັ້ນທາງ (Path search) ໃນຂະນະ Query ເພີ່ມທະວີຂຶ້ນເລື້ອຍໆ.
ນະໂຍບາຍພື້ນຖານໃນການອອກແບບ Entity
ເມື່ອອອກແບບການສະກັດເອົາ Entity ສຳລັບເອກະສານທາງທຸລະກິດ ການຕັດສິນໃຈ 3 ຢ່າງຕໍ່ໄປນີ້ໄວ້ກ່ອນຈະຊ່ວຍໃຫ້ຂະບວນການຕໍ່ໄປດຳເນີນໄປຢ່າງສະດວກ:
ຈຸດສຳຄັນໃນການກຳນົດ Relation
ຄວາມສຳພັນລະຫວ່າງ Entity (Relation) ໂດຍພື້ນຖານແລ້ວຄວນກຳນົດໂດຍອີງໃສ່ວະລີຂອງຄຳກິລິຍາ. ຕົວຢ່າງເຊັ່ນ: "ຮັບຜິດຊອບ", "ອະນຸມັດ", "ຂຶ້ນກັບ" ຖ້າໃຊ້ຄຳກິລິຍາທີ່ສອດຄ່ອງກັບຂະບວນການເຮັດວຽກເປັນແກນຫຼັກ ຈະເຮັດໃຫ້ສາມາດດຶງເສັ້ນທາງທີ່ຕ້ອງການໃນການ Query ກຣາຟໃນພາຍຫຼັງໄດ້ງ່າຍຂຶ້ນ.
ໃນເອກະສານຂອງ GraphRAG ໄດ້ສະແດງຕົວຢ່າງການຕັ້ງຄ່າ Text chunk size ໄວ້ທີ່ 50-100 tokens ເຊິ່ງຕ້ອງລະວັງວ່າ ຍິ່ງ Chunk ມີຂະໜາດນ້ອຍເທົ່າໃດ ກໍຍິ່ງຈັບຄວາມສຳພັນແບບ Co-occurrence ໃນລະດັບທ້ອງຖິ່ນຂອງ Entity ໄດ້ງ່າຍຂຶ້ນ ແຕ່ໃນທາງກັບກັນ ກໍຈະເຮັດໃຫ້ຕົ້ນທຶນໃນການສະກັດເອົາກຣາຟເພີ່ມທະວີຂຶ້ນເລື້ອຍໆ.
ການກຳນົດ Relation ຄວນລະບຸໃຫ້ຊັດເຈນວ່າເປັນ "ແບບສອງທິດທາງ ຫຼື ທິດທາງດຽວ" ເພື່ອຮັກສາຄວາມສອດຄ່ອງໃນການອອກແບບ Query.
ເມື່ອໃສ່ເອກະສານທາງທຸລະກິດເຂົ້າໃນ GraphRAG, ການອອກແບບ ຂະບວນການ ຫຼື Pipeline ຈະສົ່ງຜົນກະທົບຢ່າງຫຼວງຫຼາຍຕໍ່ຄຸນນະພາບ. ການປະກອບຂັ້ນຕອນການປະມວນຜົນໃຫ້ເໝາະສົມກັບປະເພດ ແລະ ປະລິມານຂອງເອກະສານແມ່ນສິ່ງທີ່ສຳຄັນ.
ຂັ້ນຕອນພື້ນຖານຂອງ ຂະບວນການ ຫຼື Pipeline ມີດັ່ງນີ້:
ສຳລັບຫຼັກການຕັດສິນໃຈຕາມປະເພດເອກະສານ, ໃນກໍລະນີທີ່ເປັນຄວາມຮູ້ພາຍໃນອົງກອນ (FAQ, ຄູ່ມືການປະຕິບັດງານ) ເຊິ່ງມີຄວາມຖີ່ໃນການອັບເດດຕໍ່າ, ການອອກແບບໃຫ້ມີການ Re-index ເປັນໄລຍະດ້ວຍ Batch Processing ແມ່ນມີຄວາມສົມເຫດສົມຜົນ. ໃນທາງກົງກັນຂ້າມ, ຖ້າເປັນຂໍ້ມູນທີ່ມີການປ່ຽນແປງໄວ ເຊັ່ນ: ບັນທຶກການເຮັດວຽກປະຈຳວັນ ຫຼື ບັນທຶກ CRM, ການກຽມ ຂະບວນການ ຫຼື Pipeline ສຳລັບການສະກັດເອົາສ່ວນຕ່າງ (Differential Extraction) ເພື່ອອັບເດດກຣາຟແບບເພີ່ມເຕີມ (Incremental) ຈະເປັນໂຄງສ້າງທີ່ເໝາະສົມກວ່າ.
"ການສ້າງກຣາຟໄດ້ແລ້ວ ແຕ່ຈະສົ່ງຄຳຖາມ (Query) ແນວໃດເພື່ອໃຫ້ໄດ້ບໍລິບົດຂອງວຽກງານ?" —— ນີ້ແມ່ນຄຳຖາມທີ່ມັກຖືກຖາມຢູ່ສະເໝີໃນໜ້າວຽກຕົວຈິງ.
ໃນ GraphRAG, ພວກເຮົາຈະເລືອກໃຊ້ໂໝດການຄົ້ນຫາ 2 ຮູບແບບຫຼັກສຳລັບກຣາຟຄວາມຮູ້ທີ່ສ້າງຂຶ້ນ:
ຂະບວນການ (Pipeline) ພື້ນຖານໃນການນຳໄປໃຊ້ງານມີດັ່ງນີ້:
ສຳລັບ Chunk size, ຕົວຢ່າງການຕັ້ງຄ່າຢ່າງເປັນທາງການຂອງເອກະສານໄດ້ລະບຸໄວ້ທີ່ 50-100 tokens. ການແບ່ງຍ່ອຍຫຼາຍເທົ່າໃດ ຄວາມລະອຽດຂອງ Node ກໍຈະສູງຂຶ້ນ ແລະ ຄວາມແມ່ນຍຳກໍມີແນວໂນ້ມທີ່ຈະດີຂຶ້ນ, ແຕ່ໃນຂະນະດຽວກັນ ຕົ້ນທຶນໃນການສະກັດກຣາຟກໍຈະເພີ່ມຂຶ້ນເຊັ່ນກັນ. ນອກຈາກນີ້, ເອກະສານຍັງໄດ້ລະບຸວ່າການສະກັດກຣາຟກວມເອົາປະມານ 75% ຂອງຕົ້ນທຶນການສ້າງ Index ທັງໝົດ, ດັ່ງນັ້ນການຕັ້ງຄ່າ Chunk size ຈຶ່ງຈຳເປັນຕ້ອງຄຳນຶງເຖິງການແລກປ່ຽນ ຫຼື Trade-off ລະຫວ່າງຕົ້ນທຶນແລະຄວາມແມ່ນຍຳ.
ສະຫຼຸບ: ການລວມ ຫຼື Merge MemGPT ແລະ GraphRAG ເຂົ້າດ້ວຍກັນ ສາມາດສ້າງໂຄງສ້າງພື້ນຖານ ຫຼື Infrastructure ຄວາມຈຳໄລຍະຍາວທີ່ແຂງແກ່ນ ໂດຍການປະສົມປະສານການຈັດການຄວາມຈຳຂ້າມເຊສຊັນ (Session) ແລະ ການຄົ້ນຫາຄວາມຮູ້ແບບກຣາຟ (Knowledge Graph).
ການກຳນົດບົດບາດຂອງທັງສອງຢ່າງໃຫ້ຊັດເຈນ ພ້ອມທັງຕັ້ງຄ່າຕົວກະຕຸ້ນການຂຽນ (Write trigger) ແລະ ການໃຫ້ຄະແນນການຄົ້ນຫາ (Search scoring) ຢ່າງເໝາະສົມ ຄືກຸນແຈສູ່ຄວາມສຳເລັດໃນການລວມ ຫຼື Merge ລະບົບດັ່ງກ່າວ.
ເມື່ອລວມ MemGPT ແລະ GraphRAG ເຂົ້າດ້ວຍກັນ, ໃນຕອນທຳອິດເຮົາມັກຈະຄິດວ່າ "ພຽງແຕ່ເອີ້ນໃຊ້ທັງສອງຢ່າງແບບຂະໜານກັນກໍພຽງພໍແລ້ວ", ແຕ່ໃນຄວາມເປັນຈິງແລ້ວ ການອອກແບບແບບເປັນລຳດັບຊັ້ນໂດຍແຍກບົດບາດໃຫ້ຊັດເຈນຈະນຳໄປສູ່ການເຮັດວຽກທີ່ສະຖຽນກວ່າ.
ໃນສະຖາປັດຕະຍະກຳແບບປະສົມປະສານ, ເຮົາຈະມອບໝາຍຄວາມຮັບຜິດຊອບໃຫ້ແຕ່ລະອົງປະກອບດັ່ງນີ້:
ການໄຫຼວຽນຂອງຂໍ້ມູນຈະຖືກປະມວນຜົນຕາມລຳດັບດັ່ງນີ້:
ສິ່ງທີ່ສຳຄັນເປັນພິເສດໃນການອອກແບບນີ້ຄື ການຈຳກັດການສອບຖາມໄປຍັງ GraphRAG ໃຫ້ "ສະເພາະໃນກໍລະນີທີ່ຈຳເປັນເທົ່ານັ້ນ".
ການຂຽນຂໍ້ມູນລົງໃນໜ່ວຍຄວາມຈຳວ່າຈະເຮັດເມື່ອໃດ ແລະ ແນວໃດນັ້ນ ແມ່ນການຕັດສິນໃຈດ້ານການອອກແບບທີ່ເປັນ ຈຸດສຳຄັນ ຫຼື ແກນຫຼັກ ທີ່ສົ່ງຜົນຕໍ່ຄຸນນະພາບຂອງລະບົບໜ່ວຍຄວາມຈຳໄລຍະຍາວ.
ຕົວກະຕຸ້ນໃນການຂຽນຂໍ້ມູນ (Write triggers) ສາມາດແບ່ງອອກເປັນ 3 ປະເພດໃຫຍ່ໆ ດັ່ງນີ້:
ໃນການອອກແບບນະໂຍບາຍການອັບເດດ, ການລະບຸເງື່ອນໄຂການແຍກກໍລະນີ (Conditional branching) ແມ່ນມີຄວາມສຳຄັນຫຼາຍ. ຕ້ອງມີການແຍກນະໂຍບາຍໃຫ້ຊັດເຈນ ຄື: ຖ້າຂໍ້ມູນໃໝ່ກ່ຽວກັບເອນຕິຕີ (Entity) ດຽວກັນບໍ່ຂັດກັບຄວາມຈຳທີ່ມີຢູ່ ແມ່ນໃຫ້ເພີ່ມຕໍ່ທ້າຍ (Append), ແຕ່ຖ້າພົບວ່າຂໍ້ມູນຂັດກັນ ຫຼື ຂໍ້ມູນເກົ່າລ້າສະໄໝ ແມ່ນໃຫ້ຂຽນທັບ (Overwrite).
ທ່ານເຄີຍຮູ້ສຶກບໍ່ວ່າ "ເຖິງຈະດຶງຂໍ້ມູນ Node ທີ່ກ່ຽວຂ້ອງມາໄດ້ດ້ວຍ GraphRAG ແລ້ວ, ແຕ່ຄຳຕອບຂອງ Agent ກັບບໍ່ກົງປະເດັນ"? ສາເຫດສ່ວນໃຫຍ່ມັກມາຈາກການອອກແບບການໃຫ້ຄະແນນການຄົ້ນຫາ (Search Scoring) ທີ່ບໍ່ສອດຄ່ອງກັບຄວາມສຳຄັນຂອງວຽກງານຕົວຈິງ.
ໃນສະພາບແວດລ້ອມທີ່ລວມ MemGPT ແລະ GraphRAG ເຂົ້າດ້ວຍກັນ, ການນຳເອົາອົງປະກອບຕໍ່ໄປນີ້ມາປະສົມປະສານເຂົ້າໃນການໃຫ້ຄະແນນຜົນການຄົ້ນຫາແມ່ນມີປະສິດທິຜົນ:
ການນຳເອົາ 4 ປັດໄຈນີ້ມາລວມກັນແບບເສັ້ນ (Linear Combination) ແລະ ປັບນ້ຳໜັກຕາມປະເພດຂອງວຽກງານ ຈະຊ່ວຍໃຫ້ສາມາດຈັດອັນດັບການຄົ້ນຫາທີ່ສອດຄ່ອງກັບບໍລິບົດຂອງວຽກງານໄດ້.
ຍຸດທະສາດການສຳຮອງ (Fallback Strategy) ກໍມີຄວາມສຳຄັນບໍ່ແພ້ກັນ. ຖ້າການສອບຖາມກຣາຟ (Graph Query) ຂອງ GraphRAG ບໍ່ໄດ້ຜົນລັດໃດໆ, ການສົ່ງຂໍ້ມູນຕໍ່ໃຫ້ Agent ໂດຍກົງຈະເຮັດໃຫ້ຄຸນນະພາບຂອງຄຳຕອບຫຼຸດລົງຢ່າງຮຸນແຮງ. ຂັ້ນຕອນການສຳຮອງ 3 ລະດັບທີ່ແນະນຳມີດັ່ງນີ້:
ເມື່ອມີການໃຊ້ງານລະບົບສຳຮອງ, ຄວນມີການຕັ້ງ Flag ໄວ້ໃນ Log ເພື່ອນຳໄປໃຊ້ເປັນ Trigger ໃນການອັບເດດກຣາຟໃນຂັ້ນຕອນຕໍ່ໄປ, ເຊິ່ງຈະຊ່ວຍໃຫ້ສາມາດຕື່ມເຕັມຊ່ອງວ່າງຂອງຄວາມຈຳໄດ້ຢ່າງຕໍ່ເນື່ອງ.
ເມື່ອມີການນຳເອົາລະບົບປະສົມປະສານເຂົ້າສູ່ສະພາບແວດລ້ອມການເຮັດວຽກຈິງ, ບໍ່ວ່າຈະມີການກວດສອບຢ່າງລະອຽດຖີ່ຖ້ວນໃນຂັ້ນຕອນການອອກແບບຫຼາຍພຽງໃດກໍຕາມ, ເມື່ອຂໍ້ມູນການເຮັດວຽກຕົວຈິງເລີ່ມໄຫຼເຂົ້າມາ ກໍມັກຈະມີບັນຫາທີ່ບໍ່ຄາດຄິດເກີດຂຶ້ນ. ຕໍ່ໄປນີ້, ພວກເຮົາຈະມາເບິ່ງຮູບແບບຄວາມຜິດພາດສອງຢ່າງທີ່ມັກພົບເຫັນເລື້ອຍໆໃນໜ້າວຽກຕົວຈິງ ພ້ອມກັບວິທີການຫຼີກລ່ຽງບັນຫາເຫຼົ່ານັ້ນຢ່າງລະອຽດ.
ທັນທີທີ່ນຳເອົາຄວາມຈຳໄລຍະຍາວ (Long-term memory) ມາໃຊ້, ຫຼາຍທີມມັກຈະເລືອກໃຊ້ນະໂຍບາຍທີ່ວ່າ "ບັນທຶກທຸກຢ່າງທີ່ສາມາດບັນທຶກໄດ້". ແຕ່ໃນຄວາມເປັນຈິງແລ້ວ, ມີການລາຍງານກໍລະນີທີ່ວ່າເມື່ອຈຳນວນລາຍການ (Entry) ເພີ່ມຂຶ້ນ, ຄວາມໜ່ວງໃນການຄົ້ນຫາ (Search latency) ຈະແຍ່ລົງຫຼາຍກວ່າເສັ້ນຊື່ ແລະ ຄວາມໄວໃນການຕອບສະໜອງຈະກາຍເປັນຄໍຂວດ (Bottleneck). ການອອກແບບທີ່ຈຳກັດປະລິມານການຈັດເກັບຂໍ້ມູນຄື ຈຸດສຳຄັນ ຫຼື ແກນຫຼັກ ໃນການຮັກສາປະສິດທິພາບໃນໄລຍະຍາວ.
ມາດຕະການຫຼັກໃນການປ້ອງກັນບໍ່ໃຫ້ຂໍ້ມູນບວມມີດັ່ງນີ້:
ການປະສົມປະສານວິທີການເຫຼົ່ານີ້ຈະຊ່ວຍໃຫ້ສາມາດຮັກສາຄວາມສົມດຸນລະຫວ່າງຄວາມສົດໃໝ່ຂອງຄວາມຈຳ ແລະ ຄວາມໄວໃນການຄົ້ນຫາໄດ້.
ຄວາມຂັດແຍ່ງຂອງລາຍການຄວາມຈຳ (Memory entry) ຈະເກີດຂຶ້ນເມື່ອຂໍ້ມູນຂອງເອນຕິຕີ້ (Entity) ດຽວກັນທີ່ມາຈາກຊ່ວງເວລາທີ່ແຕກຕ່າງກັນຖືກບັນທຶກໄວ້ແຍກກັນ. ຕົວຢ່າງເຊັ່ນ: ການມີບັນທຶກທີ່ວ່າ "ຜູ້ຮັບຜິດຊອບແມ່ນທ່ານ Tanaka" ແລະ "ຜູ້ຮັບຜິດຊອບແມ່ນທ່ານ Suzuki" ຢູ່ຮ່ວມກັນ ຈະເຮັດໃຫ້ Agent ບໍ່ສາມາດຕັດສິນໃຈໄດ້ວ່າຄວນອ້າງອີງອັນໃດ.
ການກວດສອບຄວາມຂັດແຍ່ງ, ວິທີການຕໍ່ໄປນີ້ແມ່ນມີປະສິດທິພາບ:
ນະໂຍບາຍໃນການແກ້ໄຂບັນຫາຈຳເປັນຕ້ອງເລືອກໃຊ້ໃຫ້ເໝາະສົມກັບສະຖານະການ. ຖ້າການອັບເດດລາຍການມາຈາກຄຳເວົ້າທີ່ຊັດເຈນຂອງຜູ້ໃຊ້ (ເຊັ່ນ: "ຜູ້ຮັບຜິດຊອບໄດ້ປ່ຽນແລ້ວ") ແມ່ນໃຫ້ຂຽນທັບລາຍການເກົ່າ, ແຕ່ຖ້າເປັນການປ່ຽນແປງທາງບໍລິບົດໂດຍອ້ອມ ແມ່ນຄວນຮັກສາທັງສອງລາຍການໄວ້ພ້ອມກັບການໃຫ້ຄະແນນຄວາມໜ້າເຊື່ອຖື (Confidence score) ເພື່ອຈັດການລຳດັບຄວາມສຳຄັນຈະປອດໄພກວ່າ.
ໃນກໍລະນີທີ່ໃຊ້ GraphRAG, ການອອກແບບໃຫ້ບັນທຶກປະຫວັດການປ່ຽນແປງຄຸນລັກສະນະຂອງ Node ໄວ້ເປັນ Edge ຈະຊ່ວຍໃນການຕິດຕາມຄວາມຂັດແຍ່ງໄດ້. ສຳລັບຝັ່ງ MemGPT, ແນະນຳໃຫ້ມີການຈັດຕັ້ງປະຕິບັດໂດຍການໃສ່ເຫດຜົນໃນການກວດສອບຄວາມຊ້ຳຊ້ອນ (Duplicate check logic) ລົງໃນຟັງຊັນການຂຽນຂໍ້ມູນລົງໃນ Archival storage ແລະ ເມື່ອກວດພົບຄວາມຂັດແຍ່ງທີ່ອາດຈະເກີດຂຶ້ນ ໃຫ້ມີຂັ້ນຕອນການຢືນຢັນໂດຍຕົວ Agent ເອງ.
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.