วันก่อนผมเปลี่ยน Loom จาก Gemini 2.5 มาใช้ Gemini 3 ตามที่ Google ปล่อยใหม่ — กะว่า model ใหม่จะเก่งขึ้น caption FB น่าจะดีขึ้น แต่พอเปิดบิล Google AI Studio วันถัดมา ตกใจครับ token ที่ใช้พุ่งขึ้นเกือบ 3 เท่าจากของเดิม ทั้งที่ output ก็แค่ caption สั้นๆ เหมือนเดิม 555
เลยส่ง task ให้ทิมไปไล่ดูว่าทำไม — กลายเป็นว่ามี knob ลับของ Gemini 3 ที่ default ผิดสำหรับงานผม ทิมรัน benchmark เทียบ 4 ระดับเอง แล้วเปลี่ยน default + ใส่ dropdown ให้ override ได้ ในคืนเดียว ค่า API กลับมาเท่าเดิม + เร็วขึ้น 2 เท่า
ปัญหา: model ใหม่ไม่ได้แค่ฉลาดขึ้น — มันยังคิดเยอะขึ้นด้วย
เล่า context ก่อน — Loom คือระบบ automation ที่ผมใช้รัน FB pages 23 เพจ ใน 6 ภาษาครับ มันมี workflow ที่ generate caption + script ด้วย LLM ทุกวัน คิดดูว่ารวมๆ ทั้งระบบ AI call หลายร้อยครั้งต่อวัน
ของเดิมใช้ Gemini 2.5 Flash ราคาถูก เร็ว ผลลัพธ์ก็โอเค พอผม upgrade เป็น gemini-3-flash ทั้งระบบ ก็คาดว่าราคาน่าจะใกล้เคียงเดิม model ใหม่ก็แค่ฉลาดขึ้นเฉยๆ
ปรากฏว่าไม่ใช่อ่ะ — Gemini 3 มันมี mode ใหม่ที่ชื่อ thinkingLevel ซ่อนอยู่ใน config และตัว default ของมันคือ "high" ทุก call
"thinking level" คือเหมือนให้ AI คิดในใจก่อนตอบ ยิ่ง level สูงยิ่งคิดเยอะ ใช้ token มากขึ้น ใช้เวลานานขึ้น — สำหรับงานที่ต้อง reasoning ยากๆ มันคุ้มครับ แต่สำหรับ caption FB สั้นๆ มันเหมือนใช้รถถังไปซื้อข้าวเซเว่น
ขอ benchmark ก่อนปรับ ไม่ใช่ปรับมั่วๆ
ผมบอกทิมว่า "ก่อนเปลี่ยนอะไร ขอเลขก่อน" — เพราะถ้าเปลี่ยนแล้ว caption ออกมาห่วยลง เสียมากกว่าได้ครับ
ทิมเลยเขียน script เล็กๆ ตัวหนึ่ง รัน prompt จริงที่ Loom ใช้ generate caption ภาษาไทย FB เทียบ 4 levels ทั้งหมด ดูทั้ง 3 metric:
- Thought tokens (AI ใช้ token คิดในใจกี่ตัว)
- Latency (กี่วินาทีต่อ call)
- Total tokens (รวมที่จะถูกชาร์จ)
ผลออกมาแบบนี้ครับ:
- minimal: 0 thought tokens, 2.9 วินาที, รวม 294 tokens
- low: 380 thought tokens, 4.5 วินาที, รวม 639 tokens
- medium: 501 thought tokens, 5.6 วินาที, รวม 772 tokens
- high: 654 thought tokens, 5.8 วินาที, รวม 914 tokens (= default)
ตัวเลขนี้บอกชัดเลย — ระหว่าง minimal กับ high ต่างกัน 3 เท่าทั้ง token และความเร็ว สำหรับงานเดียวกัน prompt เดียวกัน
คำถามต่อมา: caption ที่ออกมามันต่างกันไหม?
ทิมเอา caption ทั้ง 4 ตัวมาให้ผมอ่านเทียบ — บอกตรงๆ ครับ ผมแยกไม่ออกเลย 555 ทั้ง 4 ตัว tone, ความเป็นธรรมชาติ, การใช้ emoji, การเรียง hook → punchline ออกมาดีพอๆ กันหมด
เพราะว่า caption FB มันเป็นงาน "เลือกคำให้ engaging" ไม่ใช่งาน "คิดวิเคราะห์หลายชั้น" — model ฉลาดพอที่จะทำมันได้โดยไม่ต้อง reasoning ในใจอะไรซับซ้อน
เลยตัดสินใจร่วมกันว่า: switch default เป็น minimal
แต่อย่าเอา choice ออกจาก user — ใส่ dropdown ไว้ด้วย
ตอนแรกทิม commit ไปก่อนรอบหนึ่ง — hardcode thinkingLevel=minimal ใน gemini-3 ทุก call เลย
พอผมมาดู code review ผมรู้สึกว่า "เออ มันลด token จริง แต่ user (= ผม) ไม่มีทางเลือกเลยอ่ะ ถ้าวันหลังอยากให้ขั้นตอนไหนคิดเยอะขึ้นล่ะ?"
เช่นใน Loom ผมมี workflow generate script เต็ม 4-5 ย่อหน้าด้วย (ไม่ใช่แค่ caption สั้น) — ตัวนี้อาจอยาก thinking สูงหน่อย
หรือ workflow ที่ผมใส่ AI ให้ วิเคราะห์ตัวเลข dashboard แล้วเขียนสรุป — งานนี้ต้อง reason จริงๆ minimal อาจน้อยไป
ทิมเลยกลับมา revert แล้วทำใหม่:
- Backend อ่าน
thinking_levelจาก step config ถ้าไม่ตั้งให้ default =minimal - Frontend เพิ่ม dropdown ใหม่ในหน้า config ของแต่ละ step (แสดงเฉพาะตอนเลือก Gemini 3) มี option minimal/low/medium/high ให้กดเลือกเอง
- 178 steps เก่าที่มีอยู่แล้ว ไม่ต้องไปแก้ทีละตัว — ปล่อยให้ใช้ default = minimal ไปก่อน
- ถ้าวันหลังเจอ step ไหนอยาก quality สูงกว่านี้ กดเข้าไป config แล้วเลือก level เองได้
นี่คือ pattern ที่ผมชอบที่สุดเวลาทิม design feature — เปลี่ยน default เป็นค่าที่ optimize 99% ของ case แต่ไม่ปิดประตู choice ของ user
เกร็ดเล็กๆ ที่ทิมเจอระหว่างทาง: doc ของ Google เขียนผิด
ส่วนที่ขำที่สุดของเรื่องนี้คือ — ตอนทิม implement ครั้งแรก มัน return error 400 ตลอด
ปรากฏว่า early docs ของ Gemini บอกว่า key name คือ thinkingLevel ตรงๆ ในระดับบนสุดของ generationConfig — แต่จริงๆ API ต้องการให้ใส่เป็น thinkingConfig.thinkingLevel ซ้อนใน object อีกชั้น
ทิมไล่ debug จาก error response → ลอง 2-3 schema → เจอเองว่าต้องซ้อน 1 ชั้น แล้วใส่ comment ไว้ใน code ว่า "flat key ตามที่ doc เขียน → 400" เพื่อกัน future self หรือคนอื่นมา revert
เป็น lesson ที่ AI ของผมเก่ง — ไม่เชื่อ doc สุ่มสี่สุ่มห้า test ด้วย API จริงเสมอ
(บทเรียนเดียวกันนี้เคยกัดผมจาก Claude ฝั่ง Anthropic ด้วย — Sonnet ทำ Documentor research pipeline พังเงียบๆ 3 วัน เพราะใส่เครื่องหมาย " ใน JSON output ผิด แล้ว json.loads ตาย ไม่มี vendor ไหน trust ได้ 100% — ต้อง defensive parsing ทุกครั้ง)
ทำไมเรื่องนี้ถึงสำคัญสำหรับคนทำธุรกิจ ไม่ใช่แค่คน dev
ผมเล่าเรื่องนี้ไม่ใช่เพื่อโชว์ technical detail — แต่เพราะมันมี business lesson 3 ข้อที่ผมว่าใช้ได้กับทุกคนที่ใช้ AI ทำงาน:
1. Default ของเครื่องมือใหม่ optimize เพื่อ "ดูเก่ง" ไม่ใช่ "ประหยัดสำหรับคุณ" — Google ตั้ง thinkingLevel=high default เพราะมันทำให้ Gemini 3 ดูฉลาดที่สุดใน benchmark แต่สำหรับ caption FB งานเล็ก เปลือง — ทุกครั้งที่ upgrade tool ใหม่ ตรวจ knob ใหม่ๆ ที่เพิ่มมาเสมอ
2. ก่อนปรับอะไร ขอเลขก่อน — ถ้าผมแค่บอกทิมว่า "ลด thinking ลง" มันก็ลดให้ครับ แต่ผมจะไม่รู้ว่ามัน trade-off กับ quality หรือไม่ การมี benchmark 4 levels ทำให้ตัดสินใจได้ confident — และเก็บเลขนั้นไว้ debate ได้ในอนาคต
3. เปลี่ยน default ดีที่สุด แต่อย่าปิดประตู choice — ถ้าทิม hardcode ไปเลยตอนแรก วันหลังเจอ workflow ที่ต้อง thinking สูงผมต้อง revert ทั้งระบบ การมี dropdown ให้ override คือ insurance policy ที่ใช้เวลาเขียนแค่ไม่กี่นาที
ทิมเป็น engineer ที่ค่าจ้างไม่แพง
ถ้าผมไม่มีทิม เรื่องนี้คงจบแบบนี้ครับ — เห็นบิล Google AI Studio สูงขึ้น คิดว่าก็ปกติของ model ใหม่ จ่ายต่อไปทุกเดือน เผลอๆ ปีนึงเสียเงินเพิ่มไป 10,000-20,000 บาทโดยไม่จำเป็น
หรืออาจจะ revert กลับไปใช้ Gemini 2.5 แล้วพลาดคุณภาพที่ดีขึ้นของ model ใหม่
แต่ทิมไล่ benchmark + design fix ที่ดีกว่านั้น — เปลี่ยน default + คงทาง choice ไว้ + เก็บ comment กัน future bug — ทั้งหมดในคืนเดียว ค่าจ้างต่อชั่วโมงของ engineer human ระดับนี้บน upwork น่าจะ 40-60 USD ครับ
นี่คือเหตุผลที่ผมหยุดจ่ายค่า SaaS รายเดือนเยอะๆ แล้วหันมาให้ AI Agent ของตัวเอง build/tune tools เอง — เพราะมันไม่ใช่แค่เขียน code ได้ แต่มันคิดเป็นวิศวกร tradeoff เป็น cost-aware เป็น product mindset
คำถามที่พบบ่อย
Gemini thinkingLevel คืออะไร มีกี่ระดับ?
thinkingLevel คือ parameter ใหม่ของ Gemini 3 ที่กำหนดว่า AI จะคิดในใจลึกแค่ไหนก่อนตอบครับ มี 4 ระดับ: minimal (ไม่คิดเพิ่ม, เร็วสุด), low, medium, high (default) ยิ่ง level สูงยิ่งใช้ thought tokens มาก ใช้เวลานาน และเสียค่า API สูงขึ้น
ทำไม Gemini 3 ถึง default thinkingLevel เป็น high?
เพราะ Google ต้องการให้ Gemini 3 ดูฉลาดที่สุดใน benchmark ครับ แต่สำหรับงานส่วนใหญ่ในชีวิตจริงเช่น generate caption FB สั้นๆ การคิดระดับสูงไม่ได้ทำให้ output ดีขึ้นเลย แถมเสียค่า API เพิ่มโดยเปล่าประโยชน์
ก่อนจะ optimize LLM API cost ควรทำอะไรก่อน?
ควร benchmark ก่อนครับ รัน prompt จริงในหลาย config เปรียบเทียบ 3 สิ่ง: thought tokens, latency, total tokens และดู output quality ด้วยตัวเอง ไม่ใช่เดาเอาว่าน้อยลงแล้วคุณภาพน้อยลงแน่นอน เพราะงานง่ายๆ อย่าง caption สั้นไม่จำเป็นต้อง reasoning ลึกเลยครับ
ควร hardcode ค่า thinking level หรือเปิดให้ override ได้?
ควรเปิดให้ override ได้ครับ เพราะงานแต่ละประเภทต้องการ reasoning ระดับต่างกัน caption สั้น minimal พอ แต่ script เต็ม 5 ย่อหน้า หรืองานวิเคราะห์ตัวเลขอาจต้อง thinking สูงขึ้น วิธีที่ดีคือ default เป็น minimal แล้วมี option ให้ override ทีละ step เมื่อต้องการครับ
ถ้าคุณอยากได้ AI Agent ของตัวเองที่ดูแล cost ของ tool ที่คุณใช้ ปรับ config ให้เหมาะกับงาน รัน benchmark เปรียบเทียบให้เอง ลอง Newton ดูครับ — เป็น server ส่วนตัวพร้อม AI Agent ติดตั้งมาให้แล้ว เข้ามาคุยได้ทันที สั่งให้ดูบิลของ API ทุกตัว ใช้ knob ของแต่ละ provider ให้ครบ ไม่ต้อง dev เองครับ
— ปอนด์
