介绍
在数据驱动决策的时代,数据治理已从单纯的法规遵及数据质量从发展成为推动明智决策的战略举措。在之前的探索中,我们深入研究了 OpenAI API 的潜力,以自动填充术语定义,从而提高数据治理任务的效率。今天,我们踏上了超越传统的旅程,来到数据治理 3.0时代,我们将数据治理工具与大型语言模型 (LLM) 无缝集成,它们具有理解和生成类似人类文本的能力,处于这场革命的前沿,自动执行大量任务并增强用户体验。
LLM(例如 OpenAI 的 GPT-3)彻底改变了我们对自动化的看法。凭借其理解和生成类似人类的文本的能力,它们为自动化传统上手动且耗时的任务开辟了无数机会。让我们深入研究 LLM 如何重新定义数据治理格局。
治理 3.0 代表了组织管理和治理数据方式的范式转变。它不是要取代传统的治理方法,而是要增强它们。治理 3.0 利用现有治理系统提供的大量 API 和 SDK 来扩展其基本功能。结合大型语言模型和人工智能的强大功能,这种方法使组织能够自动执行任务、集成系统并提高效率。治理 3.0 的优点在于它能够增强现有系统、确保法规遵从性、提高数据质量并促进高效的数据管理,而无需进行颠覆性改变。
向数据资产所有者推荐:人工智能视角
LLM 可以分析使用模式和访问权限,以推荐最合适的数据资产所有者。此过程涉及分析谁经常访问和修改数据资产、谁拥有必要的权限以及谁根据其角色或过去的项目拥有相关专业知识。
例如,如果某个用户经常访问和更新数据资产,并且他们在组织中的角色与数据的性质相符,LLM 可能会推荐他们作为数据资产所有者。然后,数据管理员或经理可以审查和批准此建议,确保最终决策由人参与。
这种由人工智能驱动的数据资产所有权分配方法可确保问责制并促进负责任的数据管理。它还有助于保持数据治理框架的最新状态,因为随着角色的变化或新数据资产的创建,可以重新评估和更新数据资产所有权。这不仅可以提高数据治理流程的效率,还可以确保数据资产由最合适的个人管理,从而提高数据质量和信任度。
保护数据:自动审查访问和策略
LLM 可以解释安全策略,使其能够自动审查和标记潜在的访问违规行为。这涉及分析用户角色、访问模式和数据资产的敏感度,以确定访问权限是否符合既定的安全策略。
例如,如果用户的角色通常不需要访问敏感数据资产,但用户经常访问它,LLM 可能会将此标记为潜在违规行为。同样,LLM 可以根据观察到的访问模式和不断变化的业务需求建议修改安全策略。
这种主动方法不仅可以增强数据安全性和合规性,还有助于维护最小权限原则,确保用户只能访问他们需要的数据。通过自动审查访问权限和策略,我们可以在不断变化的数据格局和监管要求下维护强大而安全的数据治理框架。
语境感知翻译:利用人工智能跨越语言障碍
在数据治理领域,语言障碍可能带来重大挑战,尤其是对于在不同地区运营的全球组织而言。这时大语言模型 (LLM) 的强大功能便得以发挥,它能够实现超越逐字逐句翻译的上下文感知翻译。通过理解文本的上下文,大语言模型 (LLM) 可以提供更准确、更有意义的翻译,确保保留原文的本质和细微差别。例如,大语言模型 (LLM) 可以将复杂的技术定义翻译成多种语言,同时保持技术术语和概念的完整性并考虑任何必要的元数据。这种能力可以显著增强组织内的跨文化协作和理解,使数据治理更具包容性和有效性。
通过自动定义丰富词汇表术语
基于我们之前的工作,我们可以扩展 LLM 的使用范围,为大量词汇表术语生成定义和其他类型的元数据。利用 OpenAI API 自动填充术语定义,不仅减少了数据管理员所需的手动工作量,而且还确保了整个组织的一致理解。
自动实体链接:连接术语和数据资产
大型语言模型在数据治理中最强大的应用之一是自动实体链接。此过程涉及识别词汇表术语和数据资产之间的相关联系,从而创建更全面、更互联的数据治理框架。
通过自动实体链接,LLM 可以分析数据资产的上下文和内容,并将其链接到适当的词汇表术语。这不仅可以增强数据资产的元数据,还可以通过现实世界的示例和应用丰富词汇表术语。
例如,包含客户交易信息的数据资产可以自动链接到“客户 ID”、“交易金额”或“购买日期”等词汇表术语。这为词汇表术语的理论定义与其在数据资产中的实际实施提供了直接联系。
这种自动化程度大大减少了维护和更新这些链接所需的人工工作量,确保数据治理框架在创建新数据资产和更新现有数据资产时保持最新和相关性。此外,它还为用户提供了对其数据格局的更全面了解,促进更有效、更明智的数据使用和决策。
追溯血统:从代码到见解
LLM 可以理解代码,这项技能可以用来识别自定义应用程序的血统。这可以简化跨管道和记录来跟踪数据转换的复杂任务。
例如,考虑一个 SQL 存储过程,它从多个表中提取数据,执行转换,然后将结果加载到另一个表中。传统上,了解此过程的沿袭需要手动检查代码并深入了解数据库架构。
CREATE PROCEDURE update_customer_orders AS BEGIN -- 从 Customers 和 Orders 表中提取数据 SELECT Customers.CustomerName, Orders.OrderID INTO #TempTable FROM Customers JOIN Orders ON Customers.CustomerID = Orders.CustomerID; -- 对数据执行转换 UPDATE #TempTable SET CustomerName = UPPER (CustomerName); -- 将结果加载到 CustomerOrders 表中 INSERT INTO CustomerOrders(CustomerName, OrderID) SELECT CustomerName, OrderID FROM #TempTable; DROP TABLE #TempTable; END ;
以下是 Azure OpenAI 如何提取血缘信息并以 JSON 格式呈现的示例:
{ “Stored_Procedure” :“update_customer_orders” , “Data_Sources” :[ { “表” :“客户” , “字段” :[ “客户名称” , “客户ID” ] } , { “表” :“订单” , “字段” :[ “订单ID” , “客户ID” ] } ] , “转换” :[ { “操作” :“UPPER” , “字段” :“客户名称” , “Source_Table” :“#TempTable” } ] , “Data_Destination” :{ “表” :“客户订单” , “字段” :[ “客户名称” , “订单ID” ] } }
借助 LLM,我们可以自动化此过程。该模型可以读取和理解任何类型的代码,识别正在访问哪些表、正在应用哪些转换以及结果存储在何处。然后,它可以生成数据沿袭的人类可读描述,甚至可以生成显示数据流的可视化图表。
自动沿袭跟踪,特别是在许多基于代码的操作等无法直接提取沿袭的场景中,可以改变数据治理的游戏规则。虽然目前的工具擅长跟踪结构化、基于模式的数据源中的沿袭,但它们通常难以处理基于代码的操作,如存储过程、脚本或自定义应用程序。利用 LLM 的强大功能可以弥补这一差距,减少手动工作量并确保随着代码的演变而准确跟踪沿袭。这种全面的数据沿袭方法涵盖基于模式和基于代码的数据操作,是数据治理 3.0 的一个关键方面,可提供完整而准确的数据整体视图。
整理数据资产:人工智能驱动的方法
LLM 可以分析和生成数据资产的描述性元数据,从而改变我们管理数据的方式。这涉及了解数据资产的内容、背景和用途,然后生成相关元数据,例如定义、摘要、关键字或标签。
例如,大语言模型 (LLM) 可以分析客户交易数据集,识别交易日期范围、最常见的交易类型和平均交易金额等关键特征,然后为数据集生成摘要描述和相关标签。
这种自动化的管理流程不仅减少了数据管理所需的人工工作量,还提高了数据资产的可发现性。通过生成丰富、准确且最新的元数据,LLM 使用户更容易搜索和发现相关数据,从而提高数据可访问性并促进数据驱动的决策。
对齐本体:人工智能桥梁
LLM 可以协调组织内的不同本体或分类法,这项任务在医疗保健、制造业、金融等领域至关重要,因为这些领域经常使用多个复杂的本体。
在医疗保健领域,组织可能会在不同的系统中同时使用医学系统命名法 - 临床术语 (SNOMED CT) 和逻辑观察标识符名称和代码 (LOINC)。LLM 可以识别这些本体中的术语之间的等价性,例如 LOINC 代码“2160-0”和 SNOMED CT 代码“27113001”,均指“血清肌酐”。
在制造业中,本体可能包含针对零件和工艺的不同分类系统。例如,一个系统可能将某个零件分类为“螺栓,六角,M8,钢制”,而另一个系统将同一零件称为“钢制六角螺栓,8 毫米”。大语言模型可以理解这些术语指的是同一零件,并将它们排列在统一的本体中。
在金融领域,不同的系统可能会对相同的金融概念使用不同的术语,例如“净收入”、“净收益”。LLM 可以将这些术语视为等同术语,并在统一的本体中对其进行对齐。
这种无缝集成提供了数据环境的一致视图,增强了数据互操作性。它确保所有系统中都一致地引用相同的概念,从而减少混乱并提高数据分析和报告的准确性。通过自动化本体对齐过程,LLM 可以帮助各个部门的组织更有效地管理其数据,从而做出更明智的决策并改善结果。
超越关键词:语义搜索时代
LLM 可以在数据治理工具中启用语义搜索功能。这使用户能够根据查询的含义和上下文找到相关的数据资产,从而超越基于关键字的搜索的限制。
为了让这些概念变得生动,让我们深入研究一个非常简单的例子,了解如何通过 Atlas API 将任何问题转换为搜索查询,并根据 API 响应生成答案。
LLM 可在数据治理工具中启用语义搜索功能,开启数据发现的新时代。与传统的基于关键字的搜索(仅查找搜索词的精确匹配)不同,语义搜索可以理解查询的含义和上下文。这样,即使用户不知道这些资产中使用的确切术语,他们也可以找到相关的数据资产。
假设有用户查询“我们的销售数据库中与‘CustomerID’列关联的业务术语表定义是什么?”在传统的基于关键字的搜索中,系统可能很难返回有意义的结果。但是,由 LLM 提供支持的语义搜索可以理解用户正在寻找与特定数据资产关联的业务术语表术语。然后,它可以查询销售数据库中的‘CustomerID’列的数据治理工具,找到关联的业务术语表术语,并返回其定义。
为了将这些概念付诸实践,让我们深入研究一个非常简单的示例,说明如何通过 Atlas API 将任何问题转换为搜索查询,并根据 API 响应生成答案。这种方法利用 LLM 的强大功能来理解用户的意图,将该意图转化为 API 可以理解的查询,然后解释 API 响应以生成用户友好的答案。
导入streamlit作为st 导入pandas作为pd 导入openai 导入请求 导入json 从azure.purview.catalog导入PurviewCatalogClient 从azure.purview.administration.account导入PurviewAccountClient 从azure.identity导入ClientSecretCredential 从azure.core.exceptions导入HttpResponseError 导入os openai.api_key = os.environ.get( 'OPENAI_API_KEY' ) openai.api_base = os.environ.get( 'OPENAI_API_ENDPOINT' ) # 您的端点应如下所示 https://YOUR_RESOURCE_NAME.openai.azure.com/ openai.api_type = 'azure' openai.api_version = "2023-03-15-preview" # 这可能会在未来发生变化 deploy_id= 'gpt4-8k' # 这将对应于您在部署时为部署选择的自定义名称一个模型。 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) 返回凭据 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 ( "提取术语搜索" ) system_message = "您是一位助手,会将问题转换为关键字搜索,然后在 Microsoft Purview 环境中执行。" prompt = “给出以下问题,请提供您将用来通过使用 Microsoft Purview Search API 端点进行搜索来查找问题答案的搜索词。问题是:'” +question+ “'” terms = ask_gpt4(deployment_id,system_message,prompt) 返回术语 def generate_answer(question,context): print(“根据 Purview 搜索生成问题的答案”) prompt = “”给出以下问题和上下文(json 格式),请生成问题的答案。仅根据提供的上下文参考您提供的数据资产或术语来回答。如果有潜在的答案,请列出所有答案。 问题:{question} 上下文:{context} 记住仅根据您提供的上下文回答并引用该上下文!“””。格式(问题=问题,上下文=上下文) system_message = “您是一名助手,您将仅根据通过 API 提供的信息来回答一些问题。” result = ask_gpt4(deployment_id, system_message, prompt) 返回结果 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 = { “关键字”:search_terms } context = purview_catalog_client.discovery.query(search_request = body_input) 打印(context) 响应 = generate_answer(question,context) 打印(response) st.write('结果:',response) 除了HttpResponseError作为e: 打印(e)
接下来您将看到 Streamlit 应用程序的搜索屏幕截图:
与数据对话:
想象一下,与数据治理工具的互动就像与同事的互动一样。随着 LLM 的整合,这不再是一个未来的梦想,而是现实。LLM 可以为聊天机器人或语音助手等对话界面提供支持,使用户能够使用自然语言与数据治理工具互动。
例如,用户可以询问聊天机器人,“我们的销售数据库中‘CustomerID’字段的定义是什么?”或“谁有权访问我们的财务数据?”。由大语言模型提供支持的聊天机器人可以理解问题,查询数据治理工具,并以自然语言返回清晰、简洁的答案。
这可以通过导出实例的备份并将该数据索引到认知搜索中并利用其中一个存储库来轻松实现。
这种转换可以通过一个简单的过程实现,该过程利用工具套件的功能。首先,您将导出实例的备份。此备份将包含收集和组织的所有有价值的元数据和数据目录信息。
接下来,您将这些数据索引到认知搜索中,这是一项功能强大的 AI 搜索服务,可让您以多种方式搜索这些复杂的结构化和非结构化数据。认知搜索可以处理自然语言查询,使其成为与大型语言模型集成的理想平台。
最后,为了简化此过程并确保最佳实践,您可以利用存储库之一。这些加速器是预先构建的解决方案,旨在帮助您快速启动和实施项目。它们提供代码示例、脚本和其他资源,可以显著加快开发和部署速度。
通过遵循这些步骤,您可以创建一个强大的、由人工智能驱动的数据治理工具,该工具可以理解和响应自然语言查询,从而使所有用户(无论其技术专长如何)都可以更轻松地访问和使用数据治理。
这种对话式方法使数据治理更加民主化,使其更易于访问和用户友好。它允许用户以更直观和自然的方式与数据治理工具交互,从而缩短学习曲线,并使非技术用户更容易找到所需的信息。通过将自然语言处理的强大功能引入数据治理,我们可以使数据治理成为日常业务运营中更不可或缺的一部分。
结论
治理 3.0 由大型语言模型和创新数据目录解决方案提供支持,可以改变组织管理和治理数据的方式。随着我们的前进,我们可以期待数据治理继续发展,利用 LLM 和其他先进技术来满足组织不断变化的数据治理需求。