SMP 2024大模型图分析挑战赛 - 比赛方案分享 - 飞桨AI Studio星河社区

比赛官网:SMP 2024大模型图分析挑战赛

比赛介绍

以闭源大语言模型(GPT、Claude、Gemini等)为基础构建问答系统,让系统能够通过编写执行Python代码来回答用户提出的图分析相关的问题。

可以使用其他可公开访问的外部数据来增强模型,也可以使用向量数据库等技术。

本次比赛评估模型能力的赛题按照设计模型的能力不同,以及题目的难易程度,分为判断题、计算题、绘图题、综合题四种类型。

在初赛阶段,题目仅包含判断题和计算题。在复赛阶段,题目包括上述所有题型。

本次比赛的题目数据有两种类型,一种是在题目信息中对所需图数据进行描述,另一种则是将图数据保存在文件中。

本次比赛将提供一些数据集,具体包括:文档数据集:可以使用和拓展相关文档数据集,采用检索增强生成等技术,提高大语言模型在图相关任务上的表现。

文档数据集是从几个Python库的相关网站爬取并整理的数据集。 根据不同Python库的文档,分别整理出了6个json文档。

方案介绍

方案流程图:

  1. 按照比赛方的要求,如果题目中不包含文件,则创建一个随机图文件;
  2. 先对问题进行分类和提取算法关键词;
  3. 然后根据提取的关键词进行检索;
  4. 之后让大模型写代码;
  5. 再之后从大模型的回复中提取代码,存到文件中;
  6. 执行代码文件,执行过程中的输出和报错都写入日志文件;
  7. 如果执行代码出现报错,则对代码进行 debug,但是最多重试三次;
  8. 根据聊天记录整理答案。

每一个阶段都会生成中间文件,下一个阶段会对上一个阶段生成的中间文件进行解析,保证每一轮都可交付。

主要包括三个文件:

  1. main.py:程序入口文件,包含了全部流程;
  2. rag.py:检索增强生成,包含了向量语义检索和 BM25 关键词检索;
  3. utils.py:工具函数,包含了文件操作、接口调用、执行命令等函数。

第一次跑的话需要安装一下项目依赖,还需要设置一下 utils.py 中的 API_SECRET_KEY 和 X-API-KEY。

In [1]

*# !pip install --user -r requirements.txt*

In [2]

*# !pip install karateclub==1.2.3# !pip install graspologic==3.3.0# !pip install pycombo==0.1.7*

In [3]

*# !pip install langchain*

image.png

方案详解

接下来详细介绍一下我们的方案的主要步骤,我们以下面这道题目为例。

In [4]

import os
import json

from datetimeimport datetime

from utilsimport (
    contains_file,
    exe_command,
    extract_error_line,
    get_gpt,
    get_question_type,
    google_search,
    init_dir,
    make_graph_request,
    summarize_webpage,
    write_file,
)

USER_AGENT environment variable not set, consider setting it to identify your requests.

In [19]