利用 IBM Watsonx.ai 與 Python SDK :應用 LLM 在客戶滿意度分析

閱讀時間約 13 分鐘

前言

在上一篇文章中,分享了第一次使用 IBM Watsonx 的經歷,以及我對 Prompt lab 功能的初步探索。繼續這個話題,本文將探討 Watsonx 平台對 Python SDK 的支持,以及實作幾個 LLM 的應用,這一特性為開發者提供了極大的便利,使得在此平台上進行開發和應用大型語言模型(LLM)變得非常簡便。更值得一提的是,這個平台甚至支持 hugging face 上的模型,為開發者提供了更廣闊的創新空間和可能性,也對於介接 LLM 模型更加便利。

raw-image

IBM Watsonx.ai的基礎模型概覽

在IBM Watsonx.ai平台上,搭載一系列來自IBM和其他開源提供商(hugging face)的基礎模型。這些包括多種功能強大的模型,如flan-t5-xl-3b、flan-t5-xxl-11b、flan-ul2-20b、gpt-neox-20b、granite-13b-chat-v2等。這些模型涵蓋了從聊天生成到程式碼生成等多種用途,可在Prompt Lab中或透過Python庫進行編程調用。

IBM提供的基礎模型,如granite-13b系列,專注於對話應用和指令型任務,並且經過精細調整,以適應企業相關的數據集。這些模型的 Maximum Token Limit 達到8192,並被分類為不同的計費類別。

此外,通過Hugging Face提供的第三方模型,如由Google提供的flan-t5系列和Meta的llama-2-13b-chat等,涵蓋了從自然語言處理到長文本推理的各種任務。這些模型支持多種自然語言,並且在訓練過程中結合了鏈式思維數據和其他多步驟推理任務。

每個模型的詳細資料,包括使用案例、code 架構、支持的語言,以及訓練數據集的詳情,都已在各自的模型卡上公開。

詳細內容可以參閱:watsonx.ai 支援的基礎模型 - IBM 文件


使用 IBM Watsonx 基礎模型從文字分析租車用戶滿意度

利用 IBM Watsonx 平台和 ibm/granite-13b-instruct-v1 等基礎模型來分析租車使用者的滿意度,我們使用的主要數據來源是名為 car_rental_training_data.csv 的租車數據集,在這個數據集中,分析「顧客服務」的評論以及相應的「滿意度評分」。實作為通過設計合適的提示(prompt)來引導模型,當輸入用戶的評論後,模型會根據內容給出「是」或「否」的滿意度評價


數據集的導入

import wget
import pandas as pd

filename = 'car_rental_training_data.csv'
url = 'https://raw.githubusercontent.com/IBM/watson-machine-learning-samples/master/cloud/data/cars-4-you/car_rental_training_data.csv'

if not os.path.isfile(filename):
wget.download(url, out=filename)

df = pd.read_csv("car_rental_training_data.csv", sep=';')
data = df[['Customer_Service', 'Satisfaction']]
raw-image

選擇基礎模型

model_id = ModelTypes.GRANITE_13B_INSTRUCT

我們選用 GRANITE_13B_INSTRUCT

定義模型參數

from ibm_watson_machine_learning.metanames import GenTextParamsMetaNames as GenParams
from ibm_watson_machine_learning.foundation_models.utils.enums import DecodingMethods

