[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-bigscience-workshop--xmtf":3,"tool-bigscience-workshop--xmtf":65},[4,17,27,35,48,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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 真正成长为懂上",153609,2,"2026-04-13T11:34:59",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,3,"2026-04-06T11:19:32",[15,26,14,13],"图像",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":10,"last_commit_at":33,"category_tags":34,"status":16},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",[13,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},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",[26,43,44,45,14,46,15,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":54,"last_commit_at":55,"category_tags":56,"status":16},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",[15,43,46],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":54,"last_commit_at":63,"category_tags":64,"status":16},6590,"gpt4all","nomic-ai\u002Fgpt4all","GPT4All 是一款让普通电脑也能轻松运行大型语言模型（LLM）的开源工具。它的核心目标是打破算力壁垒，让用户无需依赖昂贵的显卡（GPU）或云端 API，即可在普通的笔记本电脑和台式机上私密、离线地部署和使用大模型。\n\n对于担心数据隐私、希望完全掌控本地数据的企业用户、研究人员以及技术爱好者来说，GPT4All 提供了理想的解决方案。它解决了传统大模型必须联网调用或需要高端硬件才能运行的痛点，让日常设备也能成为强大的 AI 助手。无论是希望构建本地知识库的开发者，还是单纯想体验私有化 AI 聊天的普通用户，都能从中受益。\n\n技术上，GPT4All 基于高效的 `llama.cpp` 后端，支持多种主流模型架构（包括最新的 DeepSeek R1 蒸馏模型），并采用 GGUF 格式优化推理速度。它不仅提供界面友好的桌面客户端，支持 Windows、macOS 和 Linux 等多平台一键安装，还为开发者提供了便捷的 Python 库，可轻松集成到 LangChain 等生态中。通过简单的下载和配置，用户即可立即开始探索本地大模型的无限可能。",77307,"2026-04-11T06:52:37",[15,13],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":81,"owner_twitter":82,"owner_website":83,"owner_url":84,"languages":85,"stars":94,"forks":95,"last_commit_at":96,"license":97,"difficulty_score":98,"env_os":99,"env_gpu":100,"env_ram":101,"env_deps":102,"category_tags":112,"github_topics":113,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":124,"updated_at":125,"faqs":126,"releases":162},7266,"bigscience-workshop\u002Fxmtf","xmtf","Crosslingual Generalization through Multitask Finetuning","xmtf 是一个专注于通过多任务微调实现跨语言泛化的开源项目，旨在提升大语言模型在多语种环境下的指令遵循能力。它核心解决了传统模型在面对非英语提示词时表现不佳、难以将英语训练成果迁移到其他语言的痛点。该项目不仅提供了完整的数据处理流程，还发布了著名的 BLOOMZ 和 mT0 系列模型及其训练代码。\n\n其独特的技术亮点在于构建了 xP3 数据集，这是一个涵盖 46 种语言、混合了 13 项不同任务的庞大指令集。有趣的是，研究发现即使仅使用英语提示词对多语言数据进行微调，模型也能在多种语言上展现出强大的泛化能力；同时，项目也探索了使用机器翻译提示词的进阶方案。\n\nxmtf 非常适合自然语言处理领域的研究人员和开发者使用。如果你希望深入探究大模型的跨语言机制，或者需要基于 BLOOM 和 mT0 架构进行二次开发与评估，这里提供的从数据构建、模型训练到效果评估的全套组件将是宝贵的资源。对于关注低资源语言 AI 应用的团队，xmtf 也为打破语言壁垒提供了坚实的技术基础。","# Crosslingual Generalization through Multitask Finetuning\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbigscience-workshop_xmtf_readme_d4097b7c3dda.png)\n\nThis repository provides an overview of all components used for the creation of BLOOMZ & mT0 and xP3 introduced in the paper [Crosslingual Generalization through Multitask Finetuning](https:\u002F\u002Farxiv.org\u002Fabs\u002F2211.01786). [Link to 25min video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=LG_N5ITizDo&pp=ygU4Q3Jvc3NsaW5ndWFsIEdlbmVyYWxpemF0aW9uIHRocm91Z2ggTXVsdGl0YXNrIEZpbmV0dW5pbmc%3D) on the paper by Samuel Albanie; [Link to 4min video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=DFMH9f2cj3A&t=8s&pp=ygU4Q3Jvc3NsaW5ndWFsIEdlbmVyYWxpemF0aW9uIHRocm91Z2ggTXVsdGl0YXNrIEZpbmV0dW5pbmc%3D) on the paper by Niklas Muennighoff.\n\n\u003C!-- TOC -->\n\n- [Data](#data)\n- [Models](#models)\n- [Create xP3](#create-xp3)\n- [Train models](#train-models)\n    - [BLOOMZ](#bloomz)\n    - [mT0](#mt0)\n- [Evaluate models](#evaluate-models)\n    - [Rank Evaluation](#rank-evaluation)\n    - [Generation Evaluation](#generation-evaluation)\n- [Plots & Tables](#plots--tables)\n    - [Plots](#plots)\n    - [Tables](#tables)\n- [Citation](#citation)\n\n\u003C!-- \u002FTOC -->\n\n## Data\n\n\u003Ctable>\n  \u003Ctr>\n\u003Cth>Name\u003C\u002Fth>\n\u003Cth>Explanation\u003C\u002Fth>\n\u003Cth>Example models\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FMuennighoff\u002FxP3x>xP3x\u003C\u002Fa>\u003C\u002Ft> \n\u003Ctd>Mixture of 17 tasks in 277 languages with English prompts\u003C\u002Ftd>\n\u003Ctd>WIP - Join us at Project Aya @\u003Ca href=https:\u002F\u002Fcohere.for.ai\u002F>C4AI\u003C\u002Fa> to help!\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3>xP3\u003C\u002Fa>\u003C\u002Ft> \n\u003Ctd>Mixture of 13 training tasks in 46 languages with English prompts\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz>BLOOMZ\u003C\u002Fa> & \u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xxl>mT0-13B\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3mt>xP3mt\u003C\u002Fa>\u003C\u002Ft> \n\u003Ctd>Mixture of 13 training tasks in 46 languages with prompts in 20 languages (machine-translated from English)\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-mt>BLOOMZ-MT\u003C\u002Fa> & \u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xxl-mt>mT0-13B-MT\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3all>xP3all\u003C\u002Fa>\u003C\u002Ft> \n\u003Ctd>xP3 + our evaluation datasets adding an additional 3 tasks for a total of 16 tasks in 46 languages with English prompts\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3megds>xP3megds\u003C\u002Fa>\u003C\u002Ft> \n\u003Ctd>\u003Ca href=https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002FMegatron-DeepSpeed>Megatron-DeepSpeed\u003C\u002Fa> processed version of xP3\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz>BLOOMZ\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FMuennighoff\u002FP3>P3\u003C\u002Fa>\u003C\u002Ft> \n\u003Ctd>Repreprocessed version of the English-only \u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FP3>P3\u003C\u002Fa> with 8 training tasks\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-p3>BLOOMZ-P3\u003C\u002Fa> & \u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xxl-p3>mT0-13B-P3\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Models\n\n\u003Ctable>\n  \u003Ctr>\n\u003Cth colspan=\"12\">Multitask finetuned on \u003Ca style=\"font-weight:bold\" href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3>xP3\u003C\u002Fa>. Recommended for prompting in English.\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Parameters\u003C\u002Ftd>\n\u003Ctd>300M\u003C\u002Ftd>\n\u003Ctd>580M\u003C\u002Ftd>\n\u003Ctd>1.2B\u003C\u002Ftd>\n\u003Ctd>3.7B\u003C\u002Ftd>\n\u003Ctd>13B\u003C\u002Ftd>\n\u003Ctd>560M\u003C\u002Ftd>\n\u003Ctd>1.1B\u003C\u002Ftd>\n\u003Ctd>1.7B\u003C\u002Ftd>\n\u003Ctd>3B\u003C\u002Ftd>\n\u003Ctd>7.1B\u003C\u002Ftd>\n\u003Ctd>176B\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Finetuned Model\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-small>mt0-small\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-base>mt0-base\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-large>mt0-large\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xl>mt0-xl\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xxl>mt0-xxl\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-560m>bloomz-560m\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-1b1>bloomz-1b1\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-1b7>bloomz-1b7\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-3b>bloomz-3b\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-7b1>bloomz-7b1\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz>bloomz\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftr>\n  \u003Ctr>\n\u003Cth colspan=\"12\">Multitask finetuned on \u003Ca style=\"font-weight:bold\" href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3mt>xP3mt\u003C\u002Fa>. Recommended for prompting in non-English.\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Finetuned Model\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xxl-mt>mt0-xxl-mt\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-7b1-mt>bloomz-7b1-mt\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-mt>bloomz-mt\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Cth colspan=\"12\">Multitask finetuned on \u003Ca style=\"font-weight:bold\" href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FMuennighoff\u002FP3>P3\u003C\u002Fa>. Released for research purposes only. Strictly inferior to above models!\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Finetuned Model\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xxl-p3>mt0-xxl-p3\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-7b1-p3>bloomz-7b1-p3\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-p3>bloomz-p3\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Cth colspan=\"12\">Original pretrained checkpoints. Not recommended.\u003C\u002Fth>\n\u003Ctr>\n\u003Ctd>Pretrained Model\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fmt5-small>mt5-small\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fmt5-base>mt5-base\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fmt5-large>mt5-large\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fmt5-xl>mt5-xl\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fmt5-xxl>mt5-xxl\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-560m>bloom-560m\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-1b1>bloom-1b1\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-1b7>bloom-1b7\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-3b>bloom-3b\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-7b1>bloom-7b1\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom>bloom\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Create xP3(x)\n\nWe have processed & uploaded [xP3](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3). If you want to recreate it, follow these steps:\n\n1. Get promptsource: For xP3mt `git clone -b xp3mt https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource.git`, for xP3 `git clone -b tr13 https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource.git` & install `cd promptsource; pip install -e .`\n2. Get packages `pip install -q datasets iso-639`\n3. Get the [creation script](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Fblob\u002Fmaster\u002Fdata\u002Fxp3\u002Fprepare_xp3_train.py) & edit it if necessary:\n- For xP3mt, set `USE_ENGLISH_PROMPTS = False` in the beginning\n- For xP3, set `USE_ENGLISH_PROMPTS = True` in the beginning\n4. Run the script, such as via `python prepare_xp3.py` or a [SLURM script](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Fblob\u002Fmaster\u002Fdata\u002Fxp3\u002Fprepare_xp3_train.slurm)\n\nFor the new extension of xP3, [xP3x](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FMuennighoff\u002FxP3x), the process is largely the same except:\n\n1. Install the `xp3x` branch instead i.e. `pip install git+https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource.git@xp3x`\n3. The creation script is in this repository & named `create_xp3x.py`.\n\nxP3x is a superset of xP3, so unless you want to reproduce the paper, we recommend always using xP3x (or xP3mt if you want machine-translated prompts).\n\n## Train models\n\n### BLOOMZ\n\n1. Download the pretrained model [checkpoint](https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-optimizer-states), which is of shape PP=12, TP=4, DP=4. If you'd like to reshape the model you will also need to download [the universal checkpoint](https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-optimizer-states\u002Ftree\u002Fglobal_step95000_universal). If you want to continue finetuning, you should use [our finetuned checkpoint](https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-optimizer-states), which is of shape PP=72, TP=1, DP=4.\n2. Setup the training code: `git clone -b t0loading https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002FMegatron-DeepSpeed` & follow its [setup guide](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002FMegatron-DeepSpeed\u002Ftree\u002Ft0loading#get-started-fast) to create an environment with necessary packages.\n3. Download the Megatron-DeepSpeed processed [xP3megds](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3megds) or repreprocess it for Megatron-DeepSpeed yourself by downloading [xP3](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3), removing the `merged_{lang}.jsonl` files & preprocess it using the script [here](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Fblob\u002Fmaster\u002Fdata\u002Fxp3\u002Fxp3_jsonl_to_meg.slurm).\n4. Setup & run the training script: We use SLURM scripts available at [bigscience-workshop\u002Fbigscience\u002Ftrain\u002Ftr13-mtf](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Ftree\u002Fmaster\u002Ftrain\u002Ftr13-mtf) and referred to as `xp3capmixnewcodelonglossseq`. E.g. [this is the script launched to train bloomz](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Fblob\u002Fmaster\u002Ftrain\u002Ftr13-mtf\u002Ftr13-176B-mtf-xp3capmixnewcodelonglossseq.slurm). Important parts of the script to modify are:\n- `#SBATCH` variables, such as nodes, gpus, time, etc. - Our SLURM guide is [here](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Ftree\u002Fmaster\u002Fjz\u002Fslurm#slurm-how-to)\n- `source $six_ALL_CCFRWORK\u002Fstart-tr13f-6B3-ml-t0` to point to your own conda environment setup via Megatron-DeepSpeed\n- PATH environment variables, notably\n    - `TRAIN_DATA_PATH` & `VALID_DATA_PATH`, which point to files pointing to your processed training and validation data. We provide our files in this repository (`xp3capmixnewcodelong_train.txt` & `xp3capmixnewcodelong_validation.txt`), but you will likely want to change the paths inside. The percentages per language are based on how much each language makes up in xP3 with code being slightly upsampled.\n- PP_SIZE=72, TP_SIZE=1 & BATCH SIZE & co specifying the layout. This will depend on the hardware available to you. If you change, you may have to reshape the model. For reshaping you need to use the universal checkpoint and use the `--universal` flag in the script. We recommend saving a new checkpoint right after & then continuing training without `--universal`, which will be faster.\n- If you want to restart from a saved checkpoint (e.g. after training a few steps like above), make sure to remove the `--no-load-optim` & `--reset-progress` flags\n- After training, you can convert the checkpoint to transformers format using the script [here](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers\u002Fblob\u002Fee8e80a060d65ab349743ffcb5842365eb0e5606\u002Fsrc\u002Ftransformers\u002Fmodels\u002Fbloom\u002Fconvert_bloom_original_checkpoint_to_pytorch.py)\n\nHelpful resources:\n- [Blog post](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fbloom-megatron-deepspeed)\n- BLOOM community tab, such as [here](https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom\u002Fdiscussions\u002F46)\n\n### mT0\n\nFollow the finetuning instructions [here](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Ft5x\u002Fblob\u002Fmain\u002Fdocs\u002Fusage\u002Ffinetune.md) making sure to use pretrained mT5 models & the xP3 dataset.\n\nHelpful resources:\n- [T5X paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2203.17189)\n\n## Evaluate models\n\nEvaluation results are all available in this repository: https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002Fevaluation-results under the respective models.\nBelow we explain how to run evaluation.\n\n### Rank Evaluation \n\nWe evaluate the models on Rank Evaluation on [XCOPA](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fxcopa), [XNLI](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fxnli), [XStoryCloze](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FMuennighoff\u002Fxstory_cloze) & [XWinograd](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FMuennighoff\u002Fxwinograd):\n\n1. Get promptsource fork: `git clone -b xp3mt https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource.git` & `cd promptsource; pip install -e .`\n2. Get t-zero fork: `git clone -b muennighoff\u002Fupgrdps https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Ft-zero.git` & `cd t-zero; pip install -e .`\n3. Download model & run evaluation script, for example for [bloomz](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Fblob\u002Fmaster\u002Fevaluation\u002Fresults\u002Ftr13\u002Ftzeroeval\u002Fevaluate_t0_176b.slurm).\n\n### Generation Evaluation\n\nWe evaluate generation on translation & summarization during training for validation:\n\n1. Get promptsource fork: `git clone -b xp3mt https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource` & `cd promptsource; pip install -e .`\n2. Get [bigscience-workshop\u002Flm-evaluation-harness](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Flm-evaluation-harness): `git clone https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Flm-evaluation-harness`. The script for the 7.1B model, for example, is [here](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Fblob\u002Fmaster\u002Fevaluation\u002Fresults\u002Ftr13\u002Flmeval\u002Frun_generation_7b1.slurm).\n\nWe also evaluate code generation on [HumanEval](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fopenai_humaneval):\n\n1. Get code evaluation code `git clone https:\u002F\u002Fgithub.com\u002Floubnabnl\u002Fbloom-code-evaluation` & go through its setup.\n2. Set `prepend_eos` to `False` in `code_eval.py` at `complete_code(model, tokenizer, prompt, num_completions=1, prepend_eos=True, **gen_kwargs)` i.e. `complete_code(model, tokenizer, prompt, num_completions=1, prepend_eos=False, **gen_kwargs)`.\n3. Download model & run evaluation script swapping out MODEL_CKPT for your path, for example for bloomz use [this](https:\u002F\u002Fgithub.com\u002Floubnabnl\u002Fbloom-code-evaluation\u002Fblob\u002Fmaster\u002Fgenerate_code_bloom.slurm).\n\n\n## Plots & Tables\n\n### Plots\n\n- Figure 1: `plotstables\u002Fxp3_taxonomy.drawio` & `plotstables\u002Fxp3_taxonomy.pdf`\n- Figure 2: `plotstables\u002Fxp3_languages.ipynb` & [colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1yRDXktu030DnipFBj6-dwOGNVIdgktA9?usp=sharing)\n- Figure 3: `plotstables\u002Fxp3_variants.pdf` & [drawings](https:\u002F\u002Fdocs.google.com\u002Fdrawings\u002Fd\u002F1wSt_X0olUFcOFQ5D1UnMv1V-LKMr3WZIRIgaFypTP24\u002Fedit?usp=sharing)\n- Figure 4: `plotstables\u002Fxp3_generalization_bar.pdf` & [colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1bz083LuBJi0-pLOqdr4_ycEctn6obYST?usp=sharing)\n- Figure 5: `plotstables\u002Flang_generalization` & [colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1lFFR6_ijR_iWJQnqIW5y5-LuRnRoRTS3?usp=sharing)\n- Figure 6: `plotstables\u002Fscale.pdf` & [colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F19GcYT5SJFpyu8B0RrewN462w3i461mZ5?usp=sharing)\n- Figure 7: `plotstables\u002Fvalidation.pdf` & [colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1FWW7LMKC9kQNLgCLZXl_dBER5wBSPGMu?usp=sharing)\n- Figure 8: `plotstables\u002Fpretraining_sizes.pdf` & [colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1hpW6xEnU56Ed7DmXrREzczGwEeNV8KJ2?usp=sharing)\n- Figure 9: `plotstables\u002Fenglish_task_generalization.pdf` & [colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1lFFR6_ijR_iWJQnqIW5y5-LuRnRoRTS3?usp=sharing)\n- Figure 10: `plotstables\u002Ftask_generalization.pdf` & [colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1lFFR6_ijR_iWJQnqIW5y5-LuRnRoRTS3?usp=sharing)\n- Figure 11: `plotstables\u002Froots_xp3_languages.pdf` & [colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1ankXUcTqjPantCzIfUSwAjYfAhkR7M6o?usp=sharing) requiring some of the files in `plotstables\u002Fcontamination`\n- Figure 12: `plotstables\u002Fexamples\u002Fbloom_code_example.py` & `plotstables\u002Fexamples\u002Fbloom_code_light.pdf` & `plotstables\u002Fexamples\u002Fbloomz_code_light.pdf`; The raw code files can be found [here](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002Fevaluation-results\u002Fblob\u002Fmain\u002Fbloom\u002Fcodeeval\u002Ftransformers\u002Fopenai_humaneval\u002Fcode_generations_bloom.zip) & [here](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002Fevaluation-results\u002Fblob\u002Fmain\u002Fbloomz\u002Fcodeeval\u002Ftransformers\u002Fopenai_humaneval\u002Fcode_generations_bloomz.zip)\n- Figure 13 - Figure 16: `plotstables\u002Fexamples\u002F*.pdf` & `plotstables\u002Fexamples\u002Fgenerations.drawio`\n\n### Tables\n\n- Table 1: [Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1ZhwHDaHBPUlZiTp-ZZxy7axuWgE68FkW?usp=sharing) & [Colab for complex version](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1WCUgfjToVJ9b_fJHzkWKsuGzVofqv38x?usp=sharing)\n- Table 2: Adapted from the Codex paper\n- Table 3: Manual\n- Table 4: `plotstables\u002Fcompute_codegen_len.ipynb` for generations & `plotstables\u002Fcountcode.py` for xP3\n- Table 5: Manual\n- Table 6: Manual\n- Table 7: `plotstables\u002Flevenshtein.py`\n- Table 8: Same as Table 1 with languages swapped from L1 to L2\n- Table 9: [Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1AWJk3jbrD1VpiMARW-xATalrupwFzZN-?usp=sharing)\n- Table 10: [Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F14t9w6QSf2K5BQP0cInyGsreAhY271DLB?usp=sharing)\n- Prompt Appendix: https:\u002F\u002Fgithub.com\u002Falbanie\u002Fprompt_formatting_in_latex\n\n## Citation\n\n```bibtex\n@article{muennighoff2022crosslingual,\n  title={Crosslingual generalization through multitask finetuning},\n  author={Muennighoff, Niklas and Wang, Thomas and Sutawika, Lintang and Roberts, Adam and Biderman, Stella and Scao, Teven Le and Bari, M Saiful and Shen, Sheng and Yong, Zheng-Xin and Schoelkopf, Hailey and others},\n  journal={arXiv preprint arXiv:2211.01786},\n  year={2022}\n}\n```\n","# 通过多任务微调实现跨语言泛化\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbigscience-workshop_xmtf_readme_d4097b7c3dda.png)\n\n本仓库提供了用于创建 BLOOMZ、mT0 和 xP3 的所有组件的概述，这些内容在论文《通过多任务微调实现跨语言泛化》中有所介绍。[25分钟视频链接](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=LG_N5ITizDo&pp=ygU4Q3Jvc3NsaW5ndWFsIEdlbmVyYWxpemF0aW9uIHRocm91Z2ggTXVsdGl0YXNrIEZpbmV0dW5pbmc%3D)由 Samuel Albanie 撰写；[4分钟视频链接](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=DFMH9f2cj3A&t=8s&pp=ygU4Q3Jvc3NsaW5ndWFsIEdlbmVyYWxpemF0aW9uIHRocm91Z2ggTXVsdGl0YXNrIEZpbmV0dW5pbmc%3D)由 Niklas Muennighoff 撰写。\n\n\u003C!-- TOC -->\n\n- [数据](#data)\n- [模型](#models)\n- [创建 xP3](#create-xp3)\n- [训练模型](#train-models)\n    - [BLOOMZ](#bloomz)\n    - [mT0](#mt0)\n- [评估模型](#evaluate-models)\n    - [排名评估](#rank-evaluation)\n    - [生成评估](#generation-evaluation)\n- [图表与表格](#plots--tables)\n    - [图表](#plots)\n    - [表格](#tables)\n- [引用](#citation)\n\n\u003C!-- \u002FTOC -->\n\n## 数据\n\n\u003Ctable>\n  \u003Ctr>\n\u003Cth>名称\u003C\u002Fth>\n\u003Cth>说明\u003C\u002Fth>\n\u003Cth>示例模型\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FMuennighoff\u002FxP3x>xP3x\u003C\u002Fa>\u003C\u002Ft> \n\u003Ctd>包含277种语言、17项任务的混合数据集，使用英语提示词\u003C\u002Ftd>\n\u003Ctd>正在进行中——欢迎加入 Project Aya @\u003Ca href=https:\u002F\u002Fcohere.for.ai\u002F>C4AI\u003C\u002Fa> 来帮忙！\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3>xP3\u003C\u002Fa>\u003C\u002Ft> \n\u003Ctd>包含46种语言、13项训练任务的混合数据集，使用英语提示词\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz>BLOOMZ\u003C\u002Fa> 和 \u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xxl>mT0-13B\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3mt>xP3mt\u003C\u002Fa>\u003C\u002Ft> \n\u003Ctd>包含46种语言、13项训练任务的混合数据集，使用20种语言的提示词（由英语机器翻译而来）\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-mt>BLOOMZ-MT\u003C\u002Fa> 和 \u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xxl-mt>mT0-13B-MT\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3all>xP3all\u003C\u002Fa>\u003C\u002Ft> \n\u003Ctd>xP3 加上我们的评估数据集，新增3项任务，总计16项任务，覆盖46种语言，使用英语提示词\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3megds>xP3megds\u003C\u002Fa>\u003C\u002Ft> \n\u003Ctd>经过\u003Ca href=https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002FMegatron-DeepSpeed>Megatron-DeepSpeed\u003C\u002Fa> 处理后的 xP3 版本\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz>BLOOMZ\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FMuennighoff\u002FP3>P3\u003C\u002Fa>\u003C\u002Ft> \n\u003Ctd>对仅含英语的\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FP3>P3\u003C\u002Fa> 进行重新处理，包含8项训练任务\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-p3>BLOOMZ-P3\u003C\u002Fa> 和 \u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xxl-p3>mT0-13B-P3\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## 模型\n\n\u003Ctable>\n  \u003Ctr>\n\u003Cth colspan=\"12\">在\u003Ca style=\"font-weight:bold\" href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3>xP3\u003C\u002Fa> 上进行多任务微调。推荐用于英语提示。\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>参数量\u003C\u002Ftd>\n\u003Ctd>3亿\u003C\u002Ftd>\n\u003Ctd>5.8亿\u003C\u002Ftd>\n\u003Ctd>12亿\u003C\u002Ftd>\n\u003Ctd>37亿\u003C\u002Ftd>\n\u003Ctd>130亿\u003C\u002Ftd>\n\u003Ctd>5.6亿\u003C\u002Ftd>\n\u003Ctd>11亿\u003C\u002Ftd>\n\u003Ctd>17亿\u003C\u002Ftd>\n\u003Ctd>30亿\u003C\u002Ftd>\n\u003Ctd>71亿\u003C\u002Ftd>\n\u003Ctd>176亿\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>微调后的模型\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-small>mt0-small\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-base>mt0-base\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-large>mt0-large\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xl>mt0-xl\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xxl>mt0-xxl\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-560m>bloomz-560m\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-1b1>bloomz-1b1\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-1b7>bloomz-1b7\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-3b>bloomz-3b\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-7b1>bloomz-7b1\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz>bloomz\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftr>\n  \u003Ctr>\n\u003Cth colspan=\"12\">在\u003Ca style=\"font-weight:bold\" href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3mt>xP3mt\u003C\u002Fa> 上进行多任务微调。推荐用于非英语提示。\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>微调后的模型\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xxl-mt>mt0-xxl-mt\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-7b1-mt>bloomz-7b1-mt\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-mt>bloomz-mt\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Cth colspan=\"12\">在\u003Ca style=\"font-weight:bold\" href=https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FMuennighoff\u002FP3>P3\u003C\u002Fa> 上进行多任务微调。仅用于研究目的发布。性能严格劣于上述模型！\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>微调后的模型\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fmt0-xxl-p3>mt0-xxl-p3\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-7b1-p3>bloomz-7b1-p3\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-p3>bloomz-p3\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Cth colspan=\"12\">原始预训练检查点。不推荐使用。\u003C\u002Fth>\n\u003Ctr>\n\u003Ctd>预训练模型\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fmt5-small>mt5-small\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fmt5-base>mt5-base\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fmt5-large>mt5-large\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fmt5-xl>mt5-xl\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fmt5-xxl>mt5-xxl\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-560m>bloom-560m\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-1b1>bloom-1b1\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-1b7>bloom-1b7\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-3b>bloom-3b\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-7b1>bloom-7b1\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>\u003Ca href=https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom>bloom\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## 创建 xP3(x)\n\n我们已经处理并上传了 [xP3](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3)。如果您想重新创建它，请按照以下步骤操作：\n\n1. 获取 promptsource：对于 xP3mt，使用 `git clone -b xp3mt https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource.git`；对于 xP3，使用 `git clone -b tr13 https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource.git`，然后安装：`cd promptsource; pip install -e .`\n2. 安装相关包：`pip install -q datasets iso-639`\n3. 获取 [创建脚本](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Fblob\u002Fmaster\u002Fdata\u002Fxp3\u002Fprepare_xp3_train.py)，并在必要时进行编辑：\n   - 对于 xP3mt，在脚本开头设置 `USE_ENGLISH_PROMPTS = False`；\n   - 对于 xP3，在脚本开头设置 `USE_ENGLISH_PROMPTS = True`。\n4. 运行脚本，例如通过 `python prepare_xp3.py` 或者使用 [SLURM 脚本](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Fblob\u002Fmaster\u002Fdata\u002Fxp3\u002Fprepare_xp3_train.slurm)。\n\n对于 xP3 的新扩展版本 [xP3x](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FMuennighoff\u002FxP3x)，流程大致相同，只是：\n\n1. 安装 `xp3x` 分支，即 `pip install git+https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource.git@xp3x`。\n3. 创建脚本位于该仓库中，名为 `create_xp3x.py`。\n\nxP3x 是 xP3 的超集，因此除非您希望复现论文中的结果，否则建议始终使用 xP3x（或者如果您需要机器翻译的提示，则使用 xP3mt）。\n\n## 训练模型\n\n### BLOOMZ\n\n1. 下载预训练模型的 [检查点](https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-optimizer-states)，其并行性配置为 PP=12、TP=4、DP=4。如果您希望调整模型的并行性配置，还需要下载 [通用检查点](https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom-optimizer-states\u002Ftree\u002Fglobal_step95000_universal)。如果要继续微调，应使用 [我们微调后的检查点](https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloomz-optimizer-states)，其并行性配置为 PP=72、TP=1、DP=4。\n2. 设置训练代码：`git clone -b t0loading https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002FMegatron-DeepSpeed`，并按照其 [设置指南](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002FMegatron-DeepSpeed\u002Ftree\u002Ft0loading#get-started-fast) 创建包含必要包的环境。\n3. 下载 Megatron-DeepSpeed 处理过的 [xP3megds](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3megds)，或者自行将 [xP3](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002FxP3) 重新处理以适配 Megatron-DeepSpeed：删除 `merged_{lang}.jsonl` 文件，并使用 [此处的脚本](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Fblob\u002Fmaster\u002Fdata\u002Fxp3\u002Fxp3_jsonl_to_meg.slurm) 进行预处理。\n4. 设置并运行训练脚本：我们使用位于 [bigscience-workshop\u002Fbigscience\u002Ftrain\u002Ftr13-mtf](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Ftree\u002Fmaster\u002Ftrain\u002Ftr13-mtf) 的 SLURM 脚本，称为 `xp3capmixnewcodelonglossseq`。例如，[这是用于训练 bloomz 的脚本](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Fblob\u002Fmaster\u002Ftrain\u002Ftr13-mtf\u002Ftr13-176B-mtf-xp3capmixnewcodelonglossseq.slurm)。脚本中需要修改的重要部分包括：\n   - `#SBATCH` 变量，如节点数、GPU 数量、运行时间等——我们的 SLURM 使用指南请参见 [这里](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Ftree\u002Fmaster\u002Fjz\u002Fslurm#slurm-how-to)。\n   - `source $six_ALL_CCFRWORK\u002Fstart-tr13f-6B3-ml-t0`，指向您通过 Megatron-DeepSpeed 设置的 Conda 环境。\n   - PATH 环境变量，尤其是：\n     - `TRAIN_DATA_PATH` 和 `VALID_DATA_PATH`，分别指向您的训练和验证数据文件。我们在此仓库中提供了这些文件（`xp3capmixnewcodelong_train.txt` 和 `xp3capmixnewcodelong_validation.txt`），但您可能需要更改其中的路径。各语言的比例基于其在 xP3 中所占的比重，代码数据会稍作过采样。\n   - PP_SIZE=72、TP_SIZE=1 以及 BATCH SIZE 等布局参数。这些取决于您可用的硬件资源。如果更改配置，可能需要对模型进行重排布。重排布时需使用通用检查点，并在脚本中添加 `--universal` 标志。我们建议在重排布后立即保存一个新的检查点，然后继续训练而不使用 `--universal`，这样速度会更快。\n   - 如果您想从已保存的检查点继续训练（例如像上述那样先训练几步），请确保移除 `--no-load-optim` 和 `--reset-progress` 标志。\n   - 训练完成后，您可以使用 [此处的脚本](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers\u002Fblob\u002Fee8e80a060d65ab349743ffcb5842365eb0e5606\u002Fsrc\u002Ftransformers\u002Fmodels\u002Fbloom\u002Fconvert_bloom_original_checkpoint_to_pytorch.py) 将检查点转换为 Transformers 格式。\n\n有用资源：\n- [博客文章](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fbloom-megatron-deepspeed)\n- BLOOM 社区讨论页，例如 [这里](https:\u002F\u002Fhuggingface.co\u002Fbigscience\u002Fbloom\u002Fdiscussions\u002F46)。\n\n### mT0\n\n按照 [此处的微调说明](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Ft5x\u002Fblob\u002Fmain\u002Fdocs\u002Fusage\u002Ffinetune.md)，确保使用预训练的 mT5 模型和 xP3 数据集。\n\n有用资源：\n- [T5X 论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2203.17189)\n\n## 评估模型\n\n评估结果均在此仓库中提供：https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002Fevaluation-results，对应各个模型。下面我们介绍如何运行评估。\n\n### 排序评估\n\n我们在以下任务上对模型进行排序评估：[XCOPA](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fxcopa)、[XNLI](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fxnli)、[XStoryCloze](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FMuennighoff\u002Fxstory_cloze) 和 [XWinograd](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FMuennighoff\u002Fxwinograd)：\n\n1. 获取 promptsource 分支：`git clone -b xp3mt https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource.git`，然后进入目录并安装：`cd promptsource; pip install -e .`\n2. 获取 t-zero 分支：`git clone -b muennighoff\u002Fupgrdps https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Ft-zero.git`，然后进入目录并安装：`cd t-zero; pip install -e .`\n3. 下载模型并运行评估脚本，例如针对 [bloomz](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Fblob\u002Fmaster\u002Fevaluation\u002Fresults\u002Ftr13\u002Ftzeroeval\u002Fevaluate_t0_176b.slurm)。\n\n### 生成评估\n\n我们在训练过程中对翻译和摘要任务进行生成评估，以用于验证：\n\n1. 获取 promptsource 分支：`git clone -b xp3mt https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource` 并进入目录 `cd promptsource; pip install -e .`\n2. 获取 [bigscience-workshop\u002Flm-evaluation-harness](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Flm-evaluation-harness)：`git clone https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Flm-evaluation-harness`。例如，7.1B 模型的脚本位于 [这里](https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fbigscience\u002Fblob\u002Fmaster\u002Fevaluation\u002Fresults\u002Ftr13\u002Flmeval\u002Frun_generation_7b1.slurm)。\n\n我们还使用 [HumanEval](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fopenai_humaneval) 对代码生成进行评估：\n\n1. 获取代码评估代码：`git clone https:\u002F\u002Fgithub.com\u002Floubnabnl\u002Fbloom-code-evaluation`，并按照其说明完成设置。\n2. 在 `code_eval.py` 中将 `complete_code(model, tokenizer, prompt, num_completions=1, prepend_eos=True, **gen_kwargs)` 的 `prepend_eos` 参数设置为 `False`，即改为 `complete_code(model, tokenizer, prompt, num_completions=1, prepend_eos=False, **gen_kwargs)`。\n3. 下载模型并运行评估脚本，将 `MODEL_CKPT` 替换为你的模型路径。例如，对于 bloomz 可以使用 [这个脚本](https:\u002F\u002Fgithub.com\u002Floubnabnl\u002Fbloom-code-evaluation\u002Fblob\u002Fmaster\u002Fgenerate_code_bloom.slurm)。\n\n\n## 图表与表格\n\n### 图表\n\n- 图1：`plotstables\u002Fxp3_taxonomy.drawio` 和 `plotstables\u002Fxp3_taxonomy.pdf`\n- 图2：`plotstables\u002Fxp3_languages.ipynb` 和 [Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1yRDXktu030DnipFBj6-dwOGNVIdgktA9?usp=sharing)\n- 图3：`plotstables\u002Fxp3_variants.pdf` 和 [绘图文件](https:\u002F\u002Fdocs.google.com\u002Fdrawings\u002Fd\u002F1wSt_X0olUFcOFQ5D1UnMv1V-LKMr3WZIRIgaFypTP24\u002Fedit?usp=sharing)\n- 图4：`plotstables\u002Fxp3_generalization_bar.pdf` 和 [Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1bz083LuBJi0-pLOqdr4_ycEctn6obYST?usp=sharing)\n- 图5：`plotstables\u002Flang_generalization` 和 [Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1lFFR6_ijR_iWJQnqIW5y5-LuRnRoRTS3?usp=sharing)\n- 图6：`plotstables\u002Fscale.pdf` 和 [Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F19GcYT5SJFpyu8B0RrewN462w3i461mZ5?usp=sharing)\n- 图7：`plotstables\u002Fvalidation.pdf` 和 [Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1FWW7LMKC9kQNLgCLZXl_dBER5wBSPGMu?usp=sharing)\n- 图8：`plotstables\u002Fpretraining_sizes.pdf` 和 [Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1hpW6xEnU56Ed7DmXrREzczGwEeNV8KJ2?usp=sharing)\n- 图9：`plotstables\u002Fenglish_task_generalization.pdf` 和 [Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1lFFR6_ijR_iWJQnqIW5y5-LuRnRoRTS3?usp=sharing)\n- 图10：`plotstables\u002Ftask_generalization.pdf` 和 [Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1lFFR6_ijR_iWJQnqIW5y5-LuRnRoRTS3?usp=sharing)\n- 图11：`plotstables\u002Froots_xp3_languages.pdf` 和 [Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1ankXUcTqjPantCzIfUSwAjYfAhkR7M6o?usp=sharing)，需要使用 `plotstables\u002Fcontamination` 中的部分文件。\n- 图12：`plotstables\u002Fexamples\u002Fbloom_code_example.py`、`plotstables\u002Fexamples\u002Fbloom_code_light.pdf` 和 `plotstables\u002Fexamples\u002Fbloomz_code_light.pdf`；原始代码文件可在此处找到：[这里](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002Fevaluation-results\u002Fblob\u002Fmain\u002Fbloom\u002Fcodeeval\u002Ftransformers\u002Fopenai_humaneval\u002Fcode_generations_bloom.zip) 和 [这里](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigscience\u002Fevaluation-results\u002Fblob\u002Fmain\u002Fbloomz\u002Fcodeeval\u002Ftransformers\u002Fopenai_humaneval\u002Fcode_generations_bloomz.zip)。\n- 图13 至图16：`plotstables\u002Fexamples\u002F*.pdf` 和 `plotstables\u002Fexamples\u002Fgenerations.drawio`。\n\n### 表格\n\n- 表1：[Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1ZhwHDaHBPUlZiTp-ZZxy7axuWgE68FkW?usp=sharing) 和 [复杂版本的 Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1WCUgfjToVJ9b_fJHzkWKsuGzVofqv38x?usp=sharing)\n- 表2：改编自 Codex 论文\n- 表3：手动整理\n- 表4：使用 `plotstables\u002Fcompute_codegen_len.ipynb` 处理生成结果，使用 `plotstables\u002Fcountcode.py` 处理 xP3 数据\n- 表5：手动整理\n- 表6：手动整理\n- 表7：`plotstables\u002Flevenshtein.py`\n- 表8：与表1相同，但语言从 L1 切换到 L2\n- 表9：[Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1AWJk3jbrD1VpiMARW-xATalrupwFzZN-?usp=sharing)\n- 表10：[Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F14t9w6QSf2K5BQP0cInyGsreAhY271DLB?usp=sharing)\n- 提示附录：https:\u002F\u002Fgithub.com\u002Falbanie\u002Fprompt_formatting_in_latex\n\n## 引用\n\n```bibtex\n@article{muennighoff2022crosslingual,\n  title={跨语言泛化通过多任务微调},\n  author={Muennighoff, Niklas and Wang, Thomas and Sutawika, Lintang and Roberts, Adam and Biderman, Stella and Scao, Teven Le and Bari, M Saiful and Shen, Sheng and Yong, Zheng-Xin and Schoelkopf, Hailey and others},\n  journal={arXiv 预印本 arXiv:2211.01786},\n  year={2022}\n}\n```","# xmtf 快速上手指南\n\n本指南基于论文《Crosslingual Generalization through Multitask Finetuning》，旨在帮助开发者快速了解并使用 **xmtf** 项目复现 BLOOMZ 和 mT0 等多语言微调模型。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu)，项目脚本主要基于 SLURM 集群环境设计，单机运行需适配。\n*   **Python**: Python 3.8+\n*   **硬件**: \n    *   训练大模型（如 BLOOMZ）需要多卡 GPU 集群支持（Megatron-DeepSpeed 架构）。\n    *   推理或小模型微调可根据模型参数量调整显存需求。\n*   **前置依赖**:\n    *   Git\n    *   Pip\n    *   Hugging Face Account (用于下载数据集和模型权重)\n\n## 安装步骤\n\n### 1. 获取代码与依赖库\n\n首先克隆必要的仓库并安装核心依赖。根据您的需求选择处理 `xP3`（英文提示词）或 `xP3mt`（多语言机器翻译提示词）。\n\n**安装 PromptSource (提示词源):**\n\n```bash\n# 对于 xP3mt (多语言提示词)\ngit clone -b xp3mt https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource.git\ncd promptsource\npip install -e .\n\n# 或者对于 xP3 (仅英文提示词)\n# git clone -b tr13 https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource.git\n# cd promptsource\n# pip install -e .\n```\n\n**安装数据处理工具:**\n\n```bash\npip install -q datasets iso-639\n```\n\n**安装训练框架 (以 BLOOMZ 为例):**\n\nBLOOMZ 系列模型基于 Megatron-DeepSpeed 训练，需克隆特定分支：\n\n```bash\ngit clone -b t0loading https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002FMegatron-DeepSpeed\n# 进入目录后请参考其 README 配置 conda 环境及必要包\n```\n\n**安装评估工具 (可选):**\n\n如需复现排名评估结果：\n\n```bash\ngit clone -b muennighoff\u002Fupgrdps https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Ft-zero.git\ncd t-zero\npip install -e .\n```\n\n### 2. 数据准备 (创建 xP3)\n\n虽然可以直接从 Hugging Face 下载处理好的数据集，若需自定义或重新生成数据，可运行以下脚本：\n\n1.  获取创建脚本 `prepare_xp3_train.py` (位于 bigscience-workshop\u002Fbigscience 仓库)。\n2.  编辑脚本头部配置：\n    *   生成 `xP3mt`：设置 `USE_ENGLISH_PROMPTS = False`\n    *   生成 `xP3`：设置 `USE_ENGLISH_PROMPTS = True`\n3.  执行脚本：\n\n```bash\npython prepare_xp3.py\n# 或在集群环境下使用 SLURM\n# sbatch prepare_xp3_train.slurm\n```\n\n> **注意**：对于新版扩展数据集 `xP3x`，请安装 `xp3x` 分支的 promptsource (`pip install git+https:\u002F\u002Fgithub.com\u002FMuennighoff\u002Fpromptsource.git@xp3x`) 并使用本仓库中的 `create_xp3x.py` 脚本。除非为了复现论文，否则推荐直接使用 `xP3x`。\n\n## 基本使用\n\n本项目主要包含**模型加载\u002F推理**和**模型训练**两个核心场景。大多数用户建议直接使用 Hugging Face 上已预训练好的模型进行推理或下游任务微调。\n\n### 场景一：加载预训练模型进行推理\n\n您可以直接通过 `transformers` 库加载 BLOOMZ 或 mT0 模型。推荐使用在 `xP3` 上微调的模型以获得最佳的英语提示效果，或使用 `xP3mt` 版本以获得更好的非英语支持。\n\n**示例：加载 BLOOMZ-7B 模型**\n\n```python\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\n# 加载分词器和模型\nmodel_name = \"bigscience\u002Fbloomz-7b1\" \ntokenizer = AutoTokenizer.from_pretrained(model_name)\nmodel = AutoModelForCausalLM.from_pretrained(model_name)\n\n# 构建输入 (建议使用英文提示词以获得最佳效果)\nprompt = \"Translate the following sentence to French: Hello, how are you?\"\ninputs = tokenizer(prompt, return_tensors=\"pt\")\n\n# 生成回复\noutputs = model.generate(**inputs, max_new_tokens=50)\nprint(tokenizer.decode(outputs[0], skip_special_tokens=True))\n```\n\n**示例：加载支持多语言提示的 mT0 模型**\n\n```python\nfrom transformers import AutoModelForSeq2SeqLM, AutoTokenizer\n\n# 加载 mT0-xxl-mt (支持多语言提示词)\nmodel_name = \"bigscience\u002Fmt0-xxl-mt\"\ntokenizer = AutoTokenizer.from_pretrained(model_name)\nmodel = AutoModelForSeq2SeqLM.from_pretrained(model_name)\n\n# 多语言提示示例\nprompt = \"Résume le texte suivant : L'intelligence artificielle transforme le monde.\"\ninputs = tokenizer(prompt, return_tensors=\"pt\")\n\noutputs = model.generate(**inputs, max_new_tokens=50)\nprint(tokenizer.decode(outputs[0], skip_special_tokens=True))\n```\n\n### 场景二：从头开始训练 (高级)\n\n若需复现训练过程（例如训练 BLOOMZ），请遵循以下简化流程：\n\n1.  **下载预训练权重**: 从 Hugging Face 下载 `bigscience\u002Fbloom-optimizer-states` (或其他对应尺寸)。\n2.  **准备数据**: 下载处理好的 `xP3megds` 数据集，或自行将 `xP3` 转换为 Megatron-DeepSpeed 格式。\n3.  **配置训练脚本**: 修改 `train\u002Ftr13-mtf` 目录下的 SLURM 脚本。\n    *   设置 `TRAIN_DATA_PATH` 指向您的数据文件。\n    *   调整 `PP_SIZE`, `TP_SIZE` 以匹配您的硬件拓扑。\n    *   指定 Conda 环境路径。\n4.  **启动训练**:\n\n```bash\n# 示例命令 (需根据实际环境修改参数)\nsbatch train\u002Ftr13-mtf\u002Ftr13-176B-mtf-xp3capmixnewcodelonglossseq.slurm\n```\n\n训练完成后，可使用官方脚本将 checkpoint 转换为 Transformers 格式以便后续使用。","一家跨境电商公司的技术团队正致力于构建一个能同时处理英语、西班牙语、泰语等 46 种语言客服工单的智能分类系统，但面临低资源语言数据匮乏的难题。\n\n### 没有 xmtf 时\n- **数据孤岛严重**：团队需为每种目标语言单独收集并标注大量训练数据，小语种因数据稀缺导致模型无法训练。\n- **开发成本高昂**：必须针对每种语言微调独立的单语模型，维护 40+ 个模型实例导致算力与人力成本激增。\n- **泛化能力薄弱**：模型仅在训练过的语言上表现尚可，一旦遇到未见过的新语言或混合语言输入，分类准确率断崖式下跌。\n- **迭代周期漫长**：每当新增一种支持语言，都要重新经历数据清洗、训练到部署的全流程，响应业务需求滞后。\n\n### 使用 xmtf 后\n- **跨语言知识迁移**：利用 xmtf 提供的 xP3 多任务数据集，模型通过英语提示词学习通用指令，直接将能力泛化至 46 种未见过的语言。\n- **统一模型架构**：只需微调一个基于 BLOOMZ 或 mT0 的多语言模型即可覆盖所有目标语种，大幅降低存储与推理资源消耗。\n- **零样本表现优异**：即使在完全无标注数据的低资源语言（如老挝语）上，凭借多任务微调带来的泛化性，也能实现高精度的意图识别。\n- **敏捷扩展支持**：新增语言时无需重新训练，仅需调整提示词（Prompt）策略，即可在数小时内完成新语种的上线部署。\n\nxmtf 通过多任务微调技术打破了语言间的数据壁垒，让企业能用一套模型低成本实现真正的全球化智能服务。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbigscience-workshop_xmtf_4c40c886.png","bigscience-workshop","BigScience Workshop","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fbigscience-workshop_1ddc064e.png","Research workshop on large language models - The Summer of Language Models 21",null,"bigscience-contact@googlegroups.com","BigScienceW","https:\u002F\u002Fbigscience.huggingface.co","https:\u002F\u002Fgithub.com\u002Fbigscience-workshop",[86,90],{"name":87,"color":88,"percentage":89},"Jupyter Notebook","#DA5B0B",99.8,{"name":91,"color":92,"percentage":93},"Python","#3572A5",0.2,536,43,"2026-04-11T02:02:29","Apache-2.0",5,"Linux","必需。需使用 NVIDIA GPU 集群进行训练（参考脚本配置为多节点多卡）。具体显存需求取决于模型参数量：训练 176B (BLOOMZ) 或 13B (mT0) 模型需要大规模显存（通常需 A100\u002FH100 集群及模型并行策略）；推理或小模型微调需根据模型大小调整，大模型建议 80GB+ 显存。依赖 CUDA 环境以支持 Megatron-DeepSpeed。","未说明（训练大规模模型通常要求数百 GB 系统内存）",{"notes":103,"python":104,"dependencies":105},"1. 该工具主要面向大规模分布式训练，官方文档提供了基于 SLURM 的集群调度脚本，未提供单机简易运行指南。\n2. 训练 BLOOMZ 系列需使用 Megatron-DeepSpeed 框架，并涉及复杂的模型并行设置（PP\u002FTP\u002FDP）；训练 mT0 系列需使用 T5X 框架。\n3. 数据预处理需要克隆特定的 promptsource 分支。\n4. 模型权重和 optimizer states 文件巨大，需确保有足够的存储空间。\n5. 不支持 Windows 环境。","未说明（需配合 Megatron-DeepSpeed 或 T5X 环境，通常推荐 Python 3.8+）",[106,107,108,109,110,111],"Megatron-DeepSpeed","T5X","datasets","iso-639","promptsource","transformers",[15],[114,115,116,117,118,119,120,121,122,123],"instruction-tuning","large-language-models","multitask-learning","language-models","bloom","multilingual-nlp","t5","bloomz","mt0","zero-shot-learning","2026-03-27T02:49:30.150509","2026-04-14T04:33:51.349632",[127,132,137,142,147,152,157],{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},32633,"如何复现 bloomz-* 模型？在基于 bloom 模型进行指令微调时性能下降该怎么办？","复现 bloomz-* 模型的关键在于对 xP3 数据集进行随机洗牌（random shuffling），同时需遵循特定的语言比例分布（参考项目中的语言比例配置文件）。此外，注意训练步数通常较少（约 1000~2000 步），数据选择策略对性能影响较大。如果性能下降，请检查是否严格按照官方提供的语言混合比例和数据处理脚本进行操作。","https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fxmtf\u002Fissues\u002F18",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},32634,"如何获取 xP3mt 中特定任务（如 Paws-x）的机器翻译提示词（Prompt）？","可以通过查看 PromptSource 仓库中对应语言的模板文件来获取。例如，西班牙语版的 Paws-x 模板位于 `promptsource\u002Ftemplates\u002Fpaws-x\u002Fes\u002Ftemplates.yaml`。虽然模板文件中指标字段（metric）可能显示为 Null，但如果原始英文提示词使用了准确率（Accuracy）作为评估指标，机器翻译后的版本通常也可以沿用该指标进行评估。","https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fxmtf\u002Fissues\u002F24",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},32635,"为什么 xP3mt 中不同语言的模板数量不一致？","这主要有两个原因：1. 并非所有英文模板都被机器翻译到了其他语言（例如 XCOPA 中只有部分模板被翻译）；2. 某些语言（如中文）包含人工改写的重复版本（paraphrased duplicates），导致模板数量增加。此外，部分验证集数据的差异可能是无意的遗漏，具体使用情况可参考 HuggingFace 数据集仓库中各语言文件夹下的实际文件列表。","https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fxmtf\u002Fissues\u002F9",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},32636,"为什么 xnli 或 xstory_cloze 等数据集没有包含在 xP3all 中？如何获取完整的测试数据集？","NLI 类数据集（如 xnli）被排除在训练集 xP3all 之外，是为了保留它们作为独立的评估测试集。至于 xstory_cloze，它不是公开发布的数据集，需要直接联系 XGLM 论文的原作者获取访问权限。建议在使用时根据需求自行决定是否将这些评估集加入训练。","https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fxmtf\u002Fissues\u002F5",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},32637,"mt0 和 bloomz 模型是否在 Flores-200 的 dev 或 devtest 集上进行了训练？能否直接用这些集合进行评估？","是的，mt0 和 bloomz 模型通常在训练时使用了包括 dev 和 devtest 在内的所有可用数据分裂（splits），特别是对于标记为黄色的数据集。因此，直接使用 Flores-200 的 dev 或 devtest 集来评估这些模型的翻译性能是不合理的，因为存在数据泄露风险，无法反映真实的泛化能力。","https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fxmtf\u002Fissues\u002F22",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},32638,"如何将 Megatron-DeepSpeed 的检查点转换为 Hugging Face 格式？遇到版本兼容性错误怎么办？","可以使用 Megatron-DeepSpeed 仓库提供的 `deepspeed_to_transformers.py` 脚本进行转换。如果遇到类似 \"too many values to unpack\" 的错误，通常是由于 Transformers 库版本不匹配导致的。建议确保安装最新版本的 Transformers（如 4.26.1 或更高），并检查脚本是否与当前环境兼容。如果问题依旧，可能需要参考 bitsandbytes 或 Transformers 团队的相关修复更新。","https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fxmtf\u002Fissues\u002F11",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},32639,"导出 mt0-xxl-mt 模型到 ONNX 格式失败，报错涉及 'weight_format' 层，该如何解决？","'weight_format' 层是 bitsandbytes 库特有的属性，用于表示权重量化格式（如 'row'），并非实际的权重张量。导出失败是因为 ONNX 导出函数试图对该字符串值调用 `detach()` 方法。解决方法包括：1. 咨询 bitsandbytes 社区获取最新支持；2. 尝试更新 transformers 和 bitsandbytes 库到最新版本，近期已有相关修复；3. 若必须强行导出，可尝试从 state_dict 中移除该键，但这可能导致模型不稳定，需谨慎操作。","https:\u002F\u002Fgithub.com\u002Fbigscience-workshop\u002Fxmtf\u002Fissues\u002F21",[]]