[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-dvgodoy--FineTuningLLMs":3,"tool-dvgodoy--FineTuningLLMs":61},[4,18,26,36,44,53],{"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":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"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 真正成长为懂上",149489,2,"2026-04-10T11:32:46",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":77,"owner_twitter":73,"owner_website":79,"owner_url":80,"languages":81,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":10,"env_os":94,"env_gpu":95,"env_ram":94,"env_deps":96,"category_tags":107,"github_topics":108,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":123,"updated_at":124,"faqs":125,"releases":154},6395,"dvgodoy\u002FFineTuningLLMs","FineTuningLLMs","Official repository of my book \"A Hands-On Guide to Fine-Tuning LLMs with PyTorch and Hugging Face\"","FineTuningLLMs 是书籍《A Hands-On Guide to Fine-Tuning LLMs with PyTorch and Hugging Face》的官方配套代码库，旨在为开发者提供一套系统化的大语言模型微调实战指南。面对大模型技术迭代快、学习门槛高的问题，它通过结构化的章节和可交互的 Google Colab 笔记本，帮助用户从零开始掌握模型定制的核心流程。\n\n该项目特别适合具备一定深度学习基础（熟悉 Transformer、注意力机制等概念）的开发者、数据科学家及研究人员使用。如果你希望将通用大模型适配到特定业务场景，却苦于缺乏清晰的实施路径，这里提供了从环境搭建、量化加载、数据集格式化到最终部署的完整解决方案。\n\n其核心技术亮点在于深入讲解了当前业界最稳定且关键的技术栈：包括降低显存占用的模型量化技术、高效参数更新的低秩适配器（LoRA），以及标准化的数据模板处理。所有内容均基于 PyTorch 和 Hugging Face 生态系统构建，不仅解释了“如何配置”，更剖析了配置背后的运行原理，帮助用户真正理解技术细节而非盲目调用接口，是进阶掌握大模型微调能力","FineTuningLLMs 是书籍《A Hands-On Guide to Fine-Tuning LLMs with PyTorch and Hugging Face》的官方配套代码库，旨在为开发者提供一套系统化的大语言模型微调实战指南。面对大模型技术迭代快、学习门槛高的问题，它通过结构化的章节和可交互的 Google Colab 笔记本，帮助用户从零开始掌握模型定制的核心流程。\n\n该项目特别适合具备一定深度学习基础（熟悉 Transformer、注意力机制等概念）的开发者、数据科学家及研究人员使用。如果你希望将通用大模型适配到特定业务场景，却苦于缺乏清晰的实施路径，这里提供了从环境搭建、量化加载、数据集格式化到最终部署的完整解决方案。\n\n其核心技术亮点在于深入讲解了当前业界最稳定且关键的技术栈：包括降低显存占用的模型量化技术、高效参数更新的低秩适配器（LoRA），以及标准化的数据模板处理。所有内容均基于 PyTorch 和 Hugging Face 生态系统构建，不仅解释了“如何配置”，更剖析了配置背后的运行原理，帮助用户真正理解技术细节而非盲目调用接口，是进阶掌握大模型微调能力的优质资源。","# A Hands-On Guide to Fine-Tuning LLMs with PyTorch and Hugging Face\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdvgodoy_FineTuningLLMs_readme_3eeb2f1dbe46.png\" width=\"400\"\u002F>\n  \u003Cbr>\n  \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.amazon.com\u002Fdp\u002FB0DV3Y1GMP\">Kindle\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.amazon.com\u002Fdp\u002FB0DV4H7YW2\">Paperback\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fleanpub.com\u002Ffinetuning\">PDF [Leanpub]\u003Ca> | \u003Ca href=\"https:\u002F\u002Fdanielgodoy.gumroad.com\u002Fl\u002Ffinetuning\">PDF [Gumroad]\u003Ca>\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n## Setup\n\n- [FAQ](https:\u002F\u002Fgithub.com\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FFAQ.md)\n- [Appendix A - Setting Up Your GPU Pod](https:\u002F\u002Fgithub.com\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FAppendixA.md)\n\n## Google Colab\n\nYou can easily **load the notebooks directly from GitHub** using Colab and run them using a **GPU** provided by Google. You need to be logged in a Google Account of your own.\n\nYou can go through the chapters already using the links below:\n\n- [Chapter 0 - TL;DR](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter0.ipynb)\n- [Chapter 1 - Pay Attention to LLMs](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter1.ipynb)\n- [Chapter 2 - Loading a Quantized Model](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter2.ipynb)\n- [Chapter 3 - Low-Rank Adaptation (LoRA)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter3.ipynb)\n- [Chapter 4 - Formatting Your Dataset](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter4.ipynb)\n- [Chapter 5 - Fine-Tuning with `SFTTrainer`](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter5.ipynb)\n- [Chapter 6 - Deploying It Locally](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter6.ipynb)\n- [Appendix B - Data Types' Internal Representation](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FAppendixB.ipynb)\n\n\n## Preface\n\nIf you’re reading this, I probably don’t need to tell you that large language models are pretty much _everywhere_, right?\n\nSince the release of ChatGPT in November 2022, it feels almost impossible to keep up with the rapid pace of developments. Every day, there’s a new technique, a new model, or a groundbreaking announcement. These are surely exciting times—but they can also feel overwhelming, exhausting and, at times, frustrating.\n\n\"_Where do I even begin to learn this?_\" is a perfectly valid question—and a tough one to answer on your own. I wrote this book as a tentative response to that question. It focuses on key concepts that, in my view, have proven to be stable and are likely to remain central to the fine-tuning process for the foreseeable future: quantization, low-rank adapters, and formatting templates.\n\nMastering these concepts is crucial for understanding the current landscape and will also empower you to handle future developments. They might also be useful to train or fine-tune a variety of large models, not just language models. They are essential tools in any data scientist's toolkit.\n\n****\n**This is an intermediate-level book, so to make the most of its content, you need a solid foundation. If Transformers, attention, Adam, tokens, embeddings, and GPUs do not ring any bells, I'd suggest you to start with my beginner-friendly series, _Deep Learning with PyTorch Step-by-Step_.**\n****\n\nI chose the Hugging Face ecosystem as the foundation for this book because it is the _de facto_ standard for working with deep learning models, whether they're language models or not. The concepts I  discuss—quantization, adapters, and templates—are neatly implemented and integrated into the ecosystem, making them relatively straightforward to use. But you have to understand how to configure them effectively and what those configurations are actually doing under the hood. It wasn't easy to find out such information out there, though. I missed a comprehensive overview explaining how these techniques work together in practice, especially when fine-tuning LLMs on a single GPU. This is the gap I aim to fill with this book.\n\nOriginally, its title was \"a short guide,\" but its scope grew so much that I eventually renamed it \"a hands-on guide.\" It covers a lot of ground, and I truly hope it supports you on your learning journey. Along the way, I've included plenty of fun examples, made-up quotes, and movie references—after all, I believe learning should be fun.\n\nThere's nothing cooler than learning about something new, trying it out yourself, and watching it work just fine, don't you agree? That's what you'll do in Chapter 0, the \"TL;DR\" chapter that will guide you through the entire journey of fine-tuning an LLM: quantization, low-rank adapters, dataset formatting, training, and querying the model. Next, we'll take a step back and have a brief discussion about language models, Transformers, the attention mechanism, and the different types of fine-tuning in Chapter 1.\n\nThe following chapters, two through six, correspond to the sections introduced in Chapter 0. In Chapter 2, \"Loading a Quantized Model,\" we'll discuss 8-bit and 4-bit quantization in more detail, as well as the BitsAndBytes configuration. In Chapter 3, \"Low-Rank Adaptation (LoRA),\" we'll explore the role and usage of low-rank adapters, including how to configure them using the PEFT package and how to prepare the (quantized) base model to improve numerical stability during training. Then, in Chapter 4, \"Formatting Your Dataset,\" we'll focus on data formatting, chat templates, and the role of tokenizers, padding, packing, and data collators.\n\nThe next step in our journey is Chapter 5, \"Fine-Tuning with `SFTTrainer`,\" where we'll explore a wide range of configuration possibilites to maximize the performance of a consumer-grade GPU and effectively fine-tune our models. We'll also discuss different implementations of the attention mechanism—Flash Attention and PyTorch's SDPA—and compare their speed and memory requirements. Chapter 6, \"Deploying It Locally,\" is an engineering-focused chapter. It covers the details and alternatives for converting your fine-tuned models to the GGUF format and how to serve your models using either Ollama or llama.cpp.\n\nEvery learning journey has its difficulties and pitfalls, and in our case, warnings and raised exceptions. The last chapter, Chapter -1, \"Troubleshooting,\" serves as a reference to help you understand and solve the typical errors you may encounter. \n\nFinally, there are also two appendices: the first one, \"Appendix A: Setting Up Your GPU Pod,\" is a step-by-step tutorial for using a cloud provider (runpod.io, a personal favorite) to spin up a GPU-powered Jupyter Notebook; the second, \"Appendix B: Data Types' Internal Representation,\" offers an (optional) overview of how integers and floating-point numbers are internally represented by their bits, for those interested in understanding the advantages and disadvantages of each data type in more detail.\n\nThat's it! Have fun!\n","# 使用 PyTorch 和 Hugging Face 微调大型语言模型的实战指南\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdvgodoy_FineTuningLLMs_readme_3eeb2f1dbe46.png\" width=\"400\"\u002F>\n  \u003Cbr>\n  \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.amazon.com\u002Fdp\u002FB0DV3Y1GMP\">Kindle\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.amazon.com\u002Fdp\u002FB0DV4H7YW2\">平装本\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fleanpub.com\u002Ffinetuning\">PDF [Leanpub]\u003Ca> | \u003Ca href=\"https:\u002F\u002Fdanielgodoy.gumroad.com\u002Fl\u002Ffinetuning\">PDF [Gumroad]\u003Ca>\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n## 准备工作\n\n- [常见问题解答](https:\u002F\u002Fgithub.com\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FFAQ.md)\n- [附录 A - 搭建你的 GPU 集群](https:\u002F\u002Fgithub.com\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FAppendixA.md)\n\n## Google Colab\n\n你可以通过 Colab **直接从 GitHub 加载笔记本**，并在 Google 提供的 **GPU** 上运行它们。你需要使用自己的 Google 账号登录。\n\n你也可以通过以下链接直接浏览各章节：\n\n- [第 0 章 - 简要概述](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter0.ipynb)\n- [第 1 章 - 关注大型语言模型](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter1.ipynb)\n- [第 2 章 - 加载量化模型](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter2.ipynb)\n- [第 3 章 - 低秩适应 (LoRA)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter3.ipynb)\n- [第 4 章 - 数据集格式化](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter4.ipynb)\n- [第 5 章 - 使用 `SFTTrainer` 进行微调](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter5.ipynb)\n- [第 6 章 - 在本地部署模型](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter6.ipynb)\n- [附录 B - 数据类型的内部表示](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FAppendixB.ipynb)\n\n## 序言\n\n如果你正在阅读这本书，恐怕我无需多言——大型语言模型如今几乎无处不在，对吧？\n\n自2022年11月ChatGPT发布以来，技术发展的速度之快让人几乎难以跟上。每天都有新的方法、新的模型或突破性的进展出现。这些无疑是令人兴奋的时刻，但同时也可能让人感到压力山大、疲惫不堪，甚至有些沮丧。\n\n“我到底该从哪里开始学习呢？”这是一个再合理不过的问题，却也很难独自解答。我写这本书，正是试图为这个问题提供一个初步的答案。本书聚焦于几个在我看来已经相对稳定、并且在可预见的未来仍将是微调流程核心的关键概念：量化、低秩适配器和格式化模板。\n\n掌握这些概念不仅对于理解当前的技术生态至关重要，还能帮助你更好地应对未来的各种新发展。它们同样适用于训练或微调多种类型的大型模型，而不仅仅是语言模型。可以说，这些都是每位数据科学家工具箱中不可或缺的利器。\n\n****\n**本书属于中级水平，因此要充分吸收其中的内容，你需要具备扎实的基础知识。如果你对Transformer、注意力机制、Adam优化器、Token、嵌入向量以及GPU这些概念还很陌生，我建议你先从我的入门级系列《PyTorch深度学习步步进阶》开始学习。**\n****\n\n我选择以Hugging Face生态系统作为本书的基础，是因为它已经成为处理深度学习模型（无论是否为语言模型）的事实标准。书中讨论的量化、适配器和模板等概念，在Hugging Face生态中都得到了精心实现和集成，使用起来相对直观。然而，如何有效地配置它们，以及这些配置背后究竟在做什么，并不是那么容易找到答案的。市面上缺乏一份全面的指南，能够深入浅出地解释这些技术在实际操作中的协同工作方式，尤其是在单张GPU上进行LLM微调时。这正是我希望通过本书填补的空白。\n\n最初，这本书的标题是“简明指南”，但随着内容不断扩充，最终我将其更名为“实战指南”。全书内容涵盖广泛，衷心希望它能为你的学习之旅提供有力支持。为了增添趣味性，我在书中穿插了许多有趣的示例、虚构的引语以及电影引用——毕竟，我认为学习本该是一件快乐的事情。\n\n没有什么比了解新事物、亲手尝试并亲眼见证它顺利运行更酷的了，你说是不是？在第0章“TL;DR”中，你将踏上这段旅程：从量化、低秩适配器到数据集格式化、模型训练，再到最终的模型推理，全程带你完成LLM微调的完整流程。接下来，在第1章中，我们会稍作回顾，简要探讨语言模型、Transformer架构、注意力机制以及不同类型的微调方式。\n\n随后的第2至6章，则分别对应第0章中介绍的各个步骤。第2章“加载量化模型”将深入讲解8位和4位量化技术，以及BitsAndBytes的配置方法。第3章“低秩适配器（LoRA）”则会探讨低秩适配器的作用与用法，包括如何利用PEFT库进行配置，以及如何准备（量化后的）基础模型以提升训练过程中的数值稳定性。紧接着，在第4章“格式化你的数据集”中，我们将重点讨论数据格式化、对话模板，以及分词器、填充、打包和数据编排器的作用。\n\n我们的旅程继续推进，来到第5章“使用`SFTTrainer`进行微调”。在这里，我们将探索丰富的配置选项，以充分发挥消费级GPU的性能，高效地完成模型微调。同时，我们还会讨论不同的注意力机制实现——Flash Attention与PyTorch的SDPA——并比较它们的速度与显存需求。第6章“本地部署”则是一篇偏重工程实践的文章，详细介绍了将微调后的模型转换为GGUF格式的各种方法与替代方案，以及如何借助Ollama或llama.cpp来部署和运行你的模型。\n\n每一段学习旅程都会遇到困难与陷阱，而在我们的案例中，最常见的便是警告信息和异常报错。因此，最后一章第-1章“故障排除”将作为参考，帮助你理解并解决可能遇到的典型问题。\n\n最后，本书还附有两篇附录：第一篇“附录A：搭建你的GPU集群”是一份逐步指导教程，教你如何利用云服务商（我个人推荐runpod.io）快速启动一台配备GPU的Jupyter Notebook；第二篇“附录B：数据类型的内部表示”则为那些希望深入了解每种数据类型优缺点的朋友提供了选读内容，介绍了整数和浮点数是如何通过二进制位进行内部表示的。\n\n好了，就到这里！祝你学习愉快！","# FineTuningLLMs 快速上手指南\n\n本指南基于 Daniel Godoy 的开源项目《FineTuningLLMs》，旨在帮助开发者使用 PyTorch 和 Hugging Face 生态快速掌握大语言模型（LLM）的微调技术，涵盖量化、LoRA 适配器及数据集格式化等核心概念。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**：Linux, macOS, 或 Windows (推荐 WSL2)\n- **GPU**：支持 CUDA 的 NVIDIA GPU（显存建议 8GB 以上，量化后可降低要求）\n- **Python**：3.9 或更高版本\n\n### 前置依赖\n本项目深度依赖 Hugging Face 生态系统。确保已安装以下核心库：\n- `torch` (PyTorch)\n- `transformers`\n- `datasets`\n- `peft` (Parameter-Efficient Fine-Tuning)\n- `bitsandbytes` (用于量化)\n- `accelerate`\n\n> **注意**：本书定位为中级教程。如果您不熟悉 Transformers、Attention 机制、Tokenizers 或 GPU 基础，建议先补充相关基础知识。\n\n## 安装步骤\n\n### 1. 创建虚拟环境（推荐）\n```bash\npython -m venv finetuning-env\nsource finetuning-env\u002Fbin\u002Factivate  # Windows 用户请使用: finetuning-env\\Scripts\\activate\n```\n\n### 2. 安装 PyTorch\n请访问 [PyTorch 官网](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F) 获取适合您 CUDA 版本的安装命令。以下为通用示例：\n```bash\npip install torch torchvision torchaudio --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu118\n```\n*国内用户加速方案*：可使用清华源或阿里源加速下载：\n```bash\npip install torch torchvision torchaudio --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu118 -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 3. 安装核心依赖库\n```bash\npip install transformers datasets peft bitsandbytes accelerate scipy ninja -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 4. 验证安装\n运行以下 Python 代码检查 GPU 是否可用：\n```python\nimport torch\nprint(f\"CUDA available: {torch.cuda.is_available()}\")\nprint(f\"GPU Name: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None'}\")\n```\n\n## 基本使用\n\n本项目采用“实战优先”的方式，最简单的入门方式是直接运行 **Chapter 0 (TL;DR)** 笔记本，它将引导您完成从加载量化模型到微调并推理的全流程。\n\n### 方式一：使用 Google Colab（零配置推荐）\n无需本地环境，直接在浏览器中运行。点击以下链接即可在配备 GPU 的 Colab 环境中打开：\n\n- [Chapter 0 - 全流程速览 (TL;DR)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fdvgodoy\u002FFineTuningLLMs\u002Fblob\u002Fmain\u002FChapter0.ipynb)\n\n### 方式二：本地运行示例代码\n若已在本地完成环境安装，可参考以下核心流程代码片段（对应 Chapter 0 逻辑）：\n\n#### 1. 加载量化模型与 LoRA 配置\n```python\nfrom transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig\nfrom peft import LoraConfig, get_peft_model\n\nmodel_id = \"mistralai\u002FMistral-7B-v0.1\"\n\n# 配置 4-bit 量化\nbnb_config = BitsAndBytesConfig(\n    load_in_4bit=True,\n    bnb_4bit_quant_type=\"nf4\",\n    bnb_4bit_compute_dtype=torch.float16\n)\n\ntokenizer = AutoTokenizer.from_pretrained(model_id)\nbase_model = AutoModelForCausalLM.from_pretrained(\n    model_id, \n    quantization_config=bnb_config, \n    device_map=\"auto\"\n)\n\n# 配置 LoRA\nlora_config = LoraConfig(\n    r=16,\n    lora_alpha=32,\n    target_modules=[\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\"],\n    lora_dropout=0.05,\n    bias=\"none\",\n    task_type=\"CAUSAL_LM\"\n)\n\nmodel = get_peft_model(base_model, lora_config)\n```\n\n#### 2. 准备数据与训练\n使用 `SFTTrainer` 进行高效微调：\n```python\nfrom trl import SFTTrainer\nfrom datasets import load_dataset\n\ndataset = load_dataset(\"mlabonne\u002Fguanaco-llama2-1k\", split=\"train\")\n\ntrainer = SFTTrainer(\n    model=model,\n    train_dataset=dataset,\n    args=training_args, # 需定义 TrainingArguments\n    tokenizer=tokenizer,\n    dataset_text_field=\"text\",\n    max_seq_length=512,\n    packing=True,\n)\n\ntrainer.train()\n```\n\n#### 3. 本地部署与推理\n训练完成后，可合并权重并使用 `llama.cpp` 或 `Ollama` 进行本地部署（详见 Chapter 6）：\n```python\n# 保存微调后的适配器\nmodel.save_pretrained(\"my-finetuned-model\")\n\n# 推理示例\ninputs = tokenizer(\"Hello, how are you?\", return_tensors=\"pt\").to(\"cuda\")\noutputs = model.generate(**inputs, max_new_tokens=50)\nprint(tokenizer.decode(outputs[0], skip_special_tokens=True))\n```\n\n### 后续学习路径\n完成 Chapter 0 后，建议按顺序深入学习以下章节以掌握细节：\n- **Chapter 2**: 深入理解 8-bit\u002F4-bit 量化与 BitsAndBytes 配置。\n- **Chapter 3**: 详解 LoRA 原理及数值稳定性优化。\n- **Chapter 4**: 数据集格式化、Chat Templates 与 Data Collators。\n- **Chapter 5**: 使用 `SFTTrainer` 的高级配置与 Flash Attention 优化。\n- **Chapter 6**: 模型转换为 GGUF 格式及使用 Ollama\u002Fllama.cpp 部署。","某电商公司的算法工程师急需将通用大模型改造为能精准回答自家商品售后政策的客服助手，但缺乏系统的微调落地经验。\n\n### 没有 FineTuningLLMs 时\n- **技术门槛高且碎片化**：面对量化、LoRA 适配器等核心概念，只能在零散的博客和文档中摸索，难以理解配置参数背后的实际原理。\n- **数据格式易出错**：手动构建训练数据集时，常因模板格式（Formatting Templates）不符合模型要求而导致训练报错或效果极差。\n- **资源调配困难**：不清楚如何在有限的 GPU 显存下加载大模型，经常遇到内存溢出（OOM）问题，导致实验反复失败。\n- **部署流程断层**：即使模型训练完成，也缺乏清晰的本地部署指南，导致模型无法从实验环境顺利转化为实际服务。\n- **学习曲线陡峭**：由于缺乏从理论到代码的完整映射，团队需要花费数周时间试错，严重拖慢项目上线进度。\n\n### 使用 FineTuningLLMs 后\n- **体系化掌握核心技**：通过书中对量化和低秩适配器的深度解析，工程师能迅速理解并正确配置 Hugging Face 生态中的关键组件。\n- **标准化数据处理**：直接复用第四章的数据格式化笔记本，快速构建出符合标准的指令微调数据集，消除了格式兼容性隐患。\n- **高效利用计算资源**：依据第二章和附录的 GPU 设置指南，成功在单卡环境下加载并运行量化后的模型，大幅降低硬件成本。\n- **端到端落地闭环**：跟随第六章的部署教程，顺畅地将微调好的模型封装为本地 API，实现了从训练到服务的无缝衔接。\n- **研发效率显著提升**：借助 Google Colab 直连的实战代码，团队在几天内就完成了原本需要数周的验证工作，快速交付了定制客服模型。\n\nFineTuningLLMs 通过提供从数据准备、模型量化到最终部署的全链路实战指南，帮助开发者跨越理论与工程落地之间的鸿沟。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdvgodoy_FineTuningLLMs_3eeb2f1d.png","dvgodoy","Daniel Voigt Godoy","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fdvgodoy_618ef895.jpg","Data scientist, developer, teacher and writer.\r\n\r\nAuthor of \"Deep Learning with PyTorch Step-by-Step: A Beginner's Guide\".",null,"Portugal","https:\u002F\u002Fpytorchstepbystep.com","https:\u002F\u002Fgithub.com\u002Fdvgodoy",[82,86],{"name":83,"color":84,"percentage":85},"Jupyter Notebook","#DA5B0B",98.1,{"name":87,"color":88,"percentage":89},"Python","#3572A5",1.9,808,104,"2026-04-10T09:33:14","MIT","未说明","必需（用于训练），支持 Google Colab 提供的 GPU 或云端 GPU（如 RunPod）；针对消费级显卡优化，建议使用支持 Flash Attention 或 PyTorch SDPA 的 NVIDIA GPU；具体显存大小未明确说明，但提及需适配单张消费级 GPU",{"notes":97,"python":94,"dependencies":98},"本书定位为中级教程，要求读者具备 Transformer、注意力机制、Adam 优化器、Token 和 Embedding 等基础知识。主要运行环境推荐使用 Google Colab（需登录 Google 账号）或云端 GPU 实例（如 RunPod）。内容涵盖模型量化（8-bit\u002F4-bit）、LoRA 微调、数据集格式化及本地部署（GGUF 格式）。若缺乏深度学习基础，建议先阅读作者的初学者系列教程。",[99,100,101,102,103,104,105,106],"PyTorch","Hugging Face Transformers","PEFT (Low-Rank Adaptation)","BitsAndBytes (量化)","SFTTrainer","Flash Attention","Ollama","llama.cpp",[14,35,15],[109,110,111,112,113,114,115,116,117,118,119,120,121,122],"bitsandbytes","fine-tuning","finetuning","finetuning-llms","hugging-face","huggingface","large-language-models","llamacpp","lora","ollama","peft","peft-fine-tuning-llm","pytorch","transformers","2026-03-27T02:49:30.150509","2026-04-11T04:54:48.116473",[126,131,136,141,146,150],{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},28968,"运行 Chapter 0 代码时遇到 RuntimeError: Expected all tensors to be on the same device 错误，如何解决？","该错误通常与多 GPU 训练配置有关。Accelerate 的默认配置可能会在每个 GPU 上加载整个模型并并行运行数据批次。建议尝试使用 DeepSpeed 插件进行更高效的并行训练。\n具体步骤：\n1. 安装 DeepSpeed 插件。\n2. 使用专门的 DeepSpeed 配置文件（例如 zero3 配置）。\n参考配置示例：https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Falignment-handbook\u002Fblob\u002Fmain\u002Frecipes\u002Faccelerate_configs\u002Fdeepspeed_zero3.yaml\n作者提供了一个非官方的 Notebook 示例用于多 GPU 训练：https:\u002F\u002Fgist.github.com\u002Fdvgodoy\u002F075427d38b7a4d1c98e2be6f5662112b","https:\u002F\u002Fgithub.com\u002Fdvgodoy\u002FFineTuningLLMs\u002Fissues\u002F1",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},28969,"在加载模型时遇到 KeyError: 'layout' 错误（特别是在 Windows\u002FWSL 环境下），该如何解决？","此错误通常源于 `huggingface-hub` 或 `traitlets` 包的缓存或版本冲突问题，而非模型本身的问题。可以尝试以下解决方案：\n1. 在 `from_pretrained()` 调用中添加 `force_download=True` 参数，强制重新下载模型以清除可能的损坏缓存。\n2. 尝试切换到一个不同的模型（例如 `google\u002Fgemma-3-1b-it`）以排除特定模型的问题。\n3. 如果系统环境存在冲突，建议创建并使用一个新的虚拟环境（venv）来运行代码，这通常能解决依赖混乱问题。\n4. 若问题依旧，请检查并统一相关包（如 transformers, accelerate, huggingface-hub）的版本。","https:\u002F\u002Fgithub.com\u002Fdvgodoy\u002FFineTuningLLMs\u002Fissues\u002F10",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},28970,"使用 SFTTrainer 微调后模型输出异常或未正确应用聊天模板（Chat Template），原因是什么？","这是由于 `trl` 库的版本更新导致的破坏性变更。在新版本（如 0.15.2）中，不再自动将 `instruction` 格式转换为对话格式，且默认的 collate function 从 `DataCollatorWithPadding` 变为了 `DataCollatorForLanguageModeling`，导致生成无限循环或格式错误。\n解决方案：\n需要手动更新数据处理代码，显式地将 `prompt` 和 `completion` 列转换为 `conversational` 格式，然后再应用聊天模板。作者已更新了相关 Notebook 以包含基于 `instructions_formatting_function()` 的转换逻辑，请参考最新的代码实现。","https:\u002F\u002Fgithub.com\u002Fdvgodoy\u002FFineTuningLLMs\u002Fissues\u002F5",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},28971,"在 Colab 中运行 Chapter 0 时遇到 AttributeError: 'AcceleratorState' object has no attribute 'distributed_type' 错误，如何修复？","这是因为环境中安装的 `accelerate` 库版本过旧，与新版的 `transformers` 不兼容。\n解决方法是升级相关库到最新版本。请在 Colab 的代码单元格中运行以下命令：\n!pip install git+https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Faccelerate\n!pip install --upgrade transformers\n执行完毕后重启运行时即可解决该属性缺失问题。","https:\u002F\u002Fgithub.com\u002Fdvgodoy\u002FFineTuningLLMs\u002Fissues\u002F2",{"id":147,"question_zh":148,"answer_zh":149,"source_url":130},28972,"在多 GPU 设置下训练时，为什么每个 GPU 上的 loss 值是完全相同的？这是正常现象吗？","是的，这是预期行为。当使用 Accelerate 的基本配置进行数据并行训练时，底层机制会在所有 GPU 上同步结果并报告整体（平均）loss。因此，你在日志中看到的每个步骤的 loss 实际上是所有 GPU 计算后的同步值，所以看起来是一样的。可以通过 `nvidia-smi` 观察显存使用情况，会发现其占用模式类似于单卡训练，但步数（steps）会相应减少（因为总 batch size 被分摊到了多个卡上）。",{"id":151,"question_zh":152,"answer_zh":153,"source_url":130},28973,"如何将当前的单节点多 GPU 训练配置适配到多节点（Multi-node）环境？","Hugging Face Accelerate 原生支持多节点训练。要适配多节点环境（例如 2 个节点，每个节点 2 张 GPU），通常不需要大幅修改代码逻辑，而是需要调整 Accelerate 的启动配置。\n你需要配置 `accelerate config` 或在配置文件中指定多节点相关的参数（如 `num_machines`, `machine_rank`, `main_process_ip`, `main_process_port` 等）。如果使用 DeepSpeed，则需在 DeepSpeed 配置文件中定义集群信息。建议参考 Hugging Face Accelerate 关于多节点使用的官方文档或 DeepSpeed 的多节点配置指南进行设置。",[]]