• 資料科學協會
2024 領航計畫已開放報名,請點擊後查看報名資訊
前往 Medium 閱讀好讀版

如何透過 AI 模型分析 Unstructured data 破解所有的資料

講者簡介

Nelson 在美國跟台灣有超過20年的軟體開發經驗,從美國電影產業 Sony Pictures 跟Walt Disney到台灣創業,協助企業利用 Unstructured Data 解決商業的問題。

Nelson 出生於香港,小時候離開香港到了美國,在美國大學是念 Computer Science 為主,從美國的 Startup 到大型企業都有做過,6年前到台灣創立了現在的公司(海富智慧科技股份有限公司)

在美國時 Nelson 主要協助娛樂公司管理 Digital Asset Management System,這裡提及的 Digital Asset(數位資產) 不同於銀行產業,也不同於 Crypto 產業。

Nelson 協助處理的 Digital Asset 是電影產業裡面最值錢的 Video(影片),在電影尚未上映前都是非常 Confidential(機密的)

除了要維持 Digital Asset 的保密性,還要能安全地提供給全球不同區域的員工進行編輯,兩個小時的電影,背後可能有兩萬小時的影片內容,如何將影片內容縮減至兩小時?濃縮後的電影還要翻譯成近百種語言,使得處理這些 Unstructured data(非結構化資料)的過程變得更加複雜。

影片所延伸出的非結構化資料化資料類型眾多,以每秒 60 幀的影片來舉例,每分鐘大概有 3,500 張圖片,每個圖片裡有不同的 Object(物件),還有各種 Actor(男演員)跟 Actress(女演員)

除了圖片之外,影片還拆分成出 Audio(音頻)資訊,音頻資訊再細分成 Background Noise(背景噪音)與 Voice(人聲),在資料處理上還要將人聲轉換為文字(Raw Text),一個非結構化的影片資料,需要被層層分析,拆分成不同的資料進行處理。

Nelson 是工程師出身,在美國以開發應用程式為主,擅長使用 C#, Javascript, SQ,六年前來到台灣後,主要使用 Python 進行 Machine Learning Model 建立並協助很多不同企業處理 Raw Text,也是本次分享的重點。

講者分享的工具與 Project Refenece,可點此連結了解更多,直播連結請點此

版聚回顧及重點摘要

要成為 Data-Driven 公司,要懂的掌握 80% 的非結構化資料

Nelson 與我們分享全球市場到 2025 年大概有175 million PB(Petabyte) 的非結構資料,來源來自 Impag(圖片), Audio(音頻)跟 Video(影片),佔總數據量的 80% ,也就是非結構化資料比結構化的資料多 4 倍。

但從圖片中紅色的線來看,目前大部分的人只分析了 0.5% 的非結構資料,以目前各家公司 data driven 的目標來看,了解非結構化資料是勢在必行。

因此 Nelson 協助許多台灣與香港企業管理 User Journey Content(使用者旅程內容),其中包含 Social Media(社群媒體)、Message (訊息)…等相關系統回傳的 User generated data(使用者生成數據)

這些資料與傳統 Survey(問卷)的資料不同,Survey 回傳的資料比較可預期,可以簡單使用傳統的方式處理成結構化的資料,但是 Message APP, Social Media 來的 User generated data 是沒有規則的非結構化資料,但企業客戶對找尋這些資料 Insight(洞見)的需求更加迫切

非結構資料處理契機:Large Language Model 大型語言模型

Nelson 的公司從 2017 年開始收集客戶的 Data 進行處理,而每家客戶的 Data 都在飛速成長,但在 2019 年前,其實並沒有比較好的方式去分析這些非結構化資料,大概在 2019年 之後,Nelson 公司換到一個 Transformer 的技術,才找到處理非結構化資料的突破口

