业务理解与数据表现的不一致,过去主要靠数据分析师的逻辑思维能力和严谨态度,无法保证执行的统一性。借助大模型能力和领域模型,有可能在如下几个方面提升。
1)领域模型约束关系检查代码的自动生成:根据领域模型中各个对象基数关系和明确的约束条件,转化为对应的数据分析代码,提升业务理解在数据上的验证效率。
2)领域对象基数关系的自动统计:包括业务主键(组合)基数关系的统计(类似上节讨论)或则数据表业务主键分布的统计(例如,生产日报中包括多少口I、P井的记录),数据分析师研判其中的“概念冲突”。
3)隐性假设的明确化:根据过去大量的数据分析报告,总结常见的隐性假设,结合当前的领域模型,生成提示上下文,大模型给出当前领域模型潜在的隐形假设列表。但这一步从技术很难,因为很多隐形假设(例如,上面例子中“生产日报表中只有P井”)假设和冲突没有特定规律,通常是分析师在数据探索中无意发现的。
文献[3]讨论了基于约束描述的数据质量检查方法,多个表之间检查基数关系、层次性关系、合并前后的记录数,时序数据检查时间或时间间隔(time interval)字段间的关系。这些方法是一些指导原则,仍需要数据分析师分解检查逻辑与代码。
根据领域模型自动生成检查逻辑,对于大模型来说有一定难度。但分析师在列出约束后,大模型可以生成检查代码,在一定程度上也能部分降低分析师的工作量(很多重复性的代码人工编写难度不大,但耗费大量精力)。
在数据探索过程中,不时会发现一些异常案例(通常比例比较低),但很多时候没有及时系统性总结。例如,一口井的人工功图测量一般3~6个月进行一次,但在过去10年的5万多条人工功图中,存在一口井在某天存在2条内容不完全重叠的记录。很多这样的处理逻辑分散在不同文档和代码注释中,系统性梳理工作很大。
另外,在探索中发现的数据质量问题后,数据分析师通常会就地写代码解决掉。但后期交流总结时,通常需要给出一些质量问题的案例,数据分析师需要花费一定代价写代码重新查找。有了大模型,在一定的代码注释规范下,数据质量案例可以实现智能抽取,形成合适的文档。
以R语言分析中常用的RMarkdown文件格式为例,探索中发现的异常质量个例,可以在文档中用特别的标记符号标记,将数据存为约定的RData文件,并附加注释文字(大模型可以扩展为完整语句)、图表代码。这样后续程序可以按照约定的规范,从原始RMarkdown抽取案例片段,构成新的RMarkdown文件。