社区指南
欢迎来到 MLC-LLM 社区!和您一样,所有人都对大型语言模型的巨大能力感到惊叹。对 MLC-LLM 的目标是推动一个由开源社区驱动的项目,共同努力使这项技术民主化,并使其在各种设备上可访问。很高兴您成为我们社区的一员,并热切期待您的宝贵贡献。
参与社区讨论
我们鼓励公开讨论。如果您遇到错误或有功能请求,请在 MLC-LLM 的 GitHub 问题跟踪器 中提交问题。鼓励您为问题添加标签,例如“bug”、“功能请求”或“iOS”,以便相关开发人员能够快速注意到您的问题。
此外,还建立了 discord 服务器 用于在线讨论。虽然我们鼓励参与 Discord 服务器,但我们仍建议即使在那里讨论过,也要创建 GitHub 问题。这样可以确保讨论被存档并可搜索,以供将来参考。
在提交问题之前,请您查看 常见问题解答,看看您的问题是否已经得到解答。
为 MLC-LLM 做贡献
Fork 并创建 Pull Requests
准备好为 MLC-LLM 做贡献了吗?太棒了!很高兴看到您准备好贡献代码。对 MLC-LLM 代码库进行更改的标准方法是通过创建 pull-request,我们将审查您的代码并在准备就绪时将其合并到代码库中。
成为开发者的第一步是 fork 仓库到您自己的 GitHub 账户,您会注意到位于 https://github.com/username/mlc-llm
的仓库,其中 username
是您的 GitHub 用户名。
您可以将您的 fork 克隆到本地机器并提交更改,或者直接在 GitHub 上编辑您的 fork 内容(如果您只是修复拼写错误)。一旦您的更新完成,您可以点击 contribute
按钮并打开 pull request 到主仓库。
为 MLC-LLM 贡献新模型
如果您已经使用我们的 编译模型库 教程为现有模型架构编译了模型,请按照 (可选)3. 将权重上传至 Hugging Face 教程将您的模型上传到互联网(例如 Hugging Face)。
如果您按照我们的 定义新的模型架构 教程向 MLC-LLM 添加了新模型变体。请创建 pull request 来添加您的模型架构(目前模型架构位于 relax_models 文件夹下)。
编码风格
对于 Python 代码,我们通常遵循 PEP8 风格指南。Python 注释遵循 NumPy 风格 Python 文档字符串。为了方便,您可以使用 black 自动格式化您的 Python 代码。
pip install black
black your_python_file.py
对于 C++ 代码,我们通常遵循 Google C++ 风格指南。C++ 注释应该是 Doxygen 兼容。为了方便,您可以使用 clang-format 自动格式化您的 C++ 代码。
clang-format -i your_cpp_file.cpp
一般开发流程
欢迎社区中的每个人发送补丁、文档并提出项目的新方向。这里的关键指导原则是让社区中的每个人都能参与并参与决策和开发。我们鼓励在不同渠道进行公开讨论,以便社区中的每个人都能参与并了解开发进展。
代码审查是确保代码质量的关键方法之一。高质量的代码审查可以防止长期的技术债务,对项目的成功至关重要。在合并之前,需要审查 pull request。具有相应领域专业知识的提交者将主持 pull request 并在准备就绪时合并代码。相应的提交者可以请求熟悉代码领域的多个审查者。鼓励贡献者自己请求代码审查并帮助审查彼此的代码——记住每个人都在为社区贡献自己的时间,高质量的代码审查本身与实际代码贡献一样重要,如果您为他人提供同样的帮助,您的代码可以快速得到审查。
社区应努力通过讨论达成技术决策的共识。我们期望提交者以外交方式主持技术讨论,并在必要时提供具有明确技术理由的建议。
提交者
提交者是被授予项目写权限的个人。提交者通常负责代码的某个或某些领域,他们监督代码审查过程。贡献领域可以采取各种形式,包括代码贡献和代码审查、文档、教育和推广。pull request 的审查将分配给最近为该 PR 所属领域做出贡献的提交者。提交者对于高质量和健康的项目至关重要。社区积极从贡献者中寻找新的提交者。每个现有提交者都可以提名新的提交者到 MLC 项目。
贡献者
我们也欢迎贡献者,即使您还没有准备好成为提交者。每个以代码、错误修复、文档、教程等形式为项目做出贡献的人都是贡献者。我们维护了一个 页面 来感谢贡献者,如果您为项目做出了贡献并且您的名字不在列表中,请告诉我们。