Dictionary · Context และ Session · 81 / 291

Stateless

คุณสมบัติของ AI model ที่ไม่จำอะไรเลยระหว่างการเรียกใช้แต่ละครั้ง: ที่แชตดูเหมือนจำได้ เพราะระบบส่งประวัติบทสนทนาทั้งหมดกลับไปให้อ่านใหม่ทุกครั้ง

Stateless แปลตรงตัวว่า "ไม่มีสถานะ" หมายถึงระบบที่ไม่เก็บความจำใดๆ ไว้ระหว่างการทำงานแต่ละครั้ง: จบงานหนึ่งครั้งคือจบ ไม่มีอะไรค้างอยู่ในตัวมัน ในโลก AI นี่คือธรรมชาติของ model ภาษาทุกตัว เอกสาร API ของ OpenAI เขียนไว้ตรงๆ ว่า request สร้างข้อความแต่ละครั้ง "เป็นอิสระต่อกันและ stateless" คือ model ไม่รู้และไม่จำว่าเมื่อกี้เราเพิ่งคุยอะไรกันไป ทุกครั้งที่ถูกเรียกใช้ มันเห็นเฉพาะสิ่งที่ถูกส่งเข้ามาในครั้งนั้นเท่านั้น

แล้วทำไมเวลาแชตกับ ChatGPT หรือ Claude มันถึงดูจำได้ว่าเราคุยอะไรกันมา? คำตอบคือแอปทำงานแทนอยู่เบื้องหลัง: ทุกๆ turn ระบบจะรวบรวมประวัติบทสนทนาทั้งหมดตั้งแต่ต้น แล้วส่งกลับไปให้ model อ่านใหม่พร้อมกับข้อความล่าสุดของเรา เอกสารของ Anthropic อธิบายว่า input ของแต่ละ turn ประกอบด้วยประวัติบทสนทนาก่อนหน้าทั้งหมดบวกข้อความปัจจุบันของผู้ใช้ และประวัติทั้งก้อนนี้อาศัยอยู่ใน context-window ซึ่งทำหน้าที่เป็น "working memory" ชั่วคราวของ model เท่านั้น ไม่ใช่ความจำถาวร ฝั่งผู้ให้บริการมีเครื่องมือช่วยลดภาระ เช่น OpenAI มี Conversations API และ parameter อย่าง previous_response_id ที่เก็บประวัติไว้ฝั่ง server ให้ แต่เบื้องหลังก็คือการป้อนประวัติเดิมกลับเข้า model อยู่ดี และ token ของประวัติทั้งหมดยังถูกคิดเงินเป็น input-tokens ทุกครั้ง

เข้าใจคำนี้แล้วจะหายงงหลายเรื่องในที่ทำงาน: ทำไมเปิดแชตใหม่แล้ว AI ลืมทุกอย่าง (เพราะประวัติของ session เก่าไม่ได้ถูกส่งตามไปด้วย) ทำไมคุยยาวๆ แล้วช้าลง แพงขึ้น และเริ่มตอบเพี้ยน (เพราะประวัติสะสมจนใกล้เต็ม context window) และทำไมจึงต้องมีสิ่งอย่าง memory-system: มันคือการจดข้อมูลเก็บไว้ข้างนอกแล้วป้อนกลับเข้าไปใหม่ในครั้งถัดไป ไม่ใช่ว่า model จำได้เอง

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

ฝ่ายบุคคล: "ผมเทรน ChatGPT ของแผนกมาเป็นเดือน สอนมันเรื่องระเบียบบริษัทไปเยอะมาก แต่พอน้องในทีมล็อกอินไปใช้ มันไม่รู้เรื่องอะไรเลย ต้องสอนใหม่หมด งงมาก"

วิทยากร: "เพราะตัว model เป็น stateless ครับ มันไม่ได้เรียนรู้หรือเก็บอะไรจากบทสนทนาของเราเข้าไปในตัวเลย ที่มันดูจำได้ในแชตเดิมของพี่ เพราะระบบแอบส่งประวัติแชตนั้นกลับไปให้มันอ่านใหม่ทุกครั้งที่พี่พิมพ์ พอเป็นบัญชีของน้อง ไม่มีประวัติเดิมแนบไปด้วย มันก็เริ่มจากศูนย์ ถ้าอยากให้ทั้งทีมได้ context ชุดเดียวกัน ต้องเอาระเบียบบริษัทไปใส่ใน system-prompt ของ project ที่แชร์กัน หรือใช้ฟีเจอร์ memory ที่ตั้งค่าเป็นทีมครับ"

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

  • stateful : ขั้วตรงข้าม คือระบบที่เก็บสถานะไว้ให้เอง เช่น Conversations API ที่ผู้ให้บริการเก็บประวัติฝั่ง server แอปแชตที่เราใช้กันจริงๆ คือชั้น stateful ที่ครอบ model ซึ่ง stateless อยู่ข้างใน
  • training : หลายคนคิดว่า "AI จำที่เราคุย" แปลว่ามันเรียนรู้เพิ่ม จริงๆ ความรู้ถาวรของ model มาจากการ training ซึ่งจบไปก่อนเราใช้งานนานแล้ว การพิมพ์คุยไม่ได้เปลี่ยนตัว model แม้แต่นิดเดียว

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

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

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

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

StatefulSystem prompt