講到 Transformer 的技術要從 BERT 開始說起,BERT是個非常巨大的 Language Model(語言模型),任何人不需要重新訓練資料就可以直接使用模型,在這個模型上你可以做很多的 Fine Tuning(微調)或是進行多種的 Downstream Tasks,Nelson 的公司就利用這些 Transformer 模型搭配各種 Downstream Tasks 挖掘非結構化資料背後的意涵。

從 Large Language Model 發展的歷程可以看到,從 2019 年開始的 GPT,到最近的GPT-3,模型的尺寸越來越大,比如說 GPT-3 有 176 billion parameters(參數),幾乎跑完整個網路所有的內容,已經可以從這樣的資料裡去了解人類世界的 common sense(常識) ,因此我們可以利用這個模型就去閱讀非結構化資料,讓模型自動做出分析。

** 與大型語言模型搭配的 7 種主流 Downstream Task**

Nelson 詳細說明了 7 種在市面上最多人使用的 Downstream Tasks 的各式適用場景,Downstream Tasks 還能交錯使用,處理來源多樣的非結構化資料

  1. Text Generation(文字生成): 主要協助產生更多內容。使用者將一段文字放入模型中,此模型已從網路內容,學習到人類世界的 common sense (常識),因此能預測出下一句合理且讓人類理解的內容,舉例來說:the sky is blue, the grass is…,模型會回答:Green。
  2. Image Classification(圖片分類):過去主要使用 CNN(Convolutional Neural Network),但最近主流使用已轉換到 Vision transformer,例如:Image to Text(圖轉文),這類型的模型大部分是利用網站很多的 Thumbnails (縮圖),與縮圖下 Caption(說明文字)來進行訓練,當使用者輸入圖片後,模型就能輸出描述圖片的文字。再搭配大型的語言模型就能做到 Image Classification(圖片分類)。
  3. Translation(翻譯):是存在已久的技術,從 BERT 出來時就有了,可以將一個語言翻譯成另外一個語言。這項技術不只是給終端使用者使用,當有一些模型選用的 Downstream Task 在當地語言的表現上沒那麼好時,可以先透過英文把 Downstream Task 做好,最後交付給不同地區使用者時,再使用 Translation(翻譯)自動換成當地語言。在實務應用上,滿常利用多種 Downstream Task 完成整個交付的 Pipeline。
  4. Text Classification(文字分類):主要應用在 Labeling(標記),以前做 Labeling 要在訓練階段就先把 Label 放進去,但現在就會換成 Zero shot,最主要的好處是不需要再訓練時期就先提供 Label,可以在 Inference 時再把 Label 丟進模型進行自動分類。
  5. Question Answering(問答系統):技術方面單除就是輸入內容由模型回答可能的答案,每個答案都會有分數,代表不同的信心程度,可作為最後採用的門檻值。
  6. Summarize(總結歸納):主要是能把文字濃縮,像是可以把 1 萬字的文章濃縮到 100 字或是 10 字的長度,作為總結或是標題。而另一種在訓練模型時比較常用的則是跟其他的 Downstream Task 配合,舉例來說,有些 Text Generation 模型會有 Token 上限,因此我們可以利用 Summarize 模型將文章縮短再輸入到文字生成模型去產出更多文字。
  7. Speech Recognition(語音辨識):將 Audio(音頻)檔案換成 Text(文字),我們就可以使用 Text 格式再去做其他 Downstream Task 的訓練。最近有一個比較好用的模型是:OpenAI Whisper,英文語音轉文字幾乎有 99% 準確度,在台灣這邊中文語音轉換準確度也有 98%,如果一句話有中文和閩南語夾雜,準確度大概也有 95% 以上。

分享完目前主流的技術,Nelson 接著與大家分享五種商業應用場景

** 1. Question Answering & Zero Shot Text Classification:提升客服問題處理效率**

現在公司收到客服問題的來源很多,可能來自 E-mail(電子郵件), Message(通訊軟體), Social Media(社群媒體),而我們可以利用自動化資料標記對這些客服問題做初步分類再轉交給負責人員/部門

