自生成系统 (SGS) 及其与 AI 模型的集成

社区文章 发布于2024年9月20日

事物之伟大与渺小,不仅在于命运与境遇之所为,亦在于其所依之概念。——科兹马·普鲁特科夫 [2]

本文首先探讨了约翰·冯·诺依曼提出的自我复制自动机概念(参见 [1])。根据维基百科条目 [15],关于自我复制自动机的初步研究可追溯到 1940 年。80 多年以来,该研究领域取得了显著进展,使我们离实现能够自我复制的系统(我们称之为自生成系统,SGS)更近了一步。

本文的目的是通过开发一个 Metadatum SGS 来展示一个概念验证。Metadatum 是一个元数据管理系统,它利用 Julia 和 Neo4J 图数据库作为其操作环境。

0. 约翰·冯·诺依曼自我复制理论导论

约翰·冯·诺依曼的自我复制系统概念出奇地直接。想象一个由三个不同模块组成的系统:ABC

alt text

模块 A 作为通用构造器,能够根据提供的蓝图或模式创建任何实体。模块 B 作为通用复制器,能够复制任何实体的详细蓝图或复制实体实例。模块 C,即通用控制器,通过激活模块 AB 来启动一个永无止境的自我复制循环。

image/png

图 2.

自我复制过程从模块 C 开始,从而从原始系统 0 创建一个相同的系统 1。这个新系统同样能够按照相同的算法启动其自身的自我复制循环。从这个分析中,我们得出几个关键见解。

首先,自我复制算法足够通用,可以在各种平台上实现。

其次,模块 C 的无限循环可以编排自我复制过程。

最后,该算法代表了系统升级自动化或自我升级的理论框架。然而,其基本形式的自我复制系统仅仅是克隆自身。为了增强其效用,引入了第四个模块,模块 D。该模块能够与系统环境交互并访问其资源,有效地充当由模块 ABC 组成的操作系统中的应用程序。

image/png

图 3.

此外,还引入了一个用于存储模块描述的特殊单元,称为系统描述。这种升级后的自我复制过程,在随后的图中描述,涉及创建每个模块描述(A、B、C、D)的副本以及系统描述单元。这导致了升级系统版本的创建,然后替换旧版本,从而实现了系统的新迭代。

image/png

图 4.

这种增强模型与约翰·冯·诺依曼的原始概念不同,它引入了一个用于系统描述的专用单元,允许系统通过模块 D 与其环境交互,并修改模块 B 的作用,使其仅与系统描述协同工作。尽管取得了这些进步,但第一个自我复制系统的初始创建仍然是一个未解决的“鸡生蛋,蛋生鸡”的困境。然而,当我们在这个抽象模型和软件系统之间进行类比时,我们看到了将自我复制应用于管理软件应用程序生命周期的机会。

image/png

图 5.

在软件术语中,模块 ABC 可以代表促进持续服务流程的引擎,例如数据库引擎、服务器或运行时环境。模块 A 可以充当编译器或解释器,根据源代码生成进程。模块 B 可以支持反射、序列化和数据缓冲,确保系统持久性并实现开发、演进和备份。模块 D 将代表应用程序软件,促进用户与环境的交互。最终,将自生成系统 (SGS) 视为标准化和自动化软件应用程序开发周期(从开发到测试,再到从测试到生产)的手段,为自主软件开发开辟了令人兴奋的可能性。本文的目的是在元数据管理系统中使用 SGS 概念来分析社会经济系统。

1. 元数据简介

元数据本质上是关于信息的信息。它包含任何可以存储在计算机上的数字内容,包括文档、数据库、图像、视频、音频文件和传感器信号。从元数据的角度来看,所有这些形式的数据都得到同等对待,并具有相同的意义。

image/png

那么,关于元数据的元数据概念,又能说些什么呢?本质上,元数据是指关于数据的数据。因此,当我们讨论从元数据派生的元数据时,我们实际上讨论的是同一个实体。

这一点至关重要。我们建议通过单一元数据系统管理原始数据的元数据和元数据的元数据。这种方法在图中以视觉方式表示,我们描绘了元数据循环自闭。

