AI賦能數(shù)據(jù)治理能力的十大模式
介紹
在數(shù)據(jù)驅(qū)動決策的時代,數(shù)據(jù)治理已從單純的法規(guī)遵及數(shù)據(jù)質(zhì)量從發(fā)展成為推動明智決策的戰(zhàn)略舉措。在之前的探索中,我們深入研究了 OpenAI API 的潛力,以自動填充術(shù)語定義,從而提高數(shù)據(jù)治理任務(wù)的效率。今天,我們踏上了超越傳統(tǒng)的旅程,來到數(shù)據(jù)治理 3.0時代,我們將數(shù)據(jù)治理工具與大型語言模型 (LLM) 無縫集成,它們具有理解和生成類似人類文本的能力,處于這場革命的前沿,自動執(zhí)行大量任務(wù)并增強用戶體驗。
LLM(例如 OpenAI 的 GPT-3)徹底改變了我們對自動化的看法。憑借其理解和生成類似人類的文本的能力,它們?yōu)樽詣踊瘋鹘y(tǒng)上手動且耗時的任務(wù)開辟了無數(shù)機會。讓我們深入研究 LLM 如何重新定義數(shù)據(jù)治理格局。
治理 3.0 代表了組織管理和治理數(shù)據(jù)方式的范式轉(zhuǎn)變。它不是要取代傳統(tǒng)的治理方法,而是要增強它們。治理 3.0 利用現(xiàn)有治理系統(tǒng)提供的大量 API 和 SDK 來擴展其基本功能。結(jié)合大型語言模型和人工智能的強大功能,這種方法使組織能夠自動執(zhí)行任務(wù)、集成系統(tǒng)并提高效率。治理 3.0 的優(yōu)點在于它能夠增強現(xiàn)有系統(tǒng)、確保法規(guī)遵從性、提高數(shù)據(jù)質(zhì)量并促進高效的數(shù)據(jù)管理,而無需進行顛覆性改變。
向數(shù)據(jù)資產(chǎn)所有者推薦:人工智能視角
LLM 可以分析使用模式和訪問權(quán)限,以推薦最合適的數(shù)據(jù)資產(chǎn)所有者。此過程涉及分析誰經(jīng)常訪問和修改數(shù)據(jù)資產(chǎn)、誰擁有必要的權(quán)限以及誰根據(jù)其角色或過去的項目擁有相關(guān)專業(yè)知識。
例如,如果某個用戶經(jīng)常訪問和更新數(shù)據(jù)資產(chǎn),并且他們在組織中的角色與數(shù)據(jù)的性質(zhì)相符,LLM 可能會推薦他們作為數(shù)據(jù)資產(chǎn)所有者。然后,數(shù)據(jù)管理員或經(jīng)理可以審查和批準(zhǔn)此建議,確保最終決策由人參與。
這種由人工智能驅(qū)動的數(shù)據(jù)資產(chǎn)所有權(quán)分配方法可確保問責(zé)制并促進負責(zé)任的數(shù)據(jù)管理。它還有助于保持數(shù)據(jù)治理框架的最新狀態(tài),因為隨著角色的變化或新數(shù)據(jù)資產(chǎn)的創(chuàng)建,可以重新評估和更新數(shù)據(jù)資產(chǎn)所有權(quán)。這不僅可以提高數(shù)據(jù)治理流程的效率,還可以確保數(shù)據(jù)資產(chǎn)由最合適的個人管理,從而提高數(shù)據(jù)質(zhì)量和信任度。
保護數(shù)據(jù):自動審查訪問和策略
LLM 可以解釋安全策略,使其能夠自動審查和標(biāo)記潛在的訪問違規(guī)行為。這涉及分析用戶角色、訪問模式和數(shù)據(jù)資產(chǎn)的敏感度,以確定訪問權(quán)限是否符合既定的安全策略。
例如,如果用戶的角色通常不需要訪問敏感數(shù)據(jù)資產(chǎn),但用戶經(jīng)常訪問它,LLM 可能會將此標(biāo)記為潛在違規(guī)行為。同樣,LLM 可以根據(jù)觀察到的訪問模式和不斷變化的業(yè)務(wù)需求建議修改安全策略。
這種主動方法不僅可以增強數(shù)據(jù)安全性和合規(guī)性,還有助于維護最小權(quán)限原則,確保用戶只能訪問他們需要的數(shù)據(jù)。通過自動審查訪問權(quán)限和策略,我們可以在不斷變化的數(shù)據(jù)格局和監(jiān)管要求下維護強大而安全的數(shù)據(jù)治理框架。
語境感知翻譯:利用人工智能跨越語言障礙
在數(shù)據(jù)治理領(lǐng)域,語言障礙可能帶來重大挑戰(zhàn),尤其是對于在不同地區(qū)運營的全球組織而言。這時大語言模型 (LLM) 的強大功能便得以發(fā)揮,它能夠?qū)崿F(xiàn)超越逐字逐句翻譯的上下文感知翻譯。通過理解文本的上下文,大語言模型 (LLM) 可以提供更準(zhǔn)確、更有意義的翻譯,確保保留原文的本質(zhì)和細微差別。例如,大語言模型 (LLM) 可以將復(fù)雜的技術(shù)定義翻譯成多種語言,同時保持技術(shù)術(shù)語和概念的完整性并考慮任何必要的元數(shù)據(jù)。這種能力可以顯著增強組織內(nèi)的跨文化協(xié)作和理解,使數(shù)據(jù)治理更具包容性和有效性。
通過自動定義豐富詞匯表術(shù)語
基于我們之前的工作,我們可以擴展 LLM 的使用范圍,為大量詞匯表術(shù)語生成定義和其他類型的元數(shù)據(jù)。利用 OpenAI API 自動填充術(shù)語定義,不僅減少了數(shù)據(jù)管理員所需的手動工作量,而且還確保了整個組織的一致理解。
自動實體鏈接:連接術(shù)語和數(shù)據(jù)資產(chǎn)
大型語言模型在數(shù)據(jù)治理中最強大的應(yīng)用之一是自動實體鏈接。此過程涉及識別詞匯表術(shù)語和數(shù)據(jù)資產(chǎn)之間的相關(guān)聯(lián)系,從而創(chuàng)建更全面、更互聯(lián)的數(shù)據(jù)治理框架。
通過自動實體鏈接,LLM 可以分析數(shù)據(jù)資產(chǎn)的上下文和內(nèi)容,并將其鏈接到適當(dāng)?shù)脑~匯表術(shù)語。這不僅可以增強數(shù)據(jù)資產(chǎn)的元數(shù)據(jù),還可以通過現(xiàn)實世界的示例和應(yīng)用豐富詞匯表術(shù)語。
例如,包含客戶交易信息的數(shù)據(jù)資產(chǎn)可以自動鏈接到“客戶 ID”、“交易金額”或“購買日期”等詞匯表術(shù)語。這為詞匯表術(shù)語的理論定義與其在數(shù)據(jù)資產(chǎn)中的實際實施提供了直接聯(lián)系。
這種自動化程度大大減少了維護和更新這些鏈接所需的人工工作量,確保數(shù)據(jù)治理框架在創(chuàng)建新數(shù)據(jù)資產(chǎn)和更新現(xiàn)有數(shù)據(jù)資產(chǎn)時保持最新和相關(guān)性。此外,它還為用戶提供了對其數(shù)據(jù)格局的更全面了解,促進更有效、更明智的數(shù)據(jù)使用和決策。
追溯血統(tǒng):從代碼到見解
LLM 可以理解代碼,這項技能可以用來識別自定義應(yīng)用程序的血統(tǒng)。這可以簡化跨管道和記錄來跟蹤數(shù)據(jù)轉(zhuǎn)換的復(fù)雜任務(wù)。
例如,考慮一個 SQL 存儲過程,它從多個表中提取數(shù)據(jù),執(zhí)行轉(zhuǎn)換,然后將結(jié)果加載到另一個表中。傳統(tǒng)上,了解此過程的沿襲需要手動檢查代碼并深入了解數(shù)據(jù)庫架構(gòu)。
CREATE PROCEDURE update_customer_orders
AS
BEGIN
-- 從 Customers 和 Orders 表中提取數(shù)據(jù)
SELECT Customers.CustomerName, Orders.OrderID
INTO #TempTable
FROM Customers
JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
-- 對數(shù)據(jù)執(zhí)行轉(zhuǎn)換
UPDATE #TempTable
SET CustomerName = UPPER (CustomerName);
-- 將結(jié)果加載到 CustomerOrders 表中
INSERT INTO CustomerOrders(CustomerName, OrderID)
SELECT CustomerName, OrderID FROM #TempTable;
DROP TABLE #TempTable;
END ;
以下是 Azure OpenAI 如何提取血緣信息并以 JSON 格式呈現(xiàn)的示例:
{
“Stored_Procedure” :“update_customer_orders” ,
“Data_Sources” :[
{
“表” :“客戶” ,
“字段” :[ “客戶名稱” , “客戶ID” ]
} ,
{
“表” :“訂單” ,
“字段” :[ “訂單ID” , “客戶ID” ]
}
] ,
“轉(zhuǎn)換” :[
{
“操作” :“UPPER” ,
“字段” :“客戶名稱” ,
“Source_Table” :“#TempTable”
}
] ,
“Data_Destination” :{
“表” :“客戶訂單” ,
“字段” :[ “客戶名稱” , “訂單ID” ]
}
}
借助 LLM,我們可以自動化此過程。該模型可以讀取和理解任何類型的代碼,識別正在訪問哪些表、正在應(yīng)用哪些轉(zhuǎn)換以及結(jié)果存儲在何處。然后,它可以生成數(shù)據(jù)沿襲的人類可讀描述,甚至可以生成顯示數(shù)據(jù)流的可視化圖表。
自動沿襲跟蹤,特別是在許多基于代碼的操作等無法直接提取沿襲的場景中,可以改變數(shù)據(jù)治理的游戲規(guī)則。雖然目前的工具擅長跟蹤結(jié)構(gòu)化、基于模式的數(shù)據(jù)源中的沿襲,但它們通常難以處理基于代碼的操作,如存儲過程、腳本或自定義應(yīng)用程序。利用 LLM 的強大功能可以彌補這一差距,減少手動工作量并確保隨著代碼的演變而準(zhǔn)確跟蹤沿襲。這種全面的數(shù)據(jù)沿襲方法涵蓋基于模式和基于代碼的數(shù)據(jù)操作,是數(shù)據(jù)治理 3.0 的一個關(guān)鍵方面,可提供完整而準(zhǔn)確的數(shù)據(jù)整體視圖。
整理數(shù)據(jù)資產(chǎn):人工智能驅(qū)動的方法
LLM 可以分析和生成數(shù)據(jù)資產(chǎn)的描述性元數(shù)據(jù),從而改變我們管理數(shù)據(jù)的方式。這涉及了解數(shù)據(jù)資產(chǎn)的內(nèi)容、背景和用途,然后生成相關(guān)元數(shù)據(jù),例如定義、摘要、關(guān)鍵字或標(biāo)簽。
例如,大語言模型 (LLM) 可以分析客戶交易數(shù)據(jù)集,識別交易日期范圍、最常見的交易類型和平均交易金額等關(guān)鍵特征,然后為數(shù)據(jù)集生成摘要描述和相關(guān)標(biāo)簽。
這種自動化的管理流程不僅減少了數(shù)據(jù)管理所需的人工工作量,還提高了數(shù)據(jù)資產(chǎn)的可發(fā)現(xiàn)性。通過生成豐富、準(zhǔn)確且最新的元數(shù)據(jù),LLM 使用戶更容易搜索和發(fā)現(xiàn)相關(guān)數(shù)據(jù),從而提高數(shù)據(jù)可訪問性并促進數(shù)據(jù)驅(qū)動的決策。
對齊本體:人工智能橋梁
LLM 可以協(xié)調(diào)組織內(nèi)的不同本體或分類法,這項任務(wù)在醫(yī)療保健、制造業(yè)、金融等領(lǐng)域至關(guān)重要,因為這些領(lǐng)域經(jīng)常使用多個復(fù)雜的本體。
在醫(yī)療保健領(lǐng)域,組織可能會在不同的系統(tǒng)中同時使用醫(yī)學(xué)系統(tǒng)命名法 - 臨床術(shù)語 (SNOMED CT) 和邏輯觀察標(biāo)識符名稱和代碼 (LOINC)。LLM 可以識別這些本體中的術(shù)語之間的等價性,例如 LOINC 代碼“2160-0”和 SNOMED CT 代碼“27113001”,均指“血清肌酐”。
在制造業(yè)中,本體可能包含針對零件和工藝的不同分類系統(tǒng)。例如,一個系統(tǒng)可能將某個零件分類為“螺栓,六角,M8,鋼制”,而另一個系統(tǒng)將同一零件稱為“鋼制六角螺栓,8 毫米”。大語言模型可以理解這些術(shù)語指的是同一零件,并將它們排列在統(tǒng)一的本體中。
在金融領(lǐng)域,不同的系統(tǒng)可能會對相同的金融概念使用不同的術(shù)語,例如“凈收入”、“凈收益”。LLM 可以將這些術(shù)語視為等同術(shù)語,并在統(tǒng)一的本體中對其進行對齊。
這種無縫集成提供了數(shù)據(jù)環(huán)境的一致視圖,增強了數(shù)據(jù)互操作性。它確保所有系統(tǒng)中都一致地引用相同的概念,從而減少混亂并提高數(shù)據(jù)分析和報告的準(zhǔn)確性。通過自動化本體對齊過程,LLM 可以幫助各個部門的組織更有效地管理其數(shù)據(jù),從而做出更明智的決策并改善結(jié)果。
超越關(guān)鍵詞:語義搜索時代
LLM 可以在數(shù)據(jù)治理工具中啟用語義搜索功能。這使用戶能夠根據(jù)查詢的含義和上下文找到相關(guān)的數(shù)據(jù)資產(chǎn),從而超越基于關(guān)鍵字的搜索的限制。
為了讓這些概念變得生動,讓我們深入研究一個非常簡單的例子,了解如何通過 Atlas API 將任何問題轉(zhuǎn)換為搜索查詢,并根據(jù) API 響應(yīng)生成答案。
LLM 可在數(shù)據(jù)治理工具中啟用語義搜索功能,開啟數(shù)據(jù)發(fā)現(xiàn)的新時代。與傳統(tǒng)的基于關(guān)鍵字的搜索(僅查找搜索詞的精確匹配)不同,語義搜索可以理解查詢的含義和上下文。這樣,即使用戶不知道這些資產(chǎn)中使用的確切術(shù)語,他們也可以找到相關(guān)的數(shù)據(jù)資產(chǎn)。
假設(shè)有用戶查詢“我們的銷售數(shù)據(jù)庫中與‘CustomerID’列關(guān)聯(lián)的業(yè)務(wù)術(shù)語表定義是什么?”在傳統(tǒng)的基于關(guān)鍵字的搜索中,系統(tǒng)可能很難返回有意義的結(jié)果。但是,由 LLM 提供支持的語義搜索可以理解用戶正在尋找與特定數(shù)據(jù)資產(chǎn)關(guān)聯(lián)的業(yè)務(wù)術(shù)語表術(shù)語。然后,它可以查詢銷售數(shù)據(jù)庫中的‘CustomerID’列的數(shù)據(jù)治理工具,找到關(guān)聯(lián)的業(yè)務(wù)術(shù)語表術(shù)語,并返回其定義。
為了將這些概念付諸實踐,讓我們深入研究一個非常簡單的示例,說明如何通過 Atlas API 將任何問題轉(zhuǎn)換為搜索查詢,并根據(jù) API 響應(yīng)生成答案。這種方法利用 LLM 的強大功能來理解用戶的意圖,將該意圖轉(zhuǎn)化為 API 可以理解的查詢,然后解釋 API 響應(yīng)以生成用戶友好的答案。
導(dǎo)入streamlit作為st
導(dǎo)入pandas作為pd
導(dǎo)入openai
導(dǎo)入請求
導(dǎo)入json
從azure.purview.catalog導(dǎo)入PurviewCatalogClient
從azure.purview.administration.account導(dǎo)入PurviewAccountClient
從azure.identity導(dǎo)入ClientSecretCredential
從azure.core.exceptions導(dǎo)入HttpResponseError
導(dǎo)入os
openai.api_key = os.environ.get( 'OPENAI_API_KEY' )
openai.api_base = os.environ.get( 'OPENAI_API_ENDPOINT' ) # 您的端點應(yīng)如下所示 https://YOUR_RESOURCE_NAME.openai.azure.com/
openai.api_type = 'azure'
openai.api_version = "2023-03-15-preview" # 這可能會在未來發(fā)生變化
deploy_id= 'gpt4-8k' # 這將對應(yīng)于您在部署時為部署選擇的自定義名稱一個模型。
client_id = os.environ( 'CLIENT_ID' )
client_secret = os.environ( 'CLIENT_SECRET' ) tenant_id
= os.environ( ' AZURE_TENANT_ID' )
reference_name_purview = os.environ( 'PURVIEW_NAME' )
def get_credentials ():
credentials = ClientSecretCredential(client_id=client_id, client_secret=client_secret, tenant_id=tenant_id)
返回憑據(jù)
def get_purview_client ():
credentials = get_credentials()
client=PurviewCatalogClient(endpoint=f"https://{reference_name_purview} .purview.azure.com" , credential=credentials, logs_enable= True )
返回客戶端
def get_admin_client ():
credentials = get_credentials()
client=PurviewAccountClient(endpoint=f"https://{reference_name_purview} .purview.azure.com/",credential=credentials,logging_enable= True )
返回客戶端
def search ( question ):
print ( "提取術(shù)語搜索" )
system_message = "您是一位助手,會將問題轉(zhuǎn)換為關(guān)鍵字搜索,然后在 Microsoft Purview 環(huán)境中執(zhí)行。"
prompt = “給出以下問題,請?zhí)峁┠鷮⒂脕硗ㄟ^使用 Microsoft Purview Search API 端點進行搜索來查找問題答案的搜索詞。問題是:'” +question+ “'”
terms = ask_gpt4(deployment_id,system_message,prompt)
返回術(shù)語
def generate_answer(question,context):
print(“根據(jù) Purview 搜索生成問題的答案”)
prompt = “”給出以下問題和上下文(json 格式),請生成問題的答案。僅根據(jù)提供的上下文參考您提供的數(shù)據(jù)資產(chǎn)或術(shù)語來回答。如果有潛在的答案,請列出所有答案。
問題:{question}
上下文:{context}
記住僅根據(jù)您提供的上下文回答并引用該上下文!“””。格式(問題=問題,上下文=上下文)
system_message = “您是一名助手,您將僅根據(jù)通過 API 提供的信息來回答一些問題?!? result = ask_gpt4(deployment_id, system_message, prompt)
返回結(jié)果
def ask_gpt4 ( engine_model, sys_message, question ):
chatlog = [{
'role' : 'system' ,
'content' : sys_message,
}]
chatlog.append({ 'role' : 'user' , 'content' : question})
response = openai.ChatCompletion.create(engine=engine_model, messages=chatlog)
answer = response.choices[ 0 ][ 'message' ][ 'content' ]
chatlog.append({ 'role' : 'assistant' , 'content' : answer})
返回答案
if __name__ == '__main__' :
print ( "GET 連接到 Purview" )
credential = get_credentials()
purview_catalog_client = get_purview_client()
print (purview_catalog_client)
st.title( 'Purview Search Copilot' )
question = st.text_input( '輸入您的問題' ,'' )
如果(問題!= '' ):
search_terms = search(問題)
嘗試:
st.write('您搜索了:',search_terms)
body_input = {
“關(guān)鍵字”:search_terms
}
context = purview_catalog_client.discovery.query(search_request = body_input)
打印(context)
響應(yīng) = generate_answer(question,context)
打?。╮esponse)
st.write('結(jié)果:',response)
除了HttpResponseError作為e:
打印(e)
接下來您將看到 Streamlit 應(yīng)用程序的搜索屏幕截圖:
與數(shù)據(jù)對話:
想象一下,與數(shù)據(jù)治理工具的互動就像與同事的互動一樣。隨著 LLM 的整合,這不再是一個未來的夢想,而是現(xiàn)實。LLM 可以為聊天機器人或語音助手等對話界面提供支持,使用戶能夠使用自然語言與數(shù)據(jù)治理工具互動。
例如,用戶可以詢問聊天機器人,“我們的銷售數(shù)據(jù)庫中‘CustomerID’字段的定義是什么?”或“誰有權(quán)訪問我們的財務(wù)數(shù)據(jù)?”。由大語言模型提供支持的聊天機器人可以理解問題,查詢數(shù)據(jù)治理工具,并以自然語言返回清晰、簡潔的答案。
這可以通過導(dǎo)出實例的備份并將該數(shù)據(jù)索引到認知搜索中并利用其中一個存儲庫來輕松實現(xiàn)。
這種轉(zhuǎn)換可以通過一個簡單的過程實現(xiàn),該過程利用工具套件的功能。首先,您將導(dǎo)出實例的備份。此備份將包含收集和組織的所有有價值的元數(shù)據(jù)和數(shù)據(jù)目錄信息。
接下來,您將這些數(shù)據(jù)索引到認知搜索中,這是一項功能強大的 AI 搜索服務(wù),可讓您以多種方式搜索這些復(fù)雜的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。認知搜索可以處理自然語言查詢,使其成為與大型語言模型集成的理想平臺。
最后,為了簡化此過程并確保最佳實踐,您可以利用存儲庫之一。這些加速器是預(yù)先構(gòu)建的解決方案,旨在幫助您快速啟動和實施項目。它們提供代碼示例、腳本和其他資源,可以顯著加快開發(fā)和部署速度。
通過遵循這些步驟,您可以創(chuàng)建一個強大的、由人工智能驅(qū)動的數(shù)據(jù)治理工具,該工具可以理解和響應(yīng)自然語言查詢,從而使所有用戶(無論其技術(shù)專長如何)都可以更輕松地訪問和使用數(shù)據(jù)治理。
這種對話式方法使數(shù)據(jù)治理更加民主化,使其更易于訪問和用戶友好。它允許用戶以更直觀和自然的方式與數(shù)據(jù)治理工具交互,從而縮短學(xué)習(xí)曲線,并使非技術(shù)用戶更容易找到所需的信息。通過將自然語言處理的強大功能引入數(shù)據(jù)治理,我們可以使數(shù)據(jù)治理成為日常業(yè)務(wù)運營中更不可或缺的一部分。
結(jié)論
治理 3.0 由大型語言模型和創(chuàng)新數(shù)據(jù)目錄解決方案提供支持,可以改變組織管理和治理數(shù)據(jù)的方式。隨著我們的前進,我們可以期待數(shù)據(jù)治理繼續(xù)發(fā)展,利用 LLM 和其他先進技術(shù)來滿足組織不斷變化的數(shù)據(jù)治理需求。