Nelson 進一步說明資料處理過程,可以使用 Question Answering 先將非結構化資料轉換成結構化資料,舉例來說:有個客戶留言說包裹還沒送達,想查詢運送進度,此時就可以先用 Question Answering model 將非結構化資料轉化成:訂單號碼、姓名、手機、emil、地址等結構化資訊。

Question Answering model 另一個好處是:每個答案都會有分數,代表不同的信心程度,當真人客服收到客服問題,可以藉由分數高低決定是否要採用模型提供的結構化資料,並在真正聯繫客戶前就做好準備,加速問題處理的效率。

另一個模型應用是透過 Zero Shot Text Classification 方式來,去分類客戶留言時的 Sentiment(情緒):Positive(正面)/Negative(負面)/Neutral(中性),如果是負面留言,那就需要真人客服即時介入處理。

在社群媒體留言,有些客戶的留言並不會預期收到回應,但有些客戶就會期待收到回覆,如果沒有即時回答,可能會讓客戶生氣讓問題層級升高,但有時候真人客服無法觀看那麼多訊息,這時候就可以利用自動化資料標記的方式,去找到需要即時回覆的問題,並且能標記客戶是想換貨?退貨?退/換貨原因?,並且將客戶問題分類,轉交給不同的部門提升回覆效率。

自動化資料標籤模型最重要的貢獻就是將非結構化的客服問題,轉換成結構化資料,方便後續資料分析、視覺化分析找出更多 Insight(洞見)。

** 2. Semantic Search(Text to Text):客戶反饋探索**

客戶反饋來自各個系統 etc. email, 客服語音, 社群媒體…等,通常也是非結構化的資料,而且比較難用 Lableing 一言以蔽之,因此通常會用 Intention(意圖)的方式形容。

舉例來說,我們想了解:「哪些客戶對我們的產品失望?」,那我們輸入:’Fail below my expectation’ 這個 Intention(意圖)讓模型用 Semantic Analysis (語意分析)的方式找到與 ’Fail below my expectation’ 語意相近的客戶反饋(Text to Text)。

接著再將模型挑選出分數較高(0.25以上)的客戶反饋與結構化資料交叉分析,比如說:客戶過去的購買紀錄、年齡資訊…等,可能就會發現 31–35 歲客群對產品不滿意的比例偏高,那就可以深入挖掘原因,是否這群客人對服務的要求比較高?或是有其他問題需要針對這群客人解決。

另外有可能客戶不滿意的原因是針對特定產品,舉例可能是:購買牛仔褲產品的客人不滿意度偏高,那可能就要去了解是否產品本身有問題?或是銷售模式需要調整?

由語意搜尋(Semantic Search)模型處理非結構化的客戶回覆,再搭配結構化資訊,進行客戶反饋探索(Customer Feedback Discovery)可以幫助公司改善問題或是挖掘新商機。

** 3. Image to Text + Semantic Search:商品推薦**

近幾年產品推薦因為 3rd-party data 不能採用,或者要遵循 GDPR 規定,無法將資料跟客戶做綁定,在 Customer Profile(顧客輪廓)模糊的情況下,要如何做出準確的的商品推薦是個挑戰,但同時也是模型可以應用的機會點。

舉例來說:客戶想找有釦子的靴子,他就用英文搜尋’boots with buckle’,雖然產品文字形容並沒有完全相符的內容,但我們可以用產品圖片辨識技術而做出準確的推薦。

做法是:

  1. 將客戶的搜尋文字變成一個向量格式
  2. 產品資料庫裡的圖片,藉由 Image to Text(圖轉文)的技術將圖片轉換成文字敘述,像是:鞋子顏色、鞋字的特徵,再將文字轉乘向量格式
  3. 將1.2獲得的向量矩陣進行相似性比對

用這樣的方法,我們不只用文字比對文字去尋找客人想要的產品,而是透過文字去找到視覺化相符的產品。