此外,我们描述了正在进行的元数据生成过程,该过程随着时间的推移从初始数据和以前创建的元数据中演变。这个循环过程突出了元数据生成的动态和迭代性质。

image/png

通过统计观测将社会经济系统 (SES) 映射整合到统计信息系统 (SIS) 中,然后将 SIS 映射到元数据中,我们可以开发一个全面且通用的方案。

image/png

该图描绘了 SES SIS 和 SIS(元数据),清晰地展示了它如何维护所显示系统中的完整性和结构关系,正如之前所讨论的。

对于元数据,它涵盖所有形式的数据。对于这些数据集,必须创建描述性元数据元素并在这些元素之间建立连接。

从概念上讲,元数据可以被可视化为一张图。在这张图中,元数据元素被描绘为节点,而这些元素之间的链接则由图的边表示。这种结构有助于元数据的全面和相互关联表示,增强了对统计信息的理解和利用。

2. HllSet

(如果一个东西看起来像鸭子,走起来像鸭子,叫起来像鸭子,那么它很可能就是一只鸭子。)

HllSets 是一种基于 Philippe Flajolet、Éric Fusy、Olivier Gandouet 和 Frédéric Meunier [6] 开发的 HyperLogLog 算法的数据结构。我们通过开发一种数据结构,显著地改进了这种方法,该数据结构在保持原始 HyperLogLog 结构紧凑性的同时,支持集合论的所有标准属性。在 [3] 文章中,我们证明了 HllSets 遵循集合论的所有基本属性。

HllSets 遵循的基本属性如下:交换律

  1. (A ∪ B) = (B ∪ A)
  2. (A ∩ B) = (B ∩ A)

结合律

  1. (A ∪ B) ∪ C) = (A ∪ (B ∪ C))
  2. (A ∩ B) ∩ C) = (A ∩ (B ∩ C))

分配律

  1. ((A ∪ B) ∩ C) = (A ∩ C) ∪ (B ∩ C)
  2. ((A ∩ B) ∪ C) = (A ∪ C) ∩ (B ∪ C)

恒等式

  1. (A ∪ ∅) = A
  2. (A ∩ U) = A

除了这些基本属性外,HllSets 还满足以下附加定律

幂等律

  1. (A ∪ A) = A
  2. (A ∩ U) = A

要查看证明 HllSets 满足所有这些要求的源代码,请参阅 hll_sets.ipynb [8]。

3. 生命周期、事务和提交

如果所有过去都成为现在,而现在又与未来并存,那么谁能辨别:何为因,何为果?——科兹马·普鲁特科夫 [2]

本节将深入探讨对于将 SGS 开发为编程系统至关重要的一些关键技术细节。

3.1. 事务

在本节中,我们使用“事务”索引(或者,如果我们讨论的是数据库,则为事务表 - t_table)来替代第 0 章自我复制图中的系统描述(参见图 5)。以下是概述 Metadatum SGS 中处理外部数据流程的流程图。 image/png 图 5。

模块 D 从系统环境获取输入,并通过在“事务”索引中生成记录来记录这些输入。同时,模块 A 在模块 B(复制器)的协助下,从“事务”索引中检索这些引用。然后,它通过调用适当的处理器来处理这些引用,随后将处理后的数据上传回系统。

需要注意的是,SGS 从不将传入数据直接发送到系统。相反,它首先使用“事务”索引中的引用将所有传入数据逻辑上分离到暂存区。

这种方法帮助我们实现几个目标

  1. 明确区分系统中已有的数据和新数据。
  2. 完全控制新数据处理,使我们能够跟踪已完成任务和待处理工作。它还促进了对并行处理和故障恢复的支持。
  3. 能够隔离不支持的数据类型。
  4. 严格遵守第 0 章中概述的自我复制流程。

3.2. 提交

SGS(自生成系统)中,每个实体实例都归类于三个主要提交状态之一,这些状态对于跟踪修改至关重要。这些状态如下

  1. Head:此状态表示实体实例代表最新的修改。
  2. Tail:具有此状态的实例被识别为先前的修改,表示它不是最新版本。
  3. Deleted:此状态分配给已标记为从系统中删除的实例。

为了更好地理解提交状态如何运作,请考虑以下插图。图表将修改的时间线可视化,从最顶部(当前时间)开始,向下发展到最底部(最早时间)。

