Doctor AI

Dr. Savath Saypadith

240 ບົດຄວາມ

ຖານຂໍ້ມູນເວັກເຕີ (Vector Databases): ຄວາມຈຳຂອງ LLMs ຍຸກໃໝ່

ໂພສເມື່ອ # Large Language Models # Vector Database # Machine Learning # Python

ຖານຂໍ້ມູນເວັກເຕີ (Vector Databases): ຄວາມຈຳຂອງ LLMs ຍຸກໃໝ່

ທ່ານເຄີຍສົງໄສບໍ່ວ່າ ລະບົບ AI ຫຼື Chatbot ສາມາດອ່ານເອກະສານກົດໝາຍຂອງລາວຫຼາຍພັນໜ້າ, ຈື່ຈຳປະຫວັດສາດຂອງພະທາດຫຼວງ, ຫຼື ຄົ້ນຫາຂໍ້ມູນສິນຄ້າໃນສາງຂອງທຸລະກິດ SME ຂອງທ່ານພາຍໃນສ້ຽວວິນາທີ ເພື່ອມາຕອບຄຳຖາມລູກຄ້າໄດ້ແນວໃດ?

ເຖິງແມ່ນວ່າ Large Language Models (LLMs) ເຊັ່ນ GPT-4 ຫຼື Claude ຈະມີຄວາມສະຫຼາດຫຼາຍ, ແຕ່ພວກມັນມີບໍລິມາດການຮັບຂໍ້ມູນ (Context Window) ທີ່ຈຳກັດ. ພວກມັນບໍ່ສາມາດທ່ອງຈຳທຸກຢ່າງໄວ້ໃນສະໝອງຂອງມັນໄດ້ຕະຫຼອດເວລາ ເມື່ອຕ້ອງປະມວນຜົນເອກະສານຂະໜາດໃຫຍ່. ນີ້ຄືຈຸດທີ່ Vector Databases ເຂົ້າມາມີບົດບາດສຳຄັນ ຄືກັບກະດູກສັນຫຼັງທີ່ເຮັດໜ້າທີ່ເປັນ “ໜ່ວຍຄວາມຈຳໄລຍະຍາວ” (Long-term memory) ໃຫ້ກັບ AI.

ໃນບົດຄວາມນີ້, ເຮົາຈະມາເຈາະເລິກວິທີການປ່ຽນຂໍ້ຄວາມໃຫ້ກາຍເປັນພາສາທີ່ AI ເຂົ້າໃຈ (Text Embeddings) ແລະ ການນຳໃຊ້ Vector Databases ຍອດນິຍົມ ເຊັ່ນ Chroma ແລະ Pinecone.

Text Embeddings ແມ່ນຫຍັງ? ທຳຄວາມເຂົ້າໃຈພື້ນຖານ

ກ່ອນທີ່ເຮົາຈະເກັບຂໍ້ມູນລົງໃນ Vector Database, ເຮົາຕ້ອງປ່ຽນຂໍ້ຄວາມ (Text) ໃຫ້ເປັນຊຸດຕົວເລກ (Array of numbers) ທີ່ເອີ້ນວ່າ Vector Embeddings.

ລອງນຶກພາບວ່າ ທ່ານມີຄຳວ່າ “ເຂົ້າປຽກເຊັ່ນ” ແລະ “ເຝີ”. ສຳລັບຄອມພິວເຕີ ມັນເປັນພຽງຕົວໜັງສືທີ່ແຕກຕ່າງກັນ, ແຕ່ເມື່ອຜ່ານໂມເດວ Embedding (ເຊັ່ນ: text-embedding-ada-002 ຂອງ OpenAI), ຄຳສັບເຫຼົ່ານີ້ຈະຖືກປ່ຽນເປັນເວັກເຕີຫຼາຍມິຕິ (High-dimensional vector) ເຊິ່ງອາດຈະມີເຖິງ 1,536 ມິຕິ. ເນື່ອງຈາກຄວາມໝາຍຂອງສອງຄຳນີ້ແມ່ນ “ອາຫານປະເພດເສັ້ນ” ຄືກັນ, ຕົວເລກເວັກເຕີຂອງພວກມັນຈະຢູ່ໃກ້ຄຽງກັນຫຼາຍໃນພື້ນທີ່ທາງຄະນິດສາດ (Vector Space).