另外一種應用則是 Image to Image 圖找圖的方式進行推薦,舉例使用者可能對某個產品點擊/觀看/收藏/加入購物車,我們也可將這個產品圖片轉換成向量資料,再去比對資料庫裡所有產品圖片的向量資料,就可以做到滿好的視覺化推薦效果。

** 4. Text Generation — Prompt Engineering:逆向回推顧客輪廓**

產品推薦除了分析產品面向的資料,如果搭配更清晰的客戶資料 Customer Profile(顧客輪廓),更能提升推薦成效。

此時就可以藉由 Text Generation Model 文字生成模型將公司與使用者接觸的非結構化資料轉換成結構化的 Customer Profile,這個技術可以稱為 Reverse Customer Profiling。

在這個過程中我們會用到近年來流行使用的 Prompt Engineering(提示工程),因為大型語言模型比較難去做微調,但透過 Prompt Engineering,用問答的方式,可以去影響模型去取得我們要的資料。

這個模式有點像小孩問大人問題

  1. 小孩問:天空為什麼藍色的?大人回答:因為海洋的反射。
  2. 小孩再問:為什麼會有反射?大人回答…

在這樣反覆的問答過程中,就可以將非結構化的資料整理成結構化的資料。

這邊有個客戶資料的範例,可以知道客戶買過網球、網球鞋跟女性衣服,從人的角度看,可能會對這樣的客戶有一個既定印象,同樣的我們可以把這個內容拿去問 Text Generation Model,模型就會回答:女性。

透過 Prompt Engineering 還可以問更深入的問題去逐步建立起這個客戶的 Customer Profile:喜歡網球、跑步、運動,年紀介於 18–24 之間,喜歡團體活動。

當公司要下廣告找到對的客戶時,過去可能會透過 3rd-party data 可獲得的 Demographic(人口統計)條件進行篩選。

但現在可以用描述的方式去找喜歡戶外、團體活動的客戶,將這樣的描述條件轉換成向量,同時將會員資料庫裡 10 萬個客戶的 Customer Profile 轉換成各自的空間向量。

藉由比對描述條件與 Customer Profile 的向量,去找到相似性最高的客戶,就是行銷廣告要接觸的目標受眾。

** 5. Text Generation — Prompt Engineering: 個人化行銷推薦**

延續第四個情境,找到對的目標受眾後,我們需要決定

  1. 推薦產品:此時可以使用 Prompt Engineering 讓模型回答,這樣的目標受眾對哪個產品會有興趣。舉例:模型從水壺、太陽眼鏡、榔頭三種產品,回答「水壺」是這個目標受眾會有興趣的商品。
  2. 溝通訊息:基於 Customer profile 跟 Product description 的內容,再讓模型會回答,要用什麼樣的溝通訊息最能打動目標受眾。舉例:模型回答 ’Track your water, stay hydrated with water bottle’ 會比較容易吸引目標受眾的注意

用這樣的方式,我們就可以針對 10 萬個會員提供個人化的行銷推薦

** Superinsight Framework 簡化非結構化資料應用流程**

Nelson 最後用一張簡單的 Data Engineering 流程圖來說明如何管理非結構化的資料。

左邊是來自Relational database、NoSQL、Data warehouse、Datalake…等各式來源的非結構式資料,右邊則是 Application(實務應用),舉例:Notebook, Data Visualization, Business Intelligence, Business Application…等。

Nelson 公司首先透過 Query 的方式(SQL, Python, API, Workflow)將資料拉出來,再透過 Data Engineering 的方式將資料投入不同的 Inference 進行 Downstream Task 的處理。Inference 像是 HuggingFace ,有很多不同開源的 Library Model 可以使用,或是也可以選擇付費的 OpenAI ,AWS, Google GCP 也有類似的服務。