当前时间image/png 上次提交时间。请注意 item_2 的更新版本如何将其在第 2 行的提交状态从其原始状态更改。 image/png 初始提交时间image/png 实质上,系统中的每个提交都带有其独特的“提交森林”,通过不同的矩阵来描绘。对于每个提交,都有一个指定的矩阵。然而,无需担心——这些矩阵是虚拟的。它们无需物理存在,因为我们可以根据需要生成它们。

在时间 = 1,我们观察到三个项目:item_1、item_2 和 item_4,所有这些项目都标记为“head”状态,表明它们的当前和活动状态。

到时间 = 2,item_2 发生了变化。因此,此时 SGS 中出现了 item_2 的新版本,引入了一个新元素。这个新版本也标记为“head”状态,而旧版本的状态则切换为“tail”,表明它现在是一个历史条目。

更新是一个有条不紊的过程,包括几个步骤

  • 创建要更新项目的新版本;
  • 对新版本应用所需的修改;
  • 保存这些更改;
  • 在新版本和旧版本之间建立连接。

到时间 = 3,另外两个元素——item_5 和 item_6——被引入并类似地标记为“head”状态。

SGS 中这种提交机制描绘了系统演变的故事。SGS 内的每次自我复制循环都会为这本“历史书”添加新的章节,并链接回每次提交时的系统快照。

在这本“历史书”中,我们区分“head”和“tail”。“head”代表 SGS 的即时记忆和当前状态,而“tail”则充当档案。尽管仍然可访问,但从“tail”检索信息需要额外的步骤。

提交历史记录充当自生成系统的内在时间轴,类似于生物体中的生物时间。

3.3. 静态与动态元数据结构

数据是真实世界的镜子,而元数据作为数据的抽象,则是真实世界的映像。 image/png

这些观察建立在这样一个基本信念之上:真实世界的复杂性与我们数据集中的元素之间存在直接对应关系。在这里,每个数据片段本质上都是一个值及其相关属性的组合。当我们基于数据及其元数据,并根据数据元素之间的相似性定义关联关系时,我们处理的是所谓的静态数据结构。“静态”一词意味着这些关系是固定的;它们保持不变,并且只要数据元素使用相同的属性进行描述,就可以复制。现代数据库擅长映射这些类型的关系。

尽管如此,数据分析的主要目标是发现数据元素之间隐藏的联系,从而揭示真实世界中类似的关联。这项工作的前提是,我们在数据中发现的关系在某种程度上反映了真实世界中的关系。然而,这些联系并非一目了然——它们是隐藏的和瞬态的,在特定条件下才会出现。随着情况的变化,真实世界元素之间的关系也会随之变化,这要求我们更新数据结构以准确反映这些变化。这引导我们进入动态数据结构的概念。

动态数据结构产生于数据分析过程,并通过各种分析模型(包括机器学习或人工智能)进行促进。广义上讲,分析模型包含算法、源数据和结果数据。这些模型形成的关系是短暂的,可能没有真实的对应物。通常,它们代表分析师对真实世界复杂性的主观解释。这些模型生成的关系构成了动态数据结构。

动态数据结构的性质本质上是流动的——昨天被认为是准确的关系今天可能不再成立。不同的模型在相关性方面会有所不同,分析师的主要挑战是选择最适合当前真实世界场景和所考虑特定方面的模型。

SGS AI 架构

为了充分理解本节中讨论的概念和解决方案,有必要重新审视附录 2 中提供的 SGS 关键构建块的定义。

下图展示了集成了大型语言模型 (LLM) 的自生成系统 (SGS) 的高级架构。该表示突出了将 AI 模型,特别是 LLM,以即插即用方式无缝且非侵入性地集成到 SGS 框架中的方法。值得注意的是,元数据模型 (MM) 和大型语言模型 (LLM) 都从共享的标记化过程中接收输入。这种共同性确保两个组件处理相同的基础数据,从而促进高效和连贯的系统性能。这种集成示例说明了如何将现代 AI 组件有效地融入更广泛的系统以增强功能和适应性。

image/png

