Files
FacereDataset/docs/sources/oshwhub_corpus_estimate.md
Zhang Jiahao e222b08f27 Add corpus size/license estimator; snapshot 90-project findings
Why:
- 放量决策需要比"52MB/项目 × 12493 = 650GB"更扎实的数据。用
  scripts/estimate_size.py 采样 90 个 hot 项目的 attachments[].size
  得到真实分布(median 9MB / p90 54MB),全量 median 估算 110GB,
  p90 上界 660GB。这给 Charles 一个可信的存储预算。
- 附带 license 和 ext 分布采出两个重要洞察:
  (1) mp4+qt 视频占 54% 存储,加 --skip-ext 开关可节省一半;
  (2) NC (Non-Commercial) 许可 ~11%,下游必须按 whitelist 过滤。

What:
- scripts/estimate_size.py: 无下载的元数据采样器,复用 crawler.parse_detail_html
- docs/sources/oshwhub_corpus_estimate.md: 结果快照 + 决策建议
- log.md: 本次会话记录

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 19:45:54 +08:00

2.6 KiB
Raw Blame History

oshwhub 全量规模与特征估算

采样方法scripts/estimate_size.py/api/project?sort=hot90 个项目3 页 × 30解析每页详情 HTML 的 attachments[],不下载任何附件。 采样日期2026-04-23 重跑方式uv run python scripts/estimate_size.py --pages 3 --page-size 30 --sort hot

单项目分布

指标 附件数 体积
mean 3.1 22.2 MB
median 2 9.0 MB
p90 54.2 MB
max 15 204.5 MB

90 个样本共 2001 MB。注意 sort=hot 的采样偏向有高人气、有文件的项目;长尾应更小。

全量推算12 493 projects

基数 估算
mean × total 271 GB
median × total 110 GB ← 合理规划值
p90 × total 662 GB ← 上界

建议按 150 GB 做预算median + buffer排除 hot 偏差);300 GB 做容量上限,预留故障余地。

文件类型分布(按字节)

后缀 样本总量 占比
.mp4 1029 MB 51%
.zip 676 MB 34%
.rar 72 MB 4%
.qt 66 MB 3%
.pdf 32 MB 2%
.bin 27 MB 1%
.jpeg 26 MB 1%
.7z 10 MB <1%

关键洞察视频mp4 + qt ≈ 54%)占存储一半以上。如果训练数据主要用 PCB / 原理图 / BOM可在爬虫中加 --skip-ext mp4,qt 滤掉视频,存储立省一半。

许可证分布90 个样本)

License 计数 占比
GPL 3.0 44 49%
Public Domain 19 21%
CC BY-NC-SA 4.0 5 6%
CERN Open Hardware License 4 4%
CC BY-NC-SA 3.0 3 3%
CC BY-SA 4.0 2 2%
TAPR Open Hardware License 2 2%
CC-BY-NC-SA 3.0 2 2%
其他 CC 2 2%

全部开源/公共领域许可,样本中无闭源。但注意:

  • 49% GPL 3.0 — 用于训练模型无直接违反(模型权重不是 derivative work 的学术共识存在争议,保守起见训练输出不可简单商业化再分发)
  • NC (Non-Commercial) 约 11% — 商用场景应过滤剔除
  • 样本偏大型项目;全量中 license: "unknown" 比例可能更高,需要下游按 whitelist 过滤

给 Charles 的建议

  1. 放量预算150 GB 存储 + 15% buffer ≈ 180 GB LFS 空间
  2. 滤视频:在 Phase 1.4 之前给 crawler 加 --skip-ext mp4,qt,mov,avi 开关,存储需求砍半
  3. 许可证白名单:下游派生数据集按 license in {Public Domain, CC0, CC BY, CC BY-SA, MIT, Apache-2.0, BSD*, CERN-OHL*} 过滤 NC / 未知
  4. 分期爬取:按 sort=hot 按 page 推进,每 500 项目 checkpoint 一次