ກ້ານໃບ ພະລັງງານຂອງ Rerankers ແລະ Retrieval ສອງຂັ້ນຕອນສໍາລັບ Retrieval Augmented Generation - Unite.AI
ເຊື່ອມຕໍ່ກັບພວກເຮົາ

ປັນຍາທຽມທົ່ວໄປ

ພະລັງງານຂອງ Rerankers ແລະ Retrieval ສອງຂັ້ນຕອນສໍາລັບ Retrieval Augmented Generation

mm
ການປັບປຸງ on
ການ​ຟື້ນ​ຕົວ​ການ​ຜະ​ລິດ​ທີ່​ເພີ່ມ​ຂຶ້ນ​

ເມື່ອເວົ້າເຖິງການປຸງແຕ່ງພາສາທໍາມະຊາດ (NLP) ແລະການດຶງຂໍ້ມູນ, ຄວາມສາມາດໃນການດຶງຂໍ້ມູນທີ່ກ່ຽວຂ້ອງຢ່າງມີປະສິດທິພາບແລະຖືກຕ້ອງແມ່ນສໍາຄັນທີ່ສຸດ. ​ໃນ​ຂະນະ​ທີ່​ຂະ​ແໜງ​ການ​ສືບ​ຕໍ່​ພັດທະນາ, ​ໄດ້​ຮັບ​ການ​ພັດທະນາ​ເຕັກນິກ ​ແລະ ວິ​ທີ​ການ​ໃໝ່ ​ເພື່ອ​ຍົກ​ສູງ​ປະສິດທິ​ຜົນ​ຂອງ​ລະບົບ​ການ​ເກັບ​ກູ້, ​ໂດຍ​ສະ​ເພາະ​ແມ່ນ​ໃນ​ສະພາບ​ການ. ການ​ຟື້ນ​ຕົວ​ການ​ຜະ​ລິດ​ທີ່​ເພີ່ມ​ຂຶ້ນ​ (RAG). ຫນຶ່ງໃນເຕັກນິກດັ່ງກ່າວ, ເອີ້ນວ່າການດຶງຂໍ້ມູນສອງຂັ້ນຕອນກັບ rerankers, ໄດ້ອອກມາເປັນການແກ້ໄຂທີ່ມີປະສິດທິພາບເພື່ອແກ້ໄຂຂໍ້ຈໍາກັດຂອງວິທີການດຶງຂໍ້ມູນແບບດັ້ງເດີມ.

ໃນບົດຄວາມນີ້, ພວກເຮົາປຶກສາຫາລືກ່ຽວກັບ intricacies ຂອງການດຶງຂໍ້ມູນສອງຂັ້ນຕອນແລະ rerankers, ຂຸດຄົ້ນຫຼັກການພື້ນຖານຂອງເຂົາເຈົ້າ, ຍຸດທະສາດການປະຕິບັດ, ແລະຜົນປະໂຫຍດທີ່ເຂົາເຈົ້າສະເຫນີໃນການປັບປຸງຄວາມຖືກຕ້ອງແລະປະສິດທິພາບຂອງລະບົບ RAG. ພວກເຮົາຍັງຈະໃຫ້ຕົວຢ່າງພາກປະຕິບັດ ແລະຕົວຢ່າງຂອງລະຫັດເພື່ອສະແດງແນວຄວາມຄິດ ແລະອຳນວຍຄວາມສະດວກໃຫ້ມີຄວາມເຂົ້າໃຈເລິກເຊິ່ງກ່ຽວກັບເທັກນິກທີ່ທັນສະໄໝນີ້.

ຄວາມເຂົ້າໃຈ Retrieval Augmented Generation (RAG)

ຕົວແທນ Swe LLM

ກ່ອນທີ່ຈະເຂົ້າໄປໃນຈຸດສະເພາະຂອງການດຶງຂໍ້ມູນສອງຂັ້ນຕອນແລະ rerankers, ໃຫ້ພວກເຮົາທົບທວນຄືນແນວຄວາມຄິດຂອງ Retrieval Augmented Generation (RAG). RAG ແມ່ນເຕັກນິກທີ່ຂະຫຍາຍຄວາມຮູ້ແລະຄວາມສາມາດຂອງຕົວແບບພາສາຂະຫນາດໃຫຍ່ (LLMs) ໂດຍການໃຫ້ພວກເຂົາເຂົ້າເຖິງແຫຼ່ງຂໍ້ມູນພາຍນອກ, ເຊັ່ນ: ຖານຂໍ້ມູນຫຼືການເກັບກໍາເອກະສານ. ອ້າງອີງເພີ່ມເຕີມຈາກບົດຄວາມ "ດຳ​ເນີນ​ການ​ຢ່າງ​ເລິກ​ເຊິ່ງ​ເຂົ້າ​ໄປ​ໃນ​ການ​ດຶງ​ດູດ​ການ​ຜະ​ລິດ​ທີ່​ເພີ່ມ​ຂຶ້ນ​ໃນ LLM".