下面呈现的下一张图表说明了元数据模型 (MM) 和大型语言模型 (LLM) 之间的自然共生关系,展示了它们如何在系统中有效地相互补充。正如所观察到的,MM 作用于获取的数据,并主要利用分析工具和技术,包括应用高级集合操作 (HllSet)。这些模型本质上更接地气,专注于从具体数据洞察中得出的现实、务实的结果。

相比之下,LLM,像其他 AI 模型一样,依赖于通过利用它们对其领域内元素之间关系的深入理解来合成新想法。这些模型的特点是其创造性和理想主义,经常产生创新但有时不切实际的输出,甚至容易产生幻觉结果。

正如图表所强调的,MM 在平衡 LLM 的创造性过剩方面发挥着关键作用。通过施加合理的约束,MM 可以驾驭和提炼 LLM 的想象力输出,使其立足于实际。这种相互作用确保了两个模型的优势都得到充分利用,将创造力与现实相结合,以产生健壮、可靠和有用的结果。这种共生关系不仅增强了每个模型的功能,而且显著提高了它们所集成系统的整体效率。

image/png

MM:寻找差异。HyperLogLog 哈希 (HllSets)。MM 领域:本质上是分析性的,建立在 HllSet 操作之上。

MM 领域本质上是分析性的,它依赖于结构化方法来理解和操作数据。元数据模型充当指导生成过程的显式约束。通过 HllSet 操作(利用 HyperLogLog 哈希),MM 提供了一个框架,用于高效地汇总大型数据集,同时保持基数(不同元素的数量)表示的准确性。

HllSets 允许快速计算概率基数,使 MM 领域能够分析数据集之间的差异。这种分析视角强调了理解数据细微差别和变异的重要性,这对于数据去重、异常检测和聚类等任务至关重要。元数据模型施加的约束确保生成过程保持集中和相关,从而能够创建连贯且上下文适当的输出。

LLM:寻找共性。注意就是你所需要的一切。LLM 领域:本质上是合成的,建立在组合生成之上。

LLM 领域本质上是合成的,侧重于识别共性而非差异。LLM 以注意力机制原理为基础,利用大量文本数据通过组合生成来生成类人文本。这种方法使 LLM 能够从不同来源合成信息,根据训练期间学习到的模式创建连贯的叙述或响应。

MM 强调分析性差异,而 LLM 则力求在数据集之间建立连接和相似性。这种合成是由模型关注输入数据不同部分的能力驱动的,这使其能够将不相关的信息编织成统一的输出。然而,这种组合生成过程并非没有挑战;它需要仔细校准以确保生成的内容保持相关性和意义。

元数据模型作为约束的作用

将元数据模型集成到 LLM 的生成过程中,可以通过提供结构化框架来指导信息合成,从而增强其有效性。通过施加明确的约束,元数据模型可以帮助缓解与一致性和相关性相关的问题,确保 LLM 生成的输出符合预期应用程序的所需特性。

例如,在寻求创建个性化推荐的自生成系统中,元数据模型可以定义用户偏好和上下文信息等参数。这些约束可以指导 LLM 合成不仅相关而且适合用户特定需求的输出。

总而言之,自生成系统、元数据模型和大型语言模型之间的相互作用突出了分析和合成方法在生成有意义的输出方面的重要性。MM 强调通过 HllSet 操作实现显式约束的必要性,而 LLM 则侧重于通过注意力机制合成共性。通过整合这些范式,我们可以创建健壮的自生成系统,能够生成高质量、上下文相关的内容。

附录 1 中,您可以找到演示所提供概念实现的源代码。

自生成系统 (SGS) 及其与 AI 模型的集成摘要

本文探讨了自生成系统 (SGS) 的概念,其灵感来源于约翰·冯·诺依曼关于自我复制自动机的基础工作。

约翰·冯·诺依曼的自我复制理论描述了一个由四个模块组成的系统:A(通用构造器)、B(通用复制器)、C(通用控制器)和 D(环境交互模块)。这个增强系统允许自我复制并能够与其周围环境交互,为软件开发和生命周期管理中的实际应用铺平了道路。

本次探讨的核心是元数据的概念,它充当关于信息的信息。文章强调了通过统一系统管理原始数据的元数据和元数据的元数据的重要性,说明了元数据生成的循环性质。

