ARRA Oracle Workshop · 26 กรกฎาคม 2026

Second Brain
ด้วย Vector Search

จากสมการสู่ระบบจริง — เรียนด้วยการลงมือทำ ทุกอย่างรันได้จริง วัดผลได้จริง

ChromaDB · LanceDB · Cloudflare Edge · 17 บท เปิดใน Colab คลิกเดียว
ปัญหาที่ทุกคนมี

จดโน้ตไว้เป็นพันไฟล์
พอถึงเวลา… หาไม่เจอ

เพราะเราจำ "คำ" ที่เขียนไม่ได้ — จำได้แต่ "ความหมาย"

vector search = ค้นด้วยความหมาย ไม่ใช่ตัวอักษร

ธีมเดียวของทั้ง workshop

"วัด อย่า เดา"

ทุกข้อสรุปวันนี้มีตัวเลขรองรับ ที่เรารันซ้ำเองได้

Demo 1 · เห็นมันทำงานก่อน

Second Brain ใน 20 บรรทัด

import chromadb
col = chromadb.PersistentClient("./db").get_or_create_collection("brain")
col.upsert(ids=["n1"], documents=["ประชุมกับอาจารย์ฝน เรื่อง workshop"])
col.query(query_texts=["นัดหมายกับใครบ้าง"])  # → เจอ!

ยังไม่ต้องอ่าน syntax — ดูแค่บรรทัดสุดท้าย: ถามคนละคำ แต่ระบบเข้าใจว่าเรื่องเดียวกัน

⚠️ แต่เดี๋ยวก่อน…

ค้นภาษาไทย เพี้ยน

ระบบไม่พัง — แต่มีเรื่องภาษาไทยบางอย่างที่ต้องรู้…

บทเรียนสำคัญที่สุด

vector DB ไม่ได้เข้าใจภาษา
embedding model ต่างหากที่เข้าใจ

DB แค่หา "ตัวเลขที่ใกล้ที่สุด" · ตัวที่แปลงภาษา→ตัวเลข คือ embedder

แล้ว "ตัวเลข" ที่ว่าคืออะไร

ประโยค → ทิศทางในพื้นที่

"ประชุมกับอาจารย์ฝน"
↓ embedder
[0.12, −0.4, 0.9, …]
ประชุม นัดหมาย กาแฟ

ความหมายใกล้กัน = ทิศใกล้กัน · "ประชุม" กับ "นัดหมาย" ชี้ทางเดียวกัน — "กาแฟ" คนละทาง

แก้ด้วย bge-m3 (multilingual) · query ชุดเดิมเป๊ะ

เปลี่ยนแค่ embedder → ถูก 3/3

1/3
all-MiniLM (แถม)
เทรนอังกฤษ · คะแนนติดลบ
3/3
bge-m3
100+ ภาษา · ตัวที่ ARRA ใช้จริง

database ตัวเดิม · โน้ตชุดเดิม · เปลี่ยนอย่างเดียวคือ embedding model

เปิดฝาดูข้างใน · สมการเดียวที่ต้องรู้

Cosine Similarity

cos(A,B) = A·B / (|A|·|B|)

วัดจริง · scale-appropriate

"ทางลัด" ไม่ได้เร็วกว่าเสมอ

ANN (เช่น HNSW) = ทางลัดที่ทุกคนเชื่อว่าเร็วกว่าการค้นทุกตัว — แต่ที่ scale เรา…

2.9ms ▲
ค้นตรงๆ ทุกตัว (brute force)
20,000 โน้ต
12.6ms ▼
ทางลัดอัจฉริยะ (HNSW)

scale ส่วนตัว (หมื่น-แสน): ค้นตรงๆ = เร็วสุด · ทางลัดคุ้มตอนล้านโน้ตขึ้นไป

ระบบจริง

Hybrid = vector + keyword

ไอเดีย: ให้แต่ละตัวเด่นในเขตของมัน → ครอบทั้ง exact + ความหมาย

ต่อ LLM ให้ตอบจากโน้ตเรา

RAG: ตอบ + อ้างอิง + รู้จักบอก "ไม่รู้"

วัดผลอย่างมั่นใจ · golden set

ตัวเลขที่จบทุกข้อสงสัย

เมื่อกี้เห็น 3 ตัวอย่าง — คราวนี้วัดจริงบน "ข้อสอบ" ภาษาไทยที่เราตั้งเอง

0.36
MiniLM
0.93
bge-m3

Recall@3 = ใน 3 อันดับแรก เจอคำตอบที่ถูกไหม · วัดบนไทยของเราเอง ไม่เชื่อ leaderboard อังกฤษ

"มีเยอะ = ดีกว่า" จริงไหม?

รวม 3 engine → แย่กว่า bge-m3 เดี่ยว

0.97
bge-m3 เดี่ยว
0.79
รวม 3 ตัว (RRF)

2 ตัวเก่งเรื่องเดียวกัน + อีกตัวอ่อน → ตัวอ่อนดึงคะแนนรวมลง · วัด อย่าเดา (nDCG@10 = คะแนนคุณภาพการค้น ยิ่งสูงยิ่งดี)

สู่ production

ความรู้ portable ข้าม backend

ลงมือเลย · ไม่ต้องติดตั้งอะไร

เปิดใน Google Colab คลิกเดียว

github.com/nat-build-with-oracle/ajfon-oracle

17 บท · ทุกบทมีปุ่ม Open in Colab + เซลล์วัดผล (self-check ✓)

พกกลับบ้าน

3 อย่างที่จำไว้

"วัด อย่าเดา" · second brain เป็นของเรา 100% (local + privacy)

1 / 17
← → หรือ Space · กด F เต็มจอ