PlusMagi's Blog By Pitt Phunsanit Ai,Database Large Language Models และ Generative AI (Transformers, Hugging Face, Open-Source LLMs, Embeddings, Vector Databases)

Large Language Models และ Generative AI (Transformers, Hugging Face, Open-Source LLMs, Embeddings, Vector Databases)

ในยุคที่ Generative AI กำลังขับเคลื่อนการเปลี่ยนแปลงครั้งใหญ่ การนำ Large Language Models (LLMs) มาใช้งานจึงเป็นหัวใจสำคัญในการสร้างแอปพลิเคชันอัจฉริยะ อย่างไรก็ตาม โมเดล AI เหล่านี้จะทรงพลังได้ก็ต่อเมื่อมีข้อมูลที่ถูกต้องและสามารถค้นหาได้อย่างมีประสิทธิภาพ ซึ่งนี่คือจุดที่ระบบจัดการฐานข้อมูลอย่าง PostgreSQL เข้ามามีบทบาทสำคัญ

รากฐาน: จากข้อความสู่เวกเตอร์ด้วย Embeddings

หัวใจของการทำงานร่วมกันระหว่าง LLMs และฐานข้อมูลคือกระบวนการที่เรียกว่า Embeddings ซึ่งคือการแปลงข้อมูลที่เป็นข้อความ (Text) ให้กลายเป็นชุดตัวเลข (Vector) ที่มีความหมายทางคณิตศาสตร์ เมื่อเรามีเวกเตอร์เหล่านี้แล้ว เราสามารถใช้ PostgreSQL ร่วมกับส่วนขยาย (Extension) เช่น pgvector เพื่อจัดเก็บและคำนวณความคล้ายคลึงทางความหมาย (Semantic Similarity) ระหว่างข้อมูลได้อย่างแม่นยำ

การใช้งาน Vector Database ใน PostgreSQL

เมื่อเราจัดเก็บ Embeddings ใน PostgreSQL เรากำลังเปลี่ยนมันให้เป็น Vector Database โดยธรรมชาติ ทำให้เราสามารถใช้ฟังก์ชันการค้นหาที่ซับซ้อนกว่าการค้นหาแบบ Key-Value ทั่วไป ตัวอย่างเช่น หากเราต้องการค้นหาเอกสารที่เกี่ยวข้องกับคำว่า ‘apple’ เราจะไม่ค้นหาแค่คำว่า ‘apple’ แต่เราจะค้นหาเวกเตอร์ที่ใกล้เคียงกับเวกเตอร์ของ ‘apple’ มากที่สุด

SQL

-- 1. สร้างตารางสำหรับเก็บ Embeddings (ใช้ pgvector) 
CREATE TABLE documents ( 
    id SERIAL PRIMARY KEY, 
    content TEXT, 
    embedding VECTOR(1536) 
);

-- 2. แทรกข้อมูลพร้อมเวกเตอร์ (สมมติว่า 'apple' มีเวกเตอร์นี้) 
INSERT INTO documents (content, embedding) VALUES 
('ข้อมูลเกี่ยวกับผลแอปเปิล', '[0.1, 0.2, 0.3, ..., 0.9]');

-- 3. การค้นหาความคล้ายคลึง (Similarity Search) 
-- ค้นหาเอกสารที่ใกล้เคียงกับเวกเตอร์ใหม่ (เช่น เวกเตอร์ของ 'banana') 
SELECT content, embedding 
FROM documents 
ORDER BY embedding <=> '[0.5, 0.6, 0.7, ..., 0.1]' 
LIMIT 1;

การผสานรวมระบบนิเวศ (LLMs, Hugging Face, Open-Source)

สำหรับนักพัฒนาที่ใช้โมเดล Open-Source LLMs จากแพลตฟอร์มอย่าง Hugging Face เราสามารถใช้ PostgreSQL เป็นชั้นความรู้ (Knowledge Layer) ได้อย่างสมบูรณ์แบบ Workflow คือ: 1) ใช้ LLM สร้าง Embeddings จากเอกสาร 2) บันทึก Embeddings เหล่านั้นลงในตาราง Vector ของ PostgreSQL 3) เมื่อผู้ใช้ถามคำถาม (Query) ให้แปลงคำถามนั้นเป็นเวกเตอร์ 4) ใช้ SQL Query ใน PostgreSQL เพื่อดึงข้อมูลที่เกี่ยวข้องที่สุด (Nearest Neighbor) ออกมา 5) ส่งข้อมูลที่ดึงมานี้กลับไปให้ LLM เพื่อให้ LLM สร้างคำตอบสุดท้าย (RAG Pattern)

บทสรุป

การรวมพลังระหว่างความสามารถในการสร้างสรรค์ของ Generative AI และความสามารถในการจัดเก็บและค้นหาเชิงโครงสร้างของ PostgreSQL ด้วย pgvector ทำให้เกิดสถาปัตยกรรมแอปพลิเคชันที่ทรงพลังอย่างยิ่ง ไม่ว่าจะเป็นการสร้าง Chatbot ที่มีความรู้เฉพาะทาง (Domain-Specific) หรือระบบ Semantic Search ที่เหนือกว่าการค้นหาแบบ Keyword ทั่วไป PostgreSQL จึงเป็นรากฐานที่ขาดไม่ได้สำหรับนักพัฒนาที่ต้องการสร้างผลิตภัณฑ์ที่ขับเคลื่อนด้วย AI ในยุคปัจจุบัน