ຂະບວນການ RAG ປົກກະຕິປະກອບມີຂັ້ນຕອນຕໍ່ໄປນີ້:

  1. ການສອບຖາມ: ຜູ້ໃຊ້ຕັ້ງຄໍາຖາມຫຼືໃຫ້ຄໍາແນະນໍາກັບລະບົບ.
  2. ການດຶງຂໍ້ມູນຄືນ: ລະບົບສອບຖາມຖານຂໍ້ມູນ vector ຫຼືການເກັບກໍາເອກະສານເພື່ອຊອກຫາຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບການສອບຖາມຂອງຜູ້ໃຊ້.
  3. ເພີ່ມ​ຂຶ້ນ: ຂໍ້​ມູນ​ທີ່​ໄດ້​ຮັບ​ແມ່ນ​ລວມ​ກັບ​ຄໍາ​ຖາມ​ຫຼື​ຄໍາ​ແນະ​ນໍາ​ຕົ້ນ​ສະ​ບັບ​ຂອງ​ຜູ້​ໃຊ້​.
  4. ການຜະລິດ: ຮູບແບບພາສາປະມວນຜົນການປ້ອນຂໍ້ມູນທີ່ເພີ່ມຂຶ້ນ ແລະສ້າງການຕອບສະໜອງ, ນຳໃຊ້ຂໍ້ມູນພາຍນອກເພື່ອເພີ່ມຄວາມຖືກຕ້ອງ ແລະ ສົມບູນຂອງຜົນຜະລິດຂອງມັນ.

ໃນຂະນະທີ່ RAG ໄດ້ພິສູດວ່າເປັນເຕັກນິກທີ່ມີປະສິດທິພາບ, ມັນບໍ່ແມ່ນຄວາມທ້າທາຍຂອງມັນ. ຫນຶ່ງໃນບັນຫາທີ່ສໍາຄັນແມ່ນຢູ່ໃນຂັ້ນຕອນຂອງການດຶງຂໍ້ມູນ, ບ່ອນທີ່ວິທີການດຶງຂໍ້ມູນແບບດັ້ງເດີມອາດຈະບໍ່ກໍານົດເອກະສານທີ່ກ່ຽວຂ້ອງທີ່ສຸດ, ນໍາໄປສູ່ການຕອບສະຫນອງທີ່ເຫມາະສົມຫຼືບໍ່ຖືກຕ້ອງຈາກຮູບແບບພາສາ.

ຄວາມຕ້ອງການສໍາລັບການດຶງຂໍ້ມູນສອງຂັ້ນຕອນແລະ Rerankers

ວິທີການດຶງຂໍ້ມູນແບບດັ້ງເດີມ, ເຊັ່ນວ່າອີງໃສ່ການຈັບຄູ່ຄໍາຫລັກຫຼືແບບຈໍາລອງພື້ນທີ່ vector, ມັກຈະຕໍ່ສູ້ເພື່ອເກັບກໍາການພົວພັນ semantic nuanced ລະຫວ່າງການສອບຖາມແລະເອກະສານ. ຂໍ້ຈໍາກັດນີ້ສາມາດສົ່ງຜົນໃຫ້ມີການດຶງເອົາເອກະສານທີ່ມີຄວາມກ່ຽວຂ້ອງພຽງແຕ່ superficially ຫຼືຂາດຂໍ້ມູນທີ່ສໍາຄັນທີ່ສາມາດປັບປຸງຄຸນນະພາບຂອງການຕອບສະຫນອງທີ່ສ້າງຂຶ້ນຢ່າງຫຼວງຫຼາຍ.

ເພື່ອແກ້ໄຂສິ່ງທ້າທາຍນີ້, ນັກຄົ້ນຄວ້າແລະນັກປະຕິບັດໄດ້ຫັນໄປສູ່ການດຶງຂໍ້ມູນສອງຂັ້ນຕອນດ້ວຍ rerankers. ວິທີການນີ້ປະກອບດ້ວຍຂະບວນການສອງຂັ້ນຕອນ:

  1. ການດຶງຂໍ້ມູນເບື້ອງຕົ້ນ: ໃນຂັ້ນຕອນທໍາອິດ, ຊຸດເອກະສານທີ່ມີທ່າແຮງທີ່ຂ້ອນຂ້າງໃຫຍ່ແມ່ນຖືກດຶງມາໂດຍໃຊ້ວິທີການດຶງຂໍ້ມູນໄວແລະມີປະສິດທິພາບ, ເຊັ່ນ: ຮູບແບບພື້ນທີ່ vector ຫຼືການຄົ້ນຫາທີ່ອີງໃສ່ຄໍາຫລັກ.
  2. ການຈັດອັນດັບໃໝ່: ໃນຂັ້ນຕອນທີສອງ, ຮູບແບບການຈັດລໍາດັບທີ່ຊັບຊ້ອນກວ່າແມ່ນຈ້າງງານເພື່ອຈັດລໍາດັບເອກະສານທີ່ດຶງມາໃນເບື້ອງຕົ້ນໂດຍອີງໃສ່ຄວາມກ່ຽວຂ້ອງຂອງພວກເຂົາກັບການສອບຖາມ, ນໍາເອົາເອກະສານທີ່ກ່ຽວຂ້ອງທີ່ສຸດໄປສູ່ບັນຊີລາຍການ.

