[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-jcpeterson--openwebtext":3,"tool-jcpeterson--openwebtext":65},[4,18,28,36,44,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",156804,2,"2026-04-15T11:34:33",[14,13,27],"语言模型",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":10,"last_commit_at":34,"category_tags":35,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[27,15,13,14],{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":24,"last_commit_at":42,"category_tags":43,"status":17},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[14,27],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":24,"last_commit_at":50,"category_tags":51,"status":17},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,"2026-04-10T11:13:16",[15,16,52,53,13,54,27,14,55],"视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":62,"last_commit_at":63,"category_tags":64,"status":17},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[27,16,54],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":71,"readme_en":72,"readme_zh":73,"quickstart_zh":74,"use_case_zh":75,"hero_image_url":76,"owner_login":77,"owner_name":78,"owner_avatar_url":79,"owner_bio":78,"owner_company":78,"owner_location":78,"owner_email":78,"owner_twitter":78,"owner_website":78,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":90,"env_os":91,"env_gpu":91,"env_ram":92,"env_deps":93,"category_tags":100,"github_topics":78,"view_count":24,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":101,"updated_at":102,"faqs":103,"releases":144},7846,"jcpeterson\u002Fopenwebtext","openwebtext","Open clone of OpenAI's unreleased WebText dataset scraper. This version uses pushshift.io files instead of the API for speed.","OpenWebText 是 OpenAI 未公开数据集 WebText 的开源复刻版，旨在为训练类似 GPT-2 的大型语言模型提供高质量的文本语料。它通过挖掘 Reddit 社区中获赞数较高的帖子链接，自动抓取网页并提取纯净文本，最终构建出包含超 2300 万个 URL 和 1000 多万页 HTML 内容的庞大数据库。\n\n该工具主要解决了高质量、大规模预训练数据获取难的问题。传统爬虫效率低且噪音大，而 OpenWebText 创新性地利用 Pushshift.io 的离线归档数据替代实时 API 调用，大幅提升了抓取速度。同时，它内置了智能去重机制和基于“点赞数（Karma）”的过滤策略，确保收录内容的质量与多样性。此外，项目还提供了从 URL 提取、HTML 下载到文本清洗的全流程脚本，支持高度自定义的过滤条件和并行处理。\n\nOpenWebText 非常适合 AI 研究人员、机器学习工程师以及需要构建自定义语料库的开发者使用。如果你正在探索自然语言处理的前沿技术，或希望复现大模型训练过程，这套工具能提供坚实的数据基础。虽然普通用户可能较少直接接触其底层代码，但它所生成的开放数据集","OpenWebText 是 OpenAI 未公开数据集 WebText 的开源复刻版，旨在为训练类似 GPT-2 的大型语言模型提供高质量的文本语料。它通过挖掘 Reddit 社区中获赞数较高的帖子链接，自动抓取网页并提取纯净文本，最终构建出包含超 2300 万个 URL 和 1000 多万页 HTML 内容的庞大数据库。\n\n该工具主要解决了高质量、大规模预训练数据获取难的问题。传统爬虫效率低且噪音大，而 OpenWebText 创新性地利用 Pushshift.io 的离线归档数据替代实时 API 调用，大幅提升了抓取速度。同时，它内置了智能去重机制和基于“点赞数（Karma）”的过滤策略，确保收录内容的质量与多样性。此外，项目还提供了从 URL 提取、HTML 下载到文本清洗的全流程脚本，支持高度自定义的过滤条件和并行处理。\n\nOpenWebText 非常适合 AI 研究人员、机器学习工程师以及需要构建自定义语料库的开发者使用。如果你正在探索自然语言处理的前沿技术，或希望复现大模型训练过程，这套工具能提供坚实的数据基础。虽然普通用户可能较少直接接触其底层代码，但它所生成的开放数据集正间接推动着整个 AI 社区的进步。","# OpenWebText\n\n[Joshua Peterson](https:\u002F\u002Ftwitter.com\u002Fjoshuacpeterson), [Stephan Meylan](https:\u002F\u002Fstephanmeylan.com), & [David Bourgin](https:\u002F\u002Fhttp:\u002F\u002Fdvaidbourign.com)\n\nOpen clone of OpenAI's unreleased WebText dataset ([blog](https:\u002F\u002Fblog.openai.com\u002Fbetter-language-models\u002F), [paper](https:\u002F\u002Fd4mucfpksywv.cloudfront.net\u002Fbetter-language-models\u002Flanguage_models_are_unsupervised_multitask_learners.pdf), [code](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fgpt-2)) scraper used to train GPT-2. The current result is just over 23 million URLs and over 10 million HTML pages.\n\nThis implementation mines and intelligently de-duplicates +3 karma URLs from pre-downloaded (monthly) pushshift.io Reddit submission dumps (which is much faster than making successive calls to the web API), downloads raw HTML, and extracts text. To save time, you can use the pre-filtered URL lists [here](https:\u002F\u002Fmega.nz\u002F#F!EZZD0YwJ!9_PlEQzdMVLaNdKv_ICNVQ), which reduce the 140GB of pushshift data to down to the 2GB of URLs actually needed for content scraping. There's also an initial utility for tokenizing and we are looking to add BPE encoding soon. This code base is functional but in active development so please feel free to post issues or suggest improvements (pull requests welcome).\n\n### Dependencies\nIf you use pipenv (`pip install --user pipenv`), cd to the project root and run\n```\npipenv install \npipenv shell\n```\nOtherwise, just run the following in a new virtual environment\n```\npip3 install -r requirements.txt\n```\n\n### To Extract\u002FClean URLs Yourself\nYou can download the pre-filtered URLs [here](https:\u002F\u002Fmega.nz\u002F#F!EZZD0YwJ!9_PlEQzdMVLaNdKv_ICNVQ), but if you want to re-filter them yourself, perhaps with different filtering criteria, follow these instructions. Pushshift dumps must first be downloaded using `fetch_urls.py` (thanks to [simonfall](https:\u002F\u002Fgithub.com\u002Fsimonfall)), or manually from [here](https:\u002F\u002Ffiles.pushshift.io\u002Freddit\u002Fsubmissions\u002F). Two example dumps are included in the repo in the \"pushshift_dumps\" folder. Next, extract good URLs using:\n```\npython extract_urls.py --single_file RS_v2_2005-06.xz\n```\nTo process multiple pushshift files, specify year ranges:\n```\npython extract_urls.py --year_start 2016 --year_end 2018\n```\nTo change the karma threshold:\n```\npython extract_urls.py --single_file RS_v2_2005-06.xz --min_karma 4\n```\nTo de-duplicate the extracted URLs, provide a directory of all URL dumps:\n```\npython deduplicate_urls.py --input_dir url_dumps\n```\nThe output of both `extract_urls.py` and `deduplicate_urls.py` are text files given that all 23 million \"good\" URLs only comprise 2GB.\n\n### To Scrape HTML (or Text Directly)\nThis is done one month at a time given the compute\u002Fbandwidth required. `n_procs` is the number of cores to use for parallelization and should be at least `20-40` for fastest results. The script will output results in chunks of size `chunk_size`. If `timeout` is not set, or is set to `-1`, the downloader may hang on large files.\n\nTo scrape raw HTML for later processing and text extraction, set `--scraper` to `raw` as shown below. The downloaded HTML is stripped of script\u002Fstyle tags and stored in compressed archives using LZMA compression, along with a small amount of meta.\n```\npython download.py url_dumps_deduped\u002FRS_20XX-XX.xz.deduped.txt --n_procs 100 --scraper raw --chunk_size 100000 --compress --timeout 30\n```\nTo scrape text content directly and save disk space (but without the option to re-extract with different parameters later), set `--scraper` to `newspaper` to extract text using the Python [newspaper](https:\u002F\u002Fgithub.com\u002Fcodelucas\u002Fnewspaper) package. For more careful extraction, set `--scraper` to `bs4` ([Beautiful Soup 4](https:\u002F\u002Fwww.crummy.com\u002Fsoftware\u002FBeautifulSoup\u002Fbs4\u002Fdoc\u002F)), which will extact text for all `\u003Cp>` tags on the page.\n\n### To Extract Text from HTML (After Download)\n```\npython extract_text.py --html_archive scraped\u002FRS_20XX-XX-X_data.xz --n_procs 100 \n```\nThis currently uses [newspaper](https:\u002F\u002Fgithub.com\u002Fcodelucas\u002Fnewspaper) and outputs txt files.\n\n### Tokenization\nThe original WebText didn't use tokenization, but if you need it use:\n```\npython tokenize_text.py --input_glob \"parsed\u002F*.txt\" --output_dir tokenized\n```\nThis will be improved and parallelized soon.\n\n### BPE Encoding\nComing soon...\n\n### Original OpenAI project links\n* Blog Post [(Better Language Models and Their Implications)](https:\u002F\u002Fblog.openai.com\u002Fbetter-language-models\u002F)\n* Paper [(Language Models are Unsupervised Multitask Learners)](https:\u002F\u002Fd4mucfpksywv.cloudfront.net\u002Fbetter-language-models\u002Flanguage_models_are_unsupervised_multitask_learners.pdf)\n* Code [(https:\u002F\u002Fgithub.com\u002Fopenai\u002Fgpt-2)](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fgpt-2)\n\n### Other Implmentations\nAn alternative scraper based on the pushshift.io API and fork of the download code above can be found [here](https:\u002F\u002Fgithub.com\u002Feukaryote31\u002Fopenwebtext)\n","# OpenWebText\n\n[乔舒亚·彼得森](https:\u002F\u002Ftwitter.com\u002Fjoshuacpeterson)、[斯蒂芬·梅兰](https:\u002F\u002Fstephanmeylan.com) 和 [大卫·布尔金](https:\u002F\u002Fhttp:\u002F\u002Fdvaidbourign.com)\n\nOpenWebText 是 OpenAI 未公开的 WebText 数据集的一个开源克隆版（[博客](https:\u002F\u002Fblog.openai.com\u002Fbetter-language-models\u002F)、[论文](https:\u002F\u002Fd4mucfpksywv.cloudfront.net\u002Fbetter-language-models\u002Flanguage_models_are_unsupervised_multitask_learners.pdf)、[代码](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fgpt-2)），该数据集曾用于训练 GPT-2。目前的结果是超过 2300 万个 URL 和超过 1000 万个 HTML 页面。\n\n此实现从预先下载的（每月更新的）pushshift.io Reddit 提交数据转储中挖掘并智能去重 +3 karma 的 URL（这种方式比多次调用 Web API 快得多），然后下载原始 HTML 并提取文本。为了节省时间，您可以使用此处提供的预过滤 URL 列表 [链接](https:\u002F\u002Fmega.nz\u002F#F!EZZD0YwJ!9_PlEQzdMVLaNdKv_ICNVQ)，它可将 140GB 的 pushshift 数据缩减至仅需用于内容抓取的 2GB URL。此外，我们还提供了一个用于分词的初始工具，并计划尽快加入 BPE 编码功能。该代码库已具备基本功能，但仍在积极开发中，欢迎提出问题或改进建议（欢迎提交 Pull Request）。\n\n### 依赖项\n如果您使用 pipenv（`pip install --user pipenv`），请进入项目根目录并运行：\n```\npipenv install \npipenv shell\n```\n否则，请在新的虚拟环境中运行以下命令：\n```\npip3 install -r requirements.txt\n```\n\n### 自行提取\u002F清理 URL\n您可以在此处下载预过滤的 URL [链接](https:\u002F\u002Fmega.nz\u002F#F!EZZD0YwJ!9_PlEQzdMVLaNdKv_ICNVQ)，但如果您希望使用不同的过滤条件重新筛选这些 URL，可以按照以下步骤操作。首先需要使用 `fetch_urls.py` 脚本（感谢 [simonfall](https:\u002F\u002Fgithub.com\u002Fsimonfall)）下载 pushshift 数据转储，或者手动从 [这里](https:\u002F\u002Ffiles.pushshift.io\u002Freddit\u002Fsubmissions\u002F) 下载。仓库中的“pushshift_dumps”文件夹内包含了两个示例数据转储。接下来，使用以下命令提取符合条件的 URL：\n```\npython extract_urls.py --single_file RS_v2_2005-06.xz\n```\n若要处理多个 pushshift 文件，可以指定年份范围：\n```\npython extract_urls.py --year_start 2016 --year_end 2018\n```\n如需更改 karma 阈值：\n```\npython extract_urls.py --single_file RS_v2_2005-06.xz --min_karma 4\n```\n要对提取出的 URL 进行去重，请提供包含所有 URL 转储的目录：\n```\npython deduplicate_urls.py --input_dir url_dumps\n```\n`extract_urls.py` 和 `deduplicate_urls.py` 的输出均为文本文件，因为所有 2300 万个“优质”URL 仅占用 2GB 空间。\n\n### 抓取 HTML（或直接抓取文本）\n由于计算和带宽需求较高，此过程按月进行。`n_procs` 表示用于并行化的核心数，为获得最快结果，建议设置为至少 20–40。脚本会以 `chunk_size` 大小的块输出结果。如果未设置 `timeout` 或将其设为 `-1`，下载器可能会在处理大文件时卡住。\n\n若要抓取原始 HTML 以供后续处理和文本提取，请将 `--scraper` 参数设置为 `raw`，如下所示。下载的 HTML 将被剥离 script 和 style 标签，并使用 LZMA 压缩存储为压缩档案，同时附带少量元数据。\n```\npython download.py url_dumps_deduped\u002FRS_20XX-XX.xz.deduped.txt --n_procs 100 --scraper raw --chunk_size 100000 --compress --timeout 30\n```\n若要直接抓取文本内容以节省磁盘空间（但无法在未来使用不同参数重新提取文本），请将 `--scraper` 设置为 `newspaper`，利用 Python 的 [newspaper](https:\u002F\u002Fgithub.com\u002Fcodelucas\u002Fnewspaper) 库提取文本。若需更精细地提取文本，可将 `--scraper` 设置为 `bs4`（[Beautiful Soup 4](https:\u002F\u002Fwww.crummy.com\u002Fsoftware\u002FBeautifulSoup\u002Fbs4\u002Fdoc\u002F)），它将提取页面上所有 `\u003Cp>` 标签中的文本。\n\n### 从已下载的 HTML 中提取文本\n```\npython extract_text.py --html_archive scraped\u002FRS_20XX-XX-X_data.xz --n_procs 100\n```\n目前该脚本使用 [newspaper](https:\u002F\u002Fgithub.com\u002Fcodelucas\u002Fnewspaper) 工具，并输出 txt 文件。\n\n### 分词\n原始 WebText 并未使用分词，但如果您需要分词功能，可以使用以下命令：\n```\npython tokenize_text.py --input_glob \"parsed\u002F*.txt\" --output_dir tokenized\n```\n该功能将在不久的将来得到改进并实现并行化。\n\n### BPE 编码\n即将推出……\n\n### OpenAI 原始项目链接\n* 博客文章 [(更好的语言模型及其影响)](https:\u002F\u002Fblog.openai.com\u002Fbetter-language-models\u002F)\n* 论文 [(语言模型是无监督的多任务学习者)](https:\u002F\u002Fd4mucfpksywv.cloudfront.net\u002Fbetter-language-models\u002Flanguage_models_are_unsupervised_multitask_learners.pdf)\n* 代码 [(https:\u002F\u002Fgithub.com\u002Fopenai\u002Fgpt-2)](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fgpt-2)\n\n### 其他实现\n基于 pushshift.io API 且 fork 自上述下载代码的替代抓取工具可在 [这里](https:\u002F\u002Fgithub.com\u002Feukaryote31\u002Fopenwebtext) 找到。","# OpenWebText 快速上手指南\n\nOpenWebText 是 OpenAI 未公开 WebText 数据集（用于训练 GPT-2）的开源复刻版。该项目通过挖掘 Reddit 高热度提交记录，智能去重并抓取 HTML 页面以提取高质量文本数据。\n\n## 环境准备\n\n*   **系统要求**：Linux 或 macOS（推荐），需具备较高的网络带宽和充足的磁盘空间（原始数据量较大）。\n*   **Python 版本**：Python 3.6+\n*   **前置依赖**：\n    *   `pip` 包管理工具\n    *   推荐使用 `pipenv` 管理虚拟环境（可选，但推荐）\n\n> **注意**：由于项目依赖大量外部库且涉及网络爬虫，建议在网络环境稳定的情况下操作。原文未提供中国镜像源，若安装缓慢，可临时指定国内 pip 源（如 `-i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`）。\n\n## 安装步骤\n\n### 方式一：使用 Pipenv（推荐）\n\n```bash\n# 安装 pipenv (如果尚未安装)\npip install --user pipenv\n\n# 进入项目根目录\ncd openwebtext\n\n# 安装依赖并激活虚拟环境\npipenv install \npipenv shell\n```\n\n### 方式二：使用标准虚拟环境\n\n```bash\n# 创建并激活虚拟环境 (示例)\npython3 -m venv venv\nsource venv\u002Fbin\u002Factivate  # Windows 用户请使用: venv\\Scripts\\activate\n\n# 安装依赖\npip3 install -r requirements.txt\n```\n\n## 基本使用\n\n本项目核心流程分为：**获取 URL 列表** -> **抓取内容** -> **提取文本**。为节省时间，强烈建议直接使用作者预过滤好的 URL 列表，而非从头处理 Reddit 原始转储数据。\n\n### 1. 获取 URL 列表\n你可以从 [Mega.nz](https:\u002F\u002Fmega.nz\u002F#F!EZZD0YwJ!9_PlEQzdMVLaNdKv_ICNVQ) 下载预过滤的 URL 列表（约 2GB），这将跳过处理 140GB Pushshift 原始数据的步骤。\n\n若需自行过滤（例如修改 Karma 阈值），可使用以下命令：\n```bash\n# 提取单个文件的 URL (Karma >= 3)\npython extract_urls.py --single_file RS_v2_2005-06.xz\n\n# 提取指定年份范围的 URL\npython extract_urls.py --year_start 2016 --year_end 2018\n\n# 去重处理\npython deduplicate_urls.py --input_dir url_dumps\n```\n\n### 2. 抓取 HTML 或文本\n抓取过程消耗大量带宽和计算资源，建议分月处理并开启多进程。\n\n**方案 A：抓取原始 HTML（推荐，便于后续灵活提取）**\n此模式会去除 script\u002Fstyle 标签，并使用 LZMA 压缩存储。\n```bash\n# n_procs 建议设置为 20-40 以上以加速；timeout 防止大文件挂起\npython download.py url_dumps_deduped\u002FRS_20XX-XX.xz.deduped.txt --n_procs 100 --scraper raw --chunk_size 100000 --compress --timeout 30\n```\n\n**方案 B：直接抓取文本（节省磁盘空间）**\n使用 `newspaper` 库直接提取正文，但无法重新调整提取参数。\n```bash\npython download.py url_dumps_deduped\u002FRS_20XX-XX.xz.deduped.txt --n_procs 100 --scraper newspaper --chunk_size 100000 --timeout 30\n```\n*注：若需更精细的控制（仅提取 `\u003Cp>` 标签），可将 `--scraper` 设为 `bs4`。*\n\n### 3. 从 HTML 提取文本\n如果你选择了方案 A（抓取原始 HTML），需运行以下步骤提取文本：\n```bash\npython extract_text.py --html_archive scraped\u002FRS_20XX-XX-X_data.xz --n_procs 100 \n```\n\n### 4. 分词（可选）\n如果需要像原始 WebText 那样进行分词处理：\n```bash\npython tokenize_text.py --input_glob \"parsed\u002F*.txt\" --output_dir tokenized\n```","某初创 AI 实验室正致力于训练一个垂直领域的中文对话模型，急需海量且高质量的通用语料来夯实模型的语言理解基础。\n\n### 没有 openwebtext 时\n- **数据获取门槛极高**：团队无法复现 OpenAI 用于训练 GPT-2 的核心数据集 WebText，只能依赖规模较小或质量参差不齐的公开语料，导致模型泛化能力受限。\n- **清洗效率低下**：若尝试自行从 Reddit 等源头爬取，需处理数百 GB 的原始转储文件，手动编写脚本过滤低分链接和去重耗时数周，且极易因 API 限流而中断。\n- **资源浪费严重**：缺乏智能预筛选机制，爬虫会抓取大量包含广告、脚本或无意义的低质页面，浪费了宝贵的计算算力和存储带宽。\n- **文本提取困难**：从原始 HTML 中精准提取正文需要反复调整解析规则，难以平衡覆盖率与噪声控制，导致最终可用的纯文本数据寥寥无几。\n\n### 使用 openwebtext 后\n- **直接复用高质量源**：团队利用 openwebtext 提供的预过滤 URL 列表（仅 2GB），直接锁定了超过 2300 万个高热度链接，瞬间获得了媲美工业级的数据种子。\n- **采集速度显著提升**：通过基于 pushshift.io 本地文件的离线挖掘模式，避开了网络 API 调用的延迟与限制，将原本数周的数据准备周期缩短至几天。\n- **智能去重与过滤**：工具内置的去重算法和基于 Karma 值的筛选机制，自动剔除了冗余和低质内容，确保下载的每一页 HTML 都具有高信息密度。\n- **灵活的文字萃取**：支持并行调用 newspaper 或 BeautifulSoup 模块，一键从压缩的 HTML 归档中提取纯净文本，快速构建出千万级句子的训练语料库。\n\nopenwebtext 让中小团队也能以极低的成本，高效构建出足以训练大型语言模型的工业级通用语料底座。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjcpeterson_openwebtext_4c623b12.png","jcpeterson",null,"https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fjcpeterson_f746e8df.png","https:\u002F\u002Fgithub.com\u002Fjcpeterson",[82],{"name":83,"color":84,"percentage":85},"Python","#3572A5",100,763,85,"2026-03-31T00:41:24","GPL-3.0",4,"未说明","未说明（建议多核 CPU 并行处理，n_procs 推荐 20-40）",{"notes":94,"python":95,"dependencies":96},"该工具主要用于爬取和清洗 Reddit 高积分帖子中的 URL 及 HTML 文本，非深度学习训练框架。运行时需要大量存储空间（原始 Pushshift 数据约 140GB，过滤后 URL 列表约 2GB，最终 HTML\u002F文本数据量巨大）。下载脚本支持多线程并行（--n_procs），建议设置 20-40 或更高以加快速度；需设置超时时间（--timeout）防止大文件下载挂起。可选用预过滤的 URL 列表以节省时间。","3.x (通过 pip3 安装)",[97,98,99],"pipenv","newspaper","beautifulsoup4 (bs4)",[27,16],"2026-03-27T02:49:30.150509","2026-04-16T03:28:37.813288",[104,109,114,119,124,129,134,139],{"id":105,"question_zh":106,"answer_zh":107,"source_url":108},35169,"如何引用 OpenWebText 数据集？","建议使用以下 BibTeX 格式进行引用：\n@misc{Gokaslan2019OpenWeb,\n\ttitle={OpenWebText Corpus},\n\tauthor={Aaron Gokaslan and Vanya Cohen},\n\thowpublished={\\url{http:\u002F\u002FSkylion007.github.io\u002FOpenWebTextCorpus}},\n\tyear={2019}\n}","https:\u002F\u002Fgithub.com\u002Fjcpeterson\u002Fopenwebtext\u002Fissues\u002F36",{"id":110,"question_zh":111,"answer_zh":112,"source_url":113},35170,"下载中断或报错后如何恢复下载？","该功能已内置在脚本中。如果遇到错误（如 pycurl 错误或断开连接），直接重新运行下载脚本即可，它会自动检测到已存在的文件夹并从中断处继续，无需手动删除文件或从头开始。","https:\u002F\u002Fgithub.com\u002Fjcpeterson\u002Fopenwebtext\u002Fissues\u002F25",{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},35171,"Pushshift 不提供实时 Karma 分数，项目是如何获取 karma >= min_karma 的数据的？","项目使用的是 Pushshift 在抓取数据当时所记录保存的 Karma 分数快照，而不是尝试获取实时的分数。","https:\u002F\u002Fgithub.com\u002Fjcpeterson\u002Fopenwebtext\u002Fissues\u002F15",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},35172,"运行 extract_text.py 时提示缺少 --html_archive 参数怎么办？","文档中的示例命令已修正。在提取文本时，需要在文件路径前添加 --html_archive 标志。正确的命令格式应类似于：\npython extract_text.py --html_archive scraped\u002FRS_20XX-XX-X_data.xz --n_procs 100","https:\u002F\u002Fgithub.com\u002Fjcpeterson\u002Fopenwebtext\u002Fissues\u002F14",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},35173,"如何实现 BPE (Byte Pair Encoding) 分词？","可以通过参考现有的实现代码来集成 BPE。推荐的参考资源包括 OpenAI GPT-2 的编码器实现 (https:\u002F\u002Fgithub.com\u002Fopenai\u002Fgpt-2\u002Fblob\u002Fmaster\u002Fsrc\u002Fencoder.py) 或 Hugging Face PyTorch Pretrained BERT 库中的 GPT-2 分词器实现 (https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fpytorch-pretrained-BERT\u002Fblob\u002Fmaster\u002Fpytorch_pretrained_bert\u002Ftokenization_gpt2.py)。","https:\u002F\u002Fgithub.com\u002Fjcpeterson\u002Fopenwebtext\u002Fissues\u002F8",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},35174,"为什么使用 Newspaper3k 进行 HTML 抓取而不是更简单的 requests？","虽然 Newspaper3k 看起来较复杂，但社区贡献者指出，为了处理超时和多进程管理，可以使用 pebble 库替代标准的 multiprocessing，因为它能在超时后真正停止进程。此外，对于高并发请求，某些网站（如 goal.com 和 washingtonpost.com）会故意降速，使用 pycurl 等工具配合原生超时设置（例如 20 秒）能更好地处理这些情况。","https:\u002F\u002Fgithub.com\u002Fjcpeterson\u002Fopenwebtext\u002Fissues\u002F5",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},35175,"extract_text.py 脚本运行缓慢且未充分利用多进程怎么办？","性能瓶颈通常在于解压 tar 归档文件的过程，而非文本提取本身。这导致大部分时间只有一个进程在工作。建议优化解压逻辑或将其分离，以便更好地利用多核处理能力。","https:\u002F\u002Fgithub.com\u002Fjcpeterson\u002Fopenwebtext\u002Fissues\u002F12",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},35176,"无法下载 2G 链接或链接指向 MEGA 主页怎么办？","这通常是由于原始下载链接失效或变动导致的。维护者通常会更新备份链接或修复指向，请查看项目的最新 README 或关闭的 Issue 以获取最新的可用下载地址。","https:\u002F\u002Fgithub.com\u002Fjcpeterson\u002Fopenwebtext\u002Fissues\u002F1",[]]