ການລວມ RAG ກັບ LLMs ສໍາລັບສະຖາປັດຕະຍະກໍາຊອບແວແບບໄດນາມິກ: ຄູ່ມືພາກປະຕິບັດ | B4N1

ການລວມ RAG ກັບ LLMs ສໍາລັບສະຖາປັດຕະຍະກໍາຊອບແວແບບໄດນາມິກ: ຄູ່ມືພາກປະຕິບັດ

8 months ago · b4n1 Read time: 1 min

**ການ​ປະ​ສົມ​ປະ​ສານ RAG ກັບ LLMs ສໍາ​ລັບ​ສະ​ຖາ​ປັດ​ຕະ​ຍະ​ການ​ຊອບ​ແວ​ແບບ​ເຄື່ອນ​ໄຫວ​: ຄູ່​ມື​ພາກ​ປະ​ຕິ​ບັດ **

ການ​ນໍາ​ສະ​ເຫນີ

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

** RAG ແມ່ນຫຍັງ?**

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

** LLM ແມ່ນຫຍັງ?**

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

ເປັນ​ຫຍັງ​ຈຶ່ງ​ລວມ RAG ກັບ LLMs?

ການເຊື່ອມໂຍງຂອງ RAG ກັບ LLMs ສະເຫນີຜົນປະໂຫຍດຫຼາຍຢ່າງສໍາລັບສະຖາປັດຕະຍະກໍາຊອບແວແບບເຄື່ອນໄຫວ:

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

ຍຸດ​ທະ​ສາດ​ການ​ປະ​ຕິ​ບັດ

ມີຍຸດທະສາດການປະຕິບັດຈໍານວນຫນຶ່ງສໍາລັບການລວມ RAG ກັບ LLMs, ລວມທັງ:

  1. LangChain: LangChain ເປັນຫ້ອງສະໝຸດແຫຼ່ງເປີດທີ່ສະໜອງ API ທີ່ງ່າຍດາຍ ແລະເຂົ້າໃຈງ່າຍສຳລັບການສ້າງແບບຈໍາລອງທີ່ອີງໃສ່ RAG. ມັນສະຫນັບສະຫນູນລະດັບຄວາມກ້ວາງຂອງ LLMs ແລະສາມາດນໍາໃຊ້ເພື່ອປະຕິບັດສະຖາປັດຕະຍະກໍາ RAG ທີ່ສັບສົນ.
  2. DSPy: DSPy ແມ່ນຫ້ອງສະໝຸດ Python ທີ່ໃຫ້ວິທີທີ່ງ່າຍດາຍ ແລະມີປະສິດທິພາບໃນການປະຕິບັດຕົວແບບທີ່ໃຊ້ RAG. ມັນສະຫນັບສະຫນູນລະດັບຄວາມກ້ວາງຂອງ LLMs ແລະສາມາດນໍາໃຊ້ເພື່ອປະຕິບັດສະຖາປັດຕະຍະກໍາ RAG ທີ່ສັບສົນ.

ຕົວ​ຢ່າງ​ລະ​ຫັດ

ນີ້ແມ່ນຕົວຢ່າງລະຫັດງ່າຍໆທີ່ສະແດງໃຫ້ເຫັນວິທີການໃຊ້ LangChain ເພື່ອປະສົມປະສານ RAG ກັບ LLMs: `` python ການ​ນໍາ​ເຂົ້າ langchain​ ຈາກ langchain.chains ນໍາເຂົ້າ RAGChain ຈາກ langchain.llms ນໍາເຂົ້າ LLaMA

llama = LLaMA()

ສ້າງແບບຈໍາລອງ RAGChain

rag_chain = RAGChain(llama, retrieval_model="t5-small")

ກໍານົດການກະຕຸ້ນເຕືອນ

prompt = "ນະຄອນຫຼວງຂອງປະເທດຝຣັ່ງແມ່ນຫຍັງ?"

ສ້າງຜົນຜະລິດຂໍ້ຄວາມ

ຜົນຜະລິດ = rag_chain.run(prompt)

ພິມ(ອອກ)

ຕົວ​ຢ່າງ​ລະ​ຫັດ​ນີ້​ສະ​ແດງ​ໃຫ້​ເຫັນ​ວິ​ທີ​ການ​ນໍາ​ໃຊ້ LangChain ເພື່ອ​ສ້າງ​ແບບ​ຈໍາ​ລອງ RAGChain ທີ່​ລວມ​ຕົວ​ແບບ LLaMA ກັບ​ຮູບ​ແບບ​ການ​ດຶງ​ຂໍ້​ມູນ​. ຮູບແບບ RAGChain ຖືກນໍາໃຊ້ເພື່ອສ້າງຜົນຜະລິດຂໍ້ຄວາມໂດຍອີງໃສ່ການເຕືອນ.

** 5-10 ຄໍາສັ່ງທີ່ໃຊ້ຫຼາຍທີ່ສຸດ / ສະນິບເພັດ **

ນີ້ແມ່ນ 5-10 ຄໍາສັ່ງ / snippets ທີ່ໃຊ້ຫຼາຍທີ່ສຸດສໍາລັບການລວມ RAG ກັບ LLMs:

