Chế độ tư duy nhắc mô hình đưa ra quy trình suy luận trước khi tạo câu trả lời cuối cùng. Chế độ tư duy cải thiện độ chính xác của mô hình khi gọi hàm và hoạt động tốt đối với các bài toán, vấn đề cần giải quyết và các tác vụ suy luận phức tạp khác.
Khi bật chế độ tư duy, đầu ra của mô hình sẽ được chia thành 2 phần:
- Quy trình tư duy: Các bước suy luận hoặc lập kế hoạch nội bộ mà mô hình thực hiện.
- Câu trả lời: Câu trả lời cuối cùng được tạo cho người dùng.
Điều kiện tiên quyết
Chế độ tư duy hoạt động trên các thiết bị chạy Gemini Nano V4 trở lên. Bạn có thể kiểm thử chế độ tư duy thông qua chương trình Bản dùng trước cho nhà phát triển trên mọi thiết bị có bật AICore.
Bật chế độ tư duy
Để sử dụng chế độ tư duy, bạn phải chọn tham gia bằng cách đặt cờ enableThinking thành true trong hàm trình tạo generateContentRequest:
val request = generateContentRequest {
text("Solve this complex riddle: ...")
enableThinking = true // Enable thinking mode for Gemini Nano V4
}
Truy cập vào các ý tưởng
SDK Bộ công cụ học máy cung cấp nhiều cách để truy cập vào các ý tưởng trước câu trả lời của mô hình, tuỳ thuộc vào việc bạn đang sử dụng cách triển khai không phát trực tuyến hay phát trực tuyến.
Chế độ không phát trực tuyến
Trong các lệnh gọi không phát trực tuyến tiêu chuẩn, quy trình suy luận sẽ được trả về như một phần của phản hồi đầy đủ. Bạn có thể truy cập vào quy trình này bằng cách sử dụng thuộc tính thoughtProcess (chứa danh sách các đối tượng Candidate) trên đối tượng GenerateContentResponse.
try {
val response = generativeModel.generateContent(request)
// 1. Access the main response
val answer = response.candidates.firstOrNull()?.text
println("Final Answer: $answer")
// 2. Access the separated thought process
println("Thought Process:")
response.thoughtProcess.forEach { thoughtCandidate ->
print(thoughtCandidate.text)
}
} catch (e: GenAiException) {
// Handle SDK-specific exceptions
}
Chế độ phát trực tuyến
Để hỗ trợ tính năng phản hồi theo thời gian thực, giao diện StreamingCallback đã được cập nhật để bao gồm phương thức onNewThought. Điều này cho phép ứng dụng của bạn xử lý các khối ý tưởng phát trực tuyến khi mô hình tạo các khối này.
val callback = object : StreamingCallback {
override fun onNewText(additionalText: String) {
// Called for regular response chunks
print(additionalText)
}
override fun onNewThought(additionalThought: String) {
// Called for thought chunks before final text arrives
// Update a separate reasoning UI or status indicator
print("[Thinking: $additionalThought]")
}
}
try {
generativeModel.generateContent(request, callback)
} catch (e: GenAiException) {
// Handle exception
}
Các phương pháp hay nhất
Sau đây là một số phương pháp hay nhất khi sử dụng chế độ tư duy:
- Chỉ báo giao diện người dùng: Vì các bước suy luận có thể mất thời gian để tạo, nên việc hiển thị các ý tưởng hoặc chỉ báo "đang tư duy" ở chế độ phát trực tuyến có thể cải thiện đáng kể hiệu suất cảm nhận bằng cách cho người dùng thấy mô hình đang hoạt động.
- Triển khai có chọn lọc: Nếu không muốn tiết lộ quy trình suy luận thô cho người dùng cuối, bạn có thể bỏ qua trường
thoughtProcesshoặc bỏ qua việc triển khaionNewThought. Phương thứconNewThoughtcó cách triển khai trống mặc định để giúp đảm bảo khả năng tương thích ngược.
Để biết thêm các mẹo, hãy xem bài viết Chế độ tư duy trong Gemma. Xin lưu ý rằng AICore hiện không hỗ trợ các cuộc trò chuyện nhiều lượt.