Neo4j Text2Cypher 模型

我们很高兴与你分享经过微调的 Neo4j Text2Cypher (2024) 模型之一。此模型演示了如何使用 Neo4j Text2Cypher(2024) 数据集微调基础模型来提高 Text2Cypher 任务的性能。请注意,这是正在进行的研究和探索的一部分,旨在突出数据集的潜力,而不是可用于生产的解决方案。

Text2Cypher 任务旨在将自然语言问题转化为 Cypher 查询。虽然基础模型可以通过正确的提示直接解决这个问题,但我们的基准分析显示,微调技术可以提高性能。在测试了几种替代方案后,我们很高兴与大家分享我们经过微调的模型之一。

1、基线模型和微调

我们已经深入研究了不同的微调和基于基础 LLM 的模型在 Neo4j-Text2Cypher (2024) 数据集上的表现,并在使用 Neo4j Text2Cypher (2024) 数据集进行基准测试中分享了结果。

根据这些发现以及可用于微调的模型,我们选择了以下基线模型用于下一步:

使用的模型

为了微调模型,我们使用了 Neo4j Text2Cypher (2024) 数据集的训练分割。我们使用供应商 API 来微调封闭模型,并依靠 RunPod 的服务器和 HuggingFace (HF) 的 API 来微调开放模型。我们使用与之前共享的相同的提示进行微调。

系统和用户说明

2、评估结果

对于评估,我们遵循基准分析中概述的相同程序。我们使用了 Neo4j Text2Cypher (2024) 数据集的测试拆分,使用了两种类型的评估程序:

  • 翻译 - 将预测的 Cypher 查询与参考 Cypher 查询进行文本比较。
  • 执行 - 在目标数据库上运行预测和参考 Cypher 查询后,我们收集执行输出并使用与计算“翻译”相同的评估指标对它们进行比较。

虽然我们计算了各种评估指标的结果,但在本文中,我们重点关注基于翻译的评估的 Google BLEU 分数和基于执行的评估的 ExactMatch 分数。

所有模型(包括之前进行过基准测试的模型)的评估结果如下所示。图中的最后一组突出显示了 Neo4j Text2Cypher (2024) 数据集上的微调模型。为了便于比较,我们使用红色形状将每个微调模型与其基线版本进行匹配。

模型性能比较

微调模型相对于其基线的改进如下所示:

微调模型相对于基线模型的改进

所有微调模型在 Google BLEU 和 ExactMatch 分数方面均有所改进。微调模型是在没有任何超参数调整的情况下进行训练的。通过更好的参数调整,我们可能会看到更好的结果。

表现最佳的微调模型:

  • 基于翻译的评估 - Finetuned’24-OpenAI/Gpt4o,其次是 Finetuned’24-OpenAI/Gpt4o-mini 和 Finetuned’24-GoogleAIStudio/Gemini-1.5-Flash-001
  • 基于执行的评估 - Finetuned’24-OpenAI/Gpt4o 和 Finetuned’24-OpenAI/Gpt4o-mini,匹配率超过 30%。

3、微调的风险和陷阱

虽然所有微调模型都显示出改进,但重要的是要留意微调带来的潜在风险和陷阱。

前面的部分重点介绍了微调模型如何显著提高性能。但是,我们需要谨慎对待一些风险:

  • 在我们的评估设置中,训练集和测试集来自相同的数据分布(从更大的数据集中采样)。如果数据分布发生变化,结果可能不会遵循相同的模式。
  • 使用的数据集是从公开来源收集的。随着时间的推移,基础模型可能会同时访问训练集和测试集,从而可能获得类似甚至更好的结果。

我们可能会遇到一些陷阱,正如 Jim Fan 的 LinkedIn 帖子中所讨论的那样。

风险和陷阱

4、结束语

借助我们新发布的 Neo4j Text2Cypher (2024) 数据集,我们深入研究了微调模型对将自然语言问题转换为 Cypher 查询的 Text2Cypher 任务的影响。猜猜怎么着?微调确实很重要!但我们也发现了一些可能来自数据和微调过程本身的重要风险和陷阱,因此我们保持警惕。


原文链接:Introducing the Fine-Tuned Neo4j Text2Cypher (2024) Model

汇智网翻译整理,转载请标明出处