parameters = {
GenParams.MIN_NEW_TOKENS: 0,
GenParams.MAX_NEW_TOKENS: 1,
GenParams.DECODING_METHOD: DecodingMethods.GREEDY,
GenParams.REPETITION_PENALTY: 1
}
  • GenParams.MIN_NEW_TOKENS: 0
    • 這個參數設定了模型在生成回應時最少新增的 token 數量。在這個案例中,它被設定為0,意味著沒有強制模型最少生成一定數量的新 token。
  • GenParams.MAX_NEW_TOKENS: 1
    • 這個參數設定了模型在生成回應時最多新增的 token數量。
  • GenParams.DECODING_METHOD: DecodingMethods.GREEDY
    • 這個參數指定了模型在生成文本時使用的解碼方法。DecodingMethods.GREEDY 是一種貪婪解碼方法,它在每一步都選擇最有可能的下一個 token。這種方法傾向於快速決策,但可能不總是生成最自然或最有創造性的文本。
    • 補充說明 Greedy Decoding : 在每一步生成文本時,Greedy 總是選擇具有最高概率的下一個 token(例如單詞或字符)。換句話說,它每次都選擇當前最可能的選項,而不考慮長期的最佳結果。特點:這種方法相對簡單快速,但可能不總是導致最佳或最自然的文本輸出,因為它不考慮整體句子或段落的上下文連貫性
    • 其他的 Decoding:
      • Beam Search :
        • 定義:這種方法在每一步考慮多個最可能的選項( Beam 的大小是一個參數),而不是只考慮單一最可能的選項。這允許模型在生成文本時考慮多種可能的路徑。特點:束搜索能夠產生更自然和連貫的文本,但比貪婪解碼更耗時和計算量更大。
      • 隨機抽樣(Random Sampling)
        • 定義:這種方法從可能的下一個令牌的概率分布中隨機選擇,而不是總是選擇最可能的一個。特點:隨機抽樣能夠產生更多樣化和創新的文本,但有時可能會產生不那麼連貫或不相關的結果。
      • Top-K Sampling
        • 定義:這種方法首先選擇一個「K」值,然後只從最可能的K個令牌中隨機選擇下一個令牌。特點:這種方法結合了隨機抽樣和貪婪解碼的特點,提供了一種平衡的選擇方式。
      • Top-p (或稱為核心抽樣,Nucleus Sampling)
        • 定義:在這種方法中,系統選擇一個概率閾值「p」,然後隨機選擇來自累計概率最高(並且總和小於或等於p)的一組令牌。特點:Top-p 抽樣能夠生成更多樣化且高質量的文本,減少無關或重複的內容。
  • GenParams.REPETITION_PENALTY: 1
    • 這個參數用於減少文本生成中的重複內容。當設定為1時,表示不對重複內容施加任何額外的處罰。如果這個值被設定得更高(例如1.2或2),模型在生成重複內容時會受到更多的限制,從而減少重複語句的出現。

初始化模型

from ibm_watson_machine_learning.foundation_models import Model

model = Model(
model_id=model_id,
params=parameters,
credentials=credentials,
project_id=project_id)

查看模型資訊

model.get_details()
raw-image

準備 prompt

定義好輸入顧客經驗,回傳顧客是否滿意