資料生產出來還是分為兩種:

  1. 結構化資料:可以放在傳統的資料庫裡,或是放在 Streaming Platform 上面,讓應用端使用。
  2. 向量化資料:圖轉向量化資料,圖片轉文字再轉向量化資料,比較不容易放在資料庫裡,像是 Elastic search 有 Dense vector 試圖想解決這個問題,但效果並不是太好。還是需要找很多不同的開源 Library 跟 Function 才能取用結構化資料跟向量化資料

Nelson 的公司投入處理整個資料流程兩年的時間,發現當中的痛點是,結構化資料跟向量化資料的格式差異,很難使用向量化資料來處理結構化資料。

因此 Nelson 的公司內部建了一個開源的架構 Superinsight Framework,主要目標是使用者可以透過 SQL (應用端主流使用的語言)進行資料的查找應用。

當我們想用 Text to Text 方式找尋推薦產品時,可以利用一個資料表格來完成。Column 放置產品描述,描述文字的 Row JOIN 成 model.semantic_search 的輸入,後續我們可以用 WHERE 來尋找推薦產品。舉例:‘something to sit on’,就可以獲取推薦產品,並且挑選推薦分數較高的產品,進行推薦行銷。

另外如果想以圖搜圖的話,可以透過輸入圖片的連結,就可以找到相似產品,因為我們已經把既有圖片轉換成文字再轉換成向量格式,在用 SQL 查找資料時會比較方便一些,用文字找圖片的情境也可以做到。

另外 Superinsight Framework 還加入常用的預測模型,像是:Zero Shot Text Classification,也是透過 SQL 方式將資料抽出來,用 JOIN 的方式放進模型裡,就可以預測多不同的 Labels,Question Answering 還有 Text Generation 也是透過 SQL 的方式產生資料讓 Downstream Application 使用。

如果對 Superinsight Framework 有興趣想使用的讀者,歡迎點此連結查看詳細文件,想觀看直播存擋請點此

講者QA

Q1:Image 到 vector 或文字到 vector 是用哪些方法?

Image to vector:比較簡單一點,像是有個模型叫:ResNet,他已經有很多 image資料,可以將你的 image 換成 vector,不需要你去 pre-train model。

Image to text:上述有分享過 vision transformer,你可以去 HuggingFace上面去找一些 image to text 模型,或是 Google 有一個是 image to text 輸入 image 後,模型會產生一些 cluster label。OpenAI 也有一個,是用 image to caption, caption 比較是敘述句,比如說我們看到一個圖案,有兩個人是 holding hands,那他會生成’picture of two-person holding hands in a lovely environment,透過這幾種模式,可以去把圖片生成文字,最後一樣將文字轉成向量格式儲存,後續要再做 image to image 或是 image to text 做相似比對,都可以做到。

文字到 vector:可以用 Sentence Transformers ’REFNET‘ 做。

Q2:請問score都是如何計算出來的?如何知道準不準確? 一般來說,這個score的話,都是這個 model 本身有去 train 好的一個score來做判斷,那如果你覺得準不準確,還有兩個方式,因為你可能有比較domain specific 的。因為一般我們用的large language model 他本身是用大部分的 data 去做的

因為我們用的大型語言模型訓練的資料都是網路上通用型的資料,如果你的應用 domain 比較精準,舉例可能是:medical domain,你一定會覺得不準。那你就一定要去做 finetuning,透過 finetuning,你可以重新去訓練模型或者把你的 dataset 放到 large language model 裡面來去做 finetuning。

在過程中,還是要靠自己去衡量 score 夠不夠準確,要一直調教到你覺得ok才去做 deployment。

Q3:Any specific infrastructure design requirements for this transformation by architects, e.g. from the legacy system such as IBM FileNet? 請問從網絡建設/架構上有否特別要注意點呢?例如從IBM FileNet抽取訊息,方便用不用open source libraries做elastic search的infrastructure 要求

這個問題我用 legacy system的角度來回答,感覺 IBM FireNet 跟S3有點像,可能是一個 data lake 的概念,是一個 cold storage,可以將所有資料丟進去。