ຮູບແບບການຈັດລໍາດັບ, ມັກຈະເປັນເຄືອຂ່າຍ neural ຫຼືສະຖາປັດຕະຍະກໍາທີ່ອີງໃສ່ການຫັນເປັນ, ໄດ້ຖືກຝຶກອົບຮົມໂດຍສະເພາະເພື່ອປະເມີນຄວາມກ່ຽວຂ້ອງຂອງເອກະສານກັບການສອບຖາມທີ່ໃຫ້. ໂດຍການໃຊ້ຄວາມສາມາດໃນການເຂົ້າໃຈພາສາທໍາມະຊາດແບບພິເສດ, ຜູ້ຈັດລໍາດັບສາມາດເກັບກໍາຄວາມແຕກຕ່າງກັນທາງ semantic ແລະການພົວພັນສະພາບການລະຫວ່າງການສອບຖາມແລະເອກະສານ, ເຮັດໃຫ້ການຈັດອັນດັບທີ່ຖືກຕ້ອງແລະມີຄວາມກ່ຽວຂ້ອງຫຼາຍຂຶ້ນ.

ຜົນປະໂຫຍດຂອງການດຶງຂໍ້ມູນສອງຂັ້ນຕອນແລະ Rerankers

ການຮັບຮອງເອົາການດຶງຂໍ້ມູນສອງຂັ້ນຕອນກັບ rerankers ສະເຫນີຜົນປະໂຫຍດທີ່ສໍາຄັນຫຼາຍໃນສະພາບການຂອງລະບົບ RAG:

  1. ປັບປຸງຄວາມຖືກຕ້ອງ: ໂດຍການຈັດລໍາດັບເອກະສານທີ່ດຶງມາໃນເບື້ອງຕົ້ນແລະສົ່ງເສີມສິ່ງທີ່ກ່ຽວຂ້ອງທີ່ສຸດເຖິງດ້ານເທິງ, ລະບົບສາມາດສະຫນອງຂໍ້ມູນທີ່ຖືກຕ້ອງແລະຊັດເຈນຫຼາຍຂຶ້ນກັບຮູບແບບພາສາ, ນໍາໄປສູ່ການຕອບສະຫນອງທີ່ຜະລິດທີ່ມີຄຸນນະພາບສູງກວ່າ.
  2. ຫຼຸດຜ່ອນບັນຫານອກໂດເມນ: ການຝັງຕົວແບບທີ່ໃຊ້ສໍາລັບການດຶງຂໍ້ມູນແບບດັ້ງເດີມມັກຈະຖືກຝຶກອົບຮົມກ່ຽວກັບ corpora ຂໍ້ຄວາມທີ່ມີຈຸດປະສົງທົ່ວໄປ, ເຊິ່ງອາດຈະບໍ່ສາມາດບັນທຶກພາສາສະເພາະຂອງໂດເມນໄດ້ຢ່າງພຽງພໍ. ໃນທາງກົງກັນຂ້າມ, ການຈັດລໍາດັບແບບຈໍາລອງ, ສາມາດໄດ້ຮັບການຝຶກອົບຮົມກ່ຽວກັບຂໍ້ມູນສະເພາະຂອງໂດເມນ, ຫຼຸດຜ່ອນບັນຫາ "ນອກໂດເມນ" ແລະປັບປຸງຄວາມກ່ຽວຂ້ອງຂອງເອກະສານທີ່ດຶງມາພາຍໃນໂດເມນພິເສດ.
  3. Scalability: ວິທີການສອງຂັ້ນຕອນຊ່ວຍໃຫ້ການຂະຫຍາຍປະສິດທິພາບໂດຍການໃຊ້ວິທີການດຶງຂໍ້ມູນໄວ ແລະນໍ້າໜັກເບົາໃນຂັ້ນຕອນເບື້ອງຕົ້ນ, ໃນຂະນະທີ່ສະຫງວນຂະບວນການຈັດລໍາດັບແບບຄອມພິວເຕີທີ່ເຂັ້ມຂຸ້ນກວ່າສໍາລັບເອກະສານຍ່ອຍນ້ອຍກວ່າ.
  4. ຄວາມຍືດຫຍຸ່ນ: ການຈັດລໍາດັບແບບຈໍາລອງໃຫມ່ສາມາດແລກປ່ຽນຫຼືປັບປຸງເປັນເອກະລາດຂອງວິທີການດຶງຂໍ້ມູນເບື້ອງຕົ້ນ, ສະຫນອງຄວາມຍືດຫຍຸ່ນແລະການປັບຕົວກັບຄວາມຕ້ອງການຂອງລະບົບທີ່ພັດທະນາ.