ແນວຄວາມຄິດນີ້ເຮັດໃຫ້ AI ສາມາດຄົ້ນຫາຂໍ້ມູນຈາກ “ຄວາມໝາຍ” (Semantic) ແທນທີ່ຈະຄົ້ນຫາຈາກ “ຄຳສັບທີ່ກົງກັນເປະໆ” (Keyword).

ເປັນຫຍັງຕ້ອງໃຊ້ Vector Database? ມັນຕ່າງຈາກ SQL ແນວໃດ?

ສົມມຸດວ່າທ່ານກຳລັງສ້າງແອັບຯຄົ້ນຫາສະຖານທີ່ທ່ອງທ່ຽວໃນນະຄອນຫຼວງວຽງຈັນ.

ລົງມືປະຕິບັດ: ສ້າງໜ່ວຍຄວາມຈຳດ້ວຍ Chroma (Local Vector DB)

Chroma ເປັນ Open-source Vector Database ທີ່ໃຊ້ງານງ່າຍ, ເໝາະສຳລັບການທົດລອງ (Prototyping) ຫຼື ການສ້າງແອັບພລິເຄຊັນທີ່ແລ່ນຢູ່ເທິງເຄື່ອງ Local ຂອງທ່ານເອງ.

ລອງມາເບິ່ງວິທີການເກັບຂໍ້ມູນ ແລະ ຄົ້ນຫາແບບງ່າຍໆດ້ວຍ Python.

ຂັ້ນຕອນທີ 1: ຕິດຕັ້ງໄລບຣາຣີ (Library)

pip install chromadb

ຂັ້ນຕອນທີ 2: ຂຽນໂຄດ Python ເພື່ອສ້າງ Collection ແລະ ຄົ້ນຫາ

import chromadb

# ສ້າງ Client ຂອງ Chroma (ໃຊ້ແບບແລ່ນເທິງ Memory ສຳລັບທົດລອງ)
chroma_client = chromadb.Client()

# ສ້າງ Collection ເຊິ່ງປຽບຄືກັບ Table ໃນ SQL
collection = chroma_client.create_collection(name="laos_tourism_docs")

# 1. ຕື່ມຂໍ້ມູນ (Documents) ເຂົ້າໄປໃນ Vector Database
# Chroma ຈະທຳການສ້າງ Embedding ໃຫ້ແບບອັດຕະໂນມັດ ໂດຍໃຊ້ Default Model ຂອງມັນ
collection.add(
    documents=[
        "ພະທາດຫຼວງ ແມ່ນປູຊະນີຍະສະຖານທີ່ສຳຄັນຂອງຊາດລາວ ຕັ້ງຢູ່ໃຈກາງນະຄອນຫຼວງວຽງຈັນ.",
        "ນ້ຳຕົກຕາດຟານ ແມ່ນນ້ຳຕົກຕາດແຝດທີ່ສູງທີ່ສຸດໃນປະເທດລາວ ເຊິ່ງຕັ້ງຢູ່ເມືອງປາກຊ່ອງ ແຂວງຈຳປາສັກ.",
        "ຖ້າຢາກກິນຕຳໝາກຫຸ່ງແຊບໆ ຕ້ອງໄປນັ່ງຊິວຢູ່ແຄມຂອງ ໃນຍາມແລງເພື່ອຊົມວິວຕາເວັນຕົກ."
    ],
    metadatas=[{"region": "Vientiane"}, {"region": "Champasak"}, {"region": "Vientiane"}],
    ids=["doc1", "doc2", "doc3"]
)