這些資料類型很多,有text, image. PDF 等不同的unstructured data,當你要抽取資料的時候就會比較難處理。

所以第一步你需要定義不同 unstructured data 的 file structure 是什麼?

  • Raw text 就直接用 raw text 做 inference 生產出 structured data
  • Image 資料可以直接換成 vector,或是先換成 text 再換成 vector
  • PDF 比較複雜,需要用 data engineering 將你要用的資料先抽取出來轉換成 structured data

資料抽取出來後,不只可以放在雲端跑,你也可以在 local 端用 GPU 或是 CPU 跑。但最後要選擇什麼作法?每個 domain 都不太一樣,我這邊建議以終為始,列出最終希望得到什麼樣的 structured data/vectorized data? 再去建立 data pipeline,會比較容易選擇作法。

Q4:請問在reverse customer profiling 時,通常你也不太知道真顧客的樣貌。這樣要如何確認預測的結果是正確的呢?

這個也要看每間公司的應用場景,我這邊用上面分享過的案例,我們做 reverse customer profile 是透過使用者購買行為的數據,因此我就是用 engagement (互動性)來驗證

舉例來說我反推的 customer profile 認為某個使用者是 19–25 歲,但使用者真的反饋實際年齡是 35–40 歲,但這個使用者的互動行為真的跟其他 19 歲的使用者相近,那就可以說這樣的反推結果是正確的。

每個使用者的人口統計數據跟實際行為其實有一段距離,如果生成 customer profile的時候,是用 engagement 的方向去找,那其實就用 engagement 的結果來驗證就好,不用很在意其他使用者特徵是否真的準確,你也不一定有這些數據能驗證(拿不到或是法規限制…等因素)。

Q5:請問使用以上的large model或task,還要進行data cleaning嗎? 還是會選擇相信模型可以自己處理 noise 所以不做data cleaning?

因為情境不夠明確,我先假設你想問的應用情境是:要在化妝品產業使用 text generation,那大型的語言模型可能就不夠準確。

舉個我們之前做過的案例:台灣的化妝品產業客戶,最終需要用英文去接觸最終消費者

作法上可以先使用 text generation 模型生成文字,再串接 translation model 去翻譯成當地消費者看得懂的語言。你可以讓 translation model 去爬化妝品相關文字,最後翻譯的英文就會比較符合當地消費者習慣看到的化妝品資訊

另一個案例是: Reverse customer profile 模型輸出的結果是 text,還是 unstructured data,你可以再串接 zero-shot classification 模型或者 question and answering 模型將 unstructured data 轉成 structured data 再去使用。

總結來說有兩個方式:

  1. 自己 fine tune 模型
  2. 配合不同的downstream task 去做 data cleaning

Q6:How do you manage/version your models, any recommended tools to monitor the performance of the models?

我們是透過 HuggingFace 去管理不同模型,用這個 framework,我們可以自己做training class,訓練完後再deploy。

另外你也可以透過 HuggingFace方式配合 SageMaker 的方式去做,其實有很多的工具都可以做這一塊。

Performance 部分你是想問 quality 還是 prediction time?要再請提問者補充我才能回答。

Q7:可以介紹一下在這個data engineer架構中的AI DevOps怎麼進行嗎?

我們的公司的話是用 Kubernetes 處理,可以 define 不同的 pods 去處理不同階段。

比較好的處理是從 query data engineering 這段,比較難處理的就是如果你的模型要使用 GPU,Kubernetes 上就不是很好管理,主要是考量到成本。舉例來說:我們通常不會把某個 task 包成 container 在 GPU 裡面去跑,因為當你不用 inference 但 GPU 持續開著,成本就會非常高。

你可以透過其 deployment framework 像 NVIDIA 的 Triton Inference Server 的 framework,你可以把所有的 model 放在這個 platform上面,就做一個 GPU 的 inference,你所有的 downstream task 都可以直接去打這個platform 做 inference,這樣就可以將 GPU 分離成不同的 downsteam 來執行。

