欢迎来到我们的大语言模型(LLM)与区块链研究系列的第二篇文章。在上一篇文章中,我们从技术层面讨论了如何将 LLM 与区块链技术整合的,以及为何 LLM 框架非常适合区块链领域。我们还勾勒了未来将 LLM 与区块链融合的潜在路径。
在这篇文章中,我们将采用更加实际的方法,深入探讨八个特定的应用领域,我们相信这些应用将极大地改变区块链用户体验。更加令人兴奋的是,我们预测这些突破性的应用将在接下来的一年内变为现实。
请加入我们,一同揭示区块链交互的未来。以下是我们将要讨论的八个应用的简要概述:
1. 将内置的人工智能/LLM 功能整合到区块链中
2. 利用 LLM 分析交易记录
3. 运用 LLM 增强安全性
4. 利用 LLM 编写代码
5. 使用 LLM 阅读代码
6. 借助 LLM 协助社区
7. 实施 LLM 跟踪市场
8. 应用 LLM 分析项目
将内置的人工智能/LLM 功能整合到区块链中
区块链将内置人工智能功能和模型。开发人员可以访问人工智能函数,在链上执行分类、回归、文本补全和 AIGC 等签名式 ML 任务。开发者可以通过智能合约调用这些人工智能功能。
有了这些内置功能,开发人员就能为他们的智能合约赋予智能和自主权。分类、回归和 AIGC 是典型的人工智能任务。让我们看看这些功能在区块链领域的应用以及几个示例项目。
分类
分类可用于确定地址是机器人还是真人。这可以改变当前的 NFT 销售情况。分类还可以提高 DeFi 生态系统的安全性。DeFi 智能合约可以过滤恶意交易,防止资金流失。
回归(Regression)
回归分析可以用于预测,应用于基金和资产管理。Numer.ai 已经使用人工智能来帮助他们管理资金。Numer 提供高质量的股市数据,数据科学家在这些数据的基础上进行工作,并应用机器学习来预测股市。
AIGC
许多 NFT 项目都试图构建一个 IP 宇宙。然而,它们有限的内容无法支撑一个宇宙。如果我们可以在链上使用 AIGC,以相对较低的成本输出无数具有类似的标志性品牌风格的内容。模型可以输出文本、插图、音乐、声音甚至视频。这大大扩展了 IP 宇宙的规模。社区参与者可以共同对模型进行微调,以满足他们的期望。微调过程也让社区有参与感。
Botto 使用 AIGC 模型来生成艺术内容。社区对他们最喜欢的图像进行投票,以共同微调 AIGC 模型。
如果我们将区块链视为一个数据库,我们还发现 Databend 将内置的人工智能功能整合到他们的数据库中。他们提供以下功能:
-
ai_embedding_vector:为文本文档生成嵌入向量。
-
ai_text_completion:基于给定的提示生成文本补全。
-
cosine_distance:计算两个嵌入向量之间的余弦距离。
-
ai_to_sql:将自然语言指令转换为 SQL 查询。
为区块链提供 AI 能力
我们知道,一些项目正在为区块链提供 AI 能功能。
Giza 正致力于 ZKML 方面的工作。它在链外生成推理证明,并在链上进行验证。它现在支持与以太坊虚拟机兼容的区块链以及 StarkNet。Giza 最近宣布与 Yearn.finance 达成了合作伙伴关系,Yearn 将利用 Giza 的人工智能功能来提升其风险评估能力。
Modulus Labs 也在类似的方向上进行工作。他们更加努力地改进证明系统,以生成用于人工智能的高性能电路。他们发布了诸如国际象棋人工智能和以太坊价格预测人工智能等演示。他们的新演示项目 zkMon 是全球第一个经过零知识证明的生成对抗网络 NFT 收藏品。
利用 LLM 分析交易记录
分析交易记录通常由特定的应用程序(如 Debank)完成。人工手动分析交易记录很困难。手动分析涉及数据收集、数据清洗和数据分析,这要求用户需要具备编码能力。因为 LLM 能分析和可视化数据的能力,我们现在有了一种新的方法。 通过 LLM,我们可以根据定制需求分析链上数据 。我们可以分析胜率、性能比,或者任何我们想要了解的信息。
RSS3 开发了一个名为 Web3 用户活动的 ChatGPT 插件,以致力于向这个方向发展。用户可以输入钱包地址、ENS 或 Lens 来查询链上活动。该插件将以人类可读的方式输出交易信息。然而可惜的是它不能执行复杂的查询,比如有多少 Azuki 持有者,哪些智能合约最热门等。用户还应该注意,插件提供的地址和标签不一定准确。
DeFiLlama 也发布了一个 ChatGPT 插件。用户可以用自然语言查询在 DeFiLlama 上可用的任何数据。它还可以执行简单的筛选和排序操作:
Dune 也在将 GPT 集成到其产品中,以实现以下功能:
-
查询释义:使用 LLM 解释查询
-
查询翻译:使用 LLM 将其他 SQL 语言翻译为 DuneSQL
-
自然语言查询:使用户可以使用自然语言编写查询
-
搜索:使用 LLM 改进搜索结果
-
向导知识库:使用户能与文档交流的聊天机器人
利用 LLM 增强安全性
由于具备逻辑和推理能力,LLM 可以用于过滤一些恶意交易,充当智能合约的防火墙。以下是一个具体的示例,展示如何阻止机器人活动:
在输入地址后,LLM 可以通过第三方插件获取所有的交易数据,随后分析这些交易记录,并拟出地址是机器人的可能性。这个功能可以嵌入到不欢迎机器人的 Dapps 中,比如 NFT sales。
以下是一个通过 ChatGPT 的简单示例。ChatGPT 通过 RSS3 开发的 Web3 用户活动插件检索账户的交易记录,然后分析这些交易记录,并输出账户是机器人的可能性。
如果我们输入更多的交易记录,并在与机器人相关的数据集上对 LLM 进行微调,我们就可以获得更准确的结果。以下是这类应用的一个示例工作流程。我们还可以添加缓存和数据库层,以提高响应速度并降低成本。
利用 LLM 编写代码
LLM 在开发中被广泛用于帮助开发人员更快、更好地编写代码。根据开发人员的指示,LLM 可以为他们生成代码。目前,开发人员仍然需要为 LLM 提供详细的指示。LLM 很难自动生成整个项目的代码。
一些流行的用于代码的 LLM 模型包括 StarCoder、StarCoder+、Code T5、LTM、DIDACT、WizardCoder、FalCoder-7B 和 MPT30B。
所有这些模型都可以用于编写智能合约,但它们可能并未专门在智能合约数据上进行训练。它们仍有改进的空间。
目前,在 HuggingFace 上只有一个与智能合约相关的数据集可用。它是更狡猾的被审计的智能合约集,包含 11.3 万个智能合约。它可用于文本分类、文本生成和漏洞检测等任务。
与协助开发工具相比,自动代码生成可能更具有前景。自动代码生成适用于智能合约,因为智能合约相对较短且相对简单。LLM 在区块链领域中有几种方式可以帮助开发人员自动生成代码。
测试
首先,LLM 可以为编写良好的智能合约生成测试。如 Codium 可以自动生成已编写项目的测试。Codium 目前支持 JS 和 TS。Codium 首先理解代码库,分析每个函数、文档字符串和注释。然后,Codium 将代码分析作为注释写回文件,并输出一个测试计划。用户可以选择他们喜欢的测试,Codium 将生成所选的测试代码。
其他辅助工具也支持为选定的功能生成测试。
我们可以按照类似的步骤在GPT-4上复制类似的功能。
我们首先要求进行代码分析,是因为我们希望LLM在这个任务上花费更多的时间。LLM并不知道哪些任务是困难的。它会在每个标记上投入相同的计算能力。这可能会导致在复杂任务上产生不准确的结果。基于这些特点,我们要求进行代码分析。这样,LLM将花费更多的标记/时间来思考这些任务,并输出更高质量的结果。这种方法也被称为"思维链"。
为了让它适用于更长的智能合约,我们需要一个具有更大上下文的LLM,或者采用一些工程设计来保留记忆。
生成辅助脚本
其次, 我们可以使用LLM自动生成一些辅助脚本,例如部署脚本 。
部署脚本可以减少在手动部署过程中出现的潜在错误。这个想法与自动生成测试非常类似。
自动分叉
在牛市中会出现许多分叉项目,团队会从其原始代码库中进行少量代码的更改。这将是 LLM 的一个很好的用例: LLM 可以帮助开发人员根据团队的需求自动修改代码。通常只需要更改代码的特定部分。这对于LLM来说相对容易实现。
自动生成代码
如果我们再迈进一步,LLM是否可以根据开发人员的需求自动生成智能合约呢?与其他使用 JS、Rust 和 Python 编写的复杂软件相比,智能合约相对较短且相对简单。智能合约没有太多外部库。**对LLM来说,弄清楚如何编写智能合约**相对更容易。
我们已经看到了一些自动代码生成方面的进展。GPT-engineer 是其中之一的先驱。它会满足用户的需求,并解答LLM的任何疑问,然后开始编码。代码还包括一个可以运行整个项目的脚本。GPT-engineer 可以自动为开发人员启动项目。
用户输入他们的需求后,GPT-engineer 会分析需求并要求进行一些澄清。在收集所有必要信息之后,GPT-engineer 将首先输出程序的设计,包括此任务所需的核心类、函数和方法。然后,GPT-engineer将为每个文件生成代码。
通过类似这样的提示,我们可以生成一个计数器智能合约。
智能合约可以通过编译并按预期工作。
因为 GPT-engineer 最初是为 Python 设计的,所以在生成与 Hardhat 相关的代码时存在一些问题。GPT-engineer 不知道 Hardhat 的最新版本,有时会生成过时的测试和部署脚本。
如果我们的代码有 bug,我们可以将代码库和控制台错误日志提供给 LLM。LLM 可以不断修改代码,直到代码能够成功运行。我们看到了类似 **[flo]( https://flocli.vercel.app/) ** 这样的项目正在朝这个方向发展。目前,flo 仅支持 JS。
如果我们想要提高智能合约生成的准确性,我们可以通过一些新的提示来改进 GPT-engineer。我们可以采用测试驱动开发的方式,要求LLM确保程序通过一定的测试,从而更好地约束生成的程序。
利用 LLM 阅读代码
由于LLM可以很好地理解代码, 我们可以使用LLM来编写开发者文档 。LLM还可以跟踪代码变化,以更新文档。我们在上一篇研究报告《Exploring Developer Experience on ZKRUs: An In-Depth Analysis》的末尾讨论过这种方法。
阅读文档是传统方式,而与代码交流是一种新的方法。用户可以就代码提出任何问题,LLM会回答用户的问题。 LLM可以为开发人员解释代码,帮助他们快速理解链上的智能合约。LLM还可以帮助没有代码经验的人理解智能合约。
我们在Web2世界中已经看到了这种趋势。许多代码协助工具都具备代码解释功能。
Etherescan也展示了其新功能,用户可以与代码进行交流,利用LLM的能力。
在能理解代码的情况下,审计会怎么改变? 在论文《do you still need a manual smart contract audit》的实验中,LLM在识别漏洞方面达到了40%的命中率,优于随机基准。然而,他们也有很高的误报率。作者指出,适当的提示是关键。
除了提示外,还有以下原因限制了其应用:
-
当前的LLM没有专门为这个目的进行训练。训练数据可能不涉及智能合约代码库和相应的审计报告。
-
通常最严重的漏洞是由不同功能组成的逻辑问题。LLM 目前受到令牌数量的限制。LLM 无法解决具有很长上下文并需要逻辑能力的问题。
这些问题并不难解决。大型审计公司拥有数千份审计报告,可以用来微调 LLM。带有大令牌限制的 LLM 正在出现。Claude 有10万个令牌限制。新发布的 LTM-1具有令人瞩目的500万个令牌限制。通过解决这两个问题的努力,我们可能会看到 LLM 将可以更好地识别漏洞。LLM 可以协助审计师并加速审计流程。这可能会逐步发展。以下是可能的发展轨迹:
1. 帮助审计师组织语言并格式化报告。这可以确保在同一审计公司下的语言一致性。通常不同的小组可能有不同的偏好词汇。
2. 帮助审计师识别和验证潜在的漏洞。
3. 自动生成审计草案报告。
利用 LLM 帮助社区
治理是社区的关键部分。社区成员有权为自己喜欢的提案投票。这些提案将塑造产品的未来。
对于重要的提案,会有许多背景信息和社区讨论。在投票之前,社区成员很难全都理解这个背景。 LLM 可以帮助社区成员快速了解他们的选择对未来的影响,并帮助他们投票。
问答机器人是另一个潜在的应用。我们已经看到基于项目文档的问答机器人。我们可以进一步建立一个更大的知识数据库。 我们可以插入不同的媒体和来源,比如演示文稿、播客、GitHub、Discord 聊天和Twitter Space。问答机器人不仅存在于文档搜索栏中,还可以在 Discord 上为社区成员提供即时支持,或者在Twitter上传播项目的愿景并回答任何问题。
AwesomeQA 目前正在朝这个方向发展。它实现了三个功能:
-
使用 ChatGPT 集成来回答社区成员的问题
-
基于社区成员的消息获得数据驱动的见解,比如 FAQ 分析
-
发现哪些消息是重要的,比如未解决的问题
目前问答机器人面临的难点之一是如何准确地从向量数据库中获取相关上下文,并将上下文提供给 LLM。例如,如果用户要求对多个元素进行多个特征的带有过滤条件的查询,机器人可能无法从向量数据库中检索相关的上下文。
更新向量数据库是另一个问题。目前的解决方案是重新构建向量数据库,或者通过命名空间来更新向量数据库。向嵌入添加命名空间类似于在数据上附加标签。这可以帮助开发人员更容易地找到和更新相应的嵌入。
利用 LLM 追踪市场
市场变化很大,每天都会发生许多事情。例如 KOL(关键意见领袖)发布新的想法和思考,新闻简报和产品电子邮件涌入您的邮箱。 LLM可以为您选择最重要的想法和新闻。它还可以总结内容以缩短您的阅读时间,并帮助您跟上市场动态 。
minmax.ai 致力于新闻领域。他们为特定主题的最新新闻提供摘要,还提供关于该主题的情感分析。
Boring reports 从新闻中剔除耸动内容,专注于重要细节,帮助读者做出正确决策。
机器人咨询是当前最热门的领域之一。LLM 可以推动机器人咨询的使用。 LLM可以提供交易建议,帮助用户根据股票信息作为背景管理投资组合 。
像 Numer.ai 这样的项目使用AI来预测市场并管理基金。还有由LLM 管理的投资组合。用户可以在 Robinhood上关注这些投资组合。
Composer 带来了具有 AI 的交易算法。AI 基于用户的见解构建特定的交易策略。然后 AI 将自动对这些交易策略进行回测。如果用户对策略满意,Composer 可以自动为用户执行这些策略。
利用 LLM 分析项目
分析项目通常涉及阅读大量的材料和撰写长篇研究论文。LLM 可以阅读和撰写短段落。如果我们可以扩展其对长段落的能力,这是否意味着 LLM 可以以某种方式输出一些项目研究呢?很可能是的。 我们可以输入白皮书、文档或活动演示,让 LLM 分析项目和 founder。 受到令牌数量的限制,我们可以首先写出论文的大纲,然后根据其获取的信息更新优化每个部分。
像 BabyAGI 这样的项目已经在这个方向上取得了进展。以下是 BlockAGI 的示例输出,它是 BabyAGI 的一个变种。
LLM 也可以基于 Twitter 和公开演讲来分析 founder 的个性。例如,Tweet 分析器可以获取最近的推文,并使用 LLM 来分析个人特质。
结论
这些是 LLM 在不久的将来可以帮助区块链社区的八个具体方向:
1. 将内置的 AI/LLM 功能整合到区块链中。
2. 利用 LLM 来分析交易记录。
3. 使用 LLM 增强安全性。
4. 利用 LLM 编写代码。
5. 使用 LLM 阅读代码。
6. 利用 LLM 协助社区。
7. 使用 LLM 跟踪市场。
8. 应用 LLM 来分析项目。
LLM 可以惠及加密领域的所有成员 ,包括项目所有者、分析师和工程师。创始人可以使用 LLM 自动化文件和问答等任务。工程师可以使用 LLM 更快、更安全地编写代码。分析师可以更轻松地研究项目。
从长远来看,我们还找到了在 GameFi 领域应用 LLM 的潜在机会。LLM 可以在游戏中生成更有趣的任务,并在游戏中扮演不同的角色。游戏中的世界会感觉更加真实和有趣。NPC 将根据玩家的动作进行动态反应。任务将根据用户的解决方式具有更多结局。
LLM 可以集成到现有项目中,但也为新进入者提供了机会 。例如,在链上数据分析领域已经有一些顶尖玩家。Dune 可以整合LLM 来改善用户体验。然而,LLM 也为新进入者提供了机会。这些新进入者可以将 LLM 置于其产品设计的核心位置。这些以 AI 为先导、以 AI 为中心的创意产品可能会为链上数据分析领域带来新的竞争。
LLM 在 Web2 和 Web3 世界中的用途有重合之处,但它们可能会以不同的方式实现产品。 因为我们在 Web3 世界中使用的数据与 Web2 世界中的数据不同。LLM 的知识库在 Web2 和 Web3 中也可能不同。Web3 数据涉及区块链、代币价格、推文、项目和研究成果。因此,Web2 和 Web3 需要不同的 LLM 来为终端用户提供服务。
由于 LLM 的繁荣,我们看到了 AIxBlockchain 的日益流行。然而,很多 AIxBlockhain 在短时间内并不实际。 区块链和零知识证明无法为一些复杂模型提供大规模的计算能力来进行训练和推理。 小模型无法解决复杂的任务。更实际的方法是在区块链领域应用 LLM。LLM 最近取得了比其他 AI 主题更大的进展。 将 LLM 和区块链结合起来更加合理。
LLM 社区正在努力改进令牌限制和提高响应准确性。留给区块链社区的是数据源和数据管道。经过清洗的数据可以用于微调 LLM,以提高在区块链环境下的准确性。数据管道可以将更多的区块链相关应用集成到 LLM 中,并开发更多的加密特定代理。