ColBERT: ປະຕິກິລິຍາຊ້າທີ່ມີປະສິດທິພາບແລະມີປະສິດທິພາບ

ຫນຶ່ງໃນຕົວແບບທີ່ໂດດເດັ່ນໃນຂອບເຂດຂອງການຈັດອັນດັບໃຫມ່ແມ່ນ ColBERT (ການໂຕ້ຕອບຊ້າທີ່ມີເນື້ອໃນຫຼາຍກວ່າ BERT). ColBERT ແມ່ນຮູບແບບການຈັດລໍາດັບເອກະສານທີ່ນໍາໃຊ້ຄວາມສາມາດເຂົ້າໃຈພາສາເລິກຂອງ BERT ໃນຂະນະທີ່ແນະນໍາກົນໄກການໂຕ້ຕອບແບບໃຫມ່ທີ່ເອີ້ນວ່າ "ການໂຕ້ຕອບຊ້າ."

ColBERT: ການຊອກຫາທາງຜ່ານທີ່ມີປະສິດທິພາບແລະມີປະສິດທິພາບໂດຍຜ່ານການໂຕ້ຕອບຊ້າທີ່ມີເນື້ອໃນຫຼາຍກວ່າ BERT

ColBERT: ການຊອກຫາທາງຜ່ານທີ່ມີປະສິດທິພາບແລະມີປະສິດທິພາບໂດຍຜ່ານການໂຕ້ຕອບຊ້າທີ່ມີເນື້ອໃນຫຼາຍກວ່າ BERT

ກົນໄກການປະຕິສໍາພັນຊ້າໃນ ColBERT ອະນຸຍາດໃຫ້ມີການດຶງຂໍ້ມູນທີ່ມີປະສິດທິພາບແລະຊັດເຈນໂດຍການດໍາເນີນການສອບຖາມແລະເອກະສານແຍກຕ່າງຫາກຈົນກ່ວາຂັ້ນຕອນສຸດທ້າຍຂອງຂະບວນການດຶງຂໍ້ມູນ. ໂດຍສະເພາະ, ColBERT ໄດ້ເຂົ້າລະຫັດແບບສອບຖາມແລະເອກະສານຢ່າງເປັນອິດສະຫຼະໂດຍໃຊ້ BERT, ແລະຫຼັງຈາກນັ້ນນຳໃຊ້ຂັ້ນຕອນການໂຕ້ຕອບທີ່ມີນ້ຳໜັກເບົາແຕ່ມີພະລັງທີ່ສ້າງແບບຈຳລອງຄວາມຄ້າຍຄືກັນອັນລະອຽດຂອງພວກມັນ. ໂດຍການຊັກຊ້າແຕ່ຮັກສາປະຕິສໍາພັນອັນລະອຽດນີ້, ColBERT ສາມາດພັດທະນາການສະແດງອອກຂອງແບບຈໍາລອງພາສາທີ່ເລິກເຊິ່ງໄປພ້ອມໆກັນໃນການເພີ່ມຄວາມສາມາດໃນການສະແດງເອກະສານກ່ອນຄອມພິວເຕີແບບອອບໄລນ໌, ເປັນການເລັ່ງການປະມວນຜົນແບບສອບຖາມ.

ສະຖາປັດຕະຍະກຳການຕິດຕໍ່ພົວພັນຊ້າຂອງ ColBERT ສະເໜີຜົນປະໂຫຍດຫຼາຍຢ່າງ, ລວມທັງການປັບປຸງປະສິດທິພາບການຄຳນວນ, ການຂະຫຍາຍຂະໜາດຂອງການເກັບກໍາເອກະສານ, ແລະການນຳໃຊ້ຕົວຈິງສຳລັບສະຖານະການຕົວຈິງ. ນອກຈາກນັ້ນ, ColBERT ໄດ້ຖືກປັບປຸງຕື່ມອີກດ້ວຍເຕັກນິກຕ່າງໆເຊັ່ນ: ການຊີ້ນໍາທີ່ປະຕິເສດແລະການບີບອັດທີ່ເຫຼືອ (ໃນ ColBERTv2), ເຊິ່ງປັບປຸງຂະບວນການຝຶກອົບຮົມແລະຫຼຸດຜ່ອນພື້ນທີ່ຂອງຕົວແບບໃນຂະນະທີ່ຮັກສາປະສິດທິພາບການດຶງຂໍ້ມູນສູງ.