不過現在很多 model ,不一定要用到 GPU,那就可以省掉這塊成本。HuggingFace 現在好像也有這種 GPU 的 API 可以使用,但費用好像還蠻高的,你可以自行評估是否採用。

我們遇到的問題,是我們不能把資料放在第三方的雲端,不能打 HuggingFace,也沒辦法打 OpenAI,所以我們就把 model 放在 local 端自己跑 Superinsight framework

Q8:模型或多或少還是會有錯誤,怎麼定義或者說服 clients/stakeholders 模型的表現已經足夠好了?

這個問題很好,我們這個常常被問到,我覺得這個問題是很難解決的,因為我們是用不同 model 去處理非結構資料,大家也知道 machine learning 永遠沒有100%的結果,所以我們也常被 stakeholders 問怎麼驗證結果?

我們一開始是要教育 stakeholders:unstructured data 透過 machine learning 去分類,其結果不可能 100% 正確,所以 stakeholders 在使用時可能不要直接用在 mission critical application 的應用。

但這些資料可以用在 data analysis,我們解決的主要痛點是:有很大一部分的 unstructured data 沒被應用到,但經由我們資料處理的流程,可以從 high-level concept 協助客戶抓出問題點,再搭配傳統的分析方法去找出真正的問題點進而改善。

如何說服客戶真的是我們現在最大的挑戰,我覺得最好的方式是先找到一些容易解決的方案來提供客戶價值,透過每次的 value add 建立 stakeholders 的信心。

最不好的是花了很多預算跟時間,但最後交付的成果客戶不喜歡或是不需要,所以我們會採用 iteration 方式持續交付並驗證我們提供的價值是 stakeholders 需要的。

Q9:如果模型出現了bias,請問要怎麼解決?

如果模型有 bias 代表模型本身就有問題,第一個需要先了解:我們是採用哪一個模型?

比如說:你在 HuggingFace 下載一個模型,這個模型可能設計給特定 industy 使用,但你應用到一個不同產業,那一定會有很多的問題。

所以你需要先選擇對的模型,或是自己去訓練適合的模型在 inference 這個階段使用。

Q10:How do you version the vectorized data?

舉例來說: data table 裡面有 product description,但這個資料被改動了,那 vector 就會需要跟著變動,這個例子就是「當 source data 改動時候,vector 要怎麼跟著改動?」

當設計 pipeline 時,就要設計某些 trigger 機制,interval 去檢查 data ,或是用 CDC(Change Data Capture) 方式去了解資料是否有變動,當 data 有變動時就要重新跑過整個 pipeline 產生新的 vector。

而這個新的 vector 要直接 overwrite 舊的 vector?還是要等到某個條件達成後才刪掉舊的 vector ?也是需要設計的。

另外一個例子是:如果你的 model 改了,之前的 vector 就完全不能用。所以我們每一個 model 都會identifier,從 model 就要先分類,當我們的產品更新時,我們不會直接 overwrite舊的 vector,會先確保新的 vector 可以正常在產品上運作時才會把舊的 vector 刪掉。

Version control 分成兩塊:

  1. Define model, update new vector
  2. Design pipeline trigger mechanism

Q11: 利用 model 做 labeling ,會再人工檢查正確性才做 training 嗎?

這個問題我的理解是:透過 zero-shot classification model 自動生產 label ,再用人工用 supervised learning 方式做 retraining

我做過比較多是透過一個模型生產 structured data(label),再用另外一個 model 做 supervised learning,這樣做的話我覺得效果蠻不錯。

你問的方式我覺得可行的,但效果如何?我沒試過不知道。

筆記手:Lavina Lu
校稿:Andy Chang

👉 歡迎加入台灣資料科學社群,有豐富的新知分享以及最新活動資訊喔!

社團法人
資料科學協會

立案證書字號

1090070264

Copyright 2020-2024 資料科學協會 All Rights Reserved.

本網站由 資料科學協會 維護