Dictionary · กลไกโมเดล · 58 / 291

Prefix cache

เทคนิคที่ระบบ AI จำผลการอ่านส่วนต้นของ prompt ที่ส่งซ้ำๆ ไว้ ไม่ต้องประมวลผลใหม่ทุกครั้ง ทำให้ตอบไวขึ้นและค่าใช้จ่ายถูกลงมาก

Prefix cache (ฝั่งผู้ให้บริการมักเรียกว่า prompt caching) คือเทคนิคที่ model-provider จดจำผลการประมวลผล "ส่วนต้น" (prefix) ของ prompt ที่ถูกส่งซ้ำๆ เอาไว้ พอคำขอถัดไปส่งเข้ามาโดยมีส่วนต้นตรงกับของเดิมเป๊ะ ระบบจะหยิบผลที่จำไว้มาใช้ต่อได้ทันที ไม่ต้องอ่าน token เดิมซ้ำตั้งแต่ต้น ผลคือ model เริ่มตอบไวขึ้นและค่าใช้จ่ายลดฮวบ: ฝั่ง Claude คิดค่า token ที่อ่านจาก cache เพียงราว 10% ของราคา input-tokens ปกติ เท่ากับส่วนที่อ่านจาก cache ถูกลงถึงราว 90% เมื่อเทียบกับการประมวลผลใหม่

เหตุที่ต้องมีของแบบนี้: การคุยกับ AI ผ่าน API โดยทั่วไปเป็นแบบ stateless คือทุก turn ต้องส่ง system-prompt นิยาม tool และประวัติการคุยทั้งหมดกลับไปให้โมเดลอ่านใหม่ ยิ่งบทสนทนายาวหรือแนบเอกสารใหญ่ ต้นทุนก็ยิ่งบวมทั้งเวลาและเงิน prefix cache เข้ามาแก้ตรงนี้: ส่วนที่ไม่เปลี่ยน (คำสั่งประจำ เอกสารอ้างอิง นิยามเครื่องมือ) จ่ายแพงครั้งแรกครั้งเดียวตอน "เขียนลง cache" (ฝั่ง Claude คิด 1.25 เท่าของราคา input ปกติ) แล้วครั้งถัดๆ ไปจ่ายราคาถูกตอน "อ่านจาก cache" เงื่อนไขสำคัญคือส่วนต้นต้องตรงกันทุกตัวอักษร แค่มี timestamp หรือข้อความที่เปลี่ยนทุกครั้งแทรกอยู่ช่วงต้น cache ก็ไม่ match ทันที หลักออกแบบจึงตรงกันทั้งสองค่าย: วางของนิ่งไว้หน้าสุด ของที่เปลี่ยน (เช่นคำถามผู้ใช้) ไว้ท้ายสุด ฝั่ง OpenAI เปิดระบบนี้ให้อัตโนมัติเมื่อ prompt ยาวเกินราว 1,024 token ส่วนฝั่ง Claude ให้กำหนดจุดตัด cache เองผ่าน cache_control ได้ และ cache มีอายุจำกัด: ค่าเริ่มต้น 5 นาที ต่ออายุอัตโนมัติทุกครั้งที่ถูกใช้ หรือเลือกแบบ 1 ชั่วโมงได้ในราคาสูงขึ้น

คนทำงานยุค AI ควรรู้จักคำนี้แม้ไม่ได้เขียนโค้ด เพราะมันตอบคำถามที่เจอบ่อยในออฟฟิศ: ทำไม agent ที่มี system prompt ยาวเหยียดถึงมีต้นทุนต่อครั้งไม่แพงอย่างที่คิด ทำไมข้อความถัดๆ ไปในบทสนทนาเดิมถึงเริ่มตอบได้ไวขึ้น และทำไมทีมที่จัดโครงสร้าง prompt ไม่ดี (เอาข้อมูลที่เปลี่ยนตลอดเวลาไปวางไว้ช่วงต้น) ถึงจ่ายค่า API แพงกว่าที่ควรหลายเท่า เข้าใจเรื่องนี้แล้วจะคุยกับทีม dev รู้เรื่องขึ้น และอ่านบิลค่า AI ของทีมออกว่าเงินหายไปกับอะไร

ตัวอย่างจากบทสนทนาจริง

ถาม: "ทีมหนูทำ bot ตอบแชตลูกค้า ใส่คู่มือสินค้าเกือบร้อยหน้าไว้ใน system prompt แปลว่าทุกครั้งที่ลูกค้าทัก ระบบคิดเงินค่าอ่านคู่มือใหม่ทั้งหมดเลยเหรอคะ งั้นตัดคู่มือทิ้งให้เหลือหน้าเดียวดีไหม"

ตอบ: "ยังไม่ต้องตัดครับ ตราบใดที่คู่มืออยู่ช่วงต้นของ prompt และเนื้อหาไม่เปลี่ยนเลย prefix cache จะช่วยอยู่แล้ว: จ่ายเต็มบวกค่าเขียน cache นิดหน่อยแค่ข้อความแรก หลังจากนั้นส่วนคู่มือถูกคิดแค่ราคาอ่าน cache ซึ่งถูกกว่าปกติมาก (ฝั่ง Claude ราว 10%) สิ่งเดียวที่ห้ามทำคือแทรกของที่เปลี่ยนทุกครั้ง เช่นเวลาปัจจุบัน ไว้ก่อนคู่มือ เพราะจะทำให้ส่วนต้นไม่ตรงกับของเดิมและ cache ไม่ทำงานเลย"

ระวังสับสนกับ

  • cache-tokens : prefix cache คือ "กลไก" ที่ทำให้เกิดการประหยัด ส่วน cache tokens คือ "หน่วยนับในบิล" ที่รายงานว่าคำขอนั้นอ่านหรือเขียน cache ไปกี่ token ใช้ตรวจว่า cache ทำงานจริงหรือเปล่า
  • memory-system : prefix cache ไม่ได้ทำให้ AI "จำ" อะไรเพิ่มขึ้น มันแค่จำผลคำนวณของข้อความเดิมเพื่อประหยัดเวลาและเงิน ถ้าข้อความนั้นไม่ถูกส่งกลับไปในคำขอ โมเดลก็ไม่รู้จักมันอยู่ดี ส่วน memory system คือการเก็บความรู้ข้ามบทสนทนาให้เรียกกลับมาใช้ได้จริง

ดูคำนี้ใน Knowledge Atlas →

■ ไม่อยากพลาดของใหม่

อ่านจบแล้วอยากตามเรื่อง AI แบบนี้ต่อทุกวัน เรามีสรุปข่าวภาษาไทยส่งทาง LINE ทุกเช้า กดเพิ่มเพื่อนไว้ได้เลย ไม่มีค่าใช้จ่าย

เพิ่มเพื่อนใน LINE →
QR เพิ่มเพื่อน LINE ของ TRAINIAC AIคอมพิวเตอร์สแกนด้วยมือถือได้เลย

ParametersQuantization