ปรับแต่ง LM Studio สำหรับงานโค้ด: เข้าใจ `top_p`, `top_k` และ `repeat_penalty`
เวลาที่เราใช้ LM Studio เพื่อช่วยในการเขียนโค้ด ไม่ใช่แค่เลือกโมเดลที่ดีเท่านั้น แต่การตั้งค่า พารามิเตอร์การสร้างข้อความ (generation settings) ก็สำคัญมาก โดยเฉพาะ top_p
, top_k
และ repeat_penalty
ที่มีผลต่อความแม่นยำ ความสร้างสรรค์ และความเสถียรของผลลัพธ์
ถ้าใครเคยเจอปัญหาโมเดลวนลูปพิมพ์ซ้ำ หรือสร้างโค้ดที่ไม่ตรงกับโจทย์ ลองมาทำความเข้าใจ 3 ตัวนี้ให้ดีครับ
🎯 top_k
คืออะไร?
top_k
คือการจำกัดตัวเลือกของโมเดล
ปกติแล้วโมเดลจะประเมินความน่าจะเป็นของ token (คำ/สัญลักษณ์) นับพัน แต่ top_k
จะบอกว่า “ให้เลือกเฉพาะ K อันดับแรกเท่านั้น”
top_k = 20
→ โฟกัสมาก เลือกได้แค่ 20 ตัวเลือกtop_k = 100
→ กว้างขึ้น หลากหลายขึ้นtop_k = -1
→ ไม่จำกัด เลือกจากทั้งหมดได้
👉 เหมาะสำหรับโค้ด: ใช้ช่วง 20–50 เพื่อให้ผลลัพธ์เสถียรและแม่นยำ
🎯 top_p
คืออะไร?
ถ้า top_k
เน้นจำนวนตัวเลือก top_p
จะเน้น เปอร์เซ็นต์ความน่าจะเป็นรวม (nucleus sampling)
top_p = 0.9
→ เลือก token ที่รวมกันได้ 90% ของความน่าจะเป็นtop_p = 0.8
→ แคบลง ผลลัพธ์จะชัดเจนขึ้นtop_p = 1.0
→ ไม่กรองเลย ใช้ทั้ง distribution
👉 เหมาะสำหรับโค้ด: ตั้งไว้ที่ 0.85–0.9 กำลังดี มีความแม่นยำและยังยืดหยุ่นพอสำหรับชื่อฟังก์ชันหรือคอมเมนต์
🎯 repeat_penalty
คืออะไร?
เวลาที่โมเดลพิมพ์ซ้ำ เช่น print(print(print(...)))
นั่นคือผลจากการไม่มีการลงโทษการซ้ำ
repeat_penalty
จะช่วยป้องกันไม่ให้ token ที่ใช้แล้วถูกนำมาใช้ซ้ำบ่อยเกินไป
repeat_penalty = 1.0
→ ไม่ลงโทษ อาจวนลูปได้repeat_penalty = 1.05
→ กดซ้ำเบา ๆrepeat_penalty = 1.2
→ กดซ้ำแรงมาก
👉 เหมาะสำหรับโค้ด: ใช้ที่ 1.05 ถ้าเจอซ้ำบ่อยค่อยเพิ่มขึ้นเล็กน้อย
⚙️ ค่าที่แนะนำสำหรับงานโค้ด
{
"temperature": 0.2,
"top_k": 40,
"top_p": 0.9,
"repeat_penalty": 1.05,
"max_tokens": 2048,
"seed": -1
}
- temperature ต่ำ (0.2): ทำให้โค้ดเสถียรและไม่สุ่มเกินไป
- top_k + top_p สมดุล: ช่วยให้โค้ดตรงและไม่หลุด
- repeat_penalty อ่อน ๆ: ป้องกันการวนซ้ำ
- seed = -1: สุ่มโดยค่าเริ่มต้น ตั้งเลขเฉพาะถ้าต้องการ reproducibility
🖼️ แผนภาพการตั้งค่าใน LM Studio
┌───────────────────────────────┐
│ LM Studio UI │
└───────────────────────────────┘
│
▼
┌───────────────────────────────┐
│ Model Config JSON │
│ │
│ { │
│ "temperature": 0.2, │
│ "top_k": 40, │
│ "top_p": 0.9, │
│ "repeat_penalty": 1.05, │
│ "max_tokens": 2048, │
│ "seed": -1 │
│ } │
└───────────────────────────────┘
│
▼
┌───────────────────────────────┐
│ ผลลัพธ์ของโมเดล │
├───────────────────────────────┤
│ top_k → จำกัดจำนวน token │
│ top_p → จำกัดด้วยความน่าจะเป็น │
│ repeat_penalty → กันวนซ้ำ │
│ temperature → ความสร้างสรรค์ │
└───────────────────────────────┘
✅ สรุปสั้น ๆ
top_k
= shortlist → ใช้ 20–50top_p
= ความน่าจะเป็นรวม → ใช้ \~0.9repeat_penalty
= กันซ้ำ → ใช้ 1.05- temperature ต่ำ → โค้ดคมชัด ไม่สุ่ม
เพียงเท่านี้ LM Studio ก็จะกลายเป็น คู่หูเขียนโค้ดที่เสถียรและแม่นยำ ไม่ใช่ AI ที่พูดวกวนหรือพิมพ์ซ้ำอีกต่อไป 🚀
Get in Touch with us
Related Posts
- ระบบจัดการรีไซเคิลสำหรับโรงงาน: ทำให้การขายเศษวัสดุง่ายและโปร่งใส
- วิธีเขียน Use Case ให้เข้าใจง่าย และใกล้เคียงลูกค้าที่สุด
- หลังฟองสบู่ AI: ทำไมเครื่องเล่นเกมคอนโซลและ Local AI ถึงคือคำตอบที่แท้จริง
- การใช้ Source–Victim Matrix เชื่อมโยงการทดสอบ RE102 และ RS103 ในการวิเคราะห์ EMC บนเรือ
- เทคโนโลยีกับการสร้างความไว้วางใจใหม่หลังวิกฤต
- ก้าวสู่ยุคใหม่ของคลินิกเสริมความงามด้วย Mobile App
- ยกระดับอีคอมเมิร์ซด้วย AI: การวิเคราะห์รูปภาพ แปลภาษา และ Cross-Selling อัจฉริยะ
- ระบบ TAK พลิกโฉมการรับมือภัยพิบัติน้ำท่วม
- ช้อปปิ้งง่ายขึ้น: แค่ถ่ายรูปก็หาสินค้าที่ตรงใจได้ด้วย AI
- แก้ปัญหาการรบกวนระหว่างเสาอากาศด้วยโปรแกรมจำลอง Coupling ขั้นสูง
- อนาคตของการทำงาน: โครงการโอเพนซอร์สที่ผลักดันการประหยัดแรงงานด้วยระบบอัตโนมัติ
- คิดให้ดีกว่าไปกับโค้ด: ใช้คณิตศาสตร์ทางลัดเพื่อเข้าใจระบบซอฟต์แวร์ขนาดใหญ่
- สร้าง Macrohard แห่งวันนี้: แพลตฟอร์ม AI Agents สำหรับองค์กร
- พัฒนา Vue.js อย่างชาญฉลาดด้วย Aider + การเชื่อมต่อกับ IDE
- เฮ้! มาใช้ AI ผู้ช่วยโค้ดอย่าง Codex CLI กับ Aider กันเถอะ
- การทำงานร่วมกับ AI ในการเขียนโค้ดอย่างถูกวิธี
- วิธีเลือกโมเดล LLM ที่เหมาะสม: Instruct, MLX, 8-bit และ Embedding
- วิธีใช้โมเดล LLM แบบรันในเครื่อง (Local LLM) ในการทำงานประจำวัน
- วิธีใช้โมเดล Embedding ร่วมกับ LLM เพื่อสร้างแอป AI ที่ชาญฉลาดยิ่งขึ้น
- ระบบกล้องอัจฉริยะสำหรับตรวจหาข้อบกพร่องของวัสดุต่อเนื่อง