ຂໍ້ມູນຫຍໍ້ຂອງລະຫັດນີ້ສະແດງໃຫ້ເຫັນວິທີການກໍານົດແລະນໍາໃຊ້ຕົວແບບ jina-colbert-v1-en ສໍາລັບການດັດສະນີການເກັບກໍາເອກະສານ, ນໍາໃຊ້ຄວາມສາມາດຂອງຕົນໃນການຈັດການສະພາບການຍາວຢ່າງມີປະສິດທິພາບ.

ການປະຕິບັດການດຶງຂໍ້ມູນສອງຂັ້ນຕອນກັບ Rerankers

ຕອນນີ້ພວກເຮົາມີຄວາມເຂົ້າໃຈກ່ຽວກັບຫຼັກການທີ່ຢູ່ເບື້ອງຫລັງການດຶງຂໍ້ມູນສອງຂັ້ນຕອນແລະ rerankers, ໃຫ້ພວກເຮົາຄົ້ນຫາການປະຕິບັດຕົວຈິງຂອງພວກເຂົາໃນສະພາບການຂອງລະບົບ RAG. ພວກເຮົາຈະນໍາໃຊ້ຫ້ອງສະຫມຸດແລະກອບທີ່ນິຍົມເພື່ອສະແດງໃຫ້ເຫັນການລວມເອົາເຕັກນິກເຫຼົ່ານີ້.

ການ​ສ້າງ​ຕັ້ງ​ສະ​ພາບ​ແວດ​ລ້ອມ​

ກ່ອນທີ່ພວກເຮົາຈະເຂົ້າໄປໃນລະຫັດ, ໃຫ້ພວກເຮົາຕັ້ງຄ່າສະພາບແວດລ້ອມການພັດທະນາຂອງພວກເຮົາ. ພວກເຮົາຈະໃຊ້ Python ແລະຫ້ອງສະໝຸດ NLP ທີ່ນິຍົມຫຼາຍອັນ, ລວມທັງ Hugging Face Transformers, Sentence Transformers ແລະ LanceDB.

# Install required libraries
!pip install datasets huggingface_hub sentence_transformers lancedb

ການກະກຽມຂໍ້ມູນ

ສໍາລັບຈຸດປະສົງການສາທິດ, ພວກເຮົາຈະໃຊ້ຊຸດຂໍ້ມູນ “ai-arxiv-chunked” ຈາກ Hugging Face Datasets, ເຊິ່ງມີເອກະສານ ArXiv ຫຼາຍກວ່າ 400 ເອກະສານກ່ຽວກັບການຮຽນຮູ້ຂອງເຄື່ອງຈັກ, ການປະມວນຜົນພາສາທໍາມະຊາດ ແລະຮູບແບບພາສາຂະຫນາດໃຫຍ່.

from datasets import load_dataset
dataset = load_dataset("jamescalam/ai-arxiv-chunked", split="train")
<pre>

ຕໍ່ໄປ, ພວກເຮົາຈະປະມວນຜົນຂໍ້ມູນກ່ອນ ແລະແຍກມັນອອກເປັນຕ່ອນນ້ອຍໆເພື່ອສະດວກໃນການດຶງຂໍ້ມູນ ແລະປະມວນຜົນຢ່າງມີປະສິດທິພາບ.

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
def chunk_text(text, chunk_size=512, overlap=64):
tokens = tokenizer.encode(text, return_tensors="pt", truncation=True)
chunks = tokens.split(chunk_size - overlap)
texts = [tokenizer.decode(chunk) for chunk in chunks]
return texts
chunked_data = []
for doc in dataset:
text = doc["chunk"]
chunked_texts = chunk_text(text)
chunked_data.extend(chunked_texts)
ສໍາລັບຂັ້ນຕອນການດຶງຂໍ້ມູນເບື້ອງຕົ້ນ, ພວກເຮົາຈະໃຊ້ຕົວແບບ Sentence Transformer ເພື່ອເຂົ້າລະຫັດເອກະສານແລະການສອບຖາມຂອງພວກເຮົາເຂົ້າໃນການສະແດງ vector ທີ່ຫນາແຫນ້ນ, ແລະຫຼັງຈາກນັ້ນດໍາເນີນການຄົ້ນຫາໃກ້ຄຽງທີ່ໃກ້ຄຽງທີ່ສຸດໂດຍໃຊ້ຖານຂໍ້ມູນ vector ເຊັ່ນ LanceDB.
from sentence_transformers import SentenceTransformer
from lancedb import lancedb
# Load Sentence Transformer model
model = SentenceTransformer('all-MiniLM-L6-v2')
# Create LanceDB vector store
db = lancedb.lancedb('/path/to/store')
db.create_collection('docs', vector_dimension=model.get_sentence_embedding_dimension())
# Index documents
for text in chunked_data:
vector = model.encode(text).tolist()
db.insert_document('docs', vector, text)
from sentence_transformers import SentenceTransformer
from lancedb import lancedb
# Load Sentence Transformer model
model = SentenceTransformer('all-MiniLM-L6-v2')
# Create LanceDB vector store
db = lancedb.lancedb('/path/to/store')
db.create_collection('docs', vector_dimension=model.get_sentence_embedding_dimension())
# Index documents
for text in chunked_data:
vector = model.encode(text).tolist()
db.insert_document('docs', vector, text)