# 2. ທຳການຄົ້ນຫາດ້ວຍ Semantic Search
print("ກຳລັງຄົ້ນຫາ...")
results = collection.query(
    query_texts=["ຂ້ອຍຢາກໄປທ່ຽວທາງພາກໃຕ້ຂອງລາວໄປເບິ່ງນໍ້າຕົກ ມີບ່ອນໃດແນະນຳບໍ່?"],
    n_results=1 # ດຶງເອົາຜົນຮັບທີ່ກົງທີ່ສຸດ 1 ລາຍການ
)

print("\nຜົນການຄົ້ນຫາ:")
print(results['documents'])

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

ຂະຫຍາຍລະບົບສູ່ລະດັບການຄ້າ (Production) ດ້ວຍ Pinecone

ໃນຂະນະທີ່ Chroma ແມ່ນດີເລີດສຳລັບການທົດລອງ ຫຼື ການເຮັດແອັບຂະໜາດນ້ອຍ, ແຕ່ຖ້າບໍລິສັດຂອງທ່ານເປັນຂະໜາດໃຫຍ່ (ເຊັ່ນ: ທະນາຄານ ຫຼື ບໍລິສັດໂທລະຄົມມະນາຄົມໃນລາວ) ທີ່ຕ້ອງເກັບເວັກເຕີຫຼາຍລ້ານລາຍການ ແລະ ຕ້ອງການໃຫ້ມີການຕອບສະໜອງແບບ Real-time ທີ່ມີຄວາມສະຖຽນສູງ, Pinecone ແມ່ນທາງເລືອກທີ່ດີກວ່າ.

Pinecone ແມ່ນ Cloud-native Vector Database (Managed Service). ຂໍ້ດີຂອງມັນຄື:

ການນຳໃຊ້ Pinecone ສາມາດຜູກມັດຮ່ວມກັບ Frameworks ຍອດຮິດຂອງ LLM ເຊັ່ນ LangChain ຫຼື LlamaIndex ເພື່ອສ້າງລະບົບ RAG (Retrieval-Augmented Generation) ໃຫ້ Chatbot ສາມາດດຶງຂໍ້ມູນມາກ່ອນການສ້າງຄຳຕອບ ໄດ້ຢ່າງມີປະສິດທິພາບ.

ສິ່ງທີ່ຄວນຈື່ (Key Takeaways)

ສະຫຼຸບ

ການພັດທະນາແອັບພລິເຄຊັນ AI ໃນປັດຈຸບັນໄດ້ກ້າວຂ້າມຂີດຈຳກັດຂອງການPromptແບບທຳມະດາໄປແລ້ວ. ສຳລັບນັກພັດທະນາ ແລະ ລາວ-SME ຜູ້ທີ່ຕ້ອງການຂັບເຄື່ອນທຸລະກິດດ້ວຍ AI, ການເຂົ້າໃຈ ແລະ ປະຍຸກໃຊ້ Vector Databases ຄືການສ້າງຂໍ້ໄດ້ປຽບອັນມະຫາສານ. ມັນຊ່ວຍໃຫ້ AI ຂອງທ່ານບໍ່ພຽງແຕ່ເວົ້າເກັ່ງເທົ່ານັ້ນ, ແຕ່ຍັງສາມາດ “ຮູ້ເລິກ ແລະ ຈື່ຈຳ” ທຸກຂໍ້ມູນທີ່ສຳຄັນຂອງອົງກອນທ່ານໄດ້ອີກດ້ວຍ. ເລີ່ມຕົ້ນທົດລອງຂຽນໂຄດກັບ Chroma ໃນມື້ນີ້ ແລ້ວທ່ານຈະເຫັນເຖິງພະລັງທີ່ແທ້ຈິງຂອງການສ້າງ AI ໃຫ້ມີສະໝອງຄວາມຈຳຂອງມັນເອງ.