HllSets 数据结构基于 HyperLogLog 算法,作为一种满足集合论基本属性同时促进高效数据分析的手段被引入。此外,文章还讨论了事务和提交在 SGS 中数据生命周期中的重要性,强调了这些机制如何实现有效的数据管理和历史跟踪。

SGS 与 AI 模型,特别是大型语言模型 (LLM) 的架构集成也得到了介绍。这种共生关系实现了元数据模型 (MM) 和 LLM 之间的无缝、非侵入式连接,利用两者的优势来生成更健壮和上下文相关的输出。MM 领域专注于分析性差异化,而 LLM 领域则强调合成生成,这使得它们的协作对于有效的数据处理至关重要。

所提供的代码演示了集成 SGS.ai 与各种 AI 模型的便捷性,强调了元数据与模型数据的同步。这种集成带来了几个优势

  1. 提高效率:自动化数据同步可最大限度地减少人工工作量并加速模型训练过程。
  2. 提高准确性:数据的持续更新确保 AI 模型反映真实世界的变化,从而提高输出的可靠性。
  3. 可伸缩性:SGS.ai 可以管理增加的数据负载,使其适用于任何规模的应用程序。
  4. 灵活性:该集成支持各种 AI 模型和数据类型,允许进行多样化的分析应用程序。
  5. 成本效益:简化数据管理可降低运营成本,使组织能够专注于创新。

总之,SGS.ai 与 AI 平台之间的协同作用,通过直接集成促进,增强了数据分析环境的整体功能和适应性。MM 和 LLM 方法之间的互补关系突出了创建强大、自生成系统(能够生成高质量、上下文相关内容)的潜力。

文章中提出的概念和优势,展示了 SGS 及其与 AI 技术集成的变革潜力。

附录 1

概念验证:使用安然电子邮件作为源的 SGS 模拟。逐日处理

初始化

您可以在 GitHub [16] 上找到所提供代码的完整文本。只有一个函数负责连接 AI 模型 SGS 元数据:function initialize_tokenizer()。此函数将引用传递给为 AI 模型服务的分词器,我们在此处使用它来为 SGS 元数据分词数据。

include("src/sgs_store.jl")

# Import necessary packages
using PyCall
using DataFrames
using Dates
using CSV

# Import the fine_tune_model and parse_decoded_strings functions from the Python script
py"""
import sys
sys.path.append(".")
from SGS_Transformers import BertTokenizerWrapper, RobertaTokenizerWrapper, GPT2TokenizerWrapper
"""

redis   = pyimport("redis")

# Define a function to initialize the tokenizer
function initialize_tokenizer()
    return py"RobertaTokenizerWrapper"()
end

# Define a function to filter the DataFrame by date
function filter_dataframe_by_date(df, date)
    return df[df.Date .== date, :]
end

# Define a function to process each column
function process_column(r, tokenizer, filtered_df, column, _parent, chunk_size)
    col_values  = filtered_df[:, column]
    col_sha1    = Util.sha1_union([_parent, string(column)])
    column_size = Base.summarysize(col_values)
    num_chunks  = ceil(Int, column_size / chunk_size)
    chunks      = Store.chunk_array(col_values, num_chunks)

    println(col_sha1, "; num_chunks: ", num_chunks)
    dataset = Store.ingest_df_column(r, tokenizer, chunks, col_sha1)
    dataset_vector = Vector{UInt32}(dataset)

    hll = HllSets.HllSet{10}()
    _hll = HllSets.restore!(hll, dataset_vector)
    
    println("hll: ", HllSets.id(_hll), "; ", HllSets.count(_hll))
    
    entity = Entity.Instance{10}(r, _hll)
    
    return entity
end

# Define a function to process the DataFrame
function process_dataframe(r, start, tokenizer, df, dates_vector, cols, _parent, chunk_size, threshold, batch)
    i = start
    while true && i < length(dates_vector)
        the_date = dates_vector[i]
        filtered_df = filter_dataframe_by_date(df, the_date)

        for column in cols
            entity = process_column(r, tokenizer, filtered_df, column, _parent, chunk_size)
            println("Current Date:", the_date)
        end

        i += 1
        # println("i = ", i)
        if i > threshold
            threshold += batch
            break
        end
    end
    return i, threshold
