Vertex AI 和 Workbench 語言模組實戰,打造有人性的客服小幫手

2024/01/04

隨著科技發展,企業與客戶的互動日益頻繁,提供良好的客戶服務變得至關重要。傳統的客服方式往往需要人工處理,不僅成本高,也難以快速應對大量的客戶需求;近年來,隨著人工智慧(AI)技術的發展,機器人客服逐漸成為一種新的趨勢。


機器人客服可以 24 小時不間斷地提供服務,並根據客戶的需求進行學習和調整,提高服務的質量和效率。在本專欄中,我們將介紹如何使用 Google Cloud Platform(GCP)的 Vertex 語言模型與 Workbench 建立一個小客服。


甚麼是 Vertex 呢?

Vertex 語言模型是一種大型語言模型,可以生成文字、翻譯語言、編寫不同類型的創意內容,並以信息豐富的方式回答您的問題。Workbench 是一個可視化的 notebook 環境,可以讓您輕鬆地使用 GCP 的各種服務和工具。


在本專欄中,我們將透過簡單的通訊錄與GCP AI模型做互動,結合 GCP Vertex AI語言模型以及Workbench建立notebook完成佈署實作小客服,而在文末也會說明關於GCP所使用的語言模型 PaLM2 以及在模型中所可以調整的參數值分別作用為何。


希望本專欄能幫助您快速上手GCP AI 服務,為您的服務開創無限可能!


本次實作步驟如下:

【一】使用Vertex AI左側點選Workbench並建立新的執行個體

【二】使用Vertex AI語言模組提取python程式

【三】將Vertex AI語言程式碼鍵入notebook中並微調

【四】測試成果

【五】實作完成後的聊聊天


【一】使用Vertex AI左側點選Workbench並建立新的執行個體

- 登入GCP->搜尋Vertex AI-> 點選Vertex AI

點選Vertex AI


- GCP->Vertex->Workbench->建立notebook

建立notebook


- 開啟 JUPYTERLAB

開啟 JUPYTERLAB


- 開啟 Terminal

開啟 Terminal


Terminal 預設為白底黑字,可點選設定改成熟悉的黑底白字。

Settings -> Terminal Theme -> Dark

Dark

Dark Terminal



【二】於Vertex AI語言模組提取 python 程式

- Vertex AI -> 語言 -> 文字即時通訊

文字即時通訊


- 點選進入情境 -> 點選右上方的查看程式碼

查看程式碼


- 程式碼如下,複製以下程式碼準備接貼進我們剛剛所創建的 notebook 中


程式碼


【三】將Vertex AI語言程式碼鍵入notebook中並微調

- vi lab.py #新增一個名為 lab 的 python 檔案

vi lab.py


- 將程式碼貼入 lab.py 檔案中


程式碼貼入lab.py


- 修改程式提示以及回應變數

原程式碼:

原程式碼

調整後:

調整後1

調整後2


【四】測試成果

- 使用 python3 執行檔案測試問與答

測試成果

【五】實作完成後的聊聊天

透過以上範例,我們發現件有趣的事情:它所回覆的蔡依林資訊並非我們所給予的資料,其實是Google AI的PaLM2 大型語言模型,PaLM 2 模型提供多種尺寸應用於不同使用情境等。

從官方給予的說明為,由小到大分別是 Gecko -> Otter -> Bison -> Unicorn

由小到大分別

而實作面您會在 Vertex AI 語言模型中,可以選取相關模型名稱判斷攜帶級距。

前面的實作中我們這次所使用的模型為 code-bison@001

所使用的模型


選取完模型後,您會發現在相同位置處,有多個參數可調整:

參數可調整


Temperature:是控制生成的文本的創意程度的一個參數。值越高,生成的文本就越有創意。因此若您希望您的 Vertex AI 回覆得更有創意,可以將溫度值調高。


但是,您需要注意,溫度值越高,生成的文本就越有可能出錯。因此,您需要根據需要調整最適切的溫度值。


以下是一些使用溫度值來控制生成文本創意程度的示例:

溫度值為 0:生成的文本將非常保守,並且不會有任何創意。

溫度值為 0.5:生成的文本將有一定的創意,但仍然很有可能是正確的。

溫度值為 0.8:生成的文本將非常有創意,但也有可能出錯。



Token limit:控制生成文本長度的一個參數。值越高,生成的文字就越長。

具體來說,token 是指文本中的一個字母、數字或符號。例如,單詞 "hello" 由 5 個 token 組成:"h"、"e"、"l"、"l" 和 "o"。

因此,token limit 值表示生成文本的最大 token 數量。例如,token limit 值為 1024 表示生成的文本最多可以包含 1024 個 token。當 token limit 值達到時,Vertex AI 將停止生成。



Top K 是指生成文字時要考慮的候選詞彙數量。例如,Top K 值為 40 表示生成文字時將考慮 40 個候選詞彙。Vertex AI 將從候選詞彙中選擇概率最高的字詞作為下一個字詞。當 Top K 值達到時,Vertex AI 將停止生成文字。


Top P 是指生成文字時要考慮的候選詞彙機率的下限。例如,Top P 值為 0.8 表示生成文字時將只考慮機率至少為 0.8 的候選詞彙。Vertex AI 將從候選詞彙中選擇機率最高的字詞作為下一個字詞,只要該字詞的機率至少為 0.8。當 Top P 值達到時,Vertex AI 將停止生成文字。


值得注意的是,Top K 和 Top P 都是控制生成文字多樣性的參數,但它們有不同的方法來實現這一點。具體差異如下:

Top K 的值越高,生成的文字就越多樣化,但也越有可能出錯;

Top P 的值越高,生成的文字就越準確,但也越有可能不夠有創意。


綜上所述,您可以透過實作來找到最適合您需求的參數值,Google Cloud 提供多種基礎語言模型供大家使用,大家一起客製化專屬於您的 AI 幫手!


參考連結: https://cloud.google.com/vertex-ai/docs/generative-ai/learn/models?_ga=2.174367202.-1504715318.1696217381&hl=zh-cn




其他訊息