1. `langchain.RAGChain(llama, retrieval_model="t5-small")`: ສ້າງໂມເດວ RAGChain ທີ່ລວມຕົວແບບ LLaMA ກັບຮູບແບບການດຶງຂໍ້ມູນ.
2. `llama.run(prompt)`: ສ້າງຂໍ້ຄວາມອອກໂດຍອີງໃສ່ການເຕືອນໂດຍໃຊ້ຕົວແບບ LLaMA.
3. `rag_chain.run(prompt)`: ສ້າງຜົນຜະລິດຂໍ້ຄວາມໂດຍອີງໃສ່ການເຕືອນໂດຍໃຊ້ຮູບແບບ RAGChain.
4. `langchain.chains.RAGChain(llama, retrieval_model="t5-small", max_length=1024)`: ສ້າງໂມເດວ RAGChain ທີ່ປະສົມປະສານໂມເດວ LLaMA ກັບຮູບແບບການດຶງຂໍ້ມູນ ແລະກໍານົດຄວາມຍາວສູງສຸດຂອງຂໍ້ຄວາມທີ່ສົ່ງອອກ.
5. `llama.get_input(prompt)`: ຕອບຂໍ້ຄວາມທີ່ປ້ອນເຂົ້າສຳລັບໂມເດວ LLaMA.
6. `rag_chain.get_output(prompt)`: ສົ່ງຄືນຂໍ້ຄວາມອອກສຳລັບຮູບແບບ RAGChain.
7. `langchain.chains.RAGChain(llama, retrieval_model="t5-small", batch_size=32)`: ສ້າງໂມເດວ RAGChain ທີ່ລວມຕົວແບບ LLaMA ກັບຕົວແບບການດຶງຂໍ້ມູນ ແລະກຳນົດຂະໜາດ batch.
8. `llama.get_output(prompt)`: ສົ່ງຄືນຂໍ້ຄວາມອອກສຳລັບຕົວແບບ LLaMA.
9. `rag_chain.get_input(prompt)`: ຕອບຂໍ້ຄວາມທີ່ປ້ອນເຂົ້າສຳລັບຮູບແບບ RAGChain.
10. `langchain.chains.RAGChain(llama, retrieval_model="t5-small", device="cuda")`: ສ້າງໂມເດວ RAGChain ທີ່ລວມຕົວແບບ LLaMA ກັບຕົວແບບການດຶງຂໍ້ມູນ ແລະຕັ້ງອຸປະກອນເປັນ CUDA.

** ການສະແດງພາບ **

ນີ້ແມ່ນການເບິ່ງເຫັນແບບງ່າຍໆຂອງຮູບແບບ RAGChain ໂດຍໃຊ້ Chart.js:
```json
{
  "type": "ແຖບ",
  "ຂໍ້ມູນ": {
    "labels": ["LLaMA", "RAGChain"],
    "ຊຸດຂໍ້ມູນ": [
      {
        "label": "ຄວາມຖືກຕ້ອງ",
        "ຂໍ້ມູນ": [0.8, 0.9],
        "backgroundColor": ["#FF6384", "#36A2EB"]
      }
    ]
  },
  "ທາງເລືອກ": {
    "ຫົວຂໍ້": {
      "ສະແດງ": ຄວາມຈິງ,
      "text": "ຄວາມຖືກຕ້ອງຂອງຕົວແບບ RAGChain"
    },
    "ເກັດ": {
      "yAxes": [
        {
          "ຫມາຍຕິກ": {
            "beginAtZero": ແທ້
          }
        }
      ]
    }
  }
}

ການເບິ່ງເຫັນນີ້ສະແດງໃຫ້ເຫັນເຖິງຄວາມຖືກຕ້ອງຂອງຕົວແບບ LLaMA ແລະຮູບແບບ RAGChain.

** ສະ​ຫຼຸບ **

ການເຊື່ອມໂຍງຂອງ RAG ກັບ LLMs ສະເຫນີຜົນປະໂຫຍດຫຼາຍຢ່າງສໍາລັບສະຖາປັດຕະຍະກໍາຊອບແວແບບເຄື່ອນໄຫວ, ລວມທັງການປັບປຸງຄວາມຖືກຕ້ອງ, ປະສິດທິພາບເພີ່ມຂຶ້ນ, ແລະຄວາມຍືດຫຍຸ່ນທີ່ເພີ່ມຂຶ້ນ. LangChain ແລະ DSPy ແມ່ນສອງເຄື່ອງມື orchestration ທີ່ນິຍົມທີ່ສາມາດຖືກນໍາໃຊ້ເພື່ອປະຕິບັດຕົວແບບທີ່ອີງໃສ່ RAG. ໂດຍການປະຕິບັດຕາມກົນລະຍຸດການປະຕິບັດແລະຕົວຢ່າງລະຫັດທີ່ສະຫນອງໃຫ້ໃນບົດຄວາມນີ້, ນັກພັດທະນາສາມາດສ້າງສະຖາປັດຕະຍະກໍາ RAG ທີ່ສັບສົນທີ່ປະສົມປະສານ LLMs ກັບຮູບແບບການດຶງຂໍ້ມູນ. 5-10 ຄໍາສັ່ງທີ່ໃຊ້ຫຼາຍທີ່ສຸດ / snippets ສໍາລັບການລວມ RAG ກັບ LLMs ແມ່ນຍັງສະຫນອງໃຫ້ສໍາລັບການອ້າງອີງ.


Have Questions?

Let's Talk

Contact me on LinkedIn