大语言模型在数仓数据治理上的落地实践
随着数据规模的不断增长和业务需求的日益复杂,数据仓库(Data Warehouse)的建设和管理变得越来越重要,数据治理也成为数据仓库建设中不可忽视的一环。其中数仓元数据和指标是对数据的描述和度量,对于数据分析和决策起着至关重要的作用。然而,由于数据规模庞大且复杂,传统的元数据和指标检索方法往往效率低下,无法满足快速、准确地检索需求。本文将介绍如何利用大型语言模型技术在数仓元数据和指标检索治理上进行落地实践,包括技术架构、详细的技术说明以及解决的问题。
1.实践的背景
在现有的系统工具中,我们已经建设过了指标管理系统,元数据系统,ide用户查询平台等多项数据工具。传统平台更多的是工具性的支持,用户有目的输入,系统检索返回结果。这种形式容易形成信息孤岛,因为元数据系统就是元数据信息,指标管理就是指标信息,用户更多的时候是希望可以进行融合,来解答业务上的问题。
大语言模型是一种基于Transformer模型的自然语言处理技术。它通过大规模的预训练来学习语言模型,然后可以在各种任务上进行微调,以实现更具体的应用。大语言模型具有强大的语义理解和生成能力,可以根据输入的自然语言文本生成相关的回答。它可以在现有应用系统上充当粘合剂,将不同系统的信息有机地组合起来提供给用户。因此,我们决定通过大语言模型来处理我们目前的解决场景,以满足我们的需求。
2.技术架构
2.1检索语料入仓
通过与元数据系统和指标管理系统的对接,您可以将需要咨询的内容接入数仓进行存储和管理。在数仓中,语料内容以语料短语和详情信息组成的kv对的形式进行组织,形成初始的索引信息。
索引信息的组织形式可以根据具体的需求和数据结构进行设计。一种常见的方式是使用表名作为key,表结构作为value。这样可以方便地根据表名进行索引查询,快速找到相关的语料内容。
另一种方式是使用指标名称作为key,指标说明和生成规则描述作为value。这种方式适用于需要根据指标进行咨询的场景。通过将指标信息作为索引的一部分,可以方便地根据指标名称进行检索,快速找到与指标相关的语料内容。
通过与元数据系统和指标管理系统的对接,您可以获取到更多的元数据信息和指标定义。这些信息可以作为语料内容的补充说明,丰富语料的详情信息。同时,您可以将这些信息与语料短语一起存储在数仓中,以便后续的索引接入和咨询检索。
2.2语料向量化处理
在完成语料组装后,我们采用了Milvus向量库来对语料内容进行向量化处理。这种处理方式的好处在于,通过将语料内容转化为向量表示,我们可以避免明文匹配中的完全匹配或模糊匹配方式所带来的匹配范围缩小问题。因为用户的语言变化情况非常多样化,直接使用明文匹配可能无法涵盖所有变化的情况。
通过向量化处理,我们将语料内容映射到一个高维向量空间中。在这个向量空间中,每个语料内容都被表示为一个向量,而这些向量之间的距离可以用来衡量它们之间的相似度。这样一来,我们可以通过向量匹配的方式,找到与用户输入最接近的语料内容。
向量化处理的另一个好处是可以避免语言上的各种修饰词所带来的干扰。修饰词通常是一些形容词、副词或其他语言上的修饰性语句,它们在明文匹配中可能会导致匹配结果的偏差。但是通过向量化处理,我们将语料内容转化为数值向量,这些向量能够更准确地反映语料内容的语义信息,而不受修饰词的影响。
2.3大语言模型接入
在用户咨询的过程中,将对话内容也进行向量化处理,可以用于与结果进行匹配。通过这种方式,我们可以根据向量的相似度来找到与用户咨询内容最相关的语料内容。
通常情况下,用户在输入咨询内容时,可能只会描述很少的语言,但这些描述往往是重点突出的。因此,通过向量化处理,可以将这些关键信息编码为向量表示。向量化的过程可以使用各种技术,将文本转化为数值向量。这样一来,我们可以通过计算向量之间的相似度,找到与用户输入内容最相似的语料内容。
当找到匹配结果后,可以根据向量分值对结果进行排序处理。向量分值可以反映匹配的程度,较高的分值表示匹配度较好。通过对结果进行排序,我们可以将匹配度较高的语料内容排在前面,提供给用户更相关的咨询答案。
一旦确定了匹配结果,就可以将这些语料召回,将内容送入大语言模型提供的接口进行组装。模型会根据输入内容生成连贯、自然的回答。通过将匹配结果与大语言模型结合,我们可以将相关的语料内容转化为更具体、详细的回答,提供给用户更专业、准确的咨询服务。
2.4前端应用部署
在选择前端环境时,我们考虑了原有的两套系统以及其他综合性平台,但没有找到合适的入口和理由来让用户接触和使用这些系统。最后,我们决定将系统结合到IDE用户查询平台中。对于使用SQL查询信息的用户,他们经常需要了解指标的含义、用法以及表的元数据信息。这些用户主要分布在数分、产品、运营、算法等不同的小组。他们是目前最符合我们的使用场景的切入点。
通过将系统整合到IDE用户查询平台中,我们可以为这些用户提供一个统一的界面和入口,使他们可以方便地查询和了解指标的相关信息。用户可以在查询平台中输入SQL语句,并获取到与指标相关的详细信息,包括指标的定义、计算方法、使用示例以及表的元数据信息等。这样一来,用户可以在一个平台上完成查询和了解指标的操作,无需切换多个系统。同时,用户可以通过查询平台获取到准确、全面的指标信息,帮助他们更好地理解和使用指标,提高工作效率。
总体框架图:
3.应用效果
通过大语言模型在数仓治理中元数据和指标检索方面的落地实践,我们解决了以下几个问题:
提高检索效率:传统的元数据和指标检索方法往往需要复杂的查询语句和繁琐的操作,效率低下。而利用大语言模型技术,用户只需输入自然语言的查询问题,系统可以快速地返回相应的结果,大大提高了检索效率。
提升检索准确性:传统的元数据和指标检索方法容易受到查询语句表达不准确的影响,导致返回的结果不准确。而大语言模型具有强大的语义理解和推理能力,可以更好地理解用户的查询意图,提高检索结果的准确性。
提供更好的用户体验:传统的元数据和指标检索方法需要用户具备一定的技术背景和操作经验,对于非专业人士来说较为困难。而利用大语言模型技术,用户只需输入自然语言的查询问题,无需了解复杂的查询语法和操作步骤,大大提高了用户的使用体验。总结:通过大语言模型的技术支持,我们可以实现更智能、便捷的元数据和指标管理。它能够理解自然语言输入,并根据用户需求提供相关的元数据和指标信息。这种智能化的能力使得数据操作和数据分析更加高效和准确。通过大语言模型的支持,我们可以更好地管理和利用数据仓库中的元数据和指标,提升数据治理和数据分析的水平。希望本文对您有所帮助,谢谢!