Steve Yegge พูดถึง “การบีบอัดอินไซต์ (Insight Compression)” ใน “Software Survival 3.0” — ว่าใน Git หรือ Kubernetes มีการลองผิดลองถูกที่ถูกบีบอัดไว้หลายทศวรรษ ซึ่ง LLM ไม่สามารถสร้างซ้ำได้ง่าย ๆ ผมเริ่มต้นจากความคิดที่ว่า ศาสตร์ซาจูมยองรีก็คล้ายกัน
สิ่งที่เกิดขึ้นเมื่อให้ LLM ดูดวงซาจู
ทุกวันนี้หลายคนก็นำข้อมูลซาจูใส่ให้ LLM แล้วได้ผลลัพธ์ที่ดูน่าเชื่อถือ ปัญหาคือช่องว่างระหว่าง “ดูน่าเชื่อถือ” กับ “แม่นยำ”
ผมทดสอบหลายโมเดล เช่น GPT-5, GPT-4o, Claude, DeepSeek V3 โดยผสม structured output กับ few-shot เข้าด้วยกัน และพบจุดผิดพลาดเชิงระบบอยู่ ตัวอย่างเช่น ซาจูที่เป็น jongganggyeok (從強格) กลับถูกใช้ตรรกะแบบ eokbu (抑扶) เพียงอย่างเดียวจนสรุปว่าไฟ (火) เป็น yongsin ซึ่งเป็นการตัดสินที่ละเมิดหลัก “choknogangsin daehyung (觸怒強神 大凶)” จากคัมภีร์ต้นฉบับ และไม่สามารถป้องกันได้อย่างสมบูรณ์ด้วยพรอมป์ต์
ยังมีกรณีอื่น ๆ เช่น ถูกยึดติดกับการตีความของบางสำนักจนบิดเบือนต้นฉบับ มีแนวโน้มแต่งความหมายด้านลบให้อ่อนลงมากเกินไป หรือในทางกลับกันก็ขยายความกังวลเกินจริง การปล่อยให้ LLM ตัดสินกฎเกณฑ์ก็เป็นปัญหาประเภทเดียวกับการให้ language model คิดเลข
Hojak Engine: ให้กฎเป็นโค้ด และให้ LLM อธิบายเท่านั้น
เพราะแบบนั้นผมจึงออกแบบโครงสร้างแบบหลายเลเยอร์
Ho (虎) — เอนจินกฎเกณฑ์ ตรรกะการคำนวณทางมยองรีถูกนำไปเขียนเป็นโค้ด หลังจากกำหนดให้ชัดในแต่ละขอบเขตว่าจะยึดการตีความใดเป็นมาตรฐาน เมื่อคัมภีร์คลาสสิก 5 เล่ม (Jeokcheonsu·Japyeongjinjeon·Gungtongbogam·Sammyeongtonghoe·Yeonhaejapyeong) ให้ความเห็นต่างกัน แล้วจึงตรึงคำตัดสินนั้นไว้ในโค้ด
Jak (鵲) — เลเยอร์อธิบายด้วย LLM ให้ LLM รับผิดชอบเฉพาะส่วนที่แปลงข้อมูลเชิงโครงสร้างซึ่งเอนจินคำนวณได้ ออกมาเป็นภาษาธรรมชาติ
สิ่งที่ LLM สร้างซ้ำได้ยากไม่ใช่ตัวโค้ด แต่คือเกณฑ์การตัดสินที่ถูกขัดเกลามาหลายพันปี
จุดที่ข้อจำกัดของ vibe coding เริ่มปรากฏ
ช่วงแรกทุกอย่างราบรื่นดี LLM ช่วยได้เร็วทั้งการวิเคราะห์คัมภีร์ภาษาจีนโบราณ การจัดหมวดสำนักต่าง ๆ ไปจนถึงร่างโค้ดคำนวณดาราศาสตร์ แต่ข้อจำกัดก็ปรากฏขึ้นตรงจุดที่กฎของแต่ละสำนักขัดแย้งกัน
ตัวอย่างเช่น ในการตัดสิน gyeokguk (格局) นั้น Jeokcheonsu จะดูลำดับแรกที่ความแข็งอ่อนของ day master ขณะที่ Japyeongjinjeon จะดูการปรากฏของเดือนฤกษ์ก่อน ทำให้เกิดกรณีที่ซาจูเดียวกันแต่ผลตัดสินกลับด้านกันตามคัมภีร์ที่ยึดถือ และเรื่องลำดับความสำคัญแบบนี้ไม่ใช่สิ่งที่ LLM ควรเป็นผู้กำหนด
สุดท้ายผมจึงต้องหาคัมภีร์ต้นฉบับทั้ง 5 เล่มมาเทียบกันโดยตรง บางส่วนมีฉบับที่ตกหล่นหรืออ่านไม่ออก จึงต้องทำ cross-validation ระหว่างหลายฉบับ พอมาศึกษาจริง ๆ ก็พบว่ามีความพยายามอนุรักษ์คัมภีร์คลาสสิกในระดับโครงการชาติอยู่มาก ซึ่งหากไม่มี LLM ช่วยก็เป็นงานที่คนคนเดียวรับมือได้ยากมาก ผมใช้ Claude Max x20 เต็มโควตาเกือบ 3 เดือน
สิ่งที่น่าสนใจคือ กรณีที่ถ่ายทอดต้นฉบับผิด ส่วนใหญ่กลับเป็นฝั่งมนุษย์ (นักวิชาการ) มากกว่า ตัวอย่างเช่น การอ่าน “旺者宜泄, 唯有情有力者可克” ใน Jeokcheonsu ต่างแบบกันสามารถทำให้แขนงของอัลกอริทึมเปลี่ยนไปเลย แต่ในทางกลับกัน LLM กลับมีประโยชน์มากในการเทียบเคียงคำแปลของนักวิชาการหลายคนกับคำอธิบายประกอบต้นฉบับ
ความละเอียดของเวลา: 1 นาทีเปลี่ยนคำตัดสินได้
ในศาสตร์มยองรี ความต่างของเวลาเพียง 1 นาทีอาจเปลี่ยนคำตัดสินหลักได้ ที่เส้นแบ่งระหว่างชั่วยามชวด (子時) กับชั่วยามฉลู (丑時) หากเสาซื่อ (siju) เปลี่ยน การตัดสิน gyeokguk เองก็เปลี่ยนตาม
Hojak Engine ผสานค่าความคลาดเคลื่อนของเวลาเฉลี่ยจากอนุกรมฟูริเยร์บนพื้นฐาน NASA/JPL (ความแม่นยำ ±13 วินาที), การตัดสิน DST ทั่วโลกบนพื้นฐาน IANA tzdata และฐานข้อมูลลองจิจูดเมืองมากกว่า 163,400 แห่ง สำหรับเกาหลี มีการสะท้อนทั้งการเปลี่ยนลองจิจูดมาตรฐาน 4 ครั้งตั้งแต่ปี 1908 และประวัติการใช้ซัมเมอร์ไทม์เป็นเวลา 12 ปี
สำหรับผมแล้ว การได้พบสูตรแก้ไขลองจิจูดแบบเดียวกับที่ใช้ในโค้ดปัจจุบันในบันทึกทางการของ Gwansanggam แห่งราชวงศ์โชซอน (Seoungwanji) เป็นประสบการณ์ที่น่าประทับใจมาก
สถานะการตรวจสอบความถูกต้อง
การคำนวณ jeolgi ถูกเทียบกับข้อมูลทางการของ Korea Astronomy and Space Science Institute (KASI) ในช่วงปี 2000–2050 และตรงกัน 100% ส่วนค่าความคลาดเคลื่อนของเวลาเฉลี่ยมีความแม่นยำ ±13 วินาทีบนพื้นฐาน NASA/JPL Horizons ด้าน sinsal นั้นยึด orthodox สิบสองชินซัลตามแบบดั้งเดิม (อิงจาก Sammyeongtonghoe) แล้วเทียบกับปฏิทินมยองรีและตรงกัน 100% ขณะที่ guiin-sal และ teuksu-sal ถูกจัดหมวดและนำไปใช้เป็น 3 ระดับ ได้แก่ orthodox / disputed / reference หลังจากตรวจสอบข้ามกับคัมภีร์ต้นฉบับ
เทคโนโลยีสแตก
เอนจินใช้ Python FastAPI + PostgreSQL + SQLAlchemy 2.0(async), ฝั่งฟรอนต์ใช้ Next.js 15 + React 19 + TypeScript + Tailwind CSS ส่วน AI ใช้มัลติโมเดลผ่าน OpenRouter (GPT-4o, Claude, DeepSeek V3) เฉพาะในเลเยอร์อธิบาย การดีพลอยใช้ Fly.io (Blue-Green) + Vercel และระบบชำระเงินใช้ Toss Payments + PayPal
ปัจจุบันสามารถสร้างรายงานแบบมีโครงสร้างระดับมากกว่า 30,000 ตัวอักษรสำหรับการวิเคราะห์ซาจูพัลจา และมากกว่า 20,000 ตัวอักษรสำหรับการวิเคราะห์รายปี โดยข้อมูลการเกิดถูกเก็บแบบเข้ารหัส
ปิดท้าย
มีมุมมองที่หลากหลายต่อความใช้ได้จริงของการทำนายในศาสตร์มยองรี โปรเจกต์นี้จึงไม่ได้มุ่งไปที่ข้อถกเถียงนั้น แต่โฟกัสที่โจทย์เชิงวิศวกรรมว่า “ถ้าจะใช้ระบบนี้ ก็จงคำนวณให้สอดคล้องกับเจตนาของมันอย่างแม่นยำและสม่ำเสมอ”
มันเริ่มจาก vibe coding แบบเบา ๆ แต่สุดท้ายกลับพาไปสู่การวิเคราะห์คัมภีร์โบราณ 5 เล่ม และถึงขั้นต้องไปดูโค้ด equation of time ของ NASA/JPL หากยืมคำของ Yegge มาใช้ ความหนาแน่นของอินไซต์ที่ถูกบีบอัดอยู่ในโดเมนนี้สูงกว่าที่คาดไว้มาก
ยินดีรับคำถามเชิงเทคนิคหรือฟีดแบ็ก
3 ความคิดเห็น
รู้สึกเศร้านิดหน่อยเพราะช่วงดวงใหญ่ไม่ค่อยดี... ปกติแล้วดวงชะตาจะเรียงเป็น เวลา วัน เดือน ปี แต่บริการนี้เรียงกลับกัน เลยมีส่วนที่ทำให้งงนิดหน่อยครับ ถ้าไม่ได้มีเจตนาอะไรเป็นพิเศษ ลองเปลี่ยนเป็นลำดับแบบทั่วไปดีไหมครับ?
หลังจากที่คุณแจ้งมา ผมก็ปรับเป็นการเรียงตาม เวลา-วัน-เดือน-ปี ทันทีครับ พอดีมีงานอื่นที่ทำอยู่ด้วย เลยเพิ่งรวมแล้วปล่อยอัปเดตได้ตอนนี้ ขอบคุณครับ
พอลองวิเคราะห์ดู ก็พบว่าคนที่สนใจเรื่องดวงสี่เสาอยู่แล้วจะรู้สึกอินกับคอนเทนต์ได้ลึกกว่า และใช้งานบริการได้นานกว่าจริง ๆ ตอนแรกที่อยากทำให้ "แม้คนที่ไม่รู้จักดวงสี่เสาก็เข้าใจได้ง่าย" จนเปลี่ยนลำดับการเรียงนั้น เป็นการตัดสินใจที่ผิดพลาดครับ ต้องขอบคุณฟีดแบ็กที่ช่วยให้ผมปรับทิศทางได้ถูกต้อง ขอขอบคุณอีกครั้งครับ
คุณพูดถูกเรื่องลำดับของการจัดเรียงครับ ตอนแรกผมจัดวางตามลำดับเวลา (ปี-เดือน-วัน-เวลา) เพื่อให้คนที่ยังไม่คุ้นกับสี่เสาอ่านวันเดือนปีเวลาเกิดของตัวเองได้อย่างเข้าใจง่าย แต่ดูเหมือนว่ามีหลายท่านที่คุ้นเคยกับการเรียงแบบสี่เสาอยู่แล้ว เลยอาจทำให้สับสนมากกว่าเดิม
ในคัมภีร์คลาสสิกต้นฉบับก็เรียงตามลำดับ เวลา-วัน-เดือน-ปี เช่นกัน ดังนั้นผมจะพิจารณาปรับเปลี่ยนเรื่องนี้อย่างจริงจังครับ เป็นฟีดแบ็กที่จำเป็นมาก
ขอบคุณสำหรับฟีดแบ็กครับ!
แล้วก็ที่บอกว่าเป็นช่วงที่ดวงใหญ่ไม่ง่ายนัก ในทางเมียงรี ดวงใหญ่คือกระแสหลักก้อนใหญ่ และภายในนั้นก็ยังมีความเปลี่ยนแปลงของดวงรายปี (歲運) อยู่ด้วย ต่อให้อยู่ในช่วงดวงใหญ่ที่ยากลำบาก ก็จะต้องมีช่วงที่ได้พบกับธาตุเกื้อหนุนอย่างแน่นอน ขอให้คว้าโอกาสนั้นไว้ได้ดีเมื่อเวลานั้นมาถึงครับ