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 giúp cải thiện độ chính xác của lệnh gọi hàm của mô hình và hoạt động hiệu quả cho các bài toán, giải quyết vấn đề và các nhiệm vụ suy luận phức tạp khác.
Khi chế độ tư duy được bật, đầu ra của mô hình được chia thành hai phần:
- Quá trình tư duy: Các bước lập kế hoạch hoặc suy luận 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 phiên bản 4 trở lên. Bạn có thể thử nghiệm chế độ suy nghĩ thông qua chương trình Bản dùng trước cho nhà phát triển trên bất kỳ thiết bị nào hỗ trợ AICore.
Bật chế độ tư duy
Để sử dụng chế độ suy nghĩ, bạn phải chọn sử dụng 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
}
Xem suy nghĩ
SDK Bộ công cụ học máy cung cấp nhiều cách để truy cập vào suy nghĩ trước khi mô hình đưa ra câu trả lời, tuỳ thuộc vào việc bạn đang sử dụng phương thức triển khai không truyền trực tuyến hay truyền trực tuyến.
Chế độ không phát trực tuyến
Trong các lệnh gọi không truyền trực tuyến tiêu chuẩn, quy trình suy luận được trả về dưới dạng 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ế độ truy cập trực tuyến
Để hỗ trợ 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 đoạn suy nghĩ truyền trực tuyến khi chúng được mô hình tạo ra.
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ế độ suy nghĩ:
- 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ị suy nghĩ hoặc chỉ báo "đang suy nghĩ" ở chế độ truyền trực tuyến có thể cải thiện đáng kể hiệu suất nhận thức 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 hiển thị lý do 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ó một phương thức 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 mẹo, hãy xem bài viết Chế độ suy nghĩ trong Gemma. Xin lưu ý rằng các cuộc trò chuyện nhiều lượt hiện chưa được hỗ trợ trong AICore.