end
# Main function to run the demo
function main(csv_file_path::String, start, chunk_size, threshold, batch)
    # Initialize the tokenizer
    tokenizer = initialize_tokenizer()

    # Define other necessary variables
    r = redis.Redis(host="localhost", port=6379, db=0)  # Redis connection or other necessary setup
    df = DataFrame(CSV.File(csv_file_path, header=true, select=[:Date, :From, :To, :Subject, :content, :user]))
    # Reformat fields :Date, f:From, and :To
    df.Date = map(x -> Dates.format(Dates.DateTime(x, "yyyy-mm-dd HH:MM:SS"), "yyyy-mm-dd"), df.Date)
    df.From = map(x -> ismissing(x) ? "" : (isnothing(match(r"'([^']*)'", x)) ? "" : match(r"'([^']*)'", x).captures[1]), df.From)
    df.To   = map(x -> ismissing(x) ? "" : (isnothing(match(r"'([^']*)'", x)) ? "" : match(r"'([^']*)'", x).captures[1]), df.To)
    
    # Extract distinct dates from the Date column, order them in ascending order, and convert to a vector
    distinct_dates  = unique(df.Date)
    sorted_dates    = sort(distinct_dates)    
    dates_vector    = collect(sorted_dates)

    cols        = [:From, :To, :Subject, :content, :user]
    _parent     = csv_file_path
    chunk_size  = chunk_size
    threshold   = threshold
    batch       = batch

    # Process the DataFrame
    return process_dataframe(r, start, tokenizer, df, dates_vector, cols, _parent, chunk_size, threshold, batch)
end
csv_file_path = "/home/...../DATA/enron_05_17_2015_with_labels_v2.csv"
chunk_size = 512000
threshold = 10
batch = 10
start = 1
start, threshold = main(csv_file_path, start, chunk_size, threshold, batch)
start, threshold

如所提供的代码片段所示,将 SGS.ai 与各种 AI 模型集成非常简单。主要任务涉及将 SGS 元数据中的数据与特定 AI 模型中使用的数据同步。

附录 2.

SGS

  • 自我复制系统 (SRS):受约翰·冯·诺依曼工作启发的理论结构,指能够自我复制的系统。这些系统由能够自我复制的模块组成,从而实现持续的复制和演化循环。
  • 自生成系统 (SGS):自我复制系统的一个子类,旨在自动化和标准化软件开发周期。SGS 通过利用自我复制算法和元数据管理来促进软件应用程序的持续开发、测试和生产。
  • 模块 A(通用构造器):在自我复制系统的背景下,此模块负责根据提供的蓝图或模式创建任何实体,有效地充当系统内的构造器。模块 B(通用复制器):此模块负责复制任何实体的蓝图或复制实体实例。它确保复制所需的信息可用。
  • 模块 C(通用控制器):在自我复制系统中启动和管理自我复制过程的模块,激活模块 A 和 B 以创建系统的副本。
  • 模块 D(环境交互模块):对基本自我复制系统的增强,此模块允许与系统环境交互并管理对外部资源的访问。
  • 系统描述:自生成系统中的一个专用单元,用于存储每个模块的描述,从而更好地与环境交互并促进升级和修改。
  • 提交状态:在 SGS 中,这指的是系统中实体实例的状态,可以分为“Head”(最新修改)、“Tail”(先前修改)或“Deleted”(标记为删除)。
  • 事务缓冲区(索引、表):SGS 中用于管理传入数据和跟踪新数据处理的表或索引,确保现有数据和新数据之间明确分离,同时促进恢复和并行处理。
  • 静态数据结构:一种数据结构,它定义了数据元素之间随时间保持不变的固定关系。这些结构通常用于传统数据库。
  • 动态数据结构:一种数据结构,它随着分析和条件的变化而演变,反映了真实世界元素之间关系的瞬态性质。
  • 提交功能:SGS 中的一个功能,用于处理系统更新,对更改进行分类并管理数据从“head”(当前状态)到“tail”(归档状态)的过渡,作为系统演变的一部分。