ດ້ວຍເອກະສານຂອງພວກເຮົາຖືກດັດສະນີ, ພວກເຮົາສາມາດປະຕິບັດການດຶງຂໍ້ມູນເບື້ອງຕົ້ນໂດຍການຊອກຫາປະເທດເພື່ອນບ້ານທີ່ໃກ້ທີ່ສຸດກັບ vector ຄໍາຖາມທີ່ລະບຸ.

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
def chunk_text(text, chunk_size=512, overlap=64):
tokens = tokenizer.encode(text, return_tensors="pt", truncation=True)
chunks = tokens.split(chunk_size - overlap)
texts = [tokenizer.decode(chunk) for chunk in chunks]
return texts
chunked_data = []
for doc in dataset:
text = doc["chunk"]
chunked_texts = chunk_text(text)
chunked_data.extend(chunked_texts)

ການຈັດອັນດັບໃໝ່

ຫຼັງຈາກການດຶງຂໍ້ມູນໃນເບື້ອງຕົ້ນ, ພວກເຮົາຈະໃຊ້ຮູບແບບການຈັດລໍາດັບໃຫມ່ເພື່ອຈັດລໍາດັບເອກະສານທີ່ດຶງມາຄືນໃຫມ່ໂດຍອີງໃສ່ຄວາມກ່ຽວຂ້ອງກັບການສອບຖາມ. ໃນຕົວຢ່າງນີ້, ພວກເຮົາຈະນໍາໃຊ້ ColBERT reranker, ຮູບແບບການຫັນປ່ຽນໄວແລະຖືກຕ້ອງທີ່ຖືກອອກແບບໂດຍສະເພາະສໍາລັບການຈັດອັນດັບເອກະສານ.

from lancedb.rerankers import ColbertReranker
reranker = ColbertReranker()
# Rerank initial documents
reranked_docs = reranker.rerank(query, initial_docs)

ໄດ້ reranked_docs ບັນຊີລາຍຊື່ໃນປັດຈຸບັນປະກອບດ້ວຍເອກະສານທີ່ຈັດລໍາດັບໃຫມ່ໂດຍອີງໃສ່ຄວາມກ່ຽວຂ້ອງກັບການສອບຖາມ, ຕາມການກໍານົດໂດຍ ColBERT reranker.

ການຂະຫຍາຍແລະການຜະລິດ

ດ້ວຍເອກະສານທີ່ຖືກຈັດອັນດັບແລະທີ່ກ່ຽວຂ້ອງຢູ່ໃນມື, ພວກເຮົາສາມາດສືບຕໍ່ໄປສູ່ຂັ້ນຕອນການຂະຫຍາຍແລະການຜະລິດຂອງທໍ່ RAG. ພວກເຮົາຈະໃຊ້ຮູບແບບພາສາຈາກຫ້ອງສະໝຸດ Hugging Face Transformers ເພື່ອສ້າງຄຳຕອບສຸດທ້າຍ.

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("t5-base")
model = AutoModelForSeq2SeqLM.from_pretrained("t5-base")
# Augment query with reranked documents
augmented_query = query + " " + " ".join(reranked_docs[:3])
# Generate response from language model
input_ids = tokenizer.encode(augmented_query, return_tensors="pt")
output_ids = model.generate(input_ids, max_length=500)
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)

ໃນ​ຂໍ້​ມູນ​ລະ​ຫັດ​ຂ້າງ​ເທິງ​ນີ້​, ພວກ​ເຮົາ​ເພີ່ມ​ການ​ສອບ​ຖາມ​ຕົ້ນ​ສະ​ບັບ​ທີ່​ມີ​ສາມ​ອັນ​ດັບ​ຕົ້ນ​ຂອງ​ເອ​ກະ​ສານ reranked​, ການ​ສ້າງ​ເປັນ​. augmented_query. ຫຼັງຈາກນັ້ນ, ພວກເຮົາຜ່ານຄໍາຖາມທີ່ເພີ່ມຂຶ້ນນີ້ໄປຫາຮູບແບບພາສາ T5, ເຊິ່ງເຮັດໃຫ້ການຕອບສະຫນອງໂດຍອີງໃສ່ສະພາບການທີ່ສະຫນອງໃຫ້.

