)
视频讲解https://www.bilibili.com/video/BV1KAe56TEwz/?spm_id_from333.1387.homepage.video_card.clickvd_sourceb2eaaddb2c69bf42517a2553af8444abGitHub - Kaggle/kaggle-cli: Official Kaggle CLI · GitHubhttps://github.com/Kaggle/kaggle-cli/blob/main/docs/datasets_metadata.mdhttps://github.com/Kaggle/kaggle-cli/blob/main/docs/datasets.md目录Kaggle CLI1kaggle分批次上传文件环境一、本地目录组织二、具体操作命令1. 安装并配置 Kaggle CLI2. 第 1 批创建 Dataset设置对应的代理以下终端设置代理针对当前终端有效打开新的终端需要重新配置代理① anaconda prompt终端② powershell终端③ Git Bash / CMD3. 第 2~N 批版本更新追加文件注意这里的version是全量替换不是增强追加也就是之前的文件会被替换四、在 Kaggle Notebook 中使用五、注意事项六 命令使用补充数据集命令① kaggle datasets list 列出可用的数据集。② kaggle datasets files列出特定数据集的文件。③ kaggle datasets download下载数据集文件。④ kaggle datasets init初始化用于创建新数据集的元数据文件dataset-metadata.json。参见[元数据文件格式](./datasets_metadata.md)。⑤ kaggle datasets create在 Kaggle 上创建新数据集。⑥ kaggle datasets version⑦ kaggle datasets metadata⑧ kaggle datasets status⑨ kaggle datasets delete⑩ kaggle datasets topics list⑪ kaggle datasets topics showKaggle CLI1kaggle分批次上传文件环境在 Kaggle 上把 Hugging Face 的大模型分批次、按原目录结构上传到同一个根目录playground下最佳方式是使用Kaggle Dataset 版本更新Versioning。一、本地目录组织先在本地创建一个 demo 文件夹内部结构和 Hugging Face 下载的完全一致demo/ ← 根目录最终挂载到 /kaggle/input/playground/ ├── dir1/ ├── dir2/ ├── file1.txt ├── file2.txt └── README.md二、具体操作命令1. 安装并配置 Kaggle CLIhttps://github.com/Kaggle/kaggle-clipip install kaggle在 Kaggle 账户设置 下载kaggle.json放到Windows:C:\Users\你的用户名\.kaggle\kaggle.jsonLinux/Mac:~/.kaggle/kaggle.json步骤注意新版界面中Create New Token 按钮可能在 Legacy API Credentials 子标题下而不是页面最显眼的 API 区域。需要继续往下滑才能看到。登录 kaggle.com点击右上角 头像 → Settings在 Settings 页面 向下滚动到底部找到 API 区域找到 Legacy API Credentials 小节点击 Create Legacy API Key或 Create New Token浏览器会自动下载 kaggle.json2. 第 1 批创建 Dataset进入到Anaconda Prompt环境执行下面的相关命令先把第一批小文件放进 demo/ 目录然后cd playground # 初始化元数据文件只执行一次 kaggle datasets init编辑生成的dataset-metadata.json{ title: version01, id: 你的kaggle用户名/version2, licenses: [{name: apache-2.0}] }https://github.com/Kaggle/kaggle-cli/blob/main/docs/datasets_metadata.md字段你的值规则是否合规titleplayground-v2.5-1024px-aesthetic33字符6-50字符√ 合规id 用户名部分KeepTryingTo用户名slug√ 合规大写是alphanumericid 数据集slug部分playground-v2.5-1024px-aesthetic3-50字符仅alphanumeric-× 点号非法licenses[{name: CC0-1.0}]必须恰好一个条目name需合法√ 合规注意只要这个json文件里面的内容改变了在之前初始化的前提下进行上传文件是连接失败因此需要重新create创建一个新的连接。上传第 1 批将当前目录下的文件上传如果有子文件夹则不会进行递归的上传子文件夹中的内容kaggle datasets create -p .如果子文件夹也需要上传的话使用zip模式将文件的打包上传然后自动解压kaggle datasets create -p . -r zip --dir-mode-r zip会将你的文件夹打包并压缩成一个 .zip 文件上传。 Kaggle 服务器接收后会自动解压。 --dir-mode-r tar会将文件夹打包成一个 .tar 归档文件上传但不会进行压缩。 这通常用于保留文件权限或当你不想让 API 自动压缩时。 --dir-mode-r skip会直接忽略子目录只上传当前目录下的文件。注意create每执行一次都会重新上传文件可以使用的version追加上传文件但是如果version执行时提示Metadata file not found: dataset-metadata.json或者说当前的目录下面没有json文件对应的子目录下面也要有JSON文件说明之前的 create 彻底失败了服务器上根本没有这个数据集。这时你只能重新运行 create确保元数据已修正。如果存在以下问题-09-13 13:05:18,015 WARNING Retrying (Retry(total7, connectNone, readNone, redirectNone, statusNone)) after connection broken by NewConnectionError( urllib3.connection.HTTPSConnection object at 0x00000144E0D82190: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或 连接的主机没有反应连接尝试失败。): /upload/storage/v1/b/kaggle-data-sets/o? uploadTyperesumableupload_idAJjja9ZdmJLO9gzxHQYhu7qo66H6gtn9_Yz1YytYQfGRn RwrV51e1gVH7SVhxSFKPRayfGafyDLNrDYUaFEsMUdTaTGdcOl2xgHYGvkwSlIFyg这个错误 [WinError 10060] 连接尝试失败 表明你的网络无法连接到 Kaggle 的上传服务器storage.googleapis.com。这在国内网络环境下是非常典型的问题因为 Kaggle 的数据存储依赖 Google Cloud Storage (GCS)而 GCS 在国内大部分地区是被屏蔽或严重干扰的。设置对应的代理以下终端设置代理针对当前终端有效打开新的终端需要重新配置代理① anaconda prompt终端set HTTP_PROXYhttp://127.0.0.1:7890 set HTTPS_PROXYhttp://127.0.0.1:7890② powershell终端$env:HTTP_PROXY http://127.0.0.1:7890 $env:HTTPS_PROXY http://127.0.0.1:7890 kaggle datasets create -p .③ Git Bash / CMDexport HTTP_PROXYhttp://127.0.0.1:7890 export HTTPS_PROXYhttp://127.0.0.1:7890 kaggle datasets create -p .3. 第 2~N 批版本更新追加文件注意这里的version是全量替换不是增强追加也就是之前的文件会被替换把下一批文件如text_encoder/复制进本地的 playground-v2.5-1024px-aesthetic/ 目录然后执行kaggle datasets version -p . -m add text_encoder and text_encoder_2重复此步骤直到所有文件夹和文件都上传完毕# 第 3 批加入 unet, vaekaggle datasets version -p . -m add unet and vae# 第 4 批加入大权重文件kaggle datasets version -p . -m add safetensors weights原理每次version都会把本地 playground-v2.5-1024px-aesthetic/ 下的所有文件与云端对比新增的文件会被追加已有文件会被覆盖如果本地有修改。所以你可以逐批把新文件放进本地目录再上传新版本。四、在 Kaggle Notebook 中使用上传完成后在 Notebook 右侧点击Add Data → Datasets搜索并添加你的 Dataset。Kaggle 会自动挂载到from diffusers import StableDiffusionPipeline import torch # 路径结构完全保留 model_path /kaggle/input/playground-v25-models/playground pipe StableDiffusionPipeline.from_pretrained( model_path, torch_dtypetorch.float16, )注意挂载后的路径是/kaggle/input/dataset-id/如果你希望路径简洁可以在dataset-metadata.json的id中直接用playground作为名称的一部分。五、注意事项问题说明单文件 20GB 限制Kaggle Dataset 单个文件上限约 20GB如果.safetensors超过此限制需要拆分成多卷或用 Kaggle Models总容量限制免费账户 Dataset 总容量约 100GB确保所有文件加起来不超限上传中断大文件上传如果中断重新执行kaggle datasets version即可已传完的小文件不会重复上传路径保留使用 CLI 上传会完整保留子目录结构和 Hugging Face 下载下来的一模一样网页端补充如果 CLI 上传某一批次失败也可以登录 Kaggle 网页进入该 Dataset → New Version拖拽补充上传六 命令使用补充数据集命令https://github.com/Kaggle/kaggle-cli/blob/main/docs/datasets.md 用于与 Kaggle 数据集交互的命令。① kaggle datasets list列出可用的数据集。用法kaggle datasets list [options]选项--sort-by SORT_BY对结果排序。有效选项hottest、votes、updated、active默认hottest。--size SIZE_CATEGORY已弃用。请改用--min-size和--max-size。--file-type FILE_TYPE按文件类型筛选。有效选项all、csv、sqlite、json、bigQuery。--license LICENSE_NAME按许可证筛选。有效选项all、cc、gpl、odb、other。--tags TAG_IDS按标签筛选逗号分隔的标签 ID。-s, --search SEARCH_TERM搜索词。-m, --mine仅显示你自己的数据集。--user USER按特定用户或组织筛选。-p, --page PAGE结果的页码默认1。-v, --csv以 CSV 格式打印结果。--max-size BYTES数据集的最大大小字节。--min-size BYTES数据集的最小大小字节。示例列出你自己的数据集kaggle datasets list -m列出 CSV 类型的数据集第 2 页、按最近更新排序、标题中包含 “student”、大小介于 13000 到 15000 字节之间kaggle datasets list --file-type csv --page 2 --sort-by updated -s student --min-size 13000 --max-size 15000列出带有 ODB 许可证、带有 “internet” 标签且匹配搜索词 “telco” 的数据集kaggle datasets list --license odb --tags internet --search telco用途此命令可帮助你根据所有者、文件类型、标签和大小等各种条件在 Kaggle 上查找数据集。② kaggle datasets files列出特定数据集的文件。用法kaggle datasets files DATASET [options]参数DATASET格式为owner/dataset-name的数据集 URL 后缀例如kerneler/brazilian-bird-observation-metadata-from-wikiaves。选项-v, --csv以 CSV 格式打印结果。--page-token PAGE_TOKEN用于结果分页的页面令牌。--page-size PAGE_SIZE每页显示的条目数默认20最大200。示例列出数据集kerneler/brazilian-bird-observation-metadata-from-wikiaves的前 7 个文件kaggle datasets files kerneler/brazilian-bird-observation-metadata-from-wikiaves --page-size7用途在下载之前可使用此命令查看数据集内的各个文件。③ kaggle datasets download下载数据集文件。用法kaggle datasets download DATASET [options]参数DATASET数据集 URL 后缀例如willianoliveiragibin/pixar-films。选项-f, --file FILE_NAME要下载的特定文件未指定则下载全部。位于文件夹内的文件例如train/labels.csv会在下载路径下保留该文件夹。-p, --path PATH下载文件的目标文件夹默认为当前目录。-w, --wp将文件下载到当前工作路径。--unzip解压已下载的文件之后删除 .zip 文件。与-f一起使用时大文件会以同名 zip 压缩包的形式提供此选项会从中解压出该文件。-o, --force强制下载覆盖已有文件。-q, --quiet抑制详细输出。示例下载数据集willianoliveiragibin/pixar-films的所有文件kaggle datasets download -d willianoliveiragibin/pixar-films下载数据集goefft/public-datasets-with-file-types-and-columns将其解压到tmp文件夹必要时覆盖并抑制输出kaggle datasets download goefft/public-datasets-with-file-types-and-columns -p tmp --unzip -o -q从goefft/public-datasets-with-file-types-and-columns下载特定文件dataset_results.csv到当前工作目录静默执行并强制覆盖kaggle datasets download goefft/public-datasets-with-file-types-and-columns -f dataset_results.csv -w -q -okaggle datasets download mlg-ulb/creditcardfraud -f creditcard.csv -p data --unzip下载数据集内某个文件夹中的文件。该文件会被写入data/WICAgencies2014ytd/Food_Costs.csvkaggle datasets download jpmiller/publicassistance -f WICAgencies2014ytd/Food_Costs.csv -p data下载单个大文件并解压。creditcard.csv以creditcard.csv.zip的形式提供因此如果不使用--unzip落到磁盘上的将是压缩包用途命令让你能够获取数据集文件以供本地使用。④ kaggle datasets init初始化用于创建新数据集的元数据文件dataset-metadata.json。参见[元数据文件格式](./datasets_metadata.md)。用法kaggle datasets init -p FOLDER_PATH选项-p, --path FOLDER_PATH将在其中创建dataset-metadata.json文件的文件夹路径默认为当前目录。示例在tests/dataset文件夹中初始化一个数据集元数据文件kaggle datasets init -p tests/dataset用途此命令会创建一个模板dataset-metadata.json文件在 Kaggle 上创建新数据集之前你需要先编辑该文件。此文件包含数据集标题、IDslug和许可证等信息。⑤ kaggle datasets create在 Kaggle 上创建新数据集。用法kaggle datasets create -p FOLDER_PATH [options]选项-p, --path FOLDER_PATH包含数据文件和dataset-metadata.json文件的文件夹路径默认为当前目录。-u, --public将数据集设为公开默认为私有。-q, --quiet抑制详细输出。-t, --keep-tabular不将表格文件转换为 CSV默认会进行转换。-r, --dir-mode MODE如何处理目录skip忽略、zip压缩上传、tar非压缩上传默认skip。--ignore-patterns PATTERNS要忽略的文件/目录的模式。可多次指定。示例根据tests/dataset中的文件创建一个新的公开数据集静默执行不转换表格文件并跳过子目录。假设tests/dataset中的dataset-metadata.json已正确填写标题和 slug# Example: Edit dataset-metadata.json first # sed -i s/INSERT_TITLE_HERE/My Dataset Title/ tests/dataset/dataset-metadata.json # sed -i s/INSERT_SLUG_HERE/my-dataset-slug/ tests/dataset/dataset-metadata.json kaggle datasets create -p tests/dataset --public -q -t -r skip用途此命令会上传你的本地数据文件及相关元数据以在 Kaggle 上创建新数据集。⑥ kaggle datasets version为现有数据集创建新版本。用法kaggle datasets version -p FOLDER_PATH -m VERSION_NOTES [options]选项-p, --path FOLDER_PATH包含更新后数据文件和dataset-metadata.json的文件夹路径默认为当前目录。-m, --message VERSION_NOTES必填描述新版本的消息。-q, --quiet抑制详细输出。-t, --keep-tabular不将表格文件转换为 CSV。-r, --dir-mode MODE目录处理模式skip、zip、tar。-d, --delete-old-versions删除此数据集的旧版本。--ignore-patterns PATTERNS要忽略的文件/目录的模式。可多次指定。示例使用tests/dataset中的文件为数据集创建新版本版本说明为 “Updated data”静默执行保留表格格式跳过目录并删除旧版本kaggle datasets version -m Updated data -p tests/dataset -q -t -r skip -d用途使用此命令可通过新文件或元数据变更来更新现有数据集。⑦ kaggle datasets metadata下载数据集的元数据或根据本地元数据更新现有元数据。用法kaggle datasets metadata DATASET [options]参数DATASET数据集 URL 后缀例如goefft/public-datasets-with-file-types-and-columns。选项-p, --path PATH下载/更新元数据文件dataset-metadata.json的目录。默认为当前工作目录。--update使用本地元数据 JSON 文件的内容更新现有数据集版本的元数据例如从本地“推送”。示例将数据集goefft/public-datasets-with-file-types-and-columns的元数据下载到tests/dataset文件夹kaggle datasets metadata goefft/public-datasets-with-file-types-and-columns -p tests/dataset用途此命令让你能够获取现有数据集的dataset-metadata.json文件可用于检查或作为创建新版本的模板。⑧ kaggle datasets status获取数据集的创建状态。用法kaggle datasets status DATASET参数DATASET数据集 URL 后缀例如goefft/public-datasets-with-file-types-and-columns。示例获取数据集goefft/public-datasets-with-file-types-and-columns的状态kaggle datasets status goefft/public-datasets-with-file-types-and-columns用途在创建或更新数据集之后此命令可帮助你检查过程是否成功以及是否存在任何问题。⑨ kaggle datasets delete从 Kaggle 删除数据集。用法kaggle datasets delete DATASET [options]参数DATASET数据集 URL 后缀例如username/dataset-slug。选项-y, --yes自动确认删除无需提示。示例删除数据集username/dataset-slug并自动确认kaggle datasets delete username/dataset-slug --yes用途此命令会从 Kaggle 永久移除你的某个数据集。请谨慎使用。⑩ kaggle datasets topics list列出数据集的讨论主题。用法kaggle datasets topics list DATASET [options]参数DATASET格式为owner/dataset-slug的数据集引用例如zillow/zecon。选项--sort-by SORT_BY排序方式。有效选项hot、top、new、recent、active、relevance。-s, --search SEARCH_TERM用于筛选主题的搜索查询。--page-size PAGE_SIZE每页的条目数。--page-token PAGE_TOKEN用于分页的页面令牌。-v, --csv以 CSV 格式打印结果。-q, --quiet抑制详细输出。示例列出 zillow/zecon 数据集的最近主题kaggle datasets topics list zillow/zecon --sort-by recent用途此命令让你能够浏览特定数据集的讨论主题。⑪ kaggle datasets topics show以树形结构显示数据集讨论主题及其所有评论。用法kaggle datasets topics show TOPIC_REF [options]参数TOPIC_REF主题引用可以是dataset/topic-id例如zillow/zecon/12345注意该格式支持包含多个斜杠的数据集 slugdataset topic-id两个独立的参数其中topic-id作为第二个参数传入topic-id纯数字 ID选项--page-size PAGE_SIZE每页显示的评论数。--page-token PAGE_TOKEN用于评论分页的页面令牌。-v, --csv以 CSV 格式打印结果。-q, --quiet抑制详细输出。示例kaggle datasets topics show zillow/zecon/12345用途此命令会显示完整的讨论主题及其所有评论并以缩进的树形结构呈现。