Tăng cường độ chính xác và tính thời sự cho phản hồi của mô hình với Grounding with Google Search
Mục lục:
- Giới thiệu
- Cấu hình Grounding with Google Search
- 2.1 Cấu hình bằng chuỗi
- 2.2 Cấu hình bằng từ điển
- Lợi ích của Grounding with Google Search
- Google Search Suggestions
- Tìm nạp động (Dynamic retrieval)
- 5.1 Cách thức hoạt động của tìm nạp động
- Phản hồi được Grounding
1. Giới thiệu
Grounding with Google Search là một tính năng mới trong Gemini API và AI Studio, cho phép tăng cường độ chính xác và tính thời sự của phản hồi từ mô hình. Ngoài việc cung cấp phản hồi chính xác hơn, khi Grounding with Google Search được bật, Gemini API sẽ trả về các nguồn grounding (liên kết hỗ trợ trực tuyến) và các Google Search Suggestions cùng với nội dung phản hồi. Search Suggestions dẫn người dùng đến các kết quả tìm kiếm tương ứng với phản hồi được Grounding.
2. Cấu hình Grounding with Google Search
Có hai cách để cấu hình mô hình sử dụng Grounding with Google Search: bằng chuỗi và bằng từ điển.
2.1 Cấu hình bằng chuỗi
model = genai.GenerativeModel('models/gemini-1.5-pro-002')
response = model.generate_content(contents="Who won Wimbledon this year?",
tools='google_search_retrieval')
print(response)
2.2 Cấu hình bằng từ điển
model = genai.GenerativeModel('models/gemini-1.5-pro-002')
response = model.generate_content(
contents="Who won Wimbledon this year?",
tools={"google_search_retrieval": {
"dynamic_retrieval_config": {
"mode": "unspecified",
"dynamic_threshold": 0.06}}})
print(response)
Trong cấu hình bằng từ điển, bạn không cần phải cung cấp các cặp key-value cho "mode" hoặc "dynamic_threshold". Bạn có thể bỏ qua chúng và để mô hình sử dụng các giá trị mặc định, như ví dụ sau:
model = genai.GenerativeModel('models/gemini-1.5-pro-002')
response = model.generate_content(contents="Who won Wimbledon this year?",
tools={"google_search_retrieval": {}})
print(response)
Các cài đặt "mode" và "dynamic_threshold" cho phép bạn kiểm soát hành vi của tìm nạp động, cung cấp thêm quyền kiểm soát khi nào sử dụng Grounding with Google Search.
3. Lợi ích của Grounding with Google Search
Trong AI tạo sinh, Grounding là quá trình kết nối mô hình với các nguồn thông tin có thể kiểm chứng được. Các nguồn này có thể cung cấp thông tin từ nơi làm việc thực tế hoặc các ngữ cảnh cụ thể khác. Grounding giúp cải thiện độ chính xác, độ tin cậy và tính hữu ích của đầu ra AI.
Grounding đặc biệt quan trọng đối với các lời nhắc yêu cầu thông tin cập nhật từ web. Sử dụng Grounding, mô hình có thể truy cập thông tin vượt ra ngoài ngày cắt dữ liệu của nó, lấy nguồn cho thông tin và trả lời các câu hỏi mà nó không thể trả lời chính xác bằng cách khác.
Sử dụng Google AI Studio hoặc Gemini API, bạn có thể Grounding đầu ra mô hình với Google Search. Grounding with Google Search mang lại các lợi ích sau:
- Cho phép phản hồi của mô hình được gắn với nội dung cụ thể.
- Giảm hiện tượng ảo giác của mô hình, đó là những trường hợp khi mô hình tạo ra nội dung không phải là sự thật.
- Gắn phản hồi của mô hình với các nguồn mà người dùng có thể nhấp chuột và mở.
- Nâng cao độ tin cậy và khả năng áp dụng của nội dung được tạo ra.
Khi bạn sử dụng Grounding with Google Search, bạn đang kết nối hiệu quả mô hình với các kết quả Tìm kiếm đáng tin cậy từ Internet. Do phản hồi của mô hình không được Grounding dựa trên các mẫu đã học, bạn có thể không nhận được phản hồi chính xác cho các lời nhắc về các sự kiện hiện tại (ví dụ: yêu cầu dự báo thời tiết hoặc điểm số cuối cùng của một trận bóng đá gần đây). Do Internet cung cấp quyền truy cập vào thông tin mới, một lời nhắc được Grounding có thể tạo ra phản hồi cập nhật hơn, với các nguồn được trích dẫn.
Dưới đây là một ví dụ so sánh phản hồi không được Grounding và phản hồi được Grounding được tạo ra bằng API. (Các phản hồi được tạo ra vào tháng 10 năm 2024.)
Ungrounded Gemini | Grounding with Google Search |
---|---|
Lời nhắc: Ai đã thắng Super Bowl năm nay? Phản hồi: Kansas City Chiefs đã thắng Super Bowl LVII năm nay (2023). |
Lời nhắc: Ai đã thắng Super Bowl năm nay? Phản hồi: Kansas City Chiefs đã thắng Super Bowl LVIII năm nay, đánh bại San Francisco 49ers trong hiệp phụ với tỷ số 25-22. |
Trong phản hồi không được Grounding, mô hình đề cập đến chiến thắng Super Bowl 2023 của Kansas City Chiefs. Trong phản hồi được Grounding, mô hình chính xác tham chiếu chiến thắng gần đây hơn của họ vào năm 2024.
Hình ảnh sau đây cho thấy phản hồi được Grounding trông như thế nào trong AI Studio.
4. Google Search Suggestions
Để sử dụng Grounding with Google Search, bạn phải hiển thị Google Search Suggestions, đó là các truy vấn được đề xuất được bao gồm trong siêu dữ liệu của phản hồi được Grounding. Để tìm hiểu thêm về các yêu cầu hiển thị, hãy xem Use Google Search Suggestions.
5. Tìm nạp động (Dynamic retrieval)
Một số truy vấn có thể hưởng lợi nhiều hơn từ Grounding with Google Search so với những truy vấn khác. Tính năng tìm nạp động cung cấp thêm quyền kiểm soát khi nào sử dụng Grounding with Google Search.
Nếu chế độ tìm nạp động không được chỉ định, Grounding with Google Search luôn được kích hoạt. Nếu chế độ được đặt thành động, mô hình sẽ quyết định khi nào sử dụng Grounding dựa trên ngưỡng mà bạn có thể cấu hình. Ngưỡng là một giá trị dấu phẩy động trong phạm vi [0,1] và mặc định là 0,3. Nếu giá trị ngưỡng là 0, phản hồi luôn được Grounding với Google Search; nếu nó là 1, nó sẽ không bao giờ được Grounding.
5.1 Cách thức hoạt động của tìm nạp động
Bạn có thể sử dụng tìm nạp động trong yêu cầu của mình để chọn khi nào bật Grounding with Google Search. Điều này hữu ích khi lời nhắc không yêu cầu một câu trả lời được Grounding trong Google Search và mô hình có thể cung cấp câu trả lời dựa trên kiến thức riêng của nó mà không cần Grounding. Điều này giúp bạn quản lý độ trễ, chất lượng và chi phí hiệu quả hơn.
Trước khi bạn gọi cấu hình tìm nạp động trong yêu cầu của mình, hãy hiểu các thuật ngữ sau:
- Điểm dự đoán: Khi bạn yêu cầu một câu trả lời được Grounding, Gemini sẽ gán một điểm dự đoán cho lời nhắc. Điểm dự đoán là một giá trị dấu phẩy động trong phạm vi [0,1]. Giá trị của nó phụ thuộc vào việc lời nhắc có thể hưởng lợi từ việc Grounding câu trả lời với thông tin cập nhật nhất từ Google Search hay không. Do đó, nếu một lời nhắc yêu cầu một câu trả lời được Grounding trong những sự thật gần đây nhất trên web, nó sẽ có điểm dự đoán cao hơn. Một lời nhắc mà mô hình tạo ra câu trả lời là đủ sẽ có điểm dự đoán thấp hơn.
Dưới đây là các ví dụ về một số lời nhắc và điểm dự đoán của chúng.
[Bảng ví dụ về điểm dự đoán của lời nhắc]
Ngưỡng: Trong yêu cầu API của bạn, bạn có thể chỉ định cấu hình tìm nạp động với một ngưỡng. Ngưỡng là một giá trị dấu phẩy động trong phạm vi [0,1] và mặc định là 0,7. Nếu giá trị ngưỡng là zero, phản hồi luôn được Grounding với Google Search. Đối với tất cả các giá trị ngưỡng khác, điều sau đây áp dụng:
- Nếu điểm dự đoán lớn hơn hoặc bằng ngưỡng, câu trả lời được Grounding với Google Search. Ngưỡng thấp hơn ngụ ý rằng nhiều lời nhắc hơn có phản hồi được tạo ra bằng cách sử dụng Grounding with Google Search.
- Nếu điểm dự đoán nhỏ hơn ngưỡng, mô hình có thể vẫn tạo ra câu trả lời, nhưng nó không được Grounding với Google Search.
Để tìm hiểu cách đặt ngưỡng tìm nạp động bằng cách sử dụng SDK hoặc API REST, hãy xem ví dụ mã phù hợp.
Nếu bạn đang sử dụng AI Studio, bạn có thể đặt ngưỡng tìm nạp động bằng cách nhấp vào Edit grounding.
[Hình ảnh Select grounding threshold in AI Studio]
Để tìm ra một ngưỡng phù hợp với nhu cầu kinh doanh của bạn, bạn có thể tạo ra một tập hợp các truy vấn đại diện mà bạn mong đợi sẽ gặp phải. Sau đó, bạn có thể sắp xếp các truy vấn theo điểm dự đoán trong phản hồi và chọn một ngưỡng phù hợp với trường hợp sử dụng của bạn.
6. Phản hồi được Grounding
Nếu lời nhắc của bạn Grounding thành công với Google Search, phản hồi sẽ bao gồm groundingMetadata
. Một phản hồi được Grounding có thể trông giống như thế này (một phần của phản hồi đã bị bỏ qua để ngắn gọn):
{
"candidates": [
{
"content": {
"parts": [
{
"text": "Carlos Alcaraz won the Gentlemen's Singles title at the 2024 Wimbledon Championships. He defeated Novak Djokovic in the final, winning his second consecutive Wimbledon title and fourth Grand Slam title overall. \n"
}
],
"role": "model"
},
"groundingMetadata": {
"searchEntryPoint": {
"renderedContent": "<style>\n.container {\n align-items: center;\n border-radius: 8px;\n display: flex;\n font-family: Google Sans, Roboto, sans-serif;\n font-size: 14px;\n line-height: 20px;\n padding: 8px 12px;\n}\n.chip {\n display: inline-block;\n border: solid 1px;\n border-radius: 16px;\n min-width: 14px;\n padding: 5px 16px;\n text-align: center;\n user-select: none;\n margin: 0 8px;\n -webkit-tap-highlight-color: transparent;\n}\n.carousel {\n overflow: auto;\n scrollbar-width: none;\n white-space: nowrap;\n margin-right: -12px;\n}\n.headline {\n display: flex;\n margin-right: 4px;\n}\n.gradient-container {\n position: relative;\n}\n.gradient {\n position: absolute;\n transform: translate(3px, -9px);\n height: 36px;\n width: 9px;\n}\n@media (prefers-color-scheme: light) {\n .container {\n background-color: #fafafa;\n box-shadow: 0 0 0 1px #0000000f;\n }\n .headline-label {\n color: #1f1f1f;\n }\n .chip {\n background-color: #ffffff;\n border-color: #d2d2d2;\n color: #5e5e5e;\n text-decoration: none;\n }\n .chip:hover {\n background-color: #f2f2f2;\n }\n .chip:focus {\n background-color: #f2f2f2;\n }\n .chip:active {\n background-color: #d8d8d8;\n border-color: #b6b6b6;\n }\n .logo-dark {\n display: none;\n }\n .gradient {\n background: linear-gradient(90deg, #fafafa 15%, #fafafa00 100%);\n }\n}\n@media (prefers-color-scheme: dark) {\n .container {\n background-color: #1f1f1f;\n box-shadow: 0 0 0 1px #ffffff26;\n }\n .headline-label {\n color: #fff;\n }\n .chip {\n background-color: #2c2c2c;\n border-color: #3c4043;\n color: #fff;\n text-decoration: none;\n }\n .chip:hover {\n background-color: #353536;\n }\n .chip:focus {\n background-color: #353536;\n }\n .chip:active {\n background-color: #464849;\n border-color: #53575b;\n }\n .logo-light {\n display: none;\n }\n .gradient {\n background: linear-gradient(90deg, #1f1f1f 15%, #1f1f1f00 100%);\n }\n}\n</style>\n<div class=\"container\">\n <div class=\"headline\">\n <svg class=\"logo-light\" width=\"18\" height=\"18\" viewBox=\"9 9 35 35\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M42.8622 27.0064C42.8622 25.7839 42.7525 24.6084 42.5487 23.4799H26.3109V30.1568H35.5897C35.1821 32.3041 33.9596 34.1222 32.1258 35.3448V39.6864H37.7213C40.9814 36.677 42.8622 32.2571 42.8622 27.0064V27.0064Z\" fill=\"#4285F4\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M26.3109 43.8555C30.9659 43.8555 34.8687 42.3195 37.7213 39.6863L32.1258 35.3447C30.5898 36.3792 28.6306 37.0061 26.3109 37.0061C21.8282 37.0061 18.0195 33.9811 16.6559 29.906H10.9194V34.3573C13.7563 39.9841 19.5712 43.8555 26.3109 43.8555V43.8555Z\" fill=\"#34A853\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.6559 29.8904C16.3111 28.8559 16.1074 27.7588 16.1074 26.6146C16.1074 25.4704 16.3111 24.3733 16.6559 23.3388V18.8875H10.9194C9.74388 21.2072 9.06992 23.8247 9.06992 26.6146C9.06992 29.4045 9.74388 32.022 10.9194 34.3417L15.3864 30.8621L16.6559 29.8904V29.8904Z\" fill=\"#FBBC05\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M26.3109 16.2386C28.85 16.2386 31.107 17.1164 32.9095 18.8091L37.8466 13.8719C34.853 11.082 30.9659 9.3736 26.3109 9.3736C19.5712 9.3736 13.7563 13.245 10.9194 18.8875L16.6559 23.3388C18.0195 19.2636 21.8282 16.2386 26.3109 16.2386V16.2386Z\" fill=\"#EA4335\"
</svg>
<svg class=\"logo-dark\" width=\"18\" height=\"18\" viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\">
<circle cx=\"24\" cy=\"23\" fill=\"#FFF\" r=\"22\"/><path d=\"M33.76 34.26c2.75-2.56 4.49-6.37 4.49-11.26 0-.89-.08-1.84-.29-3H24.01v5.99h8.03c-.4 2.02-1.5 3.56-3.07 4.56v.75l3.91 2.97h.88z\" fill=\"#4285F4\"/><path d=\"M15.58 25.77A8.845 8.845 0 0 0 24 31.86c1.92 0 3.62-.46 4.97-1.31l4.79 3.71C31.14 36.7 27.65 38 24 38c-5.93 0-11.01-3.4-13.45-8.36l.17-1.01 4.06-2.85h.8z\" fill=\"#34A853\"/><path d=\"M15.59 20.21a8.864 8.864 0 0 0 0 5.58l-5.03 3.86c-.98-2-1.53-4.25-1.53-6.64 0-2.39.55-4.64 1.53-6.64l1-.22 3.81 2.98.22 1.08z\" fill=\"#FBBC05\"/><path d=\"M24 14.14c2.11 0 4.02.75 5.52 1.98l4.36-4.36C31.22 9.43 27.81 8 24 8c-5.93 0-11.01 3.4-13.45 8.36l5.03 3.85A8.86 8.86 0 0 1 24 14.14z\" fill=\"#EA4335\"
</svg>
<div class=\"gradient-container\"><div class=\"gradient\"></div></div>
</div>
<div class=\"carousel\">
<a class=\"chip\" href=\"https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4x8Epe-gzpwRBvp7o3RZh2m1ygq1EHktn0OWCtvTXjad4bb1zSuqfJd6OEuZZ9_SXZ_P2SvCpJM7NaFfQfiZs6064MeqXego0vSbV9LlAZoxTdbxWK1hFeqTG6kA13YJf7Fbu1SqBYM0cFM4zo0G_sD9NKYWcOCQMvDLDEJFhjrC9DM_QobBIAMq-gWN95G5tvt6_z6EuPN8QY=\">who won wimbledon 2024</a>
</div>
</div>
"groundingChunks": [
{
"web": {
"uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4whET1ta3sDETZvcicd8FeNe4z0VuduVsxrT677KQRp2rYghXI0VpfYbIMVI3THcTuMwggRCbFXS_wVvW0UmGzMe9h2fyrkvsnQPJyikJasNIbjJLPX0StM4Bd694-ZVle56MmRA4YiUvwSqad1w6O2opmWnw==",
"title": "wikipedia.org"
}
},
{
"web": {
"uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4wR1M-9-yMPUr_KdHlnoAmQ8ZX90DtQ_vDYTjtP2oR5RH4tRP04uqKPLmesvo64BBkPeYLC2EpVDxv9ngO3S1fs2xh-e78fY4m0GAtgNlahUkm_tBm_sih5kFPc7ill9u2uwesNGUkwrQlmP2mfWNU5lMMr23HGktr6t0sV0QYlzQq7odVoBxYWlQ_sqWFH",
"title": "wikipedia.org"
}
},
{
"web": {
"uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4wsDmROzbP-tmt8GdwCW_pqISTZ4IRbBuoaMyaHfcQg8WW-yKRQQvMDTPAuLxJh-8_U8_iw_6JKFbQ8M9oVYtaFdWFK4gOtL4RrC9Jyqc5BNpuxp6uLEKgL5-9TggtNvO97PyCfziDFXPsxylwI1HcfQdrz3Jy7ZdOL4XM-S5rC0lF2S3VWW0IEAEtS7WX861meBYVjIuuF_mIr3spYPqWLhbAY2Spj-4_ba8DjRvmevIFUhRuESTKvBfmpxNSM",
"title": "cbssports.com"
}
},
{
"web": {
"uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4yzjLkorHiUKjhOPkWaZ9b4cO-cLG-02vlEl6xTBjMUjyhK04qSIclAa7heR41JQ6AAVXmNdS3WDrLOV4Wli-iezyzW8QPQ4vgnmO_egdsuxhcGk3-Fp8-yfqNLvgXFwY5mPo6QRhvplOFv0_x9mAcka18QuAXtj0SPvJfZhUEgYLCtCrucDS5XFc5HmRBcG1tqFdKSE1ihnp8KLdaWMhrUQI21hHS9",
"title": "jagranjosh.com"
}
},
{
"web": {
"uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4y9L4oeNGWCatFz63b9PpP3ys-Wi_zwnkUT5ji9lY7gPUJQcsmmE87q88GSdZqzcx5nZG9usot5FYk2yK-FAGvCRE6JsUQJB_W11_kJU2HVV1BTPiZ4SAgm8XDFIxpCZXnXmEx5HUfRqQm_zav7CvS2qjA2x3__qLME6Jy7R5oza1C5_aqjQu422le9CaigThS5bvJoMo-ZGcXdBUCj2CqoXNVjMA==",
"title": "apnews.com"
}
}
],
"groundingSupports": [
{
"segment": {
"endIndex": 85,
"text": "Carlos Alcaraz won the Gentlemen's Singles title at the 2024 Wimbledon Championships."
},
"groundingChunkIndices": [
0,
1,
2,
3
],
"confidenceScores": [
0.97380733,
0.97380733,
0.97380733,
0.97380733
]
},
{
"segment": {
"startIndex": 86,
"endIndex": 210,
"text": "He defeated Novak Djokovic in the final, winning his second consecutive Wimbledon title and fourth Grand Slam title overall."
},
"groundingChunkIndices": [
1,
0,
4
],
"confidenceScores": [
0.96145374,
0.96145374,
0.96145374
]
}
],
"webSearchQueries": [
"who won wimbledon 2024"
]
}
}
],
...
}
Nếu phản hồi không bao gồm groundingMetadata
, điều này có nghĩa là phản hồi đã không được Grounding thành công. Có một số lý do tại sao điều này có thể xảy ra, bao gồm độ phù hợp nguồn thấp hoặc thông tin không đầy đủ trong phản hồi của mô hình.
Khi một kết quả được Grounding được tạo ra, siêu dữ liệu sẽ chứa các URI chuyển hướng đến các nhà xuất bản của nội dung đã được sử dụng để tạo ra kết quả được Grounding. Các URI này chứa miền phụ vertexaisearch
, như trong ví dụ được rút gọn này: https://vertexaisearch.cloud.google.com/grounding-api-redirect/...
. Siêu dữ liệu cũng chứa các miền của nhà xuất bản. Các URI được cung cấp vẫn có thể truy cập được trong vòng 30 ngày sau khi kết quả được Grounding được tạo ra.
[Lưu ý về việc truy cập các URI được cung cấp]
Trường renderedContent
trong searchEntryPoint
là mã được cung cấp để triển khai Google Search Suggestions. Xem Use Google Search Suggestions để tìm hiểu thêm.
0 comments Blogger 0 Facebook
Đăng nhận xét