Gemini 2.5 modelleri, muhakeme ve çok adımlı planlama yeteneklerini önemli ölçüde geliştiren dahili bir "düşünme süreci" kullanabilir. Bu sayede kodlama, ileri matematik ve veri analizi gibi karmaşık görevlerde son derece etkili olurlar.
Düşünme bütçesi kullanarak bir modelin ne kadar düşünebileceğini yapılandırabilirsiniz. Bu yapılandırma, özellikle gecikmeyi veya maliyeti azaltmak öncelikli bir hedefse önemlidir. Ayrıca, bir modelin düşünme yeteneğine ne kadar ihtiyacı olabileceğine karar vermek için görev zorluklarının karşılaştırmasını inceleyin.
Düşünme modeli kullanma
Diğer Gemini modelleri kullanırken yaptığınız gibi bir düşünce modeli kullanın
(Seçtiğiniz Gemini API sağlayıcıyı başlatın, GenerativeModel
örneği oluşturun vb.).
Bu modeller, yapılandırılmış çıkış oluşturma gibi metin veya kod oluşturma görevlerinde ya da çok formatlı girişleri (ör. resimler, video, ses veya PDF'ler) analiz etmek için kullanılabilir.
Çıkışı yayınlarken düşünce modellerini bile kullanabilirsiniz.
Desteklenen modeller
Bu özellik yalnızca Gemini 2.5 modellerinde desteklenir.
gemini-2.5-pro
gemini-2.5-flash
gemini-2.5-flash-lite-preview-06-17
Düşünce modellerini kullanmayla ilgili en iyi uygulamalar
Tam düşünme sürecini görebileceğiniz Google AI Studio veya Vertex AI Studio içinde isteminizi test etmenizi öneririz. Modelin yanlış yönlendirilmiş olabileceği alanları belirleyerek istemlerinizi daha tutarlı ve doğru yanıtlar alacak şekilde iyileştirebilirsiniz.
İstenen sonucu açıklayan genel bir istemle başlayın ve modelin yanıtını nasıl belirlediğiyle ilgili ilk düşüncelerini gözlemleyin. Yanıt beklendiği gibi değilse aşağıdaki istem tekniklerinden herhangi birini kullanarak modelin daha iyi bir yanıt oluşturmasına yardımcı olun:
- Adım adım talimatlar sağlama
- Giriş-çıkış çiftleriyle ilgili birkaç örnek verin.
- Çıktı ve yanıtların nasıl ifade edilmesi ve biçimlendirilmesi gerektiği konusunda rehberlik etme
- Belirli doğrulama adımlarını sağlama
İstem oluşturmanın yanı sıra aşağıdaki önerileri de kullanabilirsiniz:
Sistem talimatları ayarlayın. Bu talimatlar, model istemden veya son kullanıcıdan başka talimatlar almadan önce eklediğiniz bir "giriş" gibidir. Bu parametreler, modelin davranışını özel ihtiyaçlarınıza ve kullanım alanlarınıza göre yönlendirmenize olanak tanır.
Modelin ne kadar düşünebileceğini yapılandırmak için düşünme bütçesi belirleyin. Düşük bir bütçe belirlerseniz model yanıtını "fazla düşünmez". Yüksek bir bütçe belirlerseniz model gerekirse daha fazla düşünebilir. Düşünme bütçesi belirlemek, toplam jeton çıkışı sınırının daha fazlasını gerçek yanıt için ayırır.
(Vertex AI Gemini API kullanılıyorsa) Düşünme özelliği etkin olan isteklerinizin gecikmesini izleyebilmek için Firebase konsolunda yapay zeka izlemeyi etkinleştirdiğinizden emin olun. Düşünme jetonlarının henüz izleme kontrol panellerinde gösterilmediğini unutmayın.
Düşünme bütçesini kontrol etme
Modelin yanıtını oluşturmak için ne kadar düşünebileceğini kontrol etmek istiyorsanız kullanmasına izin verilen düşünme bütçesi jetonlarının sayısını belirleyebilirsiniz.
Varsayılan düşünme bütçesinden daha fazla veya daha az jetona ihtiyacınız olabileceği durumlarda düşünme bütçesini manuel olarak ayarlayabilirsiniz. Görev karmaşıklığı ve önerilen bütçeler hakkında daha ayrıntılı bilgiyi bu bölümün ilerleyen kısımlarında bulabilirsiniz. Aşağıda genel bir rehberlik sunulmaktadır:
- Gecikme önemliyse veya daha az karmaşık görevler için düşük bir düşünme bütçesi belirleyin.
- Daha karmaşık görevler için yüksek bir düşünme bütçesi belirleyin
Düşünme bütçesini ayarlama
Bu sayfada sağlayıcıya özel içerikleri ve kodu görüntülemek için Gemini API sağlayıcınızı tıklayın. |
GenerationConfig
örneğini oluşturma sürecinde GenerationConfig
içinde düşünme bütçesini ayarlayın.GenerativeModel
Yapılandırma, örneğin kullanım ömrü boyunca korunur. Farklı istekler için farklı düşünme bütçeleri kullanmak istiyorsanız her bütçeyle yapılandırılmış GenerativeModel
örnekleri oluşturun.
Bu bölümün ilerleyen kısımlarında desteklenen düşünme bütçesi değerleri hakkında bilgi edinebilirsiniz.
Swift
GenerativeModel
örneği oluşturma sürecinde GenerationConfig
içinde düşünme bütçesini ayarlayın.
// ...
// 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
GenerativeModel
örneği oluşturma kapsamında GenerationConfig
içindeki parametrelerin değerlerini ayarlayın.
// ...
// 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
GenerativeModel
örneği oluşturma kapsamında GenerationConfig
içindeki parametrelerin değerlerini ayarlayın.
// ...
// 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
GenerativeModel
örneği oluşturma kapsamında GenerationConfig
içindeki parametrelerin değerlerini ayarlayın.
// ...
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 için düşünme bütçesi belirleme desteği, bir sonraki sürümde kullanıma sunulacak.
Unity
Unity için düşünme bütçesi belirleme desteği, bir sonraki sürümde kullanıma sunulacak.
Desteklenen düşünme bütçesi değerleri
Aşağıdaki tabloda, modelin thinkingBudget
yapılandırılarak her model için ayarlayabileceğiniz düşünme bütçesi değerleri listelenmektedir.
Model | Varsayılan değer | Düşünme bütçesi için kullanılabilir aralık |
Düşünmeyi devre dışı bırakacak değer |
Dinamik düşünmeyi etkinleştirme değeri |
|
---|---|---|---|---|---|
Minimum değer | Maksimum değer | ||||
Gemini 2.5 Pro | 8,192 |
128 |
32,768 |
kapatılamaz | -1 |
Gemini 2.5 Flash | 8,192 |
1 |
24,576 |
0 |
-1 |
Gemini 2.5 Flash‑Lite | 0 (düşünme özelliği varsayılan olarak devre dışıdır) |
512 |
24,576 |
0 (veya düşünme bütçesini hiç yapılandırmayın) |
-1 |
Düşünme sürecini devre dışı bırakma
Bazı daha kolay görevler için düşünme özelliği gerekli değildir ve geleneksel çıkarım yeterlidir. Gecikmeyi azaltmak öncelikli bir hedefse modelin yanıt oluşturmak için gerekenden daha fazla zaman harcamasını istemeyebilirsiniz.
Bu gibi durumlarda düşünme özelliğini devre dışı bırakabilirsiniz:
- Gemini 2.5 Pro: Düşünme devre dışı bırakılamaz.
- Gemini 2.5 Flash:
thinkingBudget
simgesini0
simgesine ayarlayın. - Gemini 2.5 Flash-Lite: Düşünme özelliği varsayılan olarak devre dışıdır.
Dinamik düşünmeyi etkinleştirme
thinkingBudget
değerini -1
olarak ayarlayarak modelin ne zaman ve ne kadar düşüneceğine (dinamik düşünme olarak adlandırılır) karar vermesine izin verebilirsiniz. Model, yukarıda listelenen maksimum jeton değerine kadar uygun olduğunu düşündüğü sayıda jeton kullanabilir.
Görevin karmaşıklığı
Kolay görevler: Düşünme özelliği devre dışı bırakılabilir
Gerçekleri alma veya sınıflandırma gibi karmaşık muhakeme gerektirmeyen basit istekler. Örnekler:- "DeepMind nerede kuruldu?"
- "Bu e-postada toplantı isteğinde mi bulunuluyor yoksa sadece bilgi mi veriliyor?"
Orta düzeydeki görevler: Varsayılan bütçe veya biraz ek düşünme bütçesi gerekir
Adım adım işlemeye veya daha derin bir anlayışa ihtiyaç duyan yaygın istekler. Örnekler:- "Fotosentez ile büyüme arasında bir benzetme yap."
- "Elektrikli arabalar ile hibrit arabaları karşılaştırın ve aralarındaki farkları belirtin."
Zor görevler: Maksimum düşünme bütçesi gerekebilir
Karmaşık matematik problemlerini çözme veya kodlama görevleri gibi gerçekten karmaşık zorluklar. Bu tür görevler, modelin tam akıl yürütme ve planlama yeteneklerini kullanmasını gerektirir. Bu görevler, yanıt vermeden önce genellikle birçok dahili adım içerir. Örnekler:- "AIME 2025'teki 1. problemi çöz: 17b'nin 97b'nin böleni olduğu tüm b > 9 tam sayı tabanlarının toplamını bulun."
- "Kullanıcı kimlik doğrulaması da dahil olmak üzere gerçek zamanlı borsa verilerini görselleştiren bir web uygulaması için Python kodu yaz. Mümkün olduğunca verimli hale getir."
Fiyatlandırma ve düşünce jetonlarını sayma
Düşünme jetonları, metin çıkışı jetonlarıyla aynı fiyatlandırmaya sahiptir.
Düşünme jetonlarının toplam sayısını, yanıttaki usageMetadata
özelliğinin thoughtsTokenCount
alanından alabilirsiniz:
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 için düşünme jetonlarını sayma desteği, bir sonraki sürümde kullanıma sunulacak.
Unity
Unity için düşünme jetonlarını sayma desteği, bir sonraki sürümde kullanıma sunulacak.
Jetonlar hakkında daha fazla bilgiyi Jetonları sayma kılavuzunda bulabilirsiniz.