HllSet 和实体

  • HllSet:一种基于 HyperLogLog 算法的数据结构,用于高效地近似大型数据集的基数(不同元素的数量)。HllSets 遵循集合论的基本属性,包括交换律、结合律、分配律和恒等律。
  • 节点:在图数据库的上下文中,节点表示实体或数据点。在 HllSet 关系代数的情况下,每个节点表示一个 HllSet,其特征是 SHA1 哈希标识符和基数等属性。
  • 边:图数据库中两个节点之间的连接。每条边都有属性,例如源、目标、关系类型(由 r_type 标记)以及 JSON 格式的其他属性。
  • Token:图数据库系统字典中的基本数据单元。每个 token 由唯一的哈希 ID、二进制表示及其在数据集中出现的频率表示。它还保留了对包含此 token 的所有 HllSets 的引用。
  • SHA1 哈希:一种加密哈希函数,用于为 HllSets 中的数据点(节点)生成唯一标识符。它确保每个节点都可以根据其内容唯一标识。
  • 投影:在 HllSet 关系代数的上下文中,投影是指将一组 HllSet 映射到另一组的操作,通常表示表格结构中行和列对应的 HllSet 的交集。
  • 并集、交集、补集、异或:应用于 HllSet 的集合操作,用于在图数据库中形成新节点,每个操作都会生成一个新的 HllSet 节点并将其添加到图中。
  • 实体:在 entity.jl 中引入,此结构使用 HllSets 封装元数据。它是 SGS 中的一个关键组件,其中元数据作为实体而不是传统的数值嵌入进行管理和操作。
  • 图:在 graph.jl 中定义,此结构使用实体实例作为节点,并表示这些节点之间的连接作为边。它促进了在基于图的架构中对集合的操作,增强了互连数据的处理和处理。
  • 静态结构操作:不更改现有实体实例但通过各种集合操作(如并集、交集和补集)促进新实例创建的操作。
  • 动态结构操作:支持对实体实例进行修改同时遵守不变性原则的操作。这些操作有助于管理神经网络节点内部的变化以及它们之间的关系,这对于 SGS 的自我复制能力至关重要。
  • 高级操作:SGS 中的一项关键操作,通过计算 HllSets 中添加、保留和删除的子集的变化来促进神经网络元素的自我复制。此操作对于预测和管理 SGS 中实体的未来状态至关重要。

参考

  1. https://archive.org/details/theoryofselfrepr00vonn_0/page/74/mode/2up
  2. https://en.wikipedia.org/wiki/Kozma_Prutkov
  3. https://www.linkedin.com/posts/alex-mylnikov-5b037620_hllset-relational-algebra-activity-7199801896079945728-4_bI?utm_source=share&utm_medium=member_desktop
  4. https://www.linkedin.com/posts/alex-mylnikov-5b037620_hyperloglog-based-approximation-for-very-activity-7191569868381380608-CocQ?utm_source=share&utm_medium=member_desktop
  5. https://www.linkedin.com/posts/alex-mylnikov-5b037620_hllset-analytics-activity-7191854234538061825-z_ep?utm_source=share&utm_medium=member_desktop
  6. https://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf
  7. https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/40671.pdf
  8. https://github.com/alexmy21/SGS/blob/sgs_ai_32/hll_sets.ipynb
  9. https://www.linkedin.com/posts/alex-mylnikov-5b037620_demo-application-enron-email-analysis-with-activity-7195832040548614145-5Ot5?utm_source=share&utm_medium=member_desktop
  10. https://github.com/alexmy21/lisa_meta/blob/main/lisa_enron.ipynb
  11. https://github.com/alexmy21/lisa_meta/blob/main/hll_algebra.ipynb
  12. https://arxiv.org/pdf/2311.00537 (Machine Learning Without a Processor: Emergent Learning in a Nonlinear Electronic Metamaterial)
  13. https://s3.amazonaws.com/arena-attachments/736945/19af465bc3fcf3c8d5249713cd586b28.pdf (深度聆听)
  14. https://www.deeplistening.rpi.edu/deep-listening/
  15. https://en.wikipedia.org/wiki/Von_Neumann_universal_constructorhttps://en.wikipedia.org/wiki/Markov_property
  16. https://github.com/alexmy21/SGS/blob/sgs_ai_32/simulation.ipynb

社区

注册登录 评论