instruction = """Determine if the customer was satisfied with the experience based on the comment. Return simple yes or no.
Comment:The car was broken. They couldn't find a replacement. I've waster over 2 hours.
Satisfied:no""

LLM 滿意度分析 Inference

prompt1 = "\n".join([instruction, "Comment:" + comments[2], "Satisfied:"])
print(prompt1)

Determine if the customer was satisfied with the experience based on the comment. Return simple yes or no.
Comment:The car was broken. They couldn't find a replacement. I've waster over 2 hours.
Satisfied:no
Comment:long lines waiting for the rental pick.
Satisfied:

輸出分析結果:

print(model.generate_text(prompt=prompt1))

no

中文的應用案例

model_id = ModelTypes.LLAMA_2_70B_CHAT
model = Model(
model_id=model_id,
params=parameters,
credentials=credentials,
project_id=project_id)

模型可以換成中文的 LLAMA_2


instruction = """基於給予的評論判斷使用者對這次體驗是否滿意。僅回答是或否。
輸入: 這輛車壞了。他們不能找到替代方案。我浪費了兩個小時。
輸出:
輸入: 客戶服務非常有幫助。他們知道我正在探望我 91 歲的母親,並免費升級了一輛對她來說更舒適的汽車。
輸出:"""


執行輸出結果

prompt1 = "\n".join([instruction, "輸入: " + comments[2], "輸出: "])
print(prompt1)

基于给出的评论判断用户对这次体验是否满意。仅回答是或否。
输入: 这辆车坏了。他们不能找到替代方案。我浪费了两个小时。
输出: 否
输入: 客户服务非常有帮助。他们知道我正在探望我 91 岁的母亲,并免费升级了一辆对她来说更舒适的汽车。
输出: 是
输入: 我主要担心的是互联网上的报价不是我开具发票的价格。我不得不打电话给提供商并解决问题,但这需要时间而且很麻烦。
输出:

print(model.generate_text(prompt=prompt1))

小心得 : 開拓新視野與實踐應用

這次實作 IBM Watsonx.ai 平台支援 Python SDK,以及可以很方便的去呼叫和應用各種 LLM model,並使用租車服務的顧客滿意度作為應用場景,展示 LLM 在現今充斥著 AI 的時代,有沒有什麼快速、隨插即用的可能,我想 LLM 很適合扮演這樣的角色,尤其是面對多元的語言,展現模型對於語言的理解能力與強大。

同時,面對的挑戰為如何快速理解已預訓練的模型的優點,並在對的場景選擇適合的編碼方式、選擇適合的模型,變得更為重要。無論是貪婪解碼、beam search 還是其他解碼技術,每種方法都有其獨特的適用場景和優勢。正如我們所見,適當的設置和參數調整能顯著影響模型的性能和輸出質量。

總結來說,IBM Watsonx.ai 和其豐富的模型庫為開發者提供了一個強大的工具集與平台,不僅可以促進創新和探索,還可以應對實際的業務挑戰。下一篇還有更多實作的應用場景,感謝閱讀到這裡的你,我們下次見!

參考資料

avatar-img
32會員
40內容數
歡迎來到《桃花源記》專欄。這裡不僅是一個文字的集合,更是一個探索、夢想和自我發現的空間。在這個專欄中,我們將一同走進那些隱藏在日常生活中的"桃花源"——那些讓我們心動、讓我們反思、讓我們找到內心平靜的時刻和地方
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Karen的沙龍 的其他內容
前言 在這個迅速變化的技術世界裡,AI 已成為推動創新和效率的主要動力之一,最近很幸運得參加了IBM Watsonx 的 workshop,對我來說是一個很好的機會認識企業對於快速導入AI和整合AI應用的平台。IBM Watson 作為AI領域的先驅之一,長久以來一直在智慧型系統和認知計算方面處於
在數據科學和機器學習中,特徵工程是提高模型性能的關鍵步驟之一,通過創建新特徵或轉換現有特徵,我們可以更好地捕捉數據中的信息,提高模型的預測能力。然而,當處理大數據集時,特徵工程可能變得耗時,而且若是在研發階段,特徵其實是需要快速迭代去產生並且做後續的實驗,這也是近期遇到的問題,因此想在這篇文章實作多
1. 問題定義 每一個成功的模型都始於明確的問題定義! 核心思考:你的模型想要達到什麼目的? 例如:是要偵測每一筆交易是否涉及洗錢,還是要從大量資料中找出可能的洗錢關聯戶? 2. 數據檢查 數據是模型的基石,但不是所有數據都是有用的! 核心思考:你的數據夠嗎?時間分佈如何?正負樣本
今年的國泰金控技術年會,關於 AI 有幾個主題覺得很有趣、也受到一些啟發: 1. 可解釋 AI : AI 的可解釋性一直是一個很被關注的題目,尤其是發生在模型要準備落地應用,需要驗證黑盒子是不是依照正確的邏輯、人類的邏輯去判斷問題,我自己很喜歡這個部分,算法是用一套最基本的SHAP,SHAP基於博
最近有採購幾台 server ,正在進行一些設定的作業,把這些過程都保留下來,之後要再設定就可以回來查看了~~~ 目標 在 Centos Linux 主機上移除 Podman ,並安裝 Docker 解決 首先先確認 Centos 的版本,是 Debian or Fedora cat /
最近在調整跟優化效能時,又來複習了 Multi-threading 和 Multiprocessing 的概念,在面對大數據時,能夠有效利用多核心處理器的能力,對於提升程式執行效能至關重要。 Python 提供多線程(Multi-threading) 和多進程 (Multiprocessing)
前言 在這個迅速變化的技術世界裡,AI 已成為推動創新和效率的主要動力之一,最近很幸運得參加了IBM Watsonx 的 workshop,對我來說是一個很好的機會認識企業對於快速導入AI和整合AI應用的平台。IBM Watson 作為AI領域的先驅之一,長久以來一直在智慧型系統和認知計算方面處於
在數據科學和機器學習中,特徵工程是提高模型性能的關鍵步驟之一,通過創建新特徵或轉換現有特徵,我們可以更好地捕捉數據中的信息,提高模型的預測能力。然而,當處理大數據集時,特徵工程可能變得耗時,而且若是在研發階段,特徵其實是需要快速迭代去產生並且做後續的實驗,這也是近期遇到的問題,因此想在這篇文章實作多
1. 問題定義 每一個成功的模型都始於明確的問題定義! 核心思考:你的模型想要達到什麼目的? 例如:是要偵測每一筆交易是否涉及洗錢,還是要從大量資料中找出可能的洗錢關聯戶? 2. 數據檢查 數據是模型的基石,但不是所有數據都是有用的! 核心思考:你的數據夠嗎?時間分佈如何?正負樣本
今年的國泰金控技術年會,關於 AI 有幾個主題覺得很有趣、也受到一些啟發: 1. 可解釋 AI : AI 的可解釋性一直是一個很被關注的題目,尤其是發生在模型要準備落地應用,需要驗證黑盒子是不是依照正確的邏輯、人類的邏輯去判斷問題,我自己很喜歡這個部分,算法是用一套最基本的SHAP,SHAP基於博
最近有採購幾台 server ,正在進行一些設定的作業,把這些過程都保留下來,之後要再設定就可以回來查看了~~~ 目標 在 Centos Linux 主機上移除 Podman ,並安裝 Docker 解決 首先先確認 Centos 的版本,是 Debian or Fedora cat /
最近在調整跟優化效能時,又來複習了 Multi-threading 和 Multiprocessing 的概念,在面對大數據時,能夠有效利用多核心處理器的能力,對於提升程式執行效能至關重要。 Python 提供多線程(Multi-threading) 和多進程 (Multiprocessing)
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
使用GPT協助論文修飾的九大步驟,一招一式讓你的文章更上一層樓。 第一步:首先,我們得先把論文磨刀霍霍,將多餘的贅詞鋪陳削去。你只需要輸入"刪除冗餘內容",此功能會如同你的個人編輯師,專心挑出論文中不必要的部分,使你的文章瞬間緊湊起來。想像一下,論文中如果摻雜了些許與主題無關的雜訊,經過這一番操作後
Thumbnail
在墨爾本初期,自己耗費不少時間找工,自己發現一條可能的商機,結合以下三點,: 1.地圖資訊過時; 2.利用資訊不對稱創造資訊價值; 3.背包客棧的收取費用功能。 將自己找工的這段資料整理成一份最新版的地圖資訊,賣個緣分價,讓擁有資訊的人少走許多前人的冤枉路。 於是有了最新版的墨爾本工廠地圖資訊。
Thumbnail
「韓國兵役的殘酷故事(4)從不講理的全羅南道集團看到的社會縮寫」 只要是韓國男性,就一定擁有在軍隊中服役的經驗。筆者自己也在1990年代後期,21歲時服過兵役。本文是回顧為期2年2個月嚴酷軍旅生活的第四篇文章,這次要來談談二等兵時代不講理的待遇以及出身全羅南道者的蠻橫粗暴。
Thumbnail
【本書抽書活動進行中,歡迎各位一同到粉絲專頁參與同樂!】 或許在這陣子大多頭時期(大盤13,000點),提倡價值投資會被認為賺太慢,但是想要在投資這條路上走的長久,價值投資絕對是需要去理解的投資方法! 作者透過數年的時間,研究出自己的一套「修正式價值投資」哲學,並建構篩選出100%上漲股。
Thumbnail
幾乎沒有人會覺得免費的東西有價值,就像折扣一樣,從你下折扣的那一刻起,客戶立即會把你的商品價值也下了折扣,所以,千萬別白送折扣,就算是會員也一樣,你必須讓客戶覺得,這個折扣得來不易---行銷練功房
Thumbnail
像專家一樣學會規則,像藝術家一樣打破它。──畢卡索      人的行為都是三思而行嗎?     不,連一思都沒有,大部分都是制約反應。那我們該怎麼辦?     將計就計利用它。     事情發生在拉斯維加斯。萊爾走進一間大賭場,來到輪盤邊。他兩眼盯著輪盤轉,小白球喀啦喀啦跳,每次中獎號碼開出來,就看
Thumbnail
英語語料庫有別於傳統線上字典,可以幫助學術作者依自己的需求建立語料資料在必要時進行搜索
Thumbnail
在寒暑假長長的假期中,我們通常捨不得把這難能可貴的時間浪費在安親班裏,而是提前規劃、排定夫妻倆的年休假,以及吆喝一些好朋友,一起來計劃孩子們的假期。 父母親在孩子的成長階段,能夠陪伴著孩子成長,一同學習的機會,若是仔細算算的話,扣掉上課及寫作業,吃飯睡覺等等時間,其實並不多。   因此,在寒暑假長長
Thumbnail
人們不會拿錢開玩笑,再加上挖礦機所創造的沉沒成本,讓預測未來成為一件可能的事---推書的一千種方法
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
使用GPT協助論文修飾的九大步驟,一招一式讓你的文章更上一層樓。 第一步:首先,我們得先把論文磨刀霍霍,將多餘的贅詞鋪陳削去。你只需要輸入"刪除冗餘內容",此功能會如同你的個人編輯師,專心挑出論文中不必要的部分,使你的文章瞬間緊湊起來。想像一下,論文中如果摻雜了些許與主題無關的雜訊,經過這一番操作後
Thumbnail
在墨爾本初期,自己耗費不少時間找工,自己發現一條可能的商機,結合以下三點,: 1.地圖資訊過時; 2.利用資訊不對稱創造資訊價值; 3.背包客棧的收取費用功能。 將自己找工的這段資料整理成一份最新版的地圖資訊,賣個緣分價,讓擁有資訊的人少走許多前人的冤枉路。 於是有了最新版的墨爾本工廠地圖資訊。
Thumbnail
「韓國兵役的殘酷故事(4)從不講理的全羅南道集團看到的社會縮寫」 只要是韓國男性,就一定擁有在軍隊中服役的經驗。筆者自己也在1990年代後期,21歲時服過兵役。本文是回顧為期2年2個月嚴酷軍旅生活的第四篇文章,這次要來談談二等兵時代不講理的待遇以及出身全羅南道者的蠻橫粗暴。
Thumbnail
【本書抽書活動進行中,歡迎各位一同到粉絲專頁參與同樂!】 或許在這陣子大多頭時期(大盤13,000點),提倡價值投資會被認為賺太慢,但是想要在投資這條路上走的長久,價值投資絕對是需要去理解的投資方法! 作者透過數年的時間,研究出自己的一套「修正式價值投資」哲學,並建構篩選出100%上漲股。
Thumbnail
幾乎沒有人會覺得免費的東西有價值,就像折扣一樣,從你下折扣的那一刻起,客戶立即會把你的商品價值也下了折扣,所以,千萬別白送折扣,就算是會員也一樣,你必須讓客戶覺得,這個折扣得來不易---行銷練功房
Thumbnail
像專家一樣學會規則,像藝術家一樣打破它。──畢卡索      人的行為都是三思而行嗎?     不,連一思都沒有,大部分都是制約反應。那我們該怎麼辦?     將計就計利用它。     事情發生在拉斯維加斯。萊爾走進一間大賭場,來到輪盤邊。他兩眼盯著輪盤轉,小白球喀啦喀啦跳,每次中獎號碼開出來,就看
Thumbnail
英語語料庫有別於傳統線上字典,可以幫助學術作者依自己的需求建立語料資料在必要時進行搜索
Thumbnail
在寒暑假長長的假期中,我們通常捨不得把這難能可貴的時間浪費在安親班裏,而是提前規劃、排定夫妻倆的年休假,以及吆喝一些好朋友,一起來計劃孩子們的假期。 父母親在孩子的成長階段,能夠陪伴著孩子成長,一同學習的機會,若是仔細算算的話,扣掉上課及寫作業,吃飯睡覺等等時間,其實並不多。   因此,在寒暑假長長
Thumbnail
人們不會拿錢開玩笑,再加上挖礦機所創造的沉沒成本,讓預測未來成為一件可能的事---推書的一千種方法