Model Merge ແມ່ນຫຍັງ? ເຕັກໂນໂລຊີລວມ ຫຼື Merge ຫຼາຍ LLM ໂດຍບໍ່ຕ້ອງຝຶກສອນເພື່ອເພີ່ມປະສິດທິພາບ

Model Merge ແມ່ນເທັກໂນໂລຢີໃນການລວມ ຫຼື Merge ນ້ຳໜັກຂອງຫຼາຍ Large Language Models (LLM) ໂດຍບໍ່ຕ້ອງມີການຝຶກຝົນເພີ່ມເຕີມ ເພື່ອຍົກລະດັບປະສິດທິພາບຂອງຕົວແບບດຽວ. ເນື່ອງຈາກສາມາດລວມຄວາມສາມາດທີ່ແຕກຕ່າງກັນເຂົ້າເປັນຕົວແບບດຽວໄດ້ໂດຍບໍ່ຕ້ອງເສຍຄ່າໃຊ້ຈ່າຍດ້ານ GPU ຫຼື ເສຍເວລາໃນການຝຶກຝົນໃໝ່, ມັນຈຶ່ງໄດ້ຮັບຄວາມສົນໃຈໃນຖານະທາງເລືອກໃໝ່ຂອງການປັບແຕ່ງ LLM. ໃນບົດຄວາມນີ້, ຈະອະທິບາຍຢ່າງເປັນລະບົບຕັ້ງແຕ່ກົນໄກຂອງ Model Merge, ວິທີການທີ່ເປັນຕົວແທນ, ໄປຈົນເຖິງວິທີການນຳໃຊ້ຕົວຈິງ ເພື່ອໃຫ້ວິສະວະກອນ ແລະ ຜູ້ຮັບຜິດຊອບດ້ານ Machine Learning ສາມາດເຂົ້າໃຈ ແລະ ນຳໄປປະຍຸກໃຊ້ໄດ້ທັນທີ.
Model Merge (ການລວມໂມເດວ) ແມ່ນເຕັກນິກການລວມຄ່າ Weight Parameter ຂອງ LLM (Large Language Model) ທີ່ຜ່ານການ Fine-tuning ມາແລ້ວຫຼາຍໂມເດວເຂົ້າດ້ວຍກັນທາງຄະນິດສາດ ເພື່ອຍົກລະດັບຄວາມສາມາດຂອງໂມເດວດຽວໂດຍບໍ່ຈຳເປັນຕ້ອງມີການຝຶກຝົນເພີ່ມເຕີມ.
ຈຸດເດັ່ນທີ່ສຸດແມ່ນສາມາດລວມທັກສະທີ່ແຕກຕ່າງກັນເຂົ້າເປັນໂມເດວດຽວໄດ້ໂດຍບໍ່ຕ້ອງເສຍຄ່າໃຊ້ຈ່າຍດ້ານ GPU, ເຮັດໃຫ້ມັນກາຍເປັນທາງເລືອກໃໝ່ໃນການປັບແຕ່ງ LLM ທີ່ໄດ້ຮັບຄວາມສົນໃຈທັງໃນດ້ານການຄົ້ນຄວ້າ ແລະ ການນຳໃຊ້ຕົວຈິງ. ໂດຍເລີ່ມຈາກວິທີການຕ່າງໆເຊັ່ນ Task Arithmetic ທີ່ໄດ້ມີການເປີດຕົວ ຫຼື Launch ໃນທ້າຍປີ 2022, ຫຼັງຈາກນັ້ນກໍມີ Algorithm ຕ່າງໆເຊັ່ນ TIES ແລະ DARE ປະກົດຕົວຂຶ້ນມາຢ່າງຕໍ່ເນື່ອງ ແລະ ໄດ້ຮັບຄວາມນິຍົມຢ່າງວ່ອງໄວໂດຍສະເພາະໃນກຸ່ມຊຸມຊົນ Open-weight model.
ໃນບົດຄວາມນີ້, ພວກເຮົາຈະອະທິບາຍຢ່າງເປັນລະບົບຕັ້ງແຕ່ແນວຄວາມຄິດພື້ນຖານຂອງ Model Merge, ພື້ນຖານທາງທິດສະດີ, ການປຽບທຽບວິທີການທີ່ສຳຄັນ, ວິທີການໃຊ້ງານ MergeKit ເຊິ່ງເປັນເຄື່ອງມືໃນການປະຕິບັດຕົວຈິງ, ລວມໄປເຖິງສະຖານະການນຳໃຊ້ ແລະ ຂໍ້ຄວນລະວັງຕ່າງໆ. ເນື້ອໃນນີ້ມີຈຸດປະສົງເພື່ອໃຫ້ວິສະວະກອນ ແລະ ຜູ້ຮັບຜິດຊອບດ້ານ Machine Learning ສາມາດນຳໄປທົດລອງໃຊ້ໄດ້ທັນທີຫຼັງຈາກອ່ານຈົບ.
ສະຫຼຸບ: Model Merge ແມ່ນເຕັກນິກການສັງເຄາະຄ່ານ້ຳໜັກ (Weights) ຂອງ LLM ຫຼາຍຕົວເຂົ້າກັນທາງຄະນິດສາດ ເພື່ອສ້າງເປັນໂມເດວດຽວ ໂດຍມີຈຸດເດັ່ນທີ່ສຸດຄືບໍ່ຈຳເປັນຕ້ອງມີການຝຶກຝົນເພີ່ມເຕີມ (Additional training).
ຕໍ່ໄປນີ້ຈະເປັນການສະຫຼຸບແນວຄວາມຄິດພື້ນຖານຂອງ Model Merge, ຄວາມແຕກຕ່າງຈາກການ Fine-tuning, ແລະ ພື້ນຫຼັງທີ່ເຮັດໃຫ້ເຕັກນິກນີ້ໄດ້ຮັບຄວາມສົນໃຈ.
"ການລວມ ຫຼື Merge ນ້ຳໜັກ" ຂອງຕົວແບບມີຄວາມໝາຍແນວໃດ?
ເມື່ອໄດ້ຍິນຄຳວ່າ Model Merge ເປັນຄັ້ງທຳອິດ, ຫຼາຍຄົນອາດຈະຈິນຕະນາການເຖິງຂະບວນການປະສົມຂໍ້ຄວາມຜົນລວມເຂົ້າຫາກັນ. ແຕ່ໃນຄວາມເປັນຈິງແລ້ວ, ສິ່ງທີ່ເກີດຂຶ້ນແມ່ນການນຳເອົາ ພາຣາມິເຕີ (ນ້ຳໜັກ) ຂອງຕົວແບບມາຄຳນວນບວກ ຫຼື ແທນຄ່າຕົວເລກເຂົ້າຫາກັນໂດຍກົງ.
LLM (Large Language Model) ແມ່ນກຸ່ມຂອງມາຕຣິດນ້ຳໜັກທີ່ປະກອບດ້ວຍຕົວເລກທົດສະນິຍົມຫຼາຍຕື້ຫາຫຼາຍສິບຕື້ຕົວ. ຕົວແບບທີ່ຜ່ານການ Fine-tuning ຈະຝັງຄວາມຮູ້ກ່ຽວກັບວຽກງານສະເພາະໄວ້ໃນຕົວເລກເຫຼົ່ານີ້. Model Merge ຈຶ່ງເປັນເຕັກນິກການນຳເອົາມາຕຣິດນ້ຳໜັກຂອງຫຼາຍຕົວແບບມາຄຳນວນໃນແຕ່ລະອົງປະກອບ ແລະ ລວມ (Merge) ເຂົ້າເປັນມາຕຣິດນ້ຳໜັກໃໝ່ພຽງໜຶ່ງດຽວ.
ເພື່ອໃຫ້ເຫັນພາບທີ່ຊັດເຈນ, ຂໍຍົກຕົວຢ່າງວິທີການພື້ນຖານທີ່ສຸດຄື Weighted Average:
- ມາຕຣິດນ້ຳໜັກຂອງ Model A:
W_A - ມາຕຣິດນ້ຳໜັກຂອງ Model B:
W_B - ນ້ຳໜັກຫຼັງຈາກການ Merge:
α × W_A + (1−α) × W_B
ພຽງແຕ່ການຄຳນວນນີ້ ກໍອາດຈະສາມາດລວມ (Merge) ຄວາມສາມາດດ້ານພາສາຢີ່ປຸ່ນຂອງ Model A ແລະ ຄວາມສາມາດດ້ານການຂຽນໂຄ້ດຂອງ Model B ເຂົ້າເປັນຕົວແບບດຽວກັນໄດ້.
ມີເງື່ອນໄຂເບື້ອງຕົ້ນທີ່ສຳຄັນຢູ່ຂໍ້ໜຶ່ງ ຄື: ການຈະລວມ (Merge) ໄດ້ນັ້ນ ຈຳກັດຢູ່ທີ່ ຕົວແບບທີ່ມາຈາກ Base Model (Foundation Model) ດຽວກັນເທົ່ານັ້ນ. ຕົວແບບທີ່ມີສະຖາປັດຕະຍະກຳຕ່າງກັນຈະບໍ່ສາມາດຄຳນວນໂດຍກົງໄດ້ ເນື່ອງຈາກມິຕິຂອງມາຕຣິດນ້ຳໜັກບໍ່ກົງກັນ. ການທີ່ເລີ່ມຕົ້ນມາຈາກ Base ດຽວກັນນີ້ເອງ ເຮັດໃຫ້ "ຕຳແໜ່ງທາງຄວາມໝາຍ" ຂອງນ້ຳໜັກມີຄວາມສອດຄ່ອງກັນ ແລະ ເປັນໂຄງສ້າງທີ່ຍາກຈະເກີດຄວາມຜິດພາດເມື່ອນຳມາລວມ (Merge) ເຂົ້າຫາກັນ.
ຄວາມແຕກຕ່າງລະຫວ່າງ Fine-tuning ແລະ Knowledge Distillation
ການລວມ ຫຼື Merge ແບບຈຳລອງມັກຈະຖືກເຂົ້າໃຈຜິດກັບວິທີການອື່ນທີ່ມີຈຸດປະສົງຄ້າຍຄືກັນ ແຕ່ໃນຄວາມເປັນຈິງແລ້ວວິທີການດັ່ງກ່າວມີຄວາມແຕກຕ່າງກັນຢ່າງສິ້ນເຊີງ.
ຄວາມແຕກຕ່າງຫຼັກໆສາມາດສະຫຼຸບໄດ້ດັ່ງນີ້:
- Fine-tuning: ແມ່ນການຝຶກຝົນນ້ຳໜັກ (Weights) ຂອງແບບຈຳລອງຄືນໃໝ່ໂດຍໃຊ້ຂໍ້ມູນເພີ່ມເຕີມ ເຊິ່ງມີຄ່າໃຊ້ຈ່າຍໃນການຄຳນວນຜ່ານ GPU ແລະ ຈຳເປັນຕ້ອງໄດ້ກຽມຊຸດຂໍ້ມູນໃໝ່.
- Knowledge Distillation: ແມ່ນການໃຊ້ການກະຈາຍຜົນລວມຂອງແບບຈຳລອງຄູ (Teacher model) ຂະໜາດໃຫຍ່ ເພື່ອຝຶກຝົນແບບຈຳລອງນັກຮຽນ (Student model) ຂະໜາດນ້ອຍ. ຈຸດປະສົງຫຼັກແມ່ນເພື່ອຫຼຸດຜ່ອນຄ່າໃຊ້ຈ່າຍໃນການອະນຸມານ (Inference) ເຊິ່ງຍັງຄົງມີຂະບວນການຝຶກຝົນເກີດຂຶ້ນ.
- Model Merge: ແມ່ນການລວມ ຫຼື Merge ນ້ຳໜັກທີ່ມີຢູ່ແລ້ວເຂົ້າກັນທາງຄະນິດສາດໂດຍບໍ່ມີການຝຶກຝົນເພີ່ມເຕີມໃດໆທັງສິ້ນ, ບໍ່ຈຳເປັນຕ້ອງໃຊ້ຊຸດຂໍ້ມູນ ແລະ ບໍ່ຈຳເປັນຕ້ອງຝຶກຝົນຜ່ານ GPU ຄືນໃໝ່.
ສຳລັບຫຼັກການໃນການຕັດສິນໃຈນັ້ນ, ຖ້າຫາກມີຈຸດປະສົງເພື່ອປັບຕົວເຂົ້າກັບວຽກງານໃໝ່ ຫຼື ເພີ່ມຄວາມແມ່ນຍຳໃນໂດເມນສະເພາະໃດໜຶ່ງ, ການເຮັດ Fine-tuning ຈະເໝາະສົມກວ່າ. ແຕ່ຖ້າຫາກບຸລິມະສິດແມ່ນການເຮັດໃຫ້ແບບຈຳລອງມີຂະໜາດເບົາລົງ ຫຼື ຫຼຸດຜ່ອນຄ່າໃຊ້ຈ່າຍໃນການນຳໃຊ້, ການເຮັດ Knowledge Distillation ຈະມີປະສິດທິພາບຫຼາຍກວ່າ. ໃນທາງກົງກັນຂ້າມ, ຖ້າທ່ານມີແບບຈຳລອງຫຼາຍຕົວທີ່ຜ່ານການ Fine-tuning ມາແລ້ວ ແລະ ຕ້ອງການລວມ ຫຼື Merge ຄວາມສາມາດຂອງພວກມັນເຂົ້າເປັນໜຶ່ງດຽວ, ການເຮັດ Model Merge ຈະເປັນທາງເລືອກທີ່ມີຄ່າໃຊ້ຈ່າຍຕ່ຳທີ່ສຸດ.
ຕົວຢ່າງທີ່ເຫັນພາບໄດ້ຊັດເຈນຄື: ຫຼັງຈາກທີ່ໄດ້ Fine-tuning "ແບບຈຳລອງທີ່ເກັ່ງດ້ານການສ້າງໂຄ້ດ" ແລະ "ແບບຈຳລອງທີ່ເກັ່ງດ້ານການຮອງຮັບຫຼາຍພາສາ" ແຍກກັນແລ້ວ, ທ່ານສາມາດລວມ ຫຼື Merge ນ້ຳໜັກຂອງທັງສອງແບບຈຳລອງເຂົ້າກັນເພື່ອສ້າງເປັນແບບຈຳລອງດຽວທີ່ມີຄວາມສາມາດທັງສອງຢ່າງ. ນີ້ແມ່ນວິທີການທີ່ຍາກຈະເຮັດໃຫ້ສຳເລັດໄດ້ດ້ວຍການຝຶກຝົນຄືນໃໝ່.
ຢ່າງໃດກໍຕາມ, ການເຮັດ Model Merge ຈະສະແດງປະສິດທິພາບໄດ້ດີໃນກໍລະນີທີ່ແບບຈຳລອງພື້ນຖານ (Base model) ເປັນຕົວດຽວກັນ ແລະ ບໍ່ສາມາດນຳໄປໃຊ້ກັບແບບຈຳລອງທີ່ມີສະຖາປັດຕະຍະກຳທີ່ແຕກຕ່າງກັນໄດ້.
ພື້ນຫຼັງທີ່ເຮັດໃຫ້ Model Merge ໄດ້ຮັບຄວາມສົນໃຈ ແລະ ປະຫວັດຄວາມເປັນມາ
"ຫຼາຍຄົນທີ່ເປັນວິສະວະກອນຄົງຈະເຄີຍຮູ້ສຶກວ່າ: 'ຢາກສ້າງໂມເດວທີ່ມີຄວາມສາມາດຫຼາກຫຼາຍໂດຍທີ່ຍັງສາມາດຄວບຄຸມຕົ້ນທຶນ GPU ໄດ້, ແຕ່ການຝຶກຝົນໃໝ່ (Re-training) ກໍບໍ່ແມ່ນທາງເລືອກທີ່ເປັນໄປໄດ້ໃນຄວາມເປັນຈິງ'. Model Merging ໄດ້ກາຍມາເປັນຄຳຕອບທີ່ຕອບໂຈດສິ່ງທ້າທາຍດັ່ງກ່າວໄດ້ຢ່າງຖືກຈຸດ.
ປັດໄຈທີ່ເຮັດໃຫ້ເລື່ອງນີ້ໄດ້ຮັບຄວາມສົນໃຈ ມີ 3 ກະແສຫຼັກດັ່ງນີ້:
- ການແຜ່ຫຼາຍຂອງໂມເດວ Open-weight: ໂມເດວ Open-weight ເຊັ່ນຕະກູນ LLaMA ໄດ້ຖືກເປີດຕົວ ຫຼື Launch ຢ່າງກວ້າງຂວາງ, ເຮັດໃຫ້ເກີດໂມເດວທີ່ຜ່ານການ Fine-tuning ແລ້ວອອກມາເປັນຈຳນວນມະຫາສານ. ຄວາມຕ້ອງການທີ່ຈະນຳເອົາໂມເດວທີ່ຊ່ຽວຊານໃນວຽກງານທີ່ແຕກຕ່າງກັນມາລວມເຂົ້າກັນ ຈຶ່ງເພີ່ມທະວີຂຶ້ນເລື້ອຍໆ.
- ອຸປະສັກດ້ານຕົ້ນທຶນການຝຶກຝົນໃໝ່: ການເຮັດ Full Fine-tuning ໃຫ້ກັບໂມເດວຂະໜາດໃຫຍ່ ຕ້ອງໃຊ້ຊັບພະຍາກອນ GPU ທີ່ມີລາຄາສູງ ແລະ ໃຊ້ເວລາໃນການຝຶກຝົນດົນ. ດັ່ງນັ້ນ, ຄວາມຕ້ອງການວິທີການທີ່ສາມາດລວມຄວາມສາມາດຕ່າງໆເຂົ້າກັນໄດ້ໂດຍບໍ່ຕ້ອງມີການຝຶກຝົນເພີ່ມເຕີມ ຈຶ່ງມີສູງຂຶ້ນ.
- ການສະສົມຫຼັກຖານທາງທິດສະດີ: ໃນຊ່ວງທ້າຍປີ 2022 ຫາ 2023, ໄດ້ມີການເຜີຍແຜ່ບົດວິໄຈທີ່ຜ່ານການກວດສອບກ່ຽວກັບການດຳເນີນການທາງຄະນິດສາດຂອງນ້ຳໜັກ (Weights) ອອກມາຢ່າງຕໍ່ເນື່ອງ ເຊັ່ນ: Task Arithmetic (arXiv:2212.04089, ICLR 2023) ແລະ TIES-Merging (arXiv:2306.01708, NeurIPS 2023).
ໂດຍສະເພາະການວິໄຈຂອງ Task Arithmetic ໄດ້ສະແດງໃຫ້ເຫັນເຖິງໂຄງຮ່າງທີ່ເຂົ້າໃຈງ່າຍວ່າ 'ສາມາດເພີ່ມ ຫຼື ຫຼຸດທັກສະໄດ້ ພຽງແຕ່ການບວກລົບຜົນຕ່າງ (Task Vector) ທີ່ໄດ້ຈາກການນຳນ້ຳໜັກຫຼັງຈາກ Fine-tuning ມາລົບກັບນ້ຳໜັກຂອງ Base Model', ເຊິ່ງສິ່ງນີ້ໄດ້ດຶງດູດຄວາມສົນໃຈຈາກຜູ້ປະຕິບັດງານຕົວຈິງ.
ຫຼັງຈາກນັ້ນ, ວິທີການຕ່າງໆເຊັ່ນ DARE (arXiv:2311.03099, ICML 2024) ທີ່ໃຊ້ປະໂຫຍດຈາກຄວາມຊ້ຳຊ້ອນຂອງ Delta Parameters ກໍໄດ້ຖືກເພີ່ມເຂົ້າມາ, ເຮັດໃຫ້ມັນກາຍເປັນວິທີການລວມ ຫຼື Merge ຄວາມສາມາດຫຼາຍຢ່າງດ້ວຍຕົ້ນທຶນທີ່ຕ່ຳ ແລະ ແຜ່ຂະຫຍາຍຈາກຊຸມຊົນນັກວິໄຈໄປສູ່ການນຳໃຊ້ຈິງຢ່າງວ່ອງໄວ."
ເປັນຫຍັງ Model Merge ຈຶ່ງເຮັດໃຫ້ປະສິດທິພາບເພີ່ມຂຶ້ນ? ພື້ນຖານທາງທິດສະດີ
ສະຫຼຸບ: ເບື້ອງຫຼັງການເພີ່ມປະສິດທິພາບດ້ວຍການລວມ ຫຼື Merge ແບບຈຳລອງ (Model Merge) ແມ່ນມາຈາກຄຸນລັກສະນະຂອງ Loss Landscape ທີ່ການເຮັດ Linear Interpolation ຂອງນ້ຳໜັກ (Weights) ສາມາດເຮັດວຽກໄດ້ຢ່າງມີປະສິດທິພາບ, ລວມເຖິງກົນໄກທີ່ຄວາມຮູ້ສະເພາະຂອງວຽກງານຖືກກະຈາຍ ແລະ ຝັງຢູ່ໃນນ້ຳໜັກເຫຼົ່ານັ້ນ.
ຢ່າງໃດກໍຕາມ, ຖ້າເລືອກວິທີການຜິດພາດ ອາດຈະເຮັດໃຫ້ເກີດບັນຫາການແຊກແຊງ (Interference) ແລະ ສົ່ງຜົນໃຫ້ປະສິດທິພາບຫຼຸດລົງໄດ້.
Loss Landscape ແລະ ການແທນຄ່າເສັ້ນຊື່ຂອງນ້ຳໜັກ (Linear Interpolation)
ເຮົາມັກຈະມີຄວາມຮູ້ສຶກແບບສັນຊາດຕະຍານວ່າ "ຖ້າເອົານ້ຳໜັກ (Weights) ມາຫາຄ່າສະເລ່ຍແບບງ່າຍໆ ປະສິດທິພາບກໍຄວນຈະຫຼຸດລົງ" ແຕ່ໃນຄວາມເປັນຈິງແລ້ວ, ໄດ້ມີການລາຍງານກໍລະນີທີ່ວ່າ ຖ້າເປັນໂມເດວທີ່ແຕກງອກອອກມາຈາກ Base model ດຽວກັນ, ການເຮັດ Linear interpolation ກໍສາມາດຮັກສາ ຫຼື ຍົກລະດັບປະສິດທິພາບໃຫ້ດີຂຶ້ນໄດ້. ກຸນແຈສຳຄັນໃນການເຂົ້າໃຈຄວາມຂັດແຍ່ງນີ້ແມ່ນໂຄງສ້າງຂອງ "Loss landscape".
Loss landscape ໝາຍເຖິງພູມສັນຖານຂອງ Loss function ໃນພື້ນທີ່ Parameter ຂອງນ້ຳໜັກໂມເດວ. ໃນການຄົ້ນຄວ້າດ້ານ Deep learning, ເປັນທີ່ຮູ້ກັນດີວ່ານ້ຳໜັກຂອງໂມເດວທີ່ຜ່ານການຝຶກຝົນມາຢ່າງພຽງພໍນັ້ນ ມີທ່າອ່ຽງທີ່ຈະເຂົ້າສູ່ "ຮ່ອມພູທີ່ກວ້າງ ແລະ ຮາບພຽງ" (Flat minima).
- ຮ່ອມພູທີ່ຮາບພຽງ (Flat minima): ເຂດທີ່ເຖິງແມ່ນວ່ານ້ຳໜັກຈະຄາດເຄື່ອນໄປເລັກນ້ອຍ ແຕ່ຄ່າ Loss ກໍເກືອບຈະບໍ່ເພີ່ມຂຶ້ນເລີຍ.
- ຮ່ອມພູທີ່ຊັນ (Sharp minima): ເຂດທີ່ບໍ່ໝັ້ນຄົງ ເຊິ່ງພຽງແຕ່ການປ່ຽນແປງນ້ຳໜັກເລັກນ້ອຍກໍເຮັດໃຫ້ຄ່າ Loss ເພີ່ມຂຶ້ນຢ່າງກະທັນຫັນ.
ໂມເດວຫຼາຍຕົວທີ່ຖືກ Fine-tuning ມາຈາກ Base model ດຽວກັນ ຖືວ່າມີທ່າອ່ຽງທີ່ຈະເຂົ້າສູ່ Flat minima ທີ່ຕັ້ງຢູ່ໃກ້ຄຽງກັນໃນ Loss landscape ດຽວກັນ. ດ້ວຍເຫດນີ້, ຈຸດກາງທີ່ໄດ້ຈາກການເຮັດ Linear interpolation ລະຫວ່າງນ້ຳໜັກຂອງທັງສອງໂມເດວ ຈຶ່ງຍັງຄົງຢູ່ໃນເຂດທີ່ມີຄ່າ Loss ຕ່ຳໄດ້ງ່າຍ.
ຖ້າສະແດງອອກມາເປັນສູດຄະນິດສາດ, ນ້ຳໜັກຫຼັງຈາກການ Interpolation ສາມາດສະແດງໄດ້ດັ່ງນີ້:
θ_merged = (1 − α) × θ_A + α × θ_B(α ແມ່ນສຳປະສິດການ Interpolation ຕັ້ງແຕ່ 0 ເຖິງ 1)
ເງື່ອນໄຂເບື້ອງຕົ້ນທີ່ເຮັດໃຫ້ການ Interpolation ນີ້ເຮັດວຽກໄດ້ຢ່າງມີປະສິດທິພາບ ມີດັ່ງນີ້:
ກົນໄກທີ່ຄວາມຮູ້ສະເພາະວຽກງານຖືກຝັງໄວ້ໃນນ້ຳໜັກ
ເມື່ອດຳເນີນການ Fine-tuning, ນ້ຳໜັກ (weights) ຂອງໂມເດວຈະປ່ຽນແປງໄປຈາກ Base model ແນວໃດ?
LLM (Large Language Model) ໄດ້ຈັດເກັບຮູບແບບພາສາທົ່ວໄປໄວ້ໃນນ້ຳໜັກຜ່ານການ Pre-training, ແຕ່ເມື່ອດຳເນີນການ Fine-tuning ດ້ວຍຂໍ້ມູນຂອງວຽກງານສະເພາະ, ຄວາມແຕກຕ່າງນັ້ນຈະຖືກສະສົມໄວ້ໃນນ້ຳໜັກໃນຖານະຄວາມຮູ້ສະເພາະຂອງວຽກງານນັ້ນ. ຄວາມແຕກຕ່າງນີ້ເອງຄືຕົວຕົນຂອງ "Task vector" ທີ່ຖືກນິຍາມໄວ້ໃນບົດວິໄຈ Task Arithmetic.
- Task vector = ນ້ຳໜັກຫຼັງຈາກ Fine-tuning − ນ້ຳໜັກຂອງ Base model
- ຄວາມຮູ້ທົ່ວໄປທີ່ Base model ມີຈະຍັງຄົງຢູ່, ໃນຂະນະທີ່ການປັບແຕ່ງສະເພາະວຽກງານຈະຖືກແຍກອອກມາເປັນຄວາມແຕກຕ່າງ
- ການນຳ Task vector ຂອງຫຼາຍວຽກງານມາບວກເຂົ້າກັນ ຈະສາມາດລວມ ຫຼື Merge ຄວາມສາມາດຂອງແຕ່ລະວຽກງານເຂົ້າເປັນໂມເດວດຽວໄດ້
ໃນຈຸດນີ້, ການແບ່ງເງື່ອນໄຂມີຄວາມສຳຄັນຫຼາຍ. ໃນກໍລະນີທີ່ວຽກງານມີຄວາມກ່ຽວຂ້ອງກັນສູງ (ເຊັ່ນ: ການແປພາສາອັງກິດ ແລະ ການແປພາສາຢີ່ປຸ່ນ) ການແຊກແຊງຂອງ Task vector ຈະມີໜ້ອຍ ແລະ ມີແນວໂນ້ມທີ່ທັງສອງທັກສະຈະຍັງຄົງຢູ່ໄດ້ຫຼັງຈາກການບວກເຂົ້າກັນ. ໃນທາງກົງກັນຂ້າມ, ໃນໂດເມນທີ່ແຕກຕ່າງກັນຢ່າງສິ້ນເຊີງ (ເຊັ່ນ: ການສ້າງໂຄ້ດ ແລະ ການວິເຄາະອາລົມ) ມັກຈະເກີດການອັບເດດທີ່ຂັດແຍ່ງກັນໃນພາຣາມິເຕີດຽວກັນ, ເຊິ່ງມີລາຍງານວ່າການບວກແບບງ່າຍໆອາດເຮັດໃຫ້ຄຸນນະພາບຫຼຸດລົງ.
ການວິໄຈຂອງ DARE ລາຍງານວ່າ ພາຣາມິເຕີ delta ສ່ວນໃຫຍ່ຫຼັງຈາກ SFT (Supervised Fine-tuning) ແມ່ນມີຄວາມຊ້ຳຊ້ອນ ແລະ ເຖິງແມ່ນວ່າຈະກຳຈັດອອກ 90-99% ກໍຍັງສາມາດຮັກສາຄວາມສາມາດຂອງໂມເດວໄວ້ໄດ້. ສິ່ງນີ້ຊີ້ໃຫ້ເຫັນວ່າຄວາມຮູ້ສະເພາະຂອງວຽກງານໄດ້ຖືກຝັງໄວ້ໂດຍກະຈຸກຕົວຢູ່ໃນນ້ຳໜັກພຽງສ່ວນໜ້ອຍເທົ່ານັ້ນ.
ດ້ວຍຄຸນສົມບັດນີ້ເອງ ຈຶ່ງເຮັດໃຫ້ການລວມ ຫຼື Merge ໂມເດວທີ່ຈັດການກັບຄວາມແຕກຕ່າງຂອງນ້ຳໜັກທາງຄະນິດສາດສາມາດເກີດຂຶ້ນໄດ້.
ກໍລະນີທີ່ Model Merge ລົ້ມເຫຼວ ແລະ ບັນຫາການແຊກແຊງ (Interference)
"ເມື່ອລວມ ຫຼື Merge ແລ້ວ ປະສິດທິພາບຄວນຈະເພີ່ມຂຶ້ນ ແຕ່ເປັນຫຍັງຄວາມຖືກຕ້ອງຈຶ່ງຫຼຸດລົງ" ນີ້ຄືໜຶ່ງໃນອຸປະສັກທຳອິດທີ່ວິສະວະກອນຜູ້ທົດລອງເຮັດ Model Merge ມັກຈະພົບ.
ສາເຫດຫຼັກທີ່ເຮັດໃຫ້ການລວມ ຫຼື Merge ລົ້ມເຫຼວແມ່ນມາຈາກ ການແຊກແຊງຂອງພາຣາມິເຕີ (Parameter Interference). ແບບຈຳລອງທີ່ຖືກ Fine-tuning ມາຈາກວຽກງານທີ່ແຕກຕ່າງກັນ ອາດມີການອັບເດດພາຣາມິເຕີດຽວກັນໄປໃນທິດທາງທີ່ຂັດແຍ່ງກັນ. ການນຳເອົາພາຣາມິເຕີເຫຼົ່ານີ້ມາຫາຄ່າສະເລ່ຍແບບງ່າຍໆ ອາດສົ່ງຜົນໃຫ້ເກີດສະພາວະກາງໆທີ່ບໍ່ໄດ້ຖືກປັບໃຫ້ເໝາະສົມກັບວຽກງານໃດເລີຍ ເຊິ່ງມີລາຍງານວ່າເຮັດໃຫ້ປະສິດທິພາບຂອງທັງສອງວຽກງານຫຼຸດລົງ.
ສະຖານະການຕົວຢ່າງທີ່ມັກຈະເຮັດໃຫ້ເກີດຄວາມຜິດພາດ ມີດັ່ງນີ້:
- Base Model ແຕກຕ່າງກັນ: ການລວມ ຫຼື Merge ແບບຈຳລອງທີ່ມີສະຖາປັດຕະຍະກຳ ຫຼື ຂໍ້ມູນທີ່ໃຊ້ໃນການຝຶກຝົນເບື້ອງຕົ້ນ (Pre-training data) ຕ່າງກັນ ມັກຈະໃຫ້ຜົນລວມທີ່ບໍ່ມີຄວາມໝາຍ ເນື່ອງຈາກຄວາມໝາຍຂອງ Weight Space ບໍ່ສອດຄ່ອງກັນ.
- ວຽກງານມີຄວາມແຕກຕ່າງກັນທາງຄວາມໝາຍ: ໃນກໍລະນີທີ່ການກະຈາຍຂອງຂໍ້ມູນການຮຽນຮູ້ແຕກຕ່າງກັນຫຼາຍ ເຊັ່ນ: ແບບຈຳລອງທີ່ເນັ້ນການສ້າງ Code ກັບແບບຈຳລອງທີ່ເນັ້ນການວິເຄາະອາລົມ, ທິດທາງຂອງ Task Vector ມັກຈະເກີດການປະທະກັນ.
- ການຕັ້ງຄ່າສຳປະສິດໃນການລວມ ຫຼື Merge ຜິດພາດ: ຖ້າບໍ່ປັບສຳປະສິດນ້ຳໜັກ (Weighting coefficient) ໃຫ້ເໝາະສົມ, ຄຸນລັກສະນະຂອງແບບຈຳລອງໜຶ່ງອາດຈະເດັ່ນເກີນໄປ ຈົນເຮັດໃຫ້ຄວາມສາມາດຂອງອີກແບບຈຳລອງໜຶ່ງຖືກກົບຝັງໄປ.
TIES-Merging (arXiv:2306.01708, NeurIPS 2023) ເປັນວິທີການທີ່ແກ້ໄຂບັນຫາການແຊກແຊງນີ້ໂດຍກົງ. ໂດຍມີຂັ້ນຕອນການຍັບຍັ້ງການແຊກແຊງ 3 ຂັ້ນຕອນຄື: ການຕັດພາຣາມິເຕີທີ່ບໍ່ຈຳເປັນເຊິ່ງມີການປ່ຽນແປງໜ້ອຍອອກ (Trim), ການເລືອກເຄື່ອງໝາຍໂດຍໃຊ້ສຽງສ່ວນຫຼາຍ (Elect Sign), ແລະ ການລວມ ຫຼື Merge ສະເພາະເຄື່ອງໝາຍທີ່ເຫັນດີນຳກັນເທົ່ານັ້ນ.
ວິທີການ Model Merge ທີ່ເປັນຕົວແທນມີຫຍັງແດ່?
ສະຫຼຸບ: ການລວມ ຫຼື Merge ແບບຈຳລອງມີຫຼາຍອະລະກໍຣິດ (Algorithm) ແລະ ຈຳເປັນຕ້ອງເລືອກໃຊ້ໃຫ້ເໝາະສົມຕາມຈຸດປະສົງ ແລະ ເງື່ອນໄຂ.
ນັບຕັ້ງແຕ່ການຫາຄ່າສະເລ່ຍແບບມີນ້ຳໜັກ (Weighted Average) ໄປຈົນເຖິງ Task Arithmetic, TIES, DARE ແລະ SLERP, ແນວທາງໃນການປະຕິບັດມີຫຼາກຫຼາຍ. ການເຂົ້າໃຈເຖິງຄຸນລັກສະນະຂອງແຕ່ລະວິທີການຈະເປັນປັດໄຈທີ່ສົ່ງຜົນຕໍ່ຄຸນນະພາບໃນການລວມ ຫຼື Merge.
ພື້ນຖານຂອງການແທນຄ່າເສັ້ນຊື່ (Weighted Average)
ວິທີການ ລວມ ຫຼື Merge ແບບຈຳລອງທີ່ງ່າຍທີ່ສຸດຄື: ການແທນຄ່າແບບເສັ້ນ (Weighted Average) ເຊິ່ງເປັນວິທີທີ່ເຂົ້າໃຈງ່າຍໂດຍການນຳເອົາພາຣາມິເຕີນ້ຳໜັກຂອງ 2 ແບບຈຳລອງມາບວກກັນຕາມອັດຕາສ່ວນທີ່ກຳນົດໄວ້.
ສະແດງອອກເປັນສູດຄະນິດສາດໄດ້ດັ່ງນີ້:
merged = α × model_A + (1 − α) × model_B- α ແມ່ນສຳປະສິດການປະສົມ (Blending coefficient) ທີ່ຕັ້ງຄ່າໄດ້ລະຫວ່າງ 0 ຫາ 1
ຕົວຢ່າງ: ຖ້າ α = 0.5 ແມ່ນການປະສົມ 2 ແບບຈຳລອງເຂົ້າກັນຢ່າງເທົ່າທຽມ, ຖ້າ α = 0.7 ແມ່ນການປັບໃຫ້ສະທ້ອນຄຸນລັກສະນະຂອງ model_A ໃຫ້ເດັ່ນຊັດຂຶ້ນ.
ໃນຕອນທຳອິດ ເຮົາມັກຈະຄິດວ່າ "ການສະເລ່ຍແບບງ່າຍໆຈະເຮັດໃຫ້ຈຸດແຂງຂອງທັງສອງແບບຈຳລອງຈືດຈາງລົງ". ແຕ່ໃນຄວາມເປັນຈິງແລ້ວ, ຖ້າເປັນແບບຈຳລອງທີ່ຜ່ານການ Fine-tuning ມາຈາກແບບຈຳລອງພື້ນຖານ (Base model) ດຽວກັນ, ຫຼາຍກໍລະນີມີລາຍງານວ່າການໃຊ້ການແທນຄ່າແບບເສັ້ນຂອງນ້ຳໜັກສາມາດຮັກສາທັກສະຂອງທັງສອງຝ່າຍໄວ້ໄດ້ຢ່າງເໝາະສົມ. ເຊິ່ງເຊື່ອກັນວ່າເປັນຍ້ອນທັງສອງແບບຈຳລອງຕັ້ງຢູ່ໃນບໍລິເວນໃກ້ຄຽງກັນຂອງ Loss landscape ດຽວກັນ.
ໃນທາງກົງກັນຂ້າມ, ການແທນຄ່າແບບເສັ້ນກໍມີຂໍ້ຈຳກັດທີ່ຊັດເຈນຄື:
- ເງື່ອນໄຂເບື້ອງຕົ້ນ: ຕ້ອງມີສະຖາປັດຕະຍະກຳດຽວກັນ ແລະ ມາຈາກແບບຈຳລອງພື້ນຖານດຽວກັນ
- ການປັບ α: ອັດຕາສ່ວນທີ່ດີທີ່ສຸດຈະແຕກຕ່າງກັນໄປຕາມແຕ່ລະວຽກງານ (Task) ເຊິ່ງຕ້ອງມີການທົດລອງຜິດທົດລອງຖືກ
- ຄວາມສ່ຽງຕໍ່ການແຊກແຊງ: ໃນກໍລະນີທີ່ເປັນແບບຈຳລອງທີ່ເສີມສ້າງຄົນລະໂດເມນ (Domain) ກັນ, ປະສິດທິພາບອາດຈະອອກມາບໍ່ສົມບູນແບບ
ສຳລັບການຄົ້ນຫາຄ່າ α, ວິທີທີ່ນິຍົມໃຊ້ກັນທົ່ວໄປຄືການເຮັດ Grid search ໂດຍເບິ່ງຄະແນນຈາກ Validation set.
Task Arithmetic ແລະ ການ Merge ດ້ວຍການຄຳນວນ Vector
Task Arithmetic (ການຄິດໄລ່ໜ້າວຽກ) ແມ່ນວິທີການທີ່ຖືກນຳສະເໜີໃນບົດຄວາມວິໄຈ "Editing Models with Task Arithmetic" ເຊິ່ງໄດ້ເປີດຕົວ ຫຼື Launch ໃນປີ 2022. ຈຸດສຳຄັນ ຫຼື ແກນຫຼັກ ຂອງມັນແມ່ນແນວຄວາມຄິດທີ່ເອີ້ນວ່າ Task Vector (ທາສກ໌ເວັກເຕີ) ເຊິ່ງຖືກກຳນົດດ້ວຍສູດດັ່ງນີ້:
Task Vector = ນ້ຳໜັກຫຼັງຈາກການ Fine-tuning − ນ້ຳໜັກຂອງ Base Model
ກ່າວຄື, ມັນແມ່ນການດຳເນີນການເພື່ອສະກັດເອົາ "ການປ່ຽນແປງເທົ່າໃດ" ຈາກ Base Model ໂດຍຜ່ານການປັບຕົວເຂົ້າກັບໜ້າວຽກສະເພາະໃນຮູບແບບຂອງເວັກເຕີ.
ເມື່ອໃຊ້ເວັກເຕີນີ້, ການຈັດການກັບນ້ຳໜັກ (Weights) ຈະຖືກປ່ຽນແທນດ້ວຍການຄິດໄລ່ເລກຄະນິດທີ່ເຂົ້າໃຈງ່າຍ:
- ການບວກ (ການລວມແບບບວກ): ການນຳເອົາ Task Vector ຂອງຫຼາຍໜ້າວຽກມາບວກເຂົ້າກັນ ແລ້ວນຳໄປບວກໃສ່ Base Model ຈະສາມາດສ້າງແບບຈຳລອງທີ່ມີຄວາມສາມາດຂອງແຕ່ລະໜ້າວຽກໄປພ້ອມໆກັນໄດ້.
- ການລົບ (ການກຳຈັດຄວາມສາມາດ): ການລົບ Task Vector ອອກຈາກ Base Model ຈະສາມາດເຮັດໃຫ້ແນວໂນ້ມການຕອບສະໜອງຕໍ່ໜ້າວຽກສະເພາະອ່ອນລົງໄດ້ຢ່າງຕັ້ງໃຈ.
- ການປັບຂະໜາດ (Scaling): ການຄູນສຳປະສິດສະກາລາ (Scalar coefficient) ເຂົ້າກັບເວັກເຕີ ຈະຊ່ວຍໃຫ້ສາມາດປັບລະດັບອິດທິພົນຂອງແຕ່ລະໜ້າວຽກໄດ້.
ໃນແງ່ຂອງເງື່ອນໄຂການແຍກໜ້າວຽກ, ຖ້າໜ້າວຽກທີ່ຕ້ອງການລວມເຂົ້າກັນມີຄວາມເປັນອິດສະຫຼະຕໍ່ກັນ, ການບວກແບບງ່າຍໆມັກຈະພຽງພໍ. ໃນທາງກົງກັນຂ້າມ, ຖ້າມີການຊ້ຳຊ້ອນທາງຄວາມໝາຍ ຫຼື ມີການແຊກແຊງກັນລະຫວ່າງໜ້າວຽກ, ຈຳເປັນຕ້ອງປັບສຳປະສິດການປັບຂະໜາດຢ່າງລະມັດລະວັງ.
ຢ່າງໃດກໍຕາມ, Task Arithmetic ຍັງຄົງມີບັນຫາເລື່ອງການແຊກແຊງຂອງພາຣາມິເຕີ (Parameter interference). ການບວກ Task Vector ຫຼາຍອັນເຂົ້າກັນໂດຍກົງ ອາດເຮັດໃຫ້ເຄື່ອງໝາຍຂອງນ້ຳໜັກເກີດການຂັດແຍ່ງກັນ ແລະ ສົ່ງຜົນໃຫ້ປະສິດທິພາບຫຼຸດລົງໄດ້.
ພາບລວມຂອງ Algorithm ລ່າສຸດ ເຊັ່ນ TIES, DARE, SLERP
ເມື່ອຮູ້ສຶກວ່າ "ການຫາຄ່າສະເລ່ຍແບບມີນ້ຳໜັກພຽງຢ່າງດຽວບໍ່ສາມາດເພີ່ມຄວາມແມ່ນຍຳໄດ້. ມີວິທີການ ລວມ ຫຼື Merge ທີ່ສະຫຼາດກວ່ານີ້ບໍ່?", ທາງເລືອກທີ່ສາມາດນຳມາໃຊ້ໄດ້ຄືສາມວິທີດັ່ງນີ້: TIES, DARE ແລະ SLERP.
TIES (TRIM, ELECT SIGN & MERGE) ເປັນອະລະກໍຣິດທີ່ຖືກ ເປີດຕົວ ຫຼື Launch ໃນງານ NeurIPS 2023. ວິທີນີ້ຊ່ວຍແກ້ໄຂບັນຫາທີ່ຄວາມແຕກຕ່າງຂອງນ້ຳໜັກ (Delta) ຂອງຫຼາຍໂມເດວລົບກວນເຊິ່ງກັນແລະກັນ ໂດຍແບ່ງອອກເປັນສາມຂັ້ນຕອນ:
- TRIM: ຕັດພາຣາມິເຕີ Delta ທີ່ມີຄ່າສຳບູນນ້ອຍອອກ
- ELECT SIGN: ຕັດສິນໃຈໂດຍການລົງຄະແນນສຽງວ່າ "ຄວນເຄື່ອນຍ້າຍໄປໃນທິດທາງບວກ ຫຼື ລົບ" ໃນແຕ່ລະພາຣາມິເຕີ
- MERGE: ລວມ ຫຼື Merge ສະເພາະ Delta ທີ່ມີເຄື່ອງໝາຍກົງກັນໂດຍການຫາຄ່າສະເລ່ຍ
ເນື່ອງຈາກມີການກຳຈັດການຂັດກັນຂອງເຄື່ອງໝາຍຢ່າງຊັດເຈນ, ຈຶ່ງມີແນວໂນ້ມທີ່ຈະຫຼຸດຜ່ອນການລົບກວນໄດ້ດີກວ່າການຫາຄ່າສະເລ່ຍແບບທົ່ວໄປ.
DARE (Drop And REscale) ເປັນວິທີທີ່ຖືກລາຍງານໃນງານວິໄຈທີ່ໄດ້ຮັບການຍອມຮັບໃນ ICML 2024. ວິທີນີ້ອີງໃສ່ການສັງເກດທີ່ວ່າພາຣາມິເຕີ Delta ຫຼັງຈາກການ Fine-tuning ມີຄວາມຊ້ຳຊ້ອນກັນຢູ່ຫຼາຍ, ໂດຍການສຸ່ມຕັດ Delta ອອກ 90-99% ແລ້ວຈຶ່ງ Scale-up ສ່ວນທີ່ເຫຼືອເພື່ອປັບຄ່າໃຫ້ສົມດູນ. ມີການລາຍງານວ່າເຖິງຈະຫຼຸດຈຳນວນລົງຢ່າງຫຼວງຫຼາຍ ແຕ່ຄວາມສາມາດຍັງຄົງຢູ່, ເຮັດໃຫ້ມັກຈະຖືກນຳໄປໃຊ້ຮ່ວມກັບ TIES ຢູ່ເລື້ອຍໆ.
SLERP (Spherical Linear Interpolation) ເປັນວິທີການແຊກແຊງ (Interpolation) ລະຫວ່າງສອງໂມເດວໂດຍອີງຕາມເສັ້ນໂຄ້ງເທິງພື້ນຜິວຊົງກົມ. ໃນຂະນະທີ່ການແຊກແຊງແບບເສັ້ນຊື່ (Linear Interpolation) ທົ່ວໄປຈະປະສົມກັນເປັນ "ເສັ້ນຊື່", SLERP ຈະເຮັດໃຫ້ເກີດການປ່ຽນຜ່ານຢ່າງລຽບນຽນໂດຍຍັງຮັກສາ "ມຸມ" ຂອງ Vector ນ້ຳໜັກໄວ້.
ວິທີການປະຕິບັດ Model Merge? ເຄື່ອງມື ແລະ ຂັ້ນຕອນ
ສະຫຼຸບ: ເມື່ອເຂົ້າໃຈທິດສະດີແລ້ວ, ຂັ້ນຕອນຕໍ່ໄປທີ່ສຳຄັນຄືການເລືອກເຄື່ອງມືໃນການປະຕິບັດງານ ແລະ ການເຂົ້າໃຈຂັ້ນຕອນການ ລວມ ຫຼື Merge.
ໃນການປະຕິບັດຕົວຈິງຂອງການ ລວມ ຫຼື Merge ແບບຈຳລອງ, 3 ຂັ້ນຕອນຫຼັກທີ່ເປັນ ຈຸດສຳຄັນ ຫຼື ແກນຫຼັກ ຄື: ການເລືອກເຄື່ອງມື, ການຈັບຄູ່ແບບຈຳລອງພື້ນຖານ (Base model) ແລະ ການປະເມີນຜົນ. ຫຼັງຈາກນີ້ໃນຫົວຂໍ້ H3, ພວກເຮົາຈະອະທິບາຍວິທີການນຳໃຊ້ MergeKit ເຊິ່ງເປັນເຄື່ອງມືໃນການປະຕິບັດງານທີ່ເປັນຕົວແທນ, ໄປຈົນເຖິງວິທີການກວດສອບຄຸນນະພາບຕາມລຳດັບ.
ຂັ້ນຕອນການ Merge ພື້ນຖານໂດຍໃຊ້ MergeKit
MergeKit ແມ່ນຫ້ອງສະໝຸດ (Library) ທີ່ເປີດຕົວ ຫຼື Launch ໂດຍ arcee-ai ເພື່ອໃຊ້ສຳລັບການລວມ ຫຼື Merge ໂມເດວແບບໂອເພນຊອດໂດຍສະເພາະ. ມັນຮອງຮັບອະລະກໍຣິດທີ່ສຳຄັນທັງໝົດ ເຊັ່ນ: Task Arithmetic, TIES, DARE, SLERP ແລະອື່ນໆ ໂດຍສາມາດດຳເນີນການລວມ ຫຼື Merge ໄດ້ດ້ວຍໄຟລ໌ການຕັ້ງຄ່າຮູບແບບ YAML ພຽງໄຟລ໌ດຽວ.
ໃນຕອນທຳອິດ ຫຼາຍຄົນອາດຄິດວ່າ "ຂຽນ Python script ຂຶ້ນມາເອງຕັ້ງແຕ່ຕົ້ນກໍໄດ້", ແຕ່ໃນຄວາມເປັນຈິງແລ້ວ ການໃຊ້ໄຟລ໌ການຕັ້ງຄ່າຂອງ MergeKit ຈະໃຫ້ຜົນລັດທີ່ມີຄວາມສາມາດໃນການເຮັດຊ້ຳ (Reproducibility) ໄດ້ສູງກວ່າ ແລະ ຫຼຸດຜ່ອນຄວາມຜິດພາດໃນຂັ້ນຕອນຕ່າງໆໄດ້ດີກວ່າ.
ຂັ້ນຕອນພື້ນຖານມີດັ່ງນີ້:
- ການຕິດຕັ້ງ: ນຳເຂົ້າຫ້ອງສະໝຸດດ້ວຍຄຳສັ່ງ
pip install mergekit - ການສ້າງໄຟລ໌ການຕັ້ງຄ່າ YAML: ລະບຸວິທີການລວມ ຫຼື Merge (ຕົວຢ່າງ:
task_arithmetic), ເສັ້ນທາງຂອງໂມເດວພື້ນຖານ (Base model), ເສັ້ນທາງຂອງແຕ່ລະໂມເດວທີ່ຕ້ອງການລວມ ຫຼື Merge ແລະ ຄ່າສຳປະສິດນ້ຳໜັກ (Weight coefficient) - ການດຳເນີນການລວມ ຫຼື Merge: ໃຊ້ຄຳສັ່ງ
mergekit-yaml config.yaml output_dir/ - ການກວດສອບຜົນລັດ: ໂມເດວທີ່ລວມ ຫຼື Merge ແລ້ວຈະຖືກສ້າງຂຶ້ນໃນໄດເລກະທໍລີຜົນລັດທີ່ກຳນົດໄວ້ ໃນຮູບແບບທີ່ຮອງຮັບກັບ Hugging Face
ສຳລັບຕົວຢ່າງການຂຽນ YAML, ໃນກໍລະນີທີ່ໃຊ້ Task Arithmetic ໃຫ້ລະບຸ merge_method: task_arithmetic ແລະຕັ້ງຄ່າ scaling_coefficient (ຄ່າສຳປະສິດການປັບຂະໜາດ) ໃຫ້ກັບແຕ່ລະໂມເດວ. ໂດຍທົ່ວໄປແລ້ວ ຄ່າສຳປະສິດມັກຈະຖືກປັບຢູ່ໃນຊ່ວງ 0.3–0.7 ແລະບໍ່ຈຳເປັນຕ້ອງລວມກັນໃຫ້ໄດ້ 1 ຢ່າງເຄັ່ງຄັດ. ຖ້າປັບຄ່າສູງເກີນໄປ ຄວາມສາມາດເດີມຂອງໂມເດວອາດຈະເສຍຫາຍໄດ້ງ່າຍ ດັ່ງນັ້ນການປັບເທື່ອລະຂັ້ນໂດຍກວດສອບຄະແນນຈາກຊຸດຂໍ້ມູນທົດສອບ (Validation set) ຈຶ່ງເປັນວິທີທີ່ປອດໄພກວ່າ.
ວິທີການເລືອກ Base Model ແລະ Integrated Model
ຄຸນນະພາບຂອງຜົນລວມ ຫຼື Merge ຈະຖືກກຳນົດເກືອບທັງໝົດໃນຂັ້ນຕອນການເລືອກ Base Model ແລະ Model ທີ່ຕ້ອງການລວມ. ຖ້າບໍ່ເລືອກການປະສົມປະສານທີ່ເໝາະສົມ, ການແຊກແຊງຂອງນ້ຳໜັກ (Weight interference) ອາດຈະຮຸນແຮງຂຶ້ນ ແລະ ອາດສົ່ງຜົນໃຫ້ຄວາມສາມາດຂອງທັງສອງຝ່າຍເສຍຫາຍໄດ້.
ເງື່ອນໄຂພື້ນຖານໃນການເລືອກ Base Model
ກ່ອນອື່ນໝົດ, ຕ້ອງມີເງື່ອນໄຂວ່າທຸກ Model ທີ່ຈະນຳມາລວມ ຫຼື Merge ຕ້ອງມີ ສະຖາປັດຕະຍະກຳດຽວກັນ ແລະ ຈຳນວນພາຣາມິເຕີເທົ່າກັນ. ການລວມ ຫຼື Merge ລະຫວ່າງສະຖາປັດຕະຍະກຳທີ່ແຕກຕ່າງກັນນັ້ນ ວິທີການໃນປັດຈຸບັນຍັງບໍ່ສາມາດຮອງຮັບໄດ້.
ຕໍ່ມາ, ໃຫ້ກວດສອບວ່າກຸ່ມ Model ທີ່ຕ້ອງການລວມນັ້ນ ໄດ້ຮັບການ Fine-tuning ມາຈາກ Base Model ດຽວກັນຫຼືບໍ່. ຕົວຢ່າງເຊັ່ນ: Model ທີ່ຜ່ານການ Fine-tuning ຫຼາຍຕົວທີ່ແຕກແຍກອອກມາຈາກ Base Model ຕະກູນ Llama ມັກຈະບໍ່ຄ່ອຍເກີດການແຊກແຊງ ເນື່ອງຈາກລະບົບພິກັດຂອງນ້ຳໜັກຖືກແບ່ງປັນຮ່ວມກັນ.
ວິທີການເລືອກ Model ທີ່ຕ້ອງການລວມ: ແກນການຕັດສິນໃຈໃນການແຍກເງື່ອນໄຂ
ລັກສະນະຂອງ Model ທີ່ຄວນເລືອກຈະປ່ຽນແປງໄປຕາມຈຸດປະສົງ.
- ກໍລະນີທີ່ຕ້ອງການເພີ່ມຄວາມສາມາດໃນການນຳໃຊ້ທົ່ວໄປ (Versatility): ການປະສົມປະສານຫຼາຍ Model ທີ່ເນັ້ນສະເພາະດ້ານທີ່ແຕກຕ່າງກັນ (ເຊັ່ນ: ເນັ້ນການຂຽນໂຄ້ດ, ຮອງຮັບຫຼາຍພາສາ, ປັບປຸງຄຸນນະພາບການສົນທະນາ, ແລະ ອື່ນໆ) ຈະຊ່ວຍໃຫ້ໄດ້ຮັບຄວາມສາມາດທີ່ກວ້າງຂວາງ ເຊິ່ງ Model ດຽວບໍ່ສາມາດເຮັດໄດ້.
- ກໍລະນີທີ່ຕ້ອງການເພີ່ມຄວາມສາມາດຮອງ ໃນຂະນະທີ່ຍັງຮັກສາຄວາມຖືກຕ້ອງຂອງວຽກງານສະເພາະ: ເໝາະສົມກັບການໃຊ້ Weighted averaging ໂດຍຕັ້ງ Model ຫຼັກໃຫ້ເປັນ "ຕົວທີ່ເກັ່ງກວ່າ" ແລ້ວປະສົມນ້ຳໜັກຂອງ Model ເສີມດ້ວຍສຳປະສິດທີ່ຕ່ຳ.
ການປະສົມປະສານທີ່ຄວນຫຼີກລ່ຽງ
ຮູບແບບຕໍ່ໄປນີ້ອາດຈະເຮັດໃຫ້ຄຸນນະພາບຂອງການລວມ ຫຼື Merge ຫຼຸດລົງຢ່າງຫຼວງຫຼາຍ.
ຕົວຊີ້ວັດການປະເມີນຜົນ ແລະ ວິທີການກວດສອບຄຸນນະພາບຫຼັງຈາກ Merge
ທັນທີທີ່ການ ລວມ ຫຼື Merge ສຳເລັດ, ຫຼາຍຄັ້ງມັກຈະເກີດຄວາມສັບສົນວ່າ "ຄວນເບິ່ງຕົວຊີ້ວັດໃດເພື່ອຕັດສິນຄຸນນະພາບ". ການຈັດລະບົບການປະເມີນຜົນຈະຊ່ວຍໃຫ້ທ່ານສາມາດໝູນວຽນຮອບວຽນການປັບປຸງການຕັ້ງຄ່າການລວມໄດ້ຢ່າງວ່ອງໄວ.
ສິ່ງທຳອິດທີ່ຄວນກວດສອບຄື ຄະແນນ Benchmark ແຍກຕາມໜ້າວຽກ (Task). ໃຫ້ກວດສອບແຍກແຕ່ລະກໍລະນີວ່າ ຄະແນນຫຼັງຈາກການລວມຫຼຸດລົງຢ່າງຫຼວງຫຼາຍໃນໜ້າວຽກທີ່ຕົວແບບແຕ່ລະຕົວເຄີຍເຮັດໄດ້ດີກ່ອນການລວມຫຼືບໍ່. ໂດຍສະເພາະ, ໃຫ້ກວດສອບຕາມມຸມມອງດັ່ງຕໍ່ໄປນີ້:
- ການກວດສອບການຮັກສາຄວາມສາມາດ: ຄະແນນຫຼັງຈາກການລວມຍັງຢູ່ໃນຂອບເຂດທີ່ຍອມຮັບໄດ້ຫຼືບໍ່ ໃນ Benchmark ທີ່ຕົວແບບຕົ້ນສະບັບເຄີຍເຮັດຄະແນນໄດ້ສູງ (ຕົວຢ່າງ: ການໃຫ້ເຫດຜົນທາງຄະນິດສາດ, ການສ້າງໂຄ້ດ, ຄວາມເຂົ້າໃຈຫຼາຍພາສາ)
- ການກວດສອບການແຊກແຊງ (Interference): ການເສີມສ້າງໜ້າວຽກໜຶ່ງ ເຮັດໃຫ້ປະສິດທິພາບຂອງອີກໜ້າວຽກໜຶ່ງຫຼຸດລົງຢ່າງເຫັນໄດ້ຊັດເຈນຫຼືບໍ່
- ອັດຕາການເກີດ Hallucination: ມີການປົນເປື້ອນຂອງຂໍ້ມູນທີ່ຜິດພາດເພີ່ມຂຶ້ນຫຼືບໍ່ ໃນຜົນລັດທີ່ຕ້ອງການການກວດສອບຂໍ້ເທັດຈິງ
ຕໍ່ມາ, ການກວດສອບຕົວຢ່າງຜົນລັດແບບຄຸນນະພາບດ້ວຍສາຍຕາ ກໍເປັນສິ່ງທີ່ຂາດບໍ່ໄດ້. ທ່ານສາມາດກວດພົບຄວາມຜິດປົກກະຕິຂອງຮູບແບບພາສາ ຫຼື ການຫຼຸດລົງຂອງຄວາມສາມາດໃນການປະຕິບັດຕາມຄຳສັ່ງ ເຊິ່ງ Benchmark ບໍ່ສາມາດກວດຈັບໄດ້. ວິທີທີ່ນິຍົມໃຊ້ໃນພາກປະຕິບັດຄື ການກຽມຊຸດ Prompt ຕົວຢ່າງ ແລະ ນຳຜົນລັດກ່ອນ ແລະ ຫຼັງການລວມມາປຽບທຽບກັນ.
ສຸດທ້າຍ, ໃຫ້ດຳເນີນການ ວິເຄາະຄວາມອ່ອນໄຫວຂອງສຳປະສິດການລວມ (ອັດຕາສ່ວນການແຊກແຊງ). ການບັນທຶກການປ່ຽນແປງຂອງຄະແນນ Benchmark ໄປພ້ອມກັບການປັບປ່ຽນສຳປະສິດເທື່ອລະ 0.1 ຈະຊ່ວຍໃຫ້ລະບຸຈຸດສົມດຸນທີ່ດີທີ່ສຸດໄດ້ງ່າຍຂຶ້ນ.
ຄວນຈັດການຜົນການປະເມີນແບບລວມສູນໃນສະເປຣດຊີດ (Spreadsheet) ແລະ ບັນທຶກສຳປະສິດ, ວິທີການ, ແລະ ຄະແນນໄວ້ເປັນຊຸດ ເພື່ອໃຫ້ງ່າຍຕໍ່ການນຳກັບມາເຮັດຊ້ຳ ຫຼື ປຽບທຽບໃນພາຍຫຼັງ.
Model Merge ເໝາະສົມກັບການນຳໃຊ້ແບບໃດ? ສະຖານະການນຳໃຊ້
ສະຫຼຸບ: ການລວມ ຫຼື Merge ແບບຈຳລອງ (Model Merge) ຈະມີປະສິດທິພາບໂດຍສະເພາະໃນສະຖານະການທີ່ "ຕ້ອງການລວມຄວາມສາມາດທີ່ຫຼາກຫຼາຍເຂົ້າເປັນແບບຈຳລອງດຽວດ້ວຍຕົ້ນທຶນທີ່ຕໍ່າ".
ພວກເຮົາຈະອະທິບາຍສະຖານະການນຳໃຊ້ຕົວຢ່າງສຳລັບແຕ່ລະຈຸດປະສົງ ເຊັ່ນ: ການຮອງຮັບຫຼາຍພາສາ, ການເນັ້ນສະເພາະດ້ານ (Domain-specific), ແລະ ການດຳເນີນງານໃນສະພາບແວດລ້ອມທ້ອງຖິ່ນ (Local environment) ໂດຍຜ່ານຫົວຂໍ້ H3 ຕໍ່ໄປນີ້.
ການຮອງຮັບຫຼາຍພາສາ ແລະ ການເສີມສ້າງຄວາມຮູ້ດ້ານ Domain ສະເພາະທາງໄປພ້ອມກັນ
ເມື່ອພະຍາຍາມໃຫ້ໄດ້ທັງການຮອງຮັບຫຼາຍພາສາ ແລະ ຄວາມຮູ້ໃນໂດເມນສະເພາະທາງໄປພ້ອມໆກັນ, ໃນຕອນທຳອິດເຮົາມັກຈະຄິດວ່າ "ພຽງແຕ່ Fine-tuning ໂມເດວໜຶ່ງດຽວດ້ວຍ Corpus ຫຼາຍພາສາ ແລະ ເອກະສານສະເພາະທາງໄປພ້ອມກັນກໍໜ້າຈະໄດ້". ແຕ່ໃນຄວາມເປັນຈິງ, ມີລາຍງານວ່າເປົ້າໝາຍການຮຽນຮູ້ທັງສອງຢ່າງນີ້ຈະເກີດການແຊກແຊງກັນ ເຮັດໃຫ້ປະສິດທິພາບຂອງທັງສອງດ້ານອອກມາບໍ່ເຕັມທີ່. ການ ລວມ ຫຼື Merge ໂມເດວຈຶ່ງເປັນວິທີການທີ່ມີປະສິດທິພາບໃນການຫຼີກລ່ຽງບັນຫານີ້.
ວິທີການທີ່ເປັນຮູບປະທຳມີດັ່ງນີ້:
- ກຽມ ໂມເດວທີ່ເນັ້ນຫຼາຍພາສາ (ຕົວຢ່າງ: ທີ່ຜ່ານການ Fine-tuning ດ້ວຍຫຼາຍພາສາ ເຊັ່ນ: ຍີ່ປຸ່ນ, ອັງກິດ, ຈີນ) ແລະ ໂມເດວທີ່ເນັ້ນໂດເມນສະເພາະ (ຕົວຢ່າງ: ທີ່ຜ່ານການປັບແຕ່ງດ້ວຍ Corpus ສະເພາະທາງ ເຊັ່ນ: ການແພດ, ກົດໝາຍ, ການຜະລິດ) ແຍກອອກຈາກກັນ
- ສັງເຄາະ Task Vector ດ້ວຍວິທີການ ລວມ ຫຼື Merge ເຊັ່ນ Task Arithmetic ເພື່ອລວມຄວາມສາມາດທັງສອງຢ່າງເຂົ້າເປັນໂມເດວດຽວ
- ສາມາດບັນລຸການປະສົມປະສານລະຫວ່າງ ຫຼາຍພາສາ × ໂດເມນສະເພາະທາງ ໄດ້ໂດຍແທບຈະບໍ່ມີຕົ້ນທຶນໃນການຮຽນຮູ້ດ້ວຍ GPU ເພີ່ມເຕີມ
ເຫດຜົນທີ່ວິທີນີ້ໄດ້ຜົນ ກໍຍ້ອນວ່າແຕ່ລະໂມເດວໄດ້ "ບັນທຶກ" ຄວາມສາມາດໄວ້ໃນນ້ຳໜັກ (Weights) ໃນຖານະເປັນ Task Vector ທີ່ເປັນອິດສະຫຼະແລ້ວ. ໃນຂົງເຂດທີ່ມີການແຊກແຊງກັນໜ້ອຍ, ການໃຊ້ Linear Interpolation ກໍມີແນວໂນ້ມທີ່ຈະໃຫ້ປະສິດທິພາບທີ່ພຽງພໍ.
ໃນທາງກົງກັນຂ້າມ, ກໍມີຈຸດທີ່ຄວນລະວັງເຊັ່ນກັນ.
ການນຳໃຊ້ແບບ Hybrid ກັບ LoRA ອາແດັບເຕີ ຫຼື ສ່ວນເສີມ
LoRA (Low-Rank Adaptation) ອາແດັບເຕີ ຫຼື ສ່ວນເສີມ ແມ່ນວິທີການຝຶກສອນພຽງແຕ່ຈຳນວນພາຣາມິເຕີໜ້ອຍໜຶ່ງ ໃນຂະນະທີ່ຄົງຄ່າໄວ້ (Frozen) ນ້ຳໜັກຂອງແບບຈຳລອງພື້ນຖານ. ການນຳມາປະສົມປະສານກັບການ ລວມ ຫຼື Merge ແບບຈຳລອງ ຈະຊ່ວຍໃຫ້ສາມາດສ້າງໂຄງສ້າງແບບ Hybrid ທີ່ດຶງເອົາຈຸດດີຂອງທັງສອງຢ່າງອອກມາໄດ້.
ການເລືອກໃຊ້ລະຫວ່າງການ Merge ແລະ LoRA
ຖ້າເນັ້ນຄວາມສາມາດໃນການປັບຕົວເຂົ້າກັບວຽກທີ່ກວ້າງຂວາງ ແລະ ຄວາມເປັນສາກົນ ການ ລວມ ຫຼື Merge ແບບຈຳລອງຈະເໝາະສົມກວ່າ, ແຕ່ຖ້າຫາກຕ້ອງການການປັບຕົວທີ່ລະອຽດອ່ອນສຳລັບໂດເມນສະເພາະໃດໜຶ່ງ ການຝຶກສອນເພີ່ມເຕີມດ້ວຍ LoRA ອາແດັບເຕີ ຫຼື ສ່ວນເສີມ ຈະເໝາະສົມກວ່າ. ການປະສົມປະສານສອງຂັ້ນຕອນນີ້ເຂົ້າດ້ວຍກັນ ມີຂະບວນການ ຫຼື Pipeline ທີ່ເປັນມາດຕະຖານດັ່ງນີ້:
- ລວມ ຫຼື Merge ແບບຈຳລອງທີ່ຜ່ານການ Fine-tuning ຫຼາຍຕົວເຂົ້າດ້ວຍກັນ ເພື່ອສ້າງຖານທີ່ມີທັກສະຫຼາກຫຼາຍ
- ເຮັດການຝຶກສອນເພີ່ມເຕີມທີ່ມີນ້ຳໜັກເບົາດ້ວຍ LoRA ໃສ່ແບບຈຳລອງທີ່ຜ່ານການ ລວມ ຫຼື Merge ແລ້ວ
- ໃນຂັ້ນຕອນການອະນຸມານ (Inference), ໃຫ້ໃຊ້ການເຊື່ອມຕໍ່ແບບໄດນາມິກລະຫວ່າງນ້ຳໜັກທີ່ຜ່ານການ ລວມ ຫຼື Merge ແລ້ວກັບ LoRA ອາແດັບເຕີ ຫຼື ສ່ວນເສີມ
ຂໍ້ດີໃນທາງປະຕິບັດ
- ການລວມເອົາຄວາມສາມາດທົ່ວໄປ (ເຊັ່ນ: ການຮອງຮັບຫຼາຍພາສາ, ການສ້າງໂຄ້ດ) ໃນຂັ້ນຕອນການ ລວມ ຫຼື Merge ຈະຊ່ວຍຫຼຸດປະລິມານຂໍ້ມູນທີ່ໃຊ້ໃນການຝຶກສອນ LoRA ໃນພາຍຫຼັງໄດ້
- LoRA ອາແດັບເຕີ ຫຼື ສ່ວນເສີມ ສາມາດຈັດການແຍກອອກຈາກຕົວແບບຈຳລອງຫຼັກໄດ້ ເຮັດໃຫ້ງ່າຍຕໍ່ການປ່ຽນແທນອາແດັບເຕີ ຫຼື ສ່ວນເສີມ ຫຼາຍຕົວເພື່ອຮອງຮັບວຽກທີ່ແຕກຕ່າງກັນ
- MergeKit ຍັງມີຟັງຊັນໃນການດູດຊຶມ (ລວມ ຫຼື Merge) LoRA ອາແດັບເຕີ ຫຼື ສ່ວນເສີມ ເຂົ້າໄປໃນນ້ຳໜັກພື້ນຖານກ່ອນການ ລວມ ຫຼື Merge ເຊິ່ງຈະຊ່ວຍໃຫ້ຂະບວນການ ຫຼື Pipeline ມີຄວາມລຽບງ່າຍ
ຂໍ້ຄວນລະວັງ
ໃນກໍລະນີທີ່ນຳ LoRA ມາຊ້ອນທັບໃສ່ແບບຈຳລອງທີ່ຜ່ານການ ລວມ ຫຼື Merge ແລ້ວ, ການແຊກແຊງຂອງນ້ຳໜັກທີ່ເກີດຂຶ້ນໃນຂະນະ ລວມ ຫຼື Merge ອາດສົ່ງຜົນກະທົບຕໍ່ການຝຶກສອນຂອງ LoRA. ດັ່ງນັ້ນ, ຄວນກວດສອບໃຫ້ແນ່ໃຈວ່າຄຸນນະພາບມີຄວາມສະຖຽນຫຼັງຈາກການ ລວມ ຫຼື Merge ແລ້ວ ກ່ອນທີ່ຈະດຳເນີນການຝຶກສອນ LoRA ຕໍ່ໄປ.
ການນຳໃຊ້ໃນການສ້າງ Local LLM ໂດຍໃຊ້ Open-weight Model
ຄວາມຕ້ອງການຂອງໜ້າວຽກທີ່ວ່າ "ຕ້ອງການດຳເນີນການ LLM ໂດຍບໍ່ຕ້ອງເພິ່ງພາ Cloud API ແລະ ບໍ່ຕ້ອງການນຳຂໍ້ມູນພາຍໃນບໍລິສັດອອກສູ່ພາຍນອກ" ໄດ້ເພີ່ມທະວີຂຶ້ນເລື້ອຍໆ ພ້ອມກັບການແຜ່ຫຼາຍຂອງ Open-weight models. ການລວມ ຫຼື Merge ໂມເດວສາມາດໃຊ້ເປັນທາງເລືອກທີ່ນຳໄປໃຊ້ງານໄດ້ຈິງໃນສະຖານະການສ້າງ Local LLM ເຫຼົ່ານີ້.
ເນື່ອງຈາກ Open-weight models ມີການເປີດເຜີຍຄ່ານ້ຳໜັກ (Weights) ໄວ້, ຈຶ່ງສາມາດນຳຫຼາຍໂມເດວມາລວມ ຫຼື Merge ເຂົ້າກັນເພື່ອລວມສູນໄວ້ໃນ Inference endpoint ດຽວໄດ້. ສິ່ງນີ້ເຮັດໃຫ້ສາມາດບັນລຸໂຄງສ້າງດັ່ງຕໍ່ໄປນີ້ໄດ້ງ່າຍຂຶ້ນ:
- ການລວມ ຫຼື Merge ໂມເດວທີ່ເນັ້ນພາສາຍີ່ປຸ່ນ × ໂມເດວສະເພາະດ້ານ: ນຳໂມເດວພື້ນຖານພາສາຍີ່ປຸ່ນແບບທົ່ວໄປ ມາລວມ ຫຼື Merge ກັບໂມເດວທີ່ຜ່ານການ Fine-tuning ດ້ວຍຄວາມຮູ້ສະເພາະດ້ານ ເຊັ່ນ: ກົດໝາຍ, ການແພດ, ຫຼື ການຜະລິດ ເພື່ອດຳເນີນການເປັນໂມເດວທ້ອງຖິ່ນ (Local model) ດຽວ.
- ການຄວບຄຸມຂະໜາດຂອງ Parameter: ການນຳໂມເດວທີ່ລວມ ຫຼື Merge ແລ້ວໜຶ່ງຕົວມາໃຊ້ງານ ມີແນວໂນ້ມທີ່ຈະຊ່ວຍຫຼຸດການໃຊ້ງານ GPU memory ໄດ້ດີກວ່າການເປີດໃຊ້ງານຫຼາຍໂມເດວແຍກກັນ.
- ການນຳໄປໃຊ້ຮ່ວມກັບ LoRA adapter: ສາມາດໃຊ້ໂຄງສ້າງສອງຂັ້ນຕອນໄດ້ ຄືການເສີມຄວາມແຂງແກ່ນໃຫ້ໂມເດວພື້ນຖານດ້ວຍການລວມ ຫຼື Merge, ຈາກນັ້ນຈຶ່ງປັບແຕ່ງເພີ່ມເຕີມແບບເບົາບາງດ້ວຍ LoRA.
MergeKit ຖືກອອກແບບມາໂດຍມີເງື່ອນໄຂວ່າຕ້ອງເຮັດວຽກໃນສະພາບແວດລ້ອມທ້ອງຖິ່ນ (Local environment) ແລະ ສາມາດນຳໃຊ້ Open-weight models ໃນຮູບແບບ Hugging Face ໄດ້ທັນທີ. ສຳລັບ Inference server, ສາມາດເລືອກໃຊ້ Ollama ຫຼື vLLM ເປັນທາງເລືອກໄດ້ ເຊິ່ງສາມາດໂຫຼດໂມເດວທີ່ລວມ ຫຼື Merge ແລ້ວມາໃຊ້ງານໄດ້ໂດຍກົງ.
ຂໍ້ຄວນລະວັງຄື: ໂມເດວທີ່ນຳມາລວມ ຫຼື Merge ຈະຕ້ອງມີສະຖາປັດຕະຍະກຳດຽວກັນ ແລະ ຕ້ອງມາຈາກໂມເດວພື້ນຖານດຽວກັນ.
ຄວາມເຂົ້າໃຈຜິດທີ່ພົບເລື້ອຍ ແລະ ຂໍ້ຄວນລະວັງກ່ຽວກັບ Model Merge
ສະຫຼຸບ: ການລວມ ຫຼື Merge ແບບຈຳລອງບໍ່ແມ່ນວິທີແກ້ໄຂທີ່ຄອບຄຸມທຸກຢ່າງ, ການເລືອກວິທີການທີ່ຜິດພາດ ແລະ ການລະເມີດລິຂະສິດຈະກາຍເປັນຄວາມສ່ຽງອັນໃຫຍ່ຫຼວງໃນການນຳໃຊ້ງານຈິງ.
ຄວາມຄາດຫວັງທີ່ວ່າ "ຖ້າປະສົມກັນແລ້ວປະສິດທິພາບຈະເພີ່ມຂຶ້ນ" ນັ້ນບໍ່ແມ່ນສິ່ງທີ່ຖືກຕ້ອງສະເໝີໄປ, ບາງຄັ້ງອາດເກີດບັນຫາການແຊກແຊງລະຫວ່າງແບບຈຳລອງ ຫຼື ບັນຫາຄວາມເຂົ້າກັນໄດ້. ນອກຈາກນີ້, ການເອົາໃຈໃສ່ຕໍ່ລິຂະສິດໃນການເຜີຍແຜ່ຊ້ຳກໍເປັນສິ່ງທີ່ຂາດບໍ່ໄດ້.
"ຖ້າປະສົມກັນແລ້ວຈະດີຂຶ້ນສະເໝີ" ເປັນຄວາມຈິງຫຼືບໍ່?
ໃນຂັ້ນຕອນທີ່ຫາກໍ່ເລີ່ມຕົ້ນການລວມ ຫຼື Merge ແບບຈຳລອງ, ຫຼາຍຄົນມັກຈະຄິດວ່າ "ພຽງແຕ່ລວມຫຼາຍແບບຈຳລອງເຂົ້າກັນກໍຈະເຮັດໃຫ້ປະສິດທິພາບເພີ່ມຂຶ້ນ". ແຕ່ໃນຄວາມເປັນຈິງແລ້ວ, ການລວມ ຫຼື Merge ບໍ່ແມ່ນວິທີທີ່ໃຊ້ໄດ້ຜົນກັບທຸກຢ່າງ, ແລະມີລາຍງານກໍລະນີທີ່ປະສິດທິພາບຫຼຸດລົງຫາກການປະສົມປະສານນັ້ນບໍ່ໄດ້ຕາມເງື່ອນໄຂ.
ສາເຫດຫຼັກທີ່ເຮັດໃຫ້ການລວມ ຫຼື Merge ຜິດພາດ ມີດັ່ງນີ້:
- ສະຖາປັດຕະຍະກຳບໍ່ສອດຄ່ອງກັນ: ແບບຈຳລອງທີ່ມີຈຳນວນຊັ້ນ, ມິຕິຊ່ອນ (Hidden dimensions), ແລະ ຈຳນວນ Attention heads ທີ່ແຕກຕ່າງກັນ ບໍ່ສາມາດນຳຄ່ານ້ຳໜັກ (Weights) ມາຈັບຄູ່ກັນໄດ້ຕັ້ງແຕ່ຕົ້ນ.
- ຄວາມແຕກຕ່າງຂອງແບບຈຳລອງພື້ນຖານ (Base model): ເຖິງຈະມີສະຖາປັດຕະຍະກຳດຽວກັນ ແຕ່ຖ້າຖືກ Fine-tuning ມາຈາກແບບຈຳລອງພື້ນຖານທີ່ຕ່າງກັນ, ພື້ນທີ່ຄວາມໝາຍຂອງຄ່ານ້ຳໜັກຈະມີຄວາມເຫຼື່ອມລ້ຳກັນ ເຮັດໃຫ້ເກີດການແຊກແຊງໄດ້ງ່າຍ.
- ການຂັດແຍ່ງລະຫວ່າງວຽກງານ (Tasks): ເມື່ອ Task vector ຂອງແບບຈຳລອງໜຶ່ງຂັດແຍ່ງກັບອີກແບບຈຳລອງໜຶ່ງໃນດ້ານເຄື່ອງໝາຍ ຫຼື ຂະໜາດ, ຈະເຮັດໃຫ້ຄວາມສາມາດຂອງທັງສອງແບບຈຳລອງຫຼຸດລົງ.
ໃນງານວິໄຈຂອງ TIES-Merging ໄດ້ລາຍງານວ່າ ການຫາຄ່າສະເລ່ຍແບບມີນ້ຳໜັກແບບງ່າຍໆ ຈະເຮັດໃຫ້ເກີດ "ບັນຫາການແຊກແຊງ" ເຊິ່ງພາລາມິເຕີຈະຫັກລ້າງກັນເອງເນື່ອງຈາກການຂັດແຍ່ງຂອງເຄື່ອງໝາຍ. ນີ້ຄືເຫດຜົນຫຼັກທີ່ເຮັດໃຫ້ຄວາມເຊື່ອທີ່ວ່າ "ຍິ່ງປະສົມຫຼາຍກໍຍິ່ງດີ" ນັ້ນບໍ່ເປັນຄວາມຈິງ.
ຈຸດສຳຄັນ ຫຼື ແກນຫຼັກ ທີ່ຄວນຍຶດຖືເພື່ອຮັກສາຄຸນນະພາບ ມີດັ່ງນີ້:
- ເລືອກແບບຈຳລອງທີ່ມາຈາກແບບຈຳລອງພື້ນຖານດຽວກັນ.
- ຫຼັງຈາກການລວມ ຫຼື Merge ແລ້ວ ຕ້ອງປະເມີນຜົນດ້ວຍ Benchmark ຫຼື ວຽກງານຕົວຈິງ ແລະ ປຽບທຽບກັບແບບຈຳລອງພື້ນຖານສະເໝີ.
- ເລີ່ມຕົ້ນດ້ວຍສຳປະສິດການລວມ (ອັດຕາສ່ວນການແຊກແຊງ) ທີ່ນ້ອຍໆ ແລ້ວຄ່ອຍໆປັບປ່ຽນເປັນຂັ້ນຕອນ.
ການລວມ ຫຼື Merge ແບບຈຳລອງເປັນ "ເຕັກໂນໂລຊີທີ່ຕັ້ງຢູ່ບົນພື້ນຖານຂອງການລອງຜິດລອງຖືກ". ການອອກແບບສົມມຸດຕິຖານກ່ອນການສັງເຄາະ ແລະ ການປະເມີນຜົນຫຼັງການສັງເຄາະຄວນເຮັດໄປພ້ອມກັນ ເຊິ່ງຖືເປັນວິທີການທີ່ເປັນຈິງທີ່ສຸດເພື່ອໃຫ້ໄດ້ປະສິດທິພາບທີ່ຄາດຫວັງໄວ້.
ຄວາມສ່ຽງກ່ຽວກັບໃບອະນຸຍາດ (License) ແລະ ການແຈກຢາຍຊ້ຳ
ໃນກໍລະນີທີ່ໂມເດວຕົ້ນທາງທີ່ນຳມາ ລວມ ຫຼື Merge ມີໃບອະນຸຍາດ (License) ທີ່ແຕກຕ່າງກັນ, ການແຈກຢາຍໂມເດວທີ່ຜ່ານການ ລວມ ຫຼື Merge ແລ້ວນັ້ນຈະຕົກຢູ່ໃນພື້ນທີ່ສີເທົາທາງກົດໝາຍ.
ຈຸດທີ່ຄວນລະວັງມີດັ່ງນີ້:
- ຄວາມສາມາດໃນການນຳໄປໃຊ້ທາງການຄ້າ: ໂມເດວໃນຕະກູນ Llama ມີຂໍ້ກຳນົດການນຳໃຊ້ສະເພາະຂອງຕົນເອງ ເຊິ່ງອາດມີເງື່ອນໄຂໃນການນຳໄປໃຊ້ທາງການຄ້າ ຫຼື ການແຈກຢາຍຕໍ່. ຖ້າຫາກມີໂມເດວທີ່ຫ້າມໃຊ້ທາງການຄ້າລວມຢູ່ພຽງໂມເດວດຽວໃນການ ລວມ ຫຼື Merge ກໍອາດມີຄວາມສ່ຽງທີ່ໂມເດວທັງໝົດຫຼັງຈາກການ ລວມ ຫຼື Merge ຈະບໍ່ສາມາດນຳໄປໃຊ້ທາງການຄ້າໄດ້.
- ການສືບທອດໃບອະນຸຍາດ: ໃບອະນຸຍາດແບບເປີດ (Open License) ເຊັ່ນ Apache 2.0 ຫຼື MIT ແມ່ນສາມາດແຈກຢາຍຕໍ່ໄດ້ງ່າຍກວ່າ, ໃນຂະນະທີ່ໃບອະນຸຍາດສະເພາະທີ່ບໍ່ແມ່ນເພື່ອການຄ້າ ຫຼື ເງື່ອນໄຂ "ຈຳກັດສະເພາະວຽກງານວິໄຈ" ອາດຖືກຕີຄວາມໝາຍວ່າຈະຍັງຄົງມີຜົນບັງຄັບໃຊ້ຕໍ່ໄປເຖິງແມ່ນວ່າຈະຜ່ານການ ລວມ ຫຼື Merge ແລ້ວກໍຕາມ.
- ຂໍ້ຈຳກັດໃນການເປີດເຜີຍ Weight: ບາງໂມເດວມີການຫ້າມການແຈກຢາຍ Weight ໂດຍກົງຢ່າງຈະແຈ້ງ. ເນື່ອງຈາກໂມເດວທີ່ຜ່ານການ ລວມ ຫຼື Merge ແລ້ວຍັງມີ Weight ລວມຢູ່ດ້ວຍ, ຈຶ່ງມີຄວາມເປັນໄປໄດ້ທີ່ຈະຕົກຢູ່ພາຍໃຕ້ຂໍ້ຈຳກັດນີ້.
ຫຼັກການສຳຄັນຄືການກວດສອບເງື່ອນໄຂໃບອະນຸຍາດຂອງໂມເດວຕົ້ນທາງແຕ່ລະຕົວແຍກກັນ. ໃນກໍລະນີທີ່ນຳໃຊ້ພາຍໃນບໍລິສັດເທົ່ານັ້ນຈະມີຄວາມສ່ຽງຕ່ຳ, ແຕ່ຖ້າຫາກຕ້ອງການເປີດຕົວ ຫຼື ແຈກຢາຍຜ່ານແພລດຟອມເຊັ່ນ Hugging Face, ແນະນຳໃຫ້ກວດສອບໃບອະນຸຍາດຂອງທຸກໂມເດວທີ່ນຳມາ ລວມ ຫຼື Merge ຢ່າງລະອຽດ ແລະ ປຶກສາຫາລືກັບຝ່າຍກົດໝາຍຖ້າຈຳເປັນ.
ນອກຈາກນີ້, ການລະບຸຂໍ້ມູນໃນ Model Card ກໍມີຄວາມສຳຄັນເຊັ່ນກັນ. ການລະບຸຊື່, ເວີຊັນ ແລະ ໃບອະນຸຍາດຂອງໂມເດວຕົ້ນທາງໃຫ້ຊັດເຈນ ເພື່ອສ້າງສະພາບແວດລ້ອມທີ່ຜູ້ໃຊ້ສາມາດຕັດສິນໃຈໄດ້ຢ່າງເໝາະສົມນັ້ນ ເປັນສິ່ງທີ່ຈຳເປັນຈາກມຸມມອງຂອງ AI ທີ່ມີຄວາມຮັບຜິດຊອບ (Responsible AI). ກະລຸນາກວດສອບເງື່ອນໄຂໃບອະນຸຍາດຫຼ້າສຸດຢ່າງເປັນທາງການທີ່ໜ້າເວັບໄຊທາງການຂອງແຕ່ລະໂມເດວສະເໝີ.
Author & Supervisor
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.


