กำลังคิด

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 จะพร้อมให้บริการในรุ่นถัดไป

ดูข้อมูลเพิ่มเติมเกี่ยวกับโทเค็นได้ในคู่มือการนับโทเค็น