[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ibm-granite--granite-code-models":3,"tool-ibm-granite--granite-code-models":64},[4,17,25,39,48,56],{"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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":10,"last_commit_at":23,"category_tags":24,"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":26,"name":27,"github_repo":28,"description_zh":29,"stars":30,"difficulty_score":10,"last_commit_at":31,"category_tags":32,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[33,34,35,36,14,37,15,13,38],"图像","数据工具","视频","插件","其他","音频",{"id":40,"name":41,"github_repo":42,"description_zh":43,"stars":44,"difficulty_score":45,"last_commit_at":46,"category_tags":47,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[14,33,13,15,37],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":45,"last_commit_at":54,"category_tags":55,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74913,"2026-04-05T10:44:17",[15,33,13,37],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":45,"last_commit_at":62,"category_tags":63,"status":16},2181,"OpenHands","OpenHands\u002FOpenHands","OpenHands 是一个专注于 AI 驱动开发的开源平台，旨在让智能体（Agent）像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点，通过自动化流程显著提升开发速度。\n\n无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员，还是需要快速原型验证的技术团队，都能从中受益。OpenHands 提供了灵活多样的使用方式：既可以通过命令行（CLI）或本地图形界面在个人电脑上轻松上手，体验类似 Devin 的流畅交互；也能利用其强大的 Python SDK 自定义智能体逻辑，甚至在云端大规模部署上千个智能体并行工作。\n\n其核心技术亮点在于模块化的软件智能体 SDK，这不仅构成了平台的引擎，还支持高度可组合的开发模式。此外，OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩，证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能，支持与 Slack、Jira 等工具集成，并提供细粒度的权限管理，适合从个人开发者到大型企业的各类用户场景。",70612,"2026-04-05T11:12:22",[15,14,13,36],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":79,"owner_website":79,"owner_url":80,"languages":79,"stars":81,"forks":82,"last_commit_at":83,"license":84,"difficulty_score":45,"env_os":85,"env_gpu":86,"env_ram":87,"env_deps":88,"category_tags":93,"github_topics":79,"view_count":10,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":94,"updated_at":95,"faqs":96,"releases":137},2338,"ibm-granite\u002Fgranite-code-models","granite-code-models","Granite Code Models: A Family of Open Foundation Models for Code Intelligence","Granite Code Models 是 IBM 推出的一系列开源代码基础模型，专为代码智能任务设计。它能够帮助开发者自动修复漏洞、解释复杂逻辑、生成文档、编写新代码以及在不同编程语言间进行转换，有效提升了软件开发的效率与质量。\n\n该系列模型支持多达 116 种编程语言，提供从 3B 到 34B 多种参数规模，包含适用于下游任务微调的“基座模型”和可直接对话的“指令微调模型”。无论是需要深度定制的研究人员，还是希望快速集成智能编码助手的工程师，都能找到合适的版本。\n\n其核心优势在于卓越的性能与高度的可信性。在多项基准测试中，Granite Code Models 的表现达到了开源领域的领先水平。更值得一提的是，所有训练数据均经过严格筛选，遵循 IBM 的 AI 伦理原则，不仅去除了恶意代码和个人隐私信息，还确保了商业使用的法律合规性（采用 Apache 2.0 许可）。这使得它成为企业级应用中值得信赖的选择，让团队在享受先进 AI 能力的同时，无需担忧数据安全与版权风险。","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fibm-granite_granite-code-models_readme_63be11a09c5e.png\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  :books: \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2405.04324\">Paper\u003C\u002Fa>&nbsp | :hugs: \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fibm-granite\u002Fgranite-code-models-6624c5cec322e4c148c8b330\">HuggingFace Collection\u003C\u002Fa>&nbsp | \n  :speech_balloon: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Forgs\u002Fibm-granite\u002Fdiscussions\">Discussions Page\u003C\u002Fa>&nbsp\n\u003Cbr>\n\n---\n## Introduction to Granite Code Models\nWe introduce the Granite series of decoder-only code models for code generative tasks (e.g., fixing bugs, explaining code, documenting code), trained with code written in 116 programming languages. A comprehensive evaluation of the Granite Code model family on diverse tasks demonstrates that our models consistently reach state-of-the-art performance among available open source code LLMs.  \n\nThe key advantages of Granite Code models include:\n* All-rounder Code LLM: Granite Code models achieve competitive or state-of-the-art performance on different kinds of code-related tasks, including code generation, explanation, fixing, editing, translation, and more. Demonstrating their ability to solve diverse coding tasks.\n* Trustworthy Enterprise-Grade LLM: All our models are trained on license-permissible data collected following [IBM's AI Ethics principles](https:\u002F\u002Fwww.ibm.com\u002Fimpact\u002Fai-ethics) and guided by IBM’s Corporate Legal team for trustworthy enterprise usage. We release all our Granite Code models under an [Apache 2.0 license](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0) license for research and commercial use.\n\nThe family of **Granite Code Models** comes in two main variants:\n\n* Granite Code Base Models: base foundational models designed for code-related tasks (e.g., code repair, code explanation, code synthesis).\n* Granite Code Instruct Models: instruction following models finetuned using a combination of Git commits paired with human instructions and open source synthetically generated code instruction datasets.\n\nBoth base and instruct models are available in sizes of 3B, 8B, 20B, and 34B parameters.\n\n## Data Collection\nOur process to prepare code pretraining data involves several stages. First, we collect a combination of publicly available datasets (e.g., GitHub Code Clean, Starcoder data), public code repositories, and issues from GitHub. Second, we filter the code data collected based on the programming language in which data is written (which we determined based on file extension). Then, we also filter out data with low code quality. Third, we adopt an aggressive deduplication strategy that includes both exact and fuzzy deduplication to remove documents having (near) identical code content. Finally, we apply a HAP content filter that reduces models' likelihood of generating hateful, abusive, or profane language. We also make sure to redact Personally Identifiable Information (PII) by replacing PII content (e.g., names, email addresses, keys, passwords) with corresponding tokens (e.g., ⟨NAME⟩, ⟨EMAIL⟩, ⟨KEY⟩, ⟨PASSWORD⟩). We also scan all datasets using ClamAV to identify and remove instances of malware in the source code. In addition to collecting code data for model training, we curate several publicly available high-quality natural language datasets for improving the model’s proficiency in language understanding and mathematical reasoning.\n\n## Pretraining\nThe **Granite Code Base** models are trained on 3-4T tokens of code data and natural language datasets related to code. Data is tokenized via byte pair encoding (BPE), employing the same tokenizer as StarCoder. We utilize high-quality data with two phases of training as follows:\n\n* Phase 1 (code only training): During phase 1, 3B and 8B models are trained for 4 trillion tokens of code data comprising 116 languages. The 20B parameter model is trained on 3 trillion tokens of code. The 34B model is trained on 1.4T tokens after the depth upscaling which is done on the 1.6T checkpoint of 20B model.\n* Phase 2 (code + language training): In phase 2, we include additional high-quality publicly available data from various domains, including technical, mathematics, and web documents, to further improve the model’s performance. We train all our models for 500B tokens (80% code-20% language mixture) in phase 2 training.\n\n## Instruction Tuning\nGranite Code Instruct models are finetuned on the following types of instruction data: 1) code commits sourced from [CommitPackFT](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigcode\u002Fcommitpackft), 2) high-quality math datasets, specifically we used [MathInstruct](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FTIGER-Lab\u002FMathInstruct) and [MetaMathQA](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fmeta-math\u002FMetaMathQA), 3) Code instruction datasets such as [Glaive-Code-Assistant-v3](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fglaiveai\u002Fglaive-code-assistant-v3), [Self-OSS-Instruct-SC2](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigcode\u002Fself-oss-instruct-sc2-exec-filter-50k), [Glaive-Function-Calling-v2](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fglaiveai\u002Fglaive-function-calling-v2), [NL2SQL11](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbugdaryan\u002Fsql-create-context-instruction) and a small collection of synthetic API calling datasets, and 4) high-quality language instruction datasets such as [HelpSteer](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fnvidia\u002FHelpSteer) and an open license-filtered version of [Platypus](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fgarage-bAInd\u002FOpen-Platypus).\n\n## Evaluation Results\nWe conduct an extensive evaluation of our code models on a comprehensive list of benchmarks that includes but is not limited to HumanEvalPack, MBPP, and MBPP+. This set of benchmarks encompasses different coding tasks across commonly used programming languages (e.g., Python, JavaScript, Java, Go, C++, Rust).\n\nOur findings reveal that Granite Code models outperform strong open source models across model sizes. The figure below illustrates how `Granite-8B-Code-Base` outperforms `Mistral-7B`, `LLama-3-8B`, and other open source models in three coding tasks. We provide further evaluation results in our [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2405.04324).\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fibm-granite_granite-code-models_readme_8782b65bfff0.jpg\" \u002F>\n\n## How to Use our Models?\n\nTo use any of our models, pick an appropriate `model_path` from:\n1. `ibm-granite\u002Fgranite-3b-code-base-2k`\n2. `ibm-granite\u002Fgranite-3b-code-instruct-2k`\n3. `ibm-granite\u002Fgranite-8b-code-base-4k`\n4. `ibm-granite\u002Fgranite-8b-code-instruct-4k`\n5. `ibm-granite\u002Fgranite-20b-code-base-8k`\n6. `ibm-granite\u002Fgranite-20b-code-instruct-8k`\n7. `ibm-granite\u002Fgranite-34b-code-base-8k`\n8. `ibm-granite\u002Fgranite-34b-code-instruct-8k`\n\n### Inference\n```python\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\ndevice = \"cuda\" # or \"cpu\"\nmodel_path = \"ibm-granite\u002Fgranite-3b-code-base-2k\" # pick anyone from above list\n\ntokenizer = AutoTokenizer.from_pretrained(model_path)\n\n# drop device_map if running on CPU\nmodel = AutoModelForCausalLM.from_pretrained(model_path, device_map=device)\nmodel.eval()\n\n# change input text as desired\ninput_text = \"def generate():\"\n# tokenize the text\ninput_tokens = tokenizer(input_text, return_tensors=\"pt\")\n\n# transfer tokenized inputs to the device\nfor i in input_tokens:\n    input_tokens[i] = input_tokens[i].to(device)\n\n# generate output tokens\noutput = model.generate(**input_tokens)\n# decode output tokens into text\noutput = tokenizer.batch_decode(output)\n\n# loop over the batch to print, in this example the batch size is 1\nfor i in output:\n    print(i)\n```\n\n### Finetuning\nWe use [Dolomite Engine](https:\u002F\u002Fgithub.com\u002FIBM\u002Fdolomite-engine\u002F) for finetuning (or instruction tuning) all our models. We provide sample scripts for finetuning `ibm-granite\u002Fgranite-3b-code-base`. To finetune the models, simply follow these steps:\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002FIBM\u002Fdolomite-engine\u002F\ncd dolomite-engine\n\n# you might need to modify configs\u002Fgranite-example\u002Ftraining.yml\nsh scripts\u002Ffinetune.sh configs\u002Fgranite-example\u002Ftraining.yml\n\n# once the model is trained, convert to HuggingFace-compatible safetensors\nsh scripts\u002Fexport.sh configs\u002Fgranite-example\u002Fexport.yml\n```\n\n> [!TIP]\n> If you would like to use [padding-free transformers](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fmayank-mishra\u002Fpadding-free-transformer) to save memory footprint and FLOPs during training, follow the instructions in the [Dolomite Engine README](https:\u002F\u002Fgithub.com\u002FIBM\u002Fdolomite-engine?tab=readme-ov-file#huggingface-compatible-custom-models) for more details.\n\n## How to Contribute to this Project?\nPlese check our [Guidelines](\u002FCONTRIBUTING.md) and [Code of Conduct](\u002FCODE_OF_CONDUCT.md) to contribute to our project.\n\n## Model Cards\nThe model cards for each model variant are available in their respective HuggingFace repository. Please visit our collection [here](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fibm-granite\u002Fgranite-code-models-6624c5cec322e4c148c8b330).\n\n## How to Download our Models?\nThe model of choice (granite-3b-code-base in this example) can be cloned using:\n```shell\ngit clone https:\u002F\u002Fhuggingface.co\u002Fibm-granite\u002Fgranite-3b-code-base-2k\n```\n\n## License \nAll Granite Code Models are distributed under [Apache 2.0](.\u002FLICENSE) license.\n\n## Would you like to provide feedback?\nPlease let us know your comments about our family of code models by visiting our [collection](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fibm-granite\u002Fgranite-code-models-6624c5cec322e4c148c8b330). Select the repository of the model you would like to provide feedback about. Then, go to *Community* tab, and click on *New discussion*. Alternatively, you can also post any questions\u002Fcomments on our [github discussions page](https:\u002F\u002Fgithub.com\u002Forgs\u002Fibm-granite\u002Fdiscussions).\n","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fibm-granite_granite-code-models_readme_63be11a09c5e.png\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  :books: \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2405.04324\">论文\u003C\u002Fa>&nbsp | :hugs: \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fibm-granite\u002Fgranite-code-models-6624c5cec322e4c148c8b330\">HuggingFace 专区\u003C\u002Fa>&nbsp | \n  :speech_balloon: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Forgs\u002Fibm-granite\u002Fdiscussions\">讨论页\u003C\u002Fa>&nbsp\n\u003Cbr>\n\n---\n## Granite 代码模型简介\n我们推出了 Granite 系列仅解码器架构的代码生成模型，适用于各类代码生成任务（如修复 bug、解释代码、编写文档等），这些模型基于 116 种编程语言编写的代码进行训练。对 Granite 代码模型家族在多种任务上的全面评估表明，我们的模型在现有开源代码大模型中始终处于领先水平。\n\nGranite 代码模型的主要优势包括：\n* 多功能代码大模型：Granite 代码模型在不同类型的代码相关任务上均表现出竞争力或达到最先进水平，涵盖代码生成、解释、修复、编辑、翻译等多种场景，充分展示了其解决多样化编码问题的能力。\n* 可信的企业级大模型：所有模型均使用符合许可要求的数据进行训练，数据收集严格遵循 [IBM 的人工智能伦理原则](https:\u002F\u002Fwww.ibm.com\u002Fimpact\u002Fai-ethics)，并在 IBM 公司法务团队的指导下确保模型可信赖地用于企业环境。我们以 [Apache 2.0 许可证](https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0)发布所有 Granite 代码模型，供研究和商业用途。\n\n**Granite 代码模型**家族主要分为两种：\n\n* Granite 代码基础模型：专为代码相关任务设计的基础模型，例如代码修复、代码解释和代码合成。\n* Granite 代码指令微调模型：结合 Git 提交记录与人工指令，以及开源的合成代码指令数据集进行微调的指令跟随模型。\n\n基础模型和指令微调模型均有 3B、8B、20B 和 34B 参数规模可供选择。\n\n## 数据收集\n我们准备代码预训练数据的过程包含多个阶段。首先，我们收集公开可用的数据集（如 GitHub Code Clean、Starcoder 数据）、公共代码仓库以及 GitHub 上的问题。其次，我们根据文件扩展名确定代码所属的编程语言，并据此筛选数据；同时，我们还会过滤掉代码质量较低的部分。第三，我们采用严格的去重策略，包括精确去重和模糊去重，以移除内容完全或高度相似的文档。最后，我们应用 HAP 内容过滤器，降低模型生成仇恨、辱骂或亵渎性语言的可能性。此外，我们还会通过替换个人身份信息（PII）内容（如姓名、电子邮件地址、密钥、密码）为相应标记（如⟨NAME⟩、⟨EMAIL⟩、⟨KEY⟩、⟨PASSWORD⟩）来保护隐私。我们还使用 ClamAV 扫描所有数据集，以识别并移除源代码中的恶意软件。除了收集用于模型训练的代码数据外，我们也整理了若干高质量的自然语言数据集，以提升模型的语言理解和数学推理能力。\n\n## 预训练\n**Granite 代码基础模型**基于 3–4T 个 token 的代码数据及与代码相关的自然语言数据进行训练。数据采用字节对编码（BPE）进行分词，使用的分词器与 StarCoder 相同。我们利用高质量数据，分两个阶段进行训练：\n\n* 第一阶段（仅代码训练）：在这一阶段，3B 和 8B 模型分别使用 4 万亿个 token 的 116 种语言代码数据进行训练。20B 参数模型则使用 3 万亿个 token 的代码数据进行训练。而 34B 模型是在 20B 模型的 1.6T 检查点基础上进行深度扩展后，使用 1.4T 个 token 进行训练。\n* 第二阶段（代码+语言混合训练）：在第二阶段，我们引入了来自技术、数学和网络文档等多个领域的高质量公开数据，以进一步提升模型性能。所有模型在这一阶段均使用 500B 个 token 进行训练（其中 80% 为代码，20% 为语言）。\n\n## 指令微调\nGranite 代码指令微调模型基于以下类型的指令数据进行微调：1) 来自 [CommitPackFT](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigcode\u002Fcommitpackft) 的代码提交记录；2) 高质量的数学数据集，特别是 [MathInstruct](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FTIGER-Lab\u002FMathInstruct) 和 [MetaMathQA](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fmeta-math\u002FMetaMathQA)；3) 代码指令数据集，如 [Glaive-Code-Assistant-v3](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fglaiveai\u002Fglaive-code-assistant-v3)、[Self-OSS-Instruct-SC2](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbigcode\u002Fself-oss-instruct-sc2-exec-filter-50k)、[Glaive-Function-Calling-v2](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fglaiveai\u002Fglaive-function-calling-v2)、[NL2SQL11](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fbugdaryan\u002Fsql-create-context-instruction) 以及少量合成的 API 调用数据集；4) 高质量的语言指令数据集，如 [HelpSteer](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fnvidia\u002FHelpSteer) 和经过开放许可过滤的 [Platypus](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fgarage-bAInd\u002FOpen-Platypus)。\n\n## 评估结果\n我们对代码模型进行了广泛的评估，测试涵盖了 HumanEvalPack、MBPP 和 MBPP+ 等基准测试。这些基准测试覆盖了常用编程语言（如 Python、JavaScript、Java、Go、C++、Rust）中的各种编码任务。\n\n评估结果显示，Granite 代码模型在不同参数规模下均优于其他强大的开源模型。下图展示了 `Granite-8B-Code-Base` 在三项编码任务中如何超越 `Mistral-7B`、`LLama-3-8B` 等开源模型。更多评估结果请参阅我们的 [论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2405.04324)。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fibm-granite_granite-code-models_readme_8782b65bfff0.jpg\" \u002F>\n\n## 如何使用我们的模型？\n\n要使用我们的任何模型，请从以下路径中选择合适的 `model_path`：\n1. `ibm-granite\u002Fgranite-3b-code-base-2k`\n2. `ibm-granite\u002Fgranite-3b-code-instruct-2k`\n3. `ibm-granite\u002Fgranite-8b-code-base-4k`\n4. `ibm-granite\u002Fgranite-8b-code-instruct-4k`\n5. `ibm-granite\u002Fgranite-20b-code-base-8k`\n6. `ibm-granite\u002Fgranite-20b-code-instruct-8k`\n7. `ibm-granite\u002Fgranite-34b-code-base-8k`\n8. `ibm-granite\u002Fgranite-34b-code-instruct-8k`\n\n### 推理\n```python\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\ndevice = \"cuda\" # 或 \"cpu\"\nmodel_path = \"ibm-granite\u002Fgranite-3b-code-base-2k\" # 从上述列表中任选一个\n\ntokenizer = AutoTokenizer.from_pretrained(model_path)\n\n# 如果在 CPU 上运行，则无需设置 device_map\nmodel = AutoModelForCausalLM.from_pretrained(model_path, device_map=device)\nmodel.eval()\n\n# 根据需要更改输入文本\ninput_text = \"def generate():\"\n# 对文本进行分词\ninput_tokens = tokenizer(input_text, return_tensors=\"pt\")\n\n# 将分词后的输入转移到设备上\nfor i in input_tokens:\n    input_tokens[i] = input_tokens[i].to(device)\n\n# 生成输出标记\noutput = model.generate(**input_tokens)\n# 将输出标记解码为文本\noutput = tokenizer.batch_decode(output)\n\n# 遍历批次并打印，本示例中批次大小为1\nfor i in output:\n    print(i)\n```\n\n### 微调\n我们使用 [Dolomite Engine](https:\u002F\u002Fgithub.com\u002FIBM\u002Fdolomite-engine\u002F) 来对所有模型进行微调（或指令微调）。我们提供了用于微调 `ibm-granite\u002Fgranite-3b-code-base` 的示例脚本。要微调这些模型，请按照以下步骤操作：\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002FIBM\u002Fdolomite-engine\u002F\ncd dolomite-engine\n\n# 您可能需要修改 configs\u002Fgranite-example\u002Ftraining.yml 文件\nsh scripts\u002Ffinetune.sh configs\u002Fgranite-example\u002Ftraining.yml\n\n# 模型训练完成后，将其转换为与 Hugging Face 兼容的 safetensors 格式\nsh scripts\u002Fexport.sh configs\u002Fgranite-example\u002Fexport.yml\n```\n\n> [!提示]\n> 如果您希望使用 [无填充 Transformer](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fmayank-mishra\u002Fpadding-free-transformer) 来减少训练过程中的内存占用和浮点运算次数，请参阅 [Dolomite Engine 的 README](https:\u002F\u002Fgithub.com\u002FIBM\u002Fdolomite-engine?tab=readme-ov-file#huggingface-compatible-custom-models)，以获取更多详细信息。\n\n## 如何参与本项目？\n请查阅我们的 [贡献指南](\u002FCONTRIBUTING.md) 和 [行为准则](\u002FCODE_OF_CONDUCT.md)，以参与本项目的贡献。\n\n## 模型卡片\n每个模型变体的模型卡片都可在其对应的 Hugging Face 仓库中找到。请访问我们的合集 [这里](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fibm-granite\u002Fgranite-code-models-6624c5cec322e4c148c8b330)。\n\n## 如何下载我们的模型？\n您可以使用以下命令克隆所需的模型（本示例中为 granite-3b-code-base）：\n```shell\ngit clone https:\u002F\u002Fhuggingface.co\u002Fibm-granite\u002Fgranite-3b-code-base-2k\n```\n\n## 许可证 \n所有 Granite 代码模型均采用 [Apache 2.0](.\u002FLICENSE) 许可证进行发布。\n\n## 您想提供反馈吗？\n请通过访问我们的 [合集](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fibm-granite\u002Fgranite-code-models-6624c5cec322e4c148c8b330)，告诉我们您对我们代码模型系列的看法。选择您想要提供反馈的模型仓库，然后转到 *社区* 选项卡，点击 *新建讨论*。或者，您也可以在我们的 [GitHub 讨论页面](https:\u002F\u002Fgithub.com\u002Forgs\u002Fibm-granite\u002Fdiscussions) 上发表任何问题或评论。","# Granite Code Models 快速上手指南\n\nGranite Code Models 是 IBM 开源的一系列专注于代码生成任务（如修复漏洞、解释代码、文档生成等）的解码器-only 大语言模型。该系列支持 116 种编程语言，提供 Base（基础预训练）和 Instruct（指令微调）两种变体，参数量涵盖 3B、8B、20B 和 34B。所有模型均基于 Apache 2.0 协议发布，可自由用于研究和商业用途。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐) 或 macOS。Windows 用户建议使用 WSL2。\n*   **Python**: 版本 3.9 或更高。\n*   **GPU (可选但推荐)**: 如需运行 8B 及以上模型或进行微调，建议配备 NVIDIA GPU 并安装 CUDA。\n    *   3B 模型：显存建议 ≥ 6GB\n    *   8B 模型：显存建议 ≥ 16GB\n    *   20B\u002F34B 模型：需多卡或多机部署，或使用量化版本。\n*   **前置依赖**:\n    *   `transformers` (Hugging Face)\n    *   `torch` (PyTorch)\n    *   `accelerate` (可选，用于加速推理)\n\n**安装基础依赖命令：**\n```bash\npip install torch transformers accelerate\n```\n\n> **提示**：国内开发者若下载 Hugging Face 模型受阻，建议配置镜像源或使用 `hf-mirror`。\n> ```bash\n> export HF_ENDPOINT=https:\u002F\u002Fhf-mirror.com\n> ```\n\n## 安装步骤\n\nGranite Code Models 托管在 Hugging Face 上，无需复杂编译，直接通过 `transformers` 库加载即可。若需进行微调，则需额外安装 Dolomite Engine。\n\n### 1. 拉取模型（推理用）\n模型将自动从 Hugging Face 下载。您可以选择以下任一模型路径：\n*   `ibm-granite\u002Fgranite-3b-code-base-2k`\n*   `ibm-granite\u002Fgranite-3b-code-instruct-2k`\n*   `ibm-granite\u002Fgranite-8b-code-base-4k`\n*   `ibm-granite\u002Fgranite-8b-code-instruct-4k`\n*   `ibm-granite\u002Fgranite-20b-code-base-8k`\n*   `ibm-granite\u002Fgranite-20b-code-instruct-8k`\n*   `ibm-granite\u002Fgranite-34b-code-base-8k`\n*   `ibm-granite\u002Fgranite-34b-code-instruct-8k`\n\n*(注：Base 模型适合继续预训练或特定任务微调；Instruct 模型适合直接对话和遵循指令)*\n\n### 2. 安装微调框架（可选）\n如果您计划对模型进行指令微调，官方推荐使用 **Dolomite Engine**：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FIBM\u002Fdolomite-engine\u002F\ncd dolomite-engine\npip install -e .\n```\n\n## 基本使用\n\n以下是最简单的 Python 推理示例，展示如何加载模型并生成代码。\n\n### 代码生成示例\n\n```python\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\n# 设置设备：如果有 GPU 使用 \"cuda\"，否则使用 \"cpu\"\ndevice = \"cuda\" \n\n# 选择模型路径 (此处以 3B Base 模型为例，可替换为上述列表中的任意模型)\nmodel_path = \"ibm-granite\u002Fgranite-3b-code-base-2k\"\n\n# 加载分词器\ntokenizer = AutoTokenizer.from_pretrained(model_path)\n\n# 加载模型 (若在 CPU 运行，请移除 device_map 参数)\nmodel = AutoModelForCausalLM.from_pretrained(model_path, device_map=device)\nmodel.eval()\n\n# 输入提示词 (例如：定义一个函数)\ninput_text = \"def generate():\"\n\n# 分词\ninput_tokens = tokenizer(input_text, return_tensors=\"pt\")\n\n# 将输入转移到指定设备\nfor i in input_tokens:\n    input_tokens[i] = input_tokens[i].to(device)\n\n# 生成输出\noutput = model.generate(**input_tokens)\n\n# 解码并打印结果\noutput_text = tokenizer.batch_decode(output)\n\nfor i in output_text:\n    print(i)\n```\n\n### 微调示例 (基于 Dolomite Engine)\n\n若需微调 `granite-3b-code-base`，请执行以下脚本：\n\n```bash\n# 克隆引擎后进入目录\ncd dolomite-engine\n\n# (可选) 修改配置文件 configs\u002Fgranite-example\u002Ftraining.yml 以适应您的数据集\n\n# 启动微调\nsh scripts\u002Ffinetune.sh configs\u002Fgranite-example\u002Ftraining.yml\n\n# 训练完成后，转换为 HuggingFace 兼容格式\nsh scripts\u002Fexport.sh configs\u002Fgranite-example\u002Fexport.yml\n```\n\n> **性能优化提示**：若希望在训练过程中节省显存和计算量，可参考 Dolomite Engine 文档启用 [padding-free transformers](https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fmayank-mishra\u002Fpadding-free-transformer) 技术。","某金融科技公司后端团队在紧急重构遗留的 COBOL 与 Java 混合系统时，面临多语言代码迁移与文档缺失的巨大挑战。\n\n### 没有 granite-code-models 时\n- **多语言支持割裂**：团队需切换不同工具处理 116 种编程语言中的冷门语言（如 COBOL），通用模型对老旧语法理解偏差大，导致转换错误频发。\n- **合规风险高悬**：使用来源不明的开源模型存在训练数据版权争议，且无法确保代码中是否混入恶意软件或未脱敏的个人隐私信息（PII），法务审核流程漫长。\n- **维护成本高昂**：缺乏高质量的自动文档生成与代码解释能力，资深工程师需花费大量时间人工梳理逻辑，新人上手极慢，严重拖慢重构进度。\n\n### 使用 granite-code-models 后\n- **全栈代码智能统一**：利用其针对 116 种语言训练的优势，granite-code-models 能精准理解并转换从现代 Python 到遗留 COBOL 的代码，一次性完成高精度的跨语言迁移。\n- **企业级安全可信**：基于 IBM 伦理原则构建并经法律团队审查，granite-code-models 内置了严格的 PII 脱敏与恶意代码过滤机制，直接满足金融行业严苛的合规要求。\n- **研发效率显著提升**：借助其强大的代码解释与文档生成功能，granite-code-models 自动为遗留系统生成清晰的技术文档，将代码审查时间缩短 60%，加速团队知识传承。\n\ngranite-code-models 通过提供安全、合规且精通百种语言的代码智能，将高风险的遗留系统重构转变为高效可控的现代化升级过程。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fibm-granite_granite-code-models_63be11a0.png","ibm-granite","IBM Granite","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fibm-granite_a58370fb.png","",null,"https:\u002F\u002Fgithub.com\u002Fibm-granite",1250,87,"2026-04-01T13:23:30","Apache-2.0","未说明","推理示例支持 CUDA 或 CPU。若使用 GPU，需 NVIDIA 显卡（具体型号和显存取决于模型大小：3B\u002F8B\u002F20B\u002F34B 参数），CUDA 版本未明确指定。","未说明（取决于加载的模型大小，34B 模型通常需要大量系统内存或显存）",{"notes":89,"python":85,"dependencies":90},"1. 模型提供多种尺寸（3B, 8B, 20B, 34B 参数），硬件需求随模型增大而显著增加。\n2. 微调需使用 IBM 开源的 Dolomite Engine 工具。\n3. 推理代码示例显示可同时在 CUDA GPU 或 CPU 上运行，但在 CPU 上运行大模型可能极慢。\n4. 模型基于 Apache 2.0 许可证发布，可用于研究和商业用途。\n5. 训练数据经过严格的去重、PII 脱敏和恶意软件扫描处理。",[91,92],"transformers","torch",[15],"2026-03-27T02:49:30.150509","2026-04-06T05:35:33.143689",[97,102,107,112,117,122,127,132],{"id":98,"question_zh":99,"answer_zh":100,"source_url":101},10735,"是否提供 GGUF 格式的文件？","是的，GGUF 文件现已可用。您可以访问 Hugging Face 上的集合页面下载：https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fibm-granite\u002Fgranite-code-models-6624c5cec322e4c148c8b330","https:\u002F\u002Fgithub.com\u002Fibm-granite\u002Fgranite-code-models\u002Fissues\u002F7",{"id":103,"question_zh":104,"answer_zh":105,"source_url":106},10736,"如何对 Granite-34B 模型进行微调以增加上下文长度（超过默认的 8192）？","由于 Granite-34B 使用 'GPTBigCodeForCausalLM' 架构，其位置嵌入矩阵是可学习的，不能像 RoPE 架构那样无限扩展。您需要手动修改状态字典中的位置嵌入权重。具体步骤如下：\n1. 获取模型状态字典：`state_dict = model.state_dict()`\n2. 提取位置嵌入权重：`weight = state_dict[\"transformer.wpe.weight\"]`\n3. 修改权重形状（例如从 8192 扩展到 16384），可以通过重复矩阵或线性插值实现。\n4. 将修改后的权重放回状态字典：`state_dict[\"transformer.wpe.weight\"] = new_weight`\n5. 将新的状态字典加载到配置了更大 `max_position_embeddings` 的新模型中。","https:\u002F\u002Fgithub.com\u002Fibm-granite\u002Fgranite-code-models\u002Fissues\u002F16",{"id":108,"question_zh":109,"answer_zh":110,"source_url":111},10737,"Granite 代码模型的数据知识截止日期是什么时候？","模型的训练始于去年（相对于 Issue 提出时间）的 9 月份。因此，知识截止日期大致在该时间点之前。","https:\u002F\u002Fgithub.com\u002Fibm-granite\u002Fgranite-code-models\u002Fissues\u002F8",{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},10738,"Granite 代码模型是否支持代码填充（Infilling）功能？","支持。模型使用了特定的控制令牌格式。您可以使用以下格式进行测试：\n`\u003Cfim_prefix>代码前缀\u003Cfim_suffix>代码后缀\u003Cfim_middle>`\n例如：\n```python\ninput_text = \"\u003Cfim_prefix>def print_hello_world():\\n    \u003Cfim_suffix>\\n    print('Hello world!')\u003Cfim_middle>\"\ninputs = tokenizer.encode(input_text, return_tensors=\"pt\").to('cuda:0')\noutputs = model.generate(inputs)\n```\n注意：模型可能对修剪后的前后缀上下文的鲁棒性有限，建议尽量保留完整的上下文结构，且不要在输入中添加文件名。","https:\u002F\u002Fgithub.com\u002Fibm-granite\u002Fgranite-code-models\u002Fissues\u002F3",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},10739,"是否有通过 OpenAI 兼容 API 启动模型的示例脚本？","目前 vLLM 项目已经合并了对 Granite 模型的支持（PR #4636）。您可以使用集成了 vLLM 的服务来提供标准的 OpenAI 接口。此外，也可以参考 FastChat 或其他类似项目（如 Baichuan2 的 OpenAI_api.py）自行构建基于 Flask 的 API 服务器来加载模型并处理请求。","https:\u002F\u002Fgithub.com\u002Fibm-granite\u002Fgranite-code-models\u002Fissues\u002F1",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},10740,"可以使用 transformers 或 TRL 库对 Granite 模型进行指令微调吗，还是必须使用 Dolomite Engine？","两者都可以使用。虽然官方微调使用了 Dolomite Engine，但使用 Hugging Face transformers 或 TRL 模块进行指令微调也是可行的，预计能获得良好的效果。","https:\u002F\u002Fgithub.com\u002Fibm-granite\u002Fgranite-code-models\u002Fissues\u002F18",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},10741,"PSM（前缀 - 后缀 - 中间）和 SPM（后缀 - 前缀 - 中间）模式在准确率上有区别吗？","官方尚未测试 SPM 与 PSM 之间是否存在显著差异。在训练数据分布上，50% 是因果语言建模（Causal LM），另外 50% 是填充任务（FIM），其中 FIM 部分由 25% 的 PSM 和 25% 的 SPM 组成。鉴于两者的训练比例相同，理论上改变模式可能不会带来巨大差异，但这需要实证验证。","https:\u002F\u002Fgithub.com\u002Fibm-granite\u002Fgranite-code-models\u002Fissues\u002F9",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},10742,"Softmax 缩放（softmax scaling）在推理时是必需的吗？不同注意力机制（Eager, SDPA, Flash-attn）中表现不一致怎么办？","在 SDPA 或 Flash Attention 中将 scale 设置为 `None` 等同于使用 `1 \u002F sqrt(d)`。参数 `scale_attn_weights` 用于决定是使用 `1 \u002F sqrt(d)` 还是 `1`。代码中涉及的 `fp32` 相关参数（如 `scale_attention_softmax_in_fp32`）主要是为了训练期间的数值稳定性，在推理时通常不需要特别关注这些设置，默认行为即可正常工作。","https:\u002F\u002Fgithub.com\u002Fibm-granite\u002Fgranite-code-models\u002Fissues\u002F6",[]]