ป้ายกำกับ: Format

AI: ประหยัด Token โดยใช้แค่ tabAI: ประหยัด Token โดยใช้แค่ tab

code ว่าที่นิยมจัดบรรทัด Indentation โดยใช้อยู่ 2 แบบหลักคือ 4 Space และ Tab ซึ่งจริง ๆ แล้วถ้าคนทั่วไปแทบจะไม่ดูเลยว่า code ที่มีนั้นมันจะใช้ 4 Space หรือ Tab ในการจัดบรรทัดแต่ว่า AI เห็นมีผลกับประหยัดการใช้ Token ด้วยเหมือนกัน

โดยสรุปสั้น ๆ คือ การใช้ Tab มักจะประหยัด Token ได้มากกว่าหรือเท่ากัน เมื่อเทียบกับ 4 Space เสมอครับ (ไม่มีกรณีที่ Tab เปลืองกว่า)

นี่คือรายละเอียดเชิงลึกครับ:

1. ทำไม Tab ถึงประหยัดกว่า ?

AI ไม่ได้มองตัวอักษรทีละตัว แต่มองเป็นกลุ่มคำหรือสัญลักษณ์ที่เรียกว่า Token

  • Tab : โดยปกติ AI จะนับเป็น 1 Token เสมอ ไม่ว่าจะแสดงผลกว้างแค่ไหน
  • Space 4 ตัว () :
    • กรณีดีที่สุด: AI บางรุ่น ถูกเทรนมากับ Code เยอะ ๆ มันจะฉลาดพอที่จะรวบรวม Space 4 ตัว ให้กลายเป็น 1 Token ได้
    • กรณีทั่วไป: ถ้า Indent ลึก ๆ หรือมี Space เกินมานิดหน่อย AI อาจจะมอง Space กลุ่มนั้นแยกเป็น 2-3 Tokens ทันที
    • ระดับ Byte: Tab กินพื้นที่แค่ 1 byte แต่ 4 Space กิน 4 bytes แม้ Token จะเท่ากัน แต่ขนาด Input จริง ของ Tab ก็เล็กกว่าครับ

2. ตัวอย่างการนับ

สมมติคุณมี Code ที่ Indent ลึก 3 ชั้น :

  • แบบ Tab: \t\t\t = 3 Tokens
  • แบบ Space:
    • Model ที่เก่ง Code: อาจมองเป็น 1 Token ใหญ่ หรือ 3 Tokens -> เท่ากัน
    • Model ทั่วไป: อาจมองเป็น 4-6 Tokens -> เปลืองกว่า

3. คำแนะนำสำหรับการใช้งานจริง

  • ถ้าเน้นประหยัดสุด ๆ : การแปลง Space เป็น Tab ก่อนส่ง จะช่วยลด Token ได้แน่นอน และลดความเสี่ยงที่ AI จะนับ Space ผิดพลาด
  • ในการทำงานปกติ: ผลลัพธ์ที่ประหยัดได้อาจจะไม่คุ้มค่ากับการเปลี่ยน Code Style ของทีมครับ ให้ยึดตาม Linter/Format ที่ทีมใช้เป็นหลัก

สรุป: ถ้าคุณกำลัง Copy Code ก้อนใหญ่ ๆ ไปแปะให้ AI ช่วยดู และกลัว Token เต็ม การ Find & Replace จาก 4 Spaces -> Tab ก่อนส่ง เป็นเทคนิคที่ดีครับ

อ่านเพิ่มเติม