ໄດ້ response ຕົວແປຈະປະກອບດ້ວຍຜົນໄດ້ຮັບສຸດທ້າຍ, ນໍາໃຊ້ຂໍ້ມູນພາຍນອກຈາກເອກະສານທີ່ດຶງມາແລະຈັດລໍາດັບໃຫມ່ເພື່ອໃຫ້ຄໍາຕອບທີ່ຖືກຕ້ອງແລະຄົບຖ້ວນກວ່າຕໍ່ການສອບຖາມຕົ້ນສະບັບ.

ເຕັກນິກຂັ້ນສູງແລະການພິຈາລະນາ

ໃນຂະນະທີ່ການຈັດຕັ້ງປະຕິບັດທີ່ພວກເຮົາໄດ້ກວມເອົາໃຫ້ພື້ນຖານທີ່ເຂັ້ມແຂງສໍາລັບການລວມເອົາສອງຂັ້ນຕອນແລະ rerankers ເຂົ້າໄປໃນລະບົບ RAG, ມີເຕັກນິກຂັ້ນສູງແລະການພິຈາລະນາຈໍານວນຫນຶ່ງທີ່ສາມາດເພີ່ມປະສິດທິພາບແລະຄວາມເຂັ້ມແຂງຂອງວິທີການຕື່ມອີກ.

  1. ການຂະຫຍາຍແບບສອບຖາມ: ເພື່ອປັບປຸງຂັ້ນຕອນການດຶງຂໍ້ມູນເບື້ອງຕົ້ນ, ທ່ານສາມາດນຳໃຊ້ເຕັກນິກການຂະຫຍາຍການສອບຖາມ, ເຊິ່ງກ່ຽວຂ້ອງກັບການເພີ່ມການສອບຖາມຕົ້ນສະບັບດ້ວຍຄຳສັບ ຫຼືປະໂຫຍກທີ່ກ່ຽວຂ້ອງ. ອັນນີ້ສາມາດຊ່ວຍດຶງເອົາຊຸດເອກະສານທີ່ອາດຈະມີຄວາມກ່ຽວຂ້ອງຫຼາຍຂຶ້ນ.
  2. Ensemble Reranking: ແທນທີ່ຈະອີງໃສ່ຕົວແບບ reranking ດຽວ, ທ່ານສາມາດສົມທົບ rerankers ຫຼາຍເຂົ້າໄປໃນ ensemble, leveraging ຄວາມເຂັ້ມແຂງຂອງຮູບແບບທີ່ແຕກຕ່າງກັນເພື່ອປັບປຸງປະສິດທິພາບໂດຍລວມ.
  3. Rerankers ປັບລະອຽດ: ໃນຂະນະທີ່ແບບຈໍາລອງການຈັດລໍາດັບທາງສ່ວນຫນ້າຂອງການຝຶກອົບຮົມສາມາດມີປະສິດທິພາບ, ການປັບໃຫ້ເຂົາເຈົ້າກ່ຽວກັບຂໍ້ມູນສະເພາະຂອງໂດເມນສາມາດເພີ່ມຄວາມສາມາດໃນການເກັບກໍາ semantics ໂດເມນແລະສັນຍານທີ່ກ່ຽວຂ້ອງຕື່ມອີກ.
  4. ການດຶງຂໍ້ມູນຊໍ້າຄືນ ແລະການຈັດລໍາດັບຄືນໃໝ່: ໃນ​ບາງ​ກໍ​ລະ​ນີ​, ການ​ຄືນ​ໃຫມ່​ດຽວ​ຂອງ​ການ​ດຶງ​ແລະ​ການ​ຈັດ​ອັນ​ດັບ​ໃຫມ່​ອາດ​ຈະ​ບໍ່​ພຽງ​ພໍ​. ທ່ານສາມາດຄົ້ນຫາວິທີການຊ້ໍາຊ້ອນ, ບ່ອນທີ່ຜົນຜະລິດຂອງຮູບແບບພາສາຖືກນໍາໃຊ້ເພື່ອປັບປຸງຂະບວນການສອບຖາມແລະການດຶງຂໍ້ມູນ, ນໍາໄປສູ່ລະບົບການໂຕ້ຕອບແລະການເຄື່ອນໄຫວຫຼາຍຂຶ້ນ.
  5. ການດຸ່ນດ່ຽງຄວາມກ່ຽວຂ້ອງແລະຄວາມຫຼາກຫຼາຍ: ໃນຂະນະທີ່ rerankers ມີຈຸດປະສົງເພື່ອສົ່ງເສີມເອກະສານທີ່ກ່ຽວຂ້ອງທີ່ສຸດ, ມັນເປັນສິ່ງຈໍາເປັນທີ່ຈະສ້າງຄວາມສົມດຸນລະຫວ່າງຄວາມກ່ຽວຂ້ອງແລະຄວາມຫຼາກຫຼາຍ. ການລວມເອົາເຕັກນິກການສົ່ງເສີມຄວາມຫຼາກຫຼາຍສາມາດຊ່ວຍປ້ອງກັນລະບົບບໍ່ໃຫ້ແຄບເກີນໄປ ຫຼືມີຄວາມລໍາອຽງໃນແຫຼ່ງຂໍ້ມູນຂອງມັນ.
  6. ຕົວຊີ້ວັດການປະເມີນຜົນ: ເພື່ອປະເມີນປະສິດທິຜົນຂອງວິທີການດຶງຂໍ້ມູນສອງຂັ້ນຕອນແລະການຈັດອັນດັບໃຫມ່ຂອງທ່ານ, ທ່ານຈະຕ້ອງກໍານົດຕົວຊີ້ວັດການປະເມີນຜົນທີ່ເຫມາະສົມ. ເຫຼົ່ານີ້ອາດຈະປະກອບມີ metric retrieval ຂໍ້ມູນແບບດັ້ງເດີມເຊັ່ນ: ຄວາມແມ່ນຍໍາ, recall, ແລະສະເລ່ຍປະຈໍາລໍາດັບ (MRR), ເຊັ່ນດຽວກັນກັບ metrics ສະເພາະວຽກງານທີ່ເຫມາະສົມກັບກໍລະນີການນໍາໃຊ້ຂອງທ່ານ.

