拓冰建站拓冰建站
首页 / 资讯中心 / 正文

RD-Agent 的 Kaggle 数据与 Notebook 爬虫实战指南:从环境搭建到知识库构建

RD-Agent 的 Kaggle 数据与 Notebook 爬虫实战指南从环境搭建到知识库构建【免费下载链接】RD-AgentResearch and development (RD) is crucial for the enhancement of industrial productivity, especially in the AI era, where the core aspects of RD are mainly focused on data and models. We are committed to automating these high-value generic RD processes through RD-Agent, which lets AI drive>项目地址: https://gitcode.com/GitHub_Trending/rd/RD-Agent本篇技术指南聚焦 RD-Agent 开源仓库中 rdagent/scenarios/kaggle/README.md 所描述的Kaggle CrawlerKaggle 数据与竞赛 Notebook 爬虫能力如何在 Linux 上安装 Chrome 与 chromedriver、如何完成 Kaggle 认证与竞赛准入、如何批量抓取高分 Notebook 并将其转化为可供 LLM 读取的结构化知识文本。读完本文你将掌握 RD-Agent 在 Kaggle 场景下数据采集 → Notebook 下载 → 知识抽取 → 向量库检索的完整链路并了解各步骤背后的源码实现与关键配置项。一、Kaggle Crawler 在 RD-Agent 中的定位RD-Agent 是一个以数据与模型为核心的自动化研发RD框架其 Kaggle 场景见 rdagent/scenarios/kaggle/通过假设生成 → 特征工程 → 建模 → 反馈的迭代循环自动参与数据科学竞赛。要让这个循环拥有高质量起点就必须先把竞赛任务描述、原始数据、历史高分方案三类素材抓取下来而这正是 Kaggle Crawler 承担的工作。整个爬虫模块集中实现在 rdagent/scenarios/kaggle/kaggle_crawler.py 中核心能力可划分为三块功能主要函数依赖竞赛描述抓取crawl_descriptions()Selenium ChromeDriver竞赛数据下载download_data()Kaggle CLI 或 MLEB Docker 环境Notebook 抓取与转换download_notebooks()、convert_notebooks_to_text()Kaggle APIkagglehub下文按照 README 的编排顺序先解决环境与认证再深入讲解 Notebook 爬虫的完整用法与源码原理。二、环境准备在 Linux 上安装 Chrome 与 chromedriverREADME 指出爬虫依赖 Selenium 驱动 Chrome 访问 Kaggle 网页因此第一步是在同一台 Linux 机器上同时装好Chrome与chromedriver并且两者版本必须严格匹配。2.1 安装 Chrome在同一个文件夹中执行以下命令下载并安装稳定版 Chromewget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt install ./google-chrome-stable_current_amd64.deb google-chrome --version安装完成后用google-chrome --version确认版本号——这个版本号随后会被用来拼接 chromedriver 的下载地址务必记录下来。2.2 安装 chromedriverChrome 版本确定后从 Chrome for Testing 官方通道下载对应版本的 chromedriver 并安装到系统 PATH 中wget https://storage.googleapis.com/chrome-for-testing-public/chrome-version/linux64/chromedriver-linux64.zip unzip chromedriver-linux64.zip cd chromedriver-linux64 sudo mv chromedriver /usr/local/bin sudo chmod x /usr/local/bin/chromedriver chromedriver --version把chrome-version替换为 2.1 中查到的真实版本号例如114.0.5735.90。最后用chromedriver --version验证安装并确认其主版本与 Chrome 一致。2.3 源码中的驱动加载方式从源码看RD-Agent 的爬虫实际加载驱动的方式比手动安装更宽容。kaggle_crawler.py 中通过webdriver-manager自动管理 ChromeDriver 版本options webdriver.ChromeOptions() options.add_argument(--no-sandbox) options.add_argument(--disable-dev-shm-usage) options.add_argument(--headless) # Use webdriver-manager to automatically download and manage ChromeDriver version driver webdriver.Chrome(serviceService(ChromeDriverManager().install()), optionsoptions)即使用系统未手动安装 chromedriverChromeDriverManager().install()也会按本地 Chrome 版本自动下载匹配的驱动而 README 中手动安装的方式则适合离线环境或需要精确控制驱动版本的场景。三者缺一不可的浏览器参数分别是--no-sandbox避免在容器/CI 中以 root 运行时的沙箱报错--disable-dev-shm-usage防止共享内存不足导致 Chrome 崩溃--headless无头模式运行无需显示环境。三、认证与竞赛准入配置3.1 Kaggle API 认证~/.kaggle/kaggle.jsonREADME 明确了两条前置条件第一条是 Kaggle API 认证文件~/.kaggle/kaggle.json。在 Kaggle 网站个人账户的Settings → API页面创建 API Token会下载一个kaggle.json其内容形如{ username: your_kaggle_username, key: your_kaggle_api_key }将其放置到~/.kaggle/kaggle.json即可。RD-Agent 的多个核心函数都会通过KaggleApi读取这份凭证例如download_data() 在非 MLEB 模式下调用kaggle competitions download -c competition -p path下载数据download_notebooks() 调用KaggleApi().authenticate()后使用kernels_list/kernels_pull抓取 Notebookleaderboard_scores() 通过api.competition_leaderboard_view(competition)拉取排行榜分数用于判断指标方向与估算排名。3.2 接受竞赛规则Join CompetitionREADME 第二条前置条件是在竞赛官网页面上Accept Rules接受竞赛规则并 Join Competition。只有加入竞赛后API 才有权限下载该竞赛的数据与查看完整排行榜。RD-Agent 在 download_data() 中对下载失败的处理也印证了这一点——若未准入kaggle competitions download会以非零退出码失败源码会捕获CalledProcessError并抛出KaggleErrorexcept subprocess.CalledProcessError as e: logger.error(fDownload failed: {e}, stderr: {e.stderr}, stdout: {e.stdout}) raise KaggleError(fDownload failed: {e}, stderr: {e.stderr}, stdout: {e.stdout})提示认证文件与准入操作是 Kaggle 平台的硬性约束无论使用 RD-Agent 还是手动调用 Kaggle API 都无法绕过。四、Notebook 爬虫从下载到知识文本README 给出的 Notebook 爬虫核心流程只有两个步骤但每一步背后都串联了排序、下载、LLM 知识抽取等逻辑。下面结合源码逐一展开。4.1 第一步download_notebooks()— 按排行榜下载高分 Notebook函数签名kaggle_crawler.pydef download_notebooks(competition: str, local_path: str, num: int 15) - None:它的执行逻辑分为三小步判断排序方向调用competition_leaderboard_view拿到排行榜首尾两条分数若score_diff 0说明指标越大越好按scoreDescending排序否则按scoreAscending排序拉取高分 Kernel 列表api.kernels_list(competitioncompetition, sort_bysort_by, page1, page_sizenum)取排行榜最靠前的num个 Notebook默认 15 个逐个下载对每个 Notebook以其作者名author nb.ref.split(/)[0]作为子目录名调用api.kernels_pull(nb.ref, pathdata_path / author)拉取源码到本地local_path/competition/author/下。这里 notebook 实际下载下来的是 Kaggle Kernel 的源文件可能包含.ipynb、.irnb以及被转换出的.py脚本。4.2 第二步convert_notebooks_to_text()— 转为结构化知识文本函数签名kaggle_crawler.pydef convert_notebooks_to_text(competition: str, local_path: str) - None:它会把上一步下载的文件统一转换为.txt知识文本处理对象有三类**/*.ipynb与**/*.irnb用nbformat.read(nb_path, as_version4)解析 Notebook将 markdown 单元格包成markdown\n...代码单元格包成code\n...再拼接成一段文本**/*.py直接读入并包成code\n...代码块。每段文本随后交给notebook_to_knowledge()kaggle_crawler.py调用 LLM 做知识抽取最终写入同名.txt文件nb_path.with_suffix(.txt)并在终端打印转换数量。值得关注的是LLM 抽取环节使用了 rdagent/scenarios/kaggle/prompts.yaml 中的gen_knowledge_from_code_mini_case模板要求模型逐项回答六个问题核心意图是让另一个数据科学家能凭答案精确复现代码整体设计思路总结模型架构的详细描述要求写成一篇长文重要超参数如何设置优化目标是什么使用了哪些先进的机器学习技术还有哪些对高性能至关重要的技巧。同时提示词强调答案必须直接来自代码或 markdown 文本而非模型推测从而保证知识抽取的事实准确性。这正是 README 中两步 Notebook 爬虫流程的最终产物——一批可检索、可复现的高分方案知识文本。4.3 配套函数排行榜与排名估算围绕 Notebook 爬虫模块还提供了两个配套工具常用于评估当前方案离高分方案还有多远leaderboard_scores()kaggle_crawler.py被cache_with_pickle装饰结果会以 pickle 缓存避免重复请求返回排行榜分数列表get_metric_direction()kaggle_crawler.py返回True表示指标越大越好、False表示越小越好其中对aerial-cactus-identification与leaf-classification两个竞赛做了硬编码特判score_rank()kaggle_crawler.py根据当前分数二分定位排行榜位置返回(rank, rank_percent)二元组。源码注释中明确提示当前实现存在已知局限——Kaggle API 只返回排行榜第一页因此排名估算并不完全精确见# FIXME: current score_rank is incorrect ...注释。4.4 批量运行入口文件末尾的__main__块kaggle_crawler.py给出了可直接参考的批量用法内置了两组竞赛名单mini_case_cs11 个用于小型案例的竞赛如feedback-prize-english-language-learning、spaceship-titanic、多个playground-series-s3e*other_cs约 33 个更广泛的竞赛如titanic、sf-crime、digit-recognizer及若干playground-series-s4e*。README 提到的两步download_notebooks()、convert_notebooks_to_text()正是这段批量代码的主体逻辑读者可参照该结构按竞赛名循环执行。五、知识文本的汇聚与检索爬虫的下游README 的 Notebook 爬虫产出的.txt知识文本会被 collect_knowledge_texts() 汇聚为{competition_name: [knowledge_text_1, ...]}形式的字典进而流入 RD-Agent 的 RAG 知识库链路其使用说明见 rdagent/scenarios/kaggle/knowledge_management/README.md。完整流程为先通过 extract_knowledge.py 的main实际为process_all_case_files把.case格式的高分方案文件抽取为 JSON 知识库默认输出kaggle_experience_results.json其中extract_knowledge_from_high_score_answers与extract_knowledge_from_feedback分别从答案与实验反馈中抽取结构化知识均要求 LLM 以json_modeTrue输出再用 vector_base.py 创建向量库并保存KGKnowledgeDocument携带competition_name、task_category、field、ranking、score、entities、relations等元数据split_into_trunk(size1000, overlap0)会按 1000 字符切块并逐块生成 embeddingKaggleExperienceBase.add_experience_to_vector_base()负责把 JSON 经验与实验反馈写入 DataFrame最终save()以 pickle 落盘在.env中添加KG_RAG_PATHxxx.pkl向量库路径启用检索。检索侧由 experiment/scenario.py 中的KGScenario驱动当if_using_vector_rag开启且配置了rag_path时会加载KaggleExperienceBase通过search_experience(query, topk_k5, similarity_threshold0.1)召回相关经验并可用refine_with_LLM让 LLM 针对当前任务目标改写召回内容实现面向目标的知识增强。六、竞赛数据下载与关键配置项尽管 README 的重点在 Notebook 爬虫download_data()kaggle_crawler.py是同一模块中与数据采集强相关的另一半能力理解它能帮你把整个数据链路跑通MLEB 模式settings.if_using_mle_dataTrue借助MLEBDockerEnv在 Docker 中执行mlebench prepare -c competition --data-dir ./zip_files下载标准化数据随后自动解压所有.zip与.tar*压缩包其中对new-york-city-taxi-fare-prediction还有一处补丁逻辑kaggle_crawler.py因为 MLEB 对该竞赛有特殊重命名机制需要把labels.csv复制回train.csv以统一 schema普通模式直接调用kaggle competitions download -c competition -p path随后递归解压 zip 文件调试数据enable_create_debug_dataTrue时还会调用create_debug_data(competition, dataset_pathlocal_path)生成采样数据见 rdagent/scenarios/data_science/debug/data.py用于快速迭代验证。相关配置集中定义在 rdagent/app/kaggle/conf.py 的KaggleBasePropSetting中环境变量统一使用KG_前缀由SettingsConfigDict(env_prefixKG_)指定关键项如下配置项环境变量默认值说明KG_COMPETITIONKaggle 竞赛名如sf-crimeKG_LOCAL_DATA_PATH存放竞赛数据的本地目录KG_IF_USING_MLE_DATAFalse是否使用 MLEB Docker 下载标准化数据KG_AUTO_SUBMITFalse是否自动上传并提交每个实验结果到 Kaggle 平台KG_RAG_PATHgit_ignore_folder/kaggle_vector_base.pkl基础版向量 RAG 的向量库路径KG_IF_USING_VECTOR_RAGFalse是否启用基础向量 RAGKG_IF_USING_GRAPH_RAGFalse是否启用进阶图 RAGKG_KNOWLEDGE_BASE_PATHkg_graph.pkl进阶图 RAG 的知识图谱路径KG_DOMAIN_KNOWLEDGE_PATH/data/userdata/share/kaggle/domain_knowledge存放.case格式领域知识的目录KG_IF_ACTION_CHOOSING_BASED_ON_UCBFalse是否基于 UCB 算法做动作选择KG_MINI_CASEFalse是否启用小型案例实验此外还有若干超参数调优开关如KG_TIME_RATIO_LIMIT_TO_ENABLE_HYPERPARAMETER_TUNING、KG_ONLY_FIRST_LOOP_ENABLE_HYPERPARAMETER_TUNING这些配置与爬虫共同构成 RD-Agent Kaggle 场景的完整运行入口。七、最小实战流程总结综合 README 与源码在 RD-Agent 中落地 Kaggle 数据与 Notebook 爬虫的推荐顺序为准备环境按第二节安装 Chrome 与 chromedriver或在有网环境下依赖webdriver-manager自动获取完成认证与准入放置~/.kaggle/kaggle.json并在 Kaggle 网页加入目标竞赛抓取竞赛描述调用crawl_descriptions(competition, local_data_path)生成description.md/competition.json供下游场景读取experiment/scenario.py 会在初始化时自动调用下载数据调用download_data(competition, settings)按KG_IF_USING_MLE_DATA选择 MLEB 或 Kaggle CLI 通道下载并转换 Notebook依次调用download_notebooks(competition, local_path, num15)与convert_notebooks_to_text(competition, local_path)得到可复现的高分方案知识文本构建知识库可选参考 knowledge_management/README.md 抽取.case知识、生成向量库并在.env中配置KG_RAG_PATH等KG_前缀变量启用 RAG 检索。至此竞赛描述、原始数据与高分方案三路素材全部就绪RD-Agent 的假设生成 → 特征工程 → 建模 → 反馈迭代循环便有了数据与知识双重底座。【免费下载链接】RD-AgentResearch and development (RD) is crucial for the enhancement of industrial productivity, especially in the AI era, where the core aspects of RD are mainly focused on data and models. We are committed to automating these high-value generic RD processes through RD-Agent, which lets AI drive>项目地址: https://gitcode.com/GitHub_Trending/rd/RD-Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门