Gemini 2.5 สามารถใช้ "กระบวนการคิด" ภายในที่ ช่วยปรับปรุงความสามารถในการให้เหตุผลและการวางแผนแบบหลายขั้นตอนได้อย่างมาก จึงมีประสิทธิภาพสูงสำหรับงานที่ซับซ้อน เช่น การเขียนโค้ด คณิตศาสตร์ขั้นสูง และการวิเคราะห์ข้อมูล
คุณสามารถกำหนดค่าขีดจำกัดการคิดของโมเดลได้โดยใช้งบประมาณการคิด การกำหนดค่านี้มีความสำคัญอย่างยิ่งหากการลดเวลาในการตอบสนองหรือต้นทุนเป็น สิ่งสำคัญ นอกจากนี้ โปรดดูการเปรียบเทียบความยากของงาน เพื่อพิจารณาว่าโมเดลอาจต้องใช้ความสามารถในการคิดมากเพียงใด
ใช้โมเดลการคิด
ใช้โมเดลการคิดเช่นเดียวกับที่ใช้Geminiโมเดลอื่นๆ
(เริ่มต้นGemini APIผู้ให้บริการที่คุณเลือก สร้างอินสแตนซ์ GenerativeModel
ฯลฯ)
โมเดลเหล่านี้สามารถใช้สำหรับงานสร้างข้อความหรือโค้ด เช่น
การสร้างเอาต์พุตที่มีโครงสร้าง
หรือการวิเคราะห์อินพุตแบบมัลติโมดัล (เช่น
รูปภาพ
วิดีโอ
เสียง
หรือ
PDF)
คุณยังใช้โมเดลการคิดได้เมื่อสตรีมเอาต์พุต
โมเดลที่รองรับ
เฉพาะรุ่น Gemini 2.5 เท่านั้นที่รองรับความสามารถนี้
gemini-2.5-pro
gemini-2.5-flash
gemini-2.5-flash-lite-preview-06-17
แนวทางปฏิบัติแนะนำสำหรับการใช้โมเดลการคิด
เราขอแนะนำให้ทดสอบพรอมต์ใน Google AI Studio หรือ Vertex AI Studio ซึ่งคุณจะดูกระบวนการคิดทั้งหมดได้ คุณสามารถระบุส่วนที่โมเดลอาจให้ข้อมูลไม่ถูกต้อง เพื่อปรับแต่งพรอมต์ให้ได้คำตอบที่สอดคล้องและแม่นยำมากขึ้น
เริ่มต้นด้วยพรอมต์ทั่วไปที่อธิบายผลลัพธ์ที่ต้องการ แล้วสังเกตความคิดเริ่มต้นของโมเดลเกี่ยวกับวิธีพิจารณาคำตอบ หากคำตอบไม่เป็นไปตามที่คาดไว้ ให้ช่วยโมเดลสร้างคำตอบที่ดีขึ้นโดยใช้เทคนิคการแจ้งต่อไปนี้
- ระบุวิธีการทีละขั้นตอน
- ระบุตัวอย่างคู่อินพุต-เอาต์พุตหลายรายการ
- ให้คำแนะนำเกี่ยวกับวิธีเรียบเรียงและจัดรูปแบบเอาต์พุตและคำตอบ
- ระบุขั้นตอนการยืนยันที่เฉพาะเจาะจง
นอกเหนือจากการแจ้งพรอมต์แล้ว ให้พิจารณาใช้คำแนะนำต่อไปนี้
ตั้งค่าคำสั่งของระบบ ซึ่งคล้ายกับ "คำนำ" ที่คุณเพิ่มก่อนที่โมเดลจะได้รับ คำสั่งเพิ่มเติมจากพรอมต์หรือผู้ใช้ ซึ่งช่วยให้คุณกำหนด ลักษณะการทำงานของโมเดลตามความต้องการและ Use Case ที่เฉพาะเจาะจงได้
ตั้งงบประมาณการคิด เพื่อกำหนดจำนวนการคิดที่โมเดลทำได้ หากตั้งงบประมาณต่ำ โมเดลจะไม่ "คิดมาก" ในการตอบ หากตั้งงบประมาณสูง โมเดลจะคิดได้มากขึ้นหากจำเป็น การตั้งงบประมาณการคิดยังช่วย สงวนขีดจํากัดเอาต์พุตโทเค็นทั้งหมดไว้สําหรับคําตอบจริงด้วย
(หากใช้ Vertex AI Gemini API) อย่าลืมเปิดใช้ การตรวจสอบ AI ในFirebase คอนโซล เพื่อให้คุณตรวจสอบเวลาในการตอบสนองของคำขอที่เปิดใช้การคิด ได้ โปรดทราบว่าโทเค็นการคิดยังไม่แสดงในแดชบอร์ดการตรวจสอบ
ควบคุมงบประมาณการคิด
หากต้องการควบคุมปริมาณการคิดที่โมเดลสามารถทำได้เพื่อสร้างคำตอบ คุณสามารถ ระบุจำนวนโทเค็นงบประมาณการคิดที่โมเดลได้รับอนุญาตให้ใช้
คุณสามารถตั้งงบประมาณการคิดด้วยตนเองในกรณีที่คุณอาจต้องการโทเค็นมากกว่าหรือน้อยกว่างบประมาณการคิดเริ่มต้น ดูคำแนะนำแบบละเอียดเพิ่มเติมเกี่ยวกับความซับซ้อนของงานและงบประมาณที่แนะนำได้ในส่วนนี้ คำแนะนำระดับสูงมีดังนี้
- ตั้งงบประมาณการคิดต่ำหากเวลาในการตอบสนองมีความสำคัญหรืองานมีความซับซ้อนน้อย
- ตั้งงบประมาณการคิดไว้สูงสำหรับงานที่ซับซ้อนมากขึ้น
กำหนดงบประมาณการคิด
คลิกผู้ให้บริการ Gemini API เพื่อดูเนื้อหาและโค้ดของผู้ให้บริการนั้นๆ ในหน้านี้ |
กำหนดงบประมาณการคิดใน GenerationConfig
เป็นส่วนหนึ่งของการสร้างอินสแตนซ์ GenerativeModel
การกำหนดค่าจะยังคงอยู่ตลอดอายุการใช้งานของอินสแตนซ์ หากต้องการใช้งบประมาณการคิดที่แตกต่างกันสำหรับคำขอที่แตกต่างกัน
ให้สร้างอินสแตนซ์ GenerativeModel
ที่กำหนดค่าด้วยงบประมาณแต่ละรายการ
ดูข้อมูลเกี่ยวกับ ค่าของงบประมาณการคิดที่รองรับ ได้ที่ส่วนนี้
Swift
กำหนดงบประมาณการคิดใน
GenerationConfig
เป็นส่วนหนึ่งของการสร้างอินสแตนซ์ GenerativeModel
// ...
// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
let generationConfig = GenerationConfig(
thinkingConfig: ThinkingConfig(thinkingBudget: 1024)
)
// Specify the config as part of creating the `GenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
modelName: "GEMINI_MODEL_NAME",
generationConfig: generationConfig
)
// ...
Kotlin
ตั้งค่าพารามิเตอร์ใน
GenerationConfig
เป็นส่วนหนึ่งของการสร้างอินสแตนซ์ GenerativeModel
// ...
// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
val generationConfig = generationConfig {
thinkingConfig = thinkingConfig {
thinkingBudget = 1024
}
}
// Specify the config as part of creating the `GenerativeModel` instance
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
modelName = "GEMINI_MODEL_NAME",
generationConfig,
)
// ...
Java
ตั้งค่าพารามิเตอร์ใน
GenerationConfig
เป็นส่วนหนึ่งของการสร้างอินสแตนซ์ GenerativeModel
// ...
// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
ThinkingConfig thinkingConfig = new ThinkingConfig.Builder()
.setThinkingBudget(1024)
.build();
GenerationConfig generationConfig = GenerationConfig.builder()
.setThinkingConfig(thinkingConfig)
.build();
// Specify the config as part of creating the `GenerativeModel` instance
GenerativeModelFutures model = GenerativeModelFutures.from(
FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
/* modelName */ "<var>GEMINI_MODEL_NAME</var>",
/* generationConfig */ generationConfig
);
);
// ...
Web
ตั้งค่าพารามิเตอร์ใน
GenerationConfig
เป็นส่วนหนึ่งของการสร้างอินสแตนซ์ GenerativeModel
// ...
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
const generationConfig = {
thinkingConfig: {
thinkingBudget: 1024
}
};
// Specify the config as part of creating the `GenerativeModel` instance
const model = getGenerativeModel(ai, { model: "GEMINI_MODEL_NAME", generationConfig });
// ...
Dart
การรองรับการตั้งงบประมาณสำหรับการทดลองใช้ Flutter จะพร้อมให้บริการในรุ่นถัดไป
Unity
การรองรับการตั้งค่างบประมาณการทดสอบสำหรับ Unity จะพร้อมให้บริการในรุ่นถัดไป
ค่าที่รองรับสำหรับงบประมาณการคิด
ตารางต่อไปนี้แสดงค่าของงบประมาณการคิดที่คุณตั้งค่าได้สำหรับแต่ละโมเดลโดยการกำหนดค่า thinkingBudget
ของโมเดล
รุ่น | ค่าเริ่มต้น | ช่วงที่ใช้ได้สำหรับงบประมาณการทดสอบ |
ค่าที่ใช้ ปิดใช้การคิด |
คุณค่าในการ กระตุ้นการคิดแบบไดนามิก |
|
---|---|---|---|---|---|
ค่าต่ำสุด | ค่าสูงสุด | ||||
Gemini 2.5 Pro | 8,192 |
128 |
32,768 |
ปิดไม่ได้ | -1 |
Gemini 2.5 Flash | 8,192 |
1 |
24,576 |
0 |
-1 |
Gemini 2.5 Flash‑Lite | 0 (ปิดใช้การคิดโดยค่าเริ่มต้น) |
512 |
24,576 |
0 (หรืออย่ากำหนดค่างบประมาณการคิดเลย) |
-1 |
ปิดใช้การคิด
สำหรับงานที่ง่ายกว่าบางอย่าง ความสามารถในการคิดไม่จำเป็น และเพียงพอต่อการอนุมานแบบดั้งเดิม หรือหากการลดเวลาในการตอบสนองเป็น สิ่งสำคัญ คุณอาจไม่ต้องการให้โมเดลใช้เวลาในการ สร้างคำตอบนานเกินความจำเป็น
ในสถานการณ์เหล่านี้ คุณสามารถปิดใช้ (หรือปิด) การคิดได้โดยทำดังนี้
- Gemini 2.5 Pro: ปิดใช้การคิดไม่ได้
- Gemini 2.5 Flash: ตั้งค่า
thinkingBudget
เป็น0
โทเค็น - Gemini 2.5 Flash-Lite: ปิดใช้การคิดตามค่าเริ่มต้น
ส่งเสริมการคิดแบบไดนามิก
คุณสามารถให้โมเดลตัดสินใจได้ว่าจะคิดเมื่อใดและคิดมากน้อยเพียงใด (เรียกว่าการคิดแบบไดนามิก) โดยตั้งค่า thinkingBudget
เป็น -1
โมเดลสามารถใช้โทเค็นได้มากเท่าที่เห็นว่าเหมาะสม โดยไม่เกินค่าโทเค็นสูงสุด
ที่ระบุไว้ข้างต้น
ความซับซ้อนของงาน
งานง่ายๆ - ปิดการคิดได้
คำขอตรงไปตรงมาที่ไม่ต้องใช้การให้เหตุผลที่ซับซ้อน เช่น การดึงข้อมูลข้อเท็จจริงหรือการจัดประเภท ตัวอย่าง- "DeepMind ก่อตั้งขึ้นที่ไหน"
- "อีเมลนี้ขอให้มีการประชุมหรือเพียงแค่ให้ข้อมูล"
งานระดับปานกลาง - ต้องใช้งบประมาณเริ่มต้นหรืออาจต้องใช้งบประมาณเพิ่มเติมในการคิด
คำขอทั่วไปที่ต้องมีการประมวลผลแบบทีละขั้นตอนหรือ ความเข้าใจที่ลึกซึ้งยิ่งขึ้น ตัวอย่าง- "เปรียบเทียบการสังเคราะห์แสงกับการเติบโต"
- "เปรียบเทียบรถยนต์ไฟฟ้าและรถยนต์ไฮบริด"
งานที่ยาก - อาจต้องใช้งบประมาณการคิดสูงสุด
ความท้าทายที่ซับซ้อนอย่างแท้จริง เช่น การแก้โจทย์คณิตศาสตร์ที่ซับซ้อนหรือการเขียนโค้ด งานประเภทนี้กำหนดให้โมเดลต้องใช้ความสามารถในการให้เหตุผล และการวางแผนอย่างเต็มที่ ซึ่งมักเกี่ยวข้องกับขั้นตอนภายในหลายขั้นตอนก่อน ที่จะให้คำตอบ ตัวอย่าง- "แก้โจทย์ข้อ 1 ใน AIME 2025: หาผลรวมของฐาน b ที่เป็นจำนวนเต็มทั้งหมดซึ่งมากกว่า 9 และ 17b เป็นตัวหารของ 97b"
- "เขียนโค้ด Python สำหรับเว็บแอปพลิเคชันที่แสดงข้อมูลตลาดหุ้นแบบเรียลไทม์ รวมถึงการตรวจสอบสิทธิ์ผู้ใช้ ทำให้มีประสิทธิภาพมากที่สุด"
การกำหนดราคาและการนับโทเค็นความคิด
โทเค็นการคิดใช้ราคาเดียวกับโทเค็นเอาต์พุตข้อความ
คุณดูจำนวนโทเค็นการคิดทั้งหมดได้จากthoughtsTokenCount
ฟิลด์ในแอตทริบิวต์ usageMetadata
ของการตอบกลับ
Swift
// ...
let response = try await model.generateContent("Why is the sky blue?")
if let usageMetadata = response.usageMetadata {
print("Thoughts Token Count: \(usageMetadata.thoughtsTokenCount)")
}
Kotlin
// ...
val response = model.generateContent("Why is the sky blue?")
response.usageMetadata?.let { usageMetadata ->
println("Thoughts Token Count: ${usageMetadata.thoughtsTokenCount}")
}
Java
// ...
ListenableFuture<GenerateContentResponse> response =
model.generateContent("Why is the sky blue?");
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
String usageMetadata = result.getUsageMetadata();
if (usageMetadata != null) {
System.out.println("Thoughts Token Count: " +
usageMetadata.getThoughtsTokenCount());
}
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
Web
// ...
const response = await model.generateContent("Why is the sky blue?");
if (response?.usageMetadata?.thoughtsTokenCount != null) {
console.log(`Thoughts Token Count: ${response.usageMetadata.thoughtsTokenCount}`);
}
Dart
การรองรับการนับโทเค็นการคิดสำหรับ Flutter จะพร้อมใช้งานในรุ่นถัดไป
Unity
การรองรับการนับโทเค็นการคิดสำหรับ Unity จะพร้อมให้บริการในรุ่นถัดไป
ดูข้อมูลเพิ่มเติมเกี่ยวกับโทเค็นได้ในคู่มือการนับโทเค็น