
จากบทความใน Twitter ของ Andrej Karpathy อธิบายเรื่อง LLM Knowledge Bases
และได้เขียน instruction การสร้างไว้ใน LLM Wiki
ซึ่งมีคน fork ไปมากกว่า 5,000 ครั้ง
ดังนั้นมาทำการเรียนรู้กันหน่อย ว่าแนวคิดเป็นอย่างไรบ้าง ?
และลองลงมือทำตามดูหน่อย
LLM Knowledge Bases
เป็นแนวทางหนึ่งในการจัดการข้อมูลที่เราต้องการใช้งาน (personal knowledge) ในรูปแบบของ wiki
ทำการสร้างจาก LLM นั่นเอง (ต้องการใช้ token)
ขั้นตอนการทำงานประกอบไปด้วย
ขั้นตอนที่ 1 Data ingest
ทำการจัดเก็บไว้ใน folder /raw สำหรับเก็บข้อมูลดิบต่าง ๆ ของเรา
ที่จะนำมาทำ knowledge นั่นเอง
เช่น บทความ เอกสารต่าง ๆ code repository และ รูปภาพเป็นต้น
โดยเป็นข้อมูลที่เกี่ยวข้องกับหัวข้อที่เราต้องการทำนั่นเอง
มันคือการรวบรวมข้อมูลที่เราต้องการจะศึกษานั่นเอง
ในส่วนนี้ทางผู้เขียนนั้น
ทำการแปลงข้อมูลบทความต่าง ๆ จาก website
มาอยู่ในรูปแบบของ markdown
ซึ่งใช้งานผ่าน Obsidian Web Clipper ใน google extension นั่นเอง
โดยมีขั้นตอนการใช้งาน และ การกำหนด template ของไฟล์ที่เก็บข้อมูล
ดูเพิ่มเติมได้ที่ Config Obsidian Web Clipper
ขั้นตอนที่ 2 ทำการแปลงข้อมูลด้วย LLM (LLM compilation)
จากนั้นทำการ compile หรือแปลงข้อมูลด้วย LLM
ออกมาในรูปแบบของ markdown file ที่มีโครงสร้างเป็นมาตรฐาน
และทำการจัดเก็บใน folder /wiki
โดยข้อมูลใน wiki ประกอบไปด้วย
- ทำการสรุปข้อมูลทั้งหมดใน folder /raw
- ทำการสร้าง backlink ระหว่างบทความต่าง ๆ
- ทำการจัดการหมวดหมู่ของข้อมูล
- จัดเก็บรายละเอียดแบบเต็ม ๆ ของข้อมูลต่าง ๆ
- ข้อมูลแต่ละชนิด แต่ละเรื่อง จะมีการจัดทำความสัมพันธ์กันด้วย เพื่อให้เห็นความชื่อมโยง
ในขั้นตอนนี้จะมีการใช้งาน token ตามจำนวนของข้อมูลนั่นเอง
จะทำในครั้งแรกเพื่อ initialize ขึ้นมา
หลังจากนั้นถ้ามีการเปลี่ยนแปลง ก็ทำเฉพาะที่เปลี่ยนแปลงเท่านั้น
ดังนั้นถ้าข้อมูลไม่เยอะมากก็จะทำงานได้ดี
ทางผู้สร้างได้บอกว่า ในแต่ละงานวิจัยของเรานั้น
จะมีบทความประมาณ 100 บทความ 4 แสนคำ
ซึ่ง context windows ของ LLM ยังใช้ได้อยู่
จากนั้นก็นำเอาข้อมูลต่าง ๆ มา preview/query/search ใน obsidian ดูได้เลย
ตอนนี้ทางผู้ใช้งานได้สร้าง LLM Wiki ด้วย Ollama ขึ้นมา (Free 100%)
(ก่อนนี้ต้องเอา instruction ไป run หรือ initial ใน AI Agent แต่ละตัว)
ซึ่งเป็น Local LLM ให้ใช้งานกันได้เลย มีการทำงานคือ
- เตรียมข้อมูลเช่นไฟล์ markdown ไว้ใน folder /raw
- ทำการติดตั้ง Ollama และติดตั้ง model ที่ต้องการใช้งาน เช่น gemma4 และ qwen2.5 เป็นต้น
- จะใช้งานผ่าน gemma4 ที่เคยเขียน blog เอาไว้
- ทำการ compile หรือ แปลงข้อมูล ซึ่งตรงนี้จะเรียกว่า data pipelining และยังมี preview mode และ watch mode ให้อีกด้วย
มาลองใช้งานกันดู
เริ่มด้วยการติดตั้ง project
ทำการ initial project ขึ้นมา สำหรับจัดการข้อมูล
จะมี config project และ โครงสร้างจัดเก็บข้อมูลตามแนวคิดข้างต้น
ตัวอย่างของ config project
ลองเพิ่มข้อมูลของงานของเราไปยัง folder /raw
ตัวอย่างเช่น ใช้ Obsidian Web Clipper เพื่อดึงข้อมูลจาก web มาเป็น markdown

ตัวอย่างของ markdown ใน folder /raw ที่ทำการ export มาจาก web
เมื่อได้ข้อมูลใน raw มาเรียบร้อยแล้ว
ทำการ ingest และ แปลงข้อมูลไปใส่ใน wiki กันเลย
โดยจะใช้งานผ่าน LLM ที่ติดตั้งไว้ด้วย Ollama นั่นเอง (The LLM is a compiler, not a conversation partner)
การทำงานนั้นจะเก็บ state การทำงานต่าง ๆ ใน Chromadb (vector database)
ทำการสร้างไฟล์ state.db ไว้ใน project
ส่วนผลลัพธ์จะถูกสร้างเพิ่มใน folder /wiki
ซึ่งมีโครงสร้างดังนี้
- ไฟล์ INDEX.md เป็นไฟล์หลักของระบบ wiki
- ไฟล์ log.md เก็บข้อมูลการ ingest ไว้
- folder sources จะเก็บข้อมูลสรุปของบทความต่าง ๆ นั่นเอง โดยจะมี reference กลับไปด้วยไฟล์ต้นทาง
จากนั้นทำการ visualize ข้อมูลใน obsidian ได้เลย
จะมี feature แสดงข้อมูลในรูปแบบของ graph เพื่อดูความสัมพันธ์ของข้อมูลได้ดี
จากนั้นทำการแก้ไข และ ค้นหาผ่าน obsidian ได้แบบง่าย ๆ

จากนั้นทำการค้นหาข้อมูล ซึ่งตรงนี้ก็ใช้ LLM ด้วยเช่นกัน
ลองเล่นดูครับ ใช้งานได้แบบง่าย ๆ
ใน LLM wiki ยังมีแนะนำเครื่องมือที่น่าสนใจอีกเช่น
- qmd สำหรับการค้นหาข้อมูลในรูปแบบของ markdown แบบ local 100% ซึ่งใช้งานได้ทั้ง CLI และ MCP
- Marp คือ markdown-based slide deck format
- และใน comment ยังมีข้อมูลที่น่าสนใจอีกมาก
Reference Websites