ສະຫຼຸບ

Retrieval Augmented Generation (RAG) ໄດ້ກາຍເປັນເຕັກນິກທີ່ມີປະສິດທິພາບສໍາລັບການເພີ່ມຄວາມສາມາດຂອງຮູບແບບພາສາຂະຫນາດໃຫຍ່ໂດຍການໃຊ້ແຫຼ່ງຂໍ້ມູນພາຍນອກ. ຢ່າງໃດກໍ່ຕາມ, ວິທີການດຶງຂໍ້ມູນແບບດັ້ງເດີມມັກຈະຕໍ່ສູ້ກັບການກໍານົດເອກະສານທີ່ກ່ຽວຂ້ອງທີ່ສຸດ, ນໍາໄປສູ່ການປະຕິບັດທີ່ດີທີ່ສຸດ.

retrieval ສອງຂັ້ນຕອນທີ່ມີ rerankers ສະເຫນີການແກ້ໄຂທີ່ຫນ້າສົນໃຈກັບສິ່ງທ້າທາຍນີ້. ໂດຍການລວມເອົາຂັ້ນຕອນການດຶງຂໍ້ມູນໄວໃນເບື້ອງຕົ້ນກັບຮູບແບບການຈັດລໍາດັບທີ່ຊັບຊ້ອນຫຼາຍຂຶ້ນ, ວິທີການນີ້ສາມາດປັບປຸງຄວາມຖືກຕ້ອງແລະຄວາມກ່ຽວຂ້ອງຂອງເອກະສານທີ່ດຶງມາໄດ້ຢ່າງຫຼວງຫຼາຍ, ໃນທີ່ສຸດກໍ່ນໍາໄປສູ່ການຕອບສະຫນອງທີ່ມີຄຸນະພາບສູງກວ່າຈາກຮູບແບບພາສາ.

ຂ້ອຍໄດ້ໃຊ້ເວລາ 50 ປີທີ່ຜ່ານມາເພື່ອເຂົ້າໄປໃນໂລກທີ່ໜ້າສົນໃຈຂອງການຮຽນຮູ້ເຄື່ອງຈັກ ແລະການຮຽນຮູ້ຢ່າງເລິກເຊິ່ງ. ຄວາມກະຕືລືລົ້ນແລະຄວາມຊໍານານຂອງຂ້ອຍໄດ້ເຮັດໃຫ້ຂ້ອຍປະກອບສ່ວນເຂົ້າໃນໂຄງການວິສະວະກໍາຊອບແວທີ່ຫຼາກຫຼາຍຊະນິດຫຼາຍກວ່າ XNUMX ໂຄງການ, ໂດຍເນັ້ນໃສ່ສະເພາະກັບ AI/ML. ຄວາມຢາກຮູ້ຢາກເຫັນຢ່າງຕໍ່ເນື່ອງຂອງຂ້ອຍຍັງໄດ້ດຶງຂ້ອຍໄປສູ່ການປຸງແຕ່ງພາສາທໍາມະຊາດ, ເຊິ່ງຂ້ອຍກະຕືລືລົ້ນທີ່ຈະຄົ້ນຫາຕື່ມອີກ.