TorchCode
TorchCode 是一款专为 PyTorch 开发者打造的实战练习平台,被誉为“张量版的 LeetCode"。它旨在解决机器学习面试中常见的痛点:许多工程师熟悉理论却无法从零手写核心算法。通过提供 40 道精选题目,TorchCode 引导用户在不依赖现成库的情况下,亲手实现 Softmax、LayerNorm、多头注意力机制乃至 GPT-2 等关键组件。
该平台特别适合准备大厂技术面试的 ML 工程师、希望夯实底层基础的研究人员,以及任何想深入理解深度学习架构的开发者。其独特亮点在于内置了自动化评测系统,不仅能即时验证代码正确性,还能进行梯度检查和性能计时,并提供彩色反馈、智能提示及参考解答。基于 Jupyter 环境,TorchCode 支持一键重置练习和直接在 Google Colab 中运行,无需配置本地 GPU 或复杂环境。无论是通过 Hugging Face 在线体验,还是本地 Docker 部署,它都能为用户提供高效、结构化的技能提升路径,帮助用户真正掌握从内存中推导并编写核心算子的能力。
使用场景
某大厂机器学习候选人正在备战下周的 PyTorch 核心算法岗面试,急需强化手写底层算子的能力。
没有 TorchCode 时
- 盲目练习无反馈:只能在本地凭感觉复现 Softmax 或 Attention 机制,代码跑通不代表逻辑正确,无法确认是否处理了数值稳定性等边界情况。
- 梯度验证繁琐:手动编写数值微分代码来验证反向传播是否正确,过程枯燥且容易出错,难以快速定位是前向还是后向实现有误。
- 缺乏实战模拟:面对白板编程压力,不知道自己的实现效率是否达标,也没有类似 LeetCode 的即时判题系统来模拟真实的面试考核环境。
- 参考答案难获取:遇到瓶颈时只能盲目搜索零散博客,缺乏官方认可的标准实现作为对照,难以学习最优的 PyTorch 写法。
使用 TorchCode 后
- 即时自动判题:每写完一个算子(如 LayerNorm),TorchCode 立即运行多维度测试用例,用红绿颜色直观展示通过情况,精准暴露逻辑漏洞。
- 内置梯度检查:工具自动执行梯度验证,无需手动推导,瞬间判断反向传播实现是否精确匹配数学定义,大幅缩短调试时间。
- 全真面试模拟:在 Jupyter 环境中面对 40 道精选高频考题,体验与面试一致的“从零实现”压力,并实时记录解题耗时与尝试次数。
- 提示与范文兼备:卡壳时可获取不直接给答案的启发式提示,完成后还能一键查看参考解法,深入理解顶级团队推崇的代码规范。
TorchCode 将抽象的算法理论转化为可量化、可迭代的各种实战训练,帮助开发者像刷 LeetCode 一样高效掌握 PyTorch 底层核心技能。
运行环境要求
- Linux
- macOS
- Windows
不需要 GPU (GPU not required)
未说明

快速开始
title: TorchCode emoji: 🔥 colorFrom: red colorTo: yellow sdk: docker app_port: 7860 pinned: false
🔥 TorchCode
攻克 PyTorch 面试。
从零开始练习实现算子与网络架构——这正是顶尖机器学习团队最看重的技能。
就像 LeetCode,但专为张量设计。自托管,基于 Jupyter,即时反馈。
🎯 为什么选择 TorchCode?
顶级公司(Meta、Google DeepMind、OpenAI 等)都期望机器学习工程师能够在白板上凭记忆实现核心操作。光看论文是不够的——你需要手写 softmax、LayerNorm、MultiHeadAttention,以及完整的 Transformer 块代码。
TorchCode 提供了一个结构化的练习环境,具备以下特点:
无需云端服务、无需注册、也不需要 GPU。只需执行 make run——或者直接在 Hugging Face 上立即体验。
🚀 快速入门
选项 0 — 在线体验(无需安装)
在 Hugging Face Spaces 上启动——会在你的浏览器中打开一个完整的 JupyterLab 环境。完全无需安装任何东西。
你也可以直接在 Google Colab 中打开任意一道题目——每个笔记本都带有 的徽章。
选项 0b — 在 Colab 中使用评测系统(通过 pip)
在 Google Colab 中,你可以从 PyPI 安装评测工具,这样就不必克隆仓库也能调用 check(...):
!pip install torch-judge
然后在笔记本的一个单元格中:
from torch_judge import check, status, hint, reset_progress
status() # 列出所有题目及你的进度
check("relu") # 运行 "relu" 任务的测试
hint("relu") # 显示提示
选项 1 — 拉取预构建镜像(最快)
docker run -p 8888:8888 -e PORT=8888 ghcr.io/duoan/torchcode:latest
如果该镜像对你的平台不可用,请改用选项 2。这是在 Apple Silicon / arm64 上的常用方法。
选项 2 — 本地构建
make run
make run 会优先尝试预构建的镜像,并在必要时自动回退到本地构建。
打开 http://localhost:8888——就完成了。同时支持 Docker 和 Podman(自动检测)。
📋 题目集
频率:🔥 = 面试中极有可能出现,⭐ = 常见考点,💡 = 新兴方向 / 区别化能力
🧱 基础知识 — “从零实现 X”
这是机器学习编码面试的核心内容。面试中通常会要求你不用 torch.nn 来编写这些代码。
| 序号 | 问题 | 你将实现的内容 | 难度 | 频率 | 关键概念 |
|---|---|---|---|---|---|
| 1 | ReLU |
relu(x) |
🔥 | 激活函数,逐元素操作 | |
| 2 | Softmax |
my_softmax(x, dim) |
🔥 | 数值稳定性,exp/log技巧 | |
| 16 | 交叉熵损失 |
cross_entropy_loss(logits, targets) |
🔥 | Log-softmax,logsumexp技巧 | |
| 17 | Dropout |
MyDropout (nn.Module) |
🔥 | 训练/评估模式,反向缩放 | |
| 18 | Embedding |
MyEmbedding (nn.Module) |
🔥 | 查找表,weight[indices] |
|
| 19 | GELU |
my_gelu(x) |
⭐ | 高斯误差线性单元,torch.erf |
|
| 20 | Kaiming初始化 |
kaiming_init(weight) |
⭐ | std = sqrt(2/fan_in),方差缩放 |
|
| 21 | 梯度裁剪 |
clip_grad_norm(params, max_norm) |
⭐ | 基于范数的裁剪,保持方向 | |
| 31 | 梯度累积 |
accumulated_step(model, opt, ...) |
💡 | 微批次处理,损失缩放 | |
| 40 | 线性回归 |
LinearRegression (3种方法) |
🔥 | 正规方程,从头开始的梯度下降,nn.Linear | |
| 3 | 线性层 |
SimpleLinear (nn.Module) |
🔥 | y = xW^T + b,Kaiming初始化,nn.Parameter |
|
| 4 | LayerNorm |
my_layer_norm(x, γ, β) |
🔥 | 归一化,运行统计量,仿射变换 | |
| 7 | BatchNorm |
my_batch_norm(x, γ, β) |
⭐ | 批次与层统计量的区别,训练/评估行为 | |
| 8 | RMSNorm |
rms_norm(x, weight) |
⭐ | LLaMA风格的归一化,比LayerNorm更简单 | |
| 15 | SwiGLU MLP |
SwiGLUMLP (nn.Module) |
⭐ | 门控前馈网络,SiLU(gate) * up,LLaMA/Mistral风格 |
|
| 22 | Conv2d |
my_conv2d(x, weight, ...) |
🔥 | 卷积,展开,步幅/填充 |
🧠 注意力机制 — 现代机器学习面试的核心
如果你正在应聘与大语言模型或 Transformer 相关的职位,至少会遇到一道关于注意力机制的题目。
| 序号 | 问题 | 你需要实现的内容 | 难度 | 出现频率 | 关键概念 |
|---|---|---|---|---|---|
| 23 | 交叉注意力 |
MultiHeadCrossAttention (nn.Module) |
⭐ | 编码器-解码器架构,解码器提供 Q,编码器提供 K/V | |
| 5 | 缩放点积注意力 |
scaled_dot_product_attention(Q, K, V) |
🔥 | softmax(QK^T/√d_k)V,一切的基础 |
|
| 6 | 多头注意力 |
MultiHeadAttention (nn.Module) |
🔥 | 并行的多个注意力头,拆分与拼接,投影矩阵 | |
| 9 | 因果自注意力 |
causal_attention(Q, K, V) |
🔥 | 使用 -inf 进行自回归掩码,GPT 风格 |
|
| 10 | 分组查询注意力 |
GroupQueryAttention (nn.Module) |
⭐ | GQA(LLaMA 2),多个头共享 K 和 V | |
| 11 | 滑动窗口注意力 |
sliding_window_attention(Q, K, V, w) |
⭐ | Mistral 风格的局部注意力,复杂度为 O(n·w) | |
| 12 | 线性注意力 |
linear_attention(Q, K, V) |
💡 | 核技巧,φ(Q)(φ(K)^TV),复杂度为 O(n·d²) |
|
| 14 | KV 缓存注意力 |
KVCacheAttention (nn.Module) |
🔥 | 增量解码,缓存 K/V,预填充与解码的区别 | |
| 24 | RoPE |
apply_rope(q, k) |
🔥 | 旋转位置编码,通过旋转实现相对位置信息 | |
| 25 | Flash Attention |
flash_attention(Q, K, V, block_size) |
💡 | 分块注意力,在线 softmax,内存高效 |
🏗️ 架构与适配 — 将一切整合起来
| 序号 | 问题 | 你将实现的内容 | 难度 | 频率 | 关键概念 |
|---|---|---|---|---|---|
| 26 | LoRA |
LoRALinear (nn.Module) |
⭐ | 低秩适配,冻结基础模型 + BA 更新 |
|
| 27 | ViT Patch Embedding |
PatchEmbedding (nn.Module) |
💡 | 图像 → 片段 → 线性投影 | |
| 13 | GPT-2 块 |
GPT2Block (nn.Module) |
⭐ | 预归一化、因果自注意力机制 + MLP(4倍、GELU)、残差连接 | |
| 28 | 专家混合模型 |
MixtureOfExperts (nn.Module) |
⭐ | Mixtral 风格、top-k 路由、专家 MLP |
⚙️ 训练与优化
| 序号 | 问题 | 你将实现的内容 | 难度 | 频率 | 关键概念 |
|---|---|---|---|---|---|
| 29 | Adam 优化器 |
MyAdam |
⭐ | 动量 + RMSProp,偏差校正 | |
| 30 | 余弦学习率调度器 |
cosine_lr_schedule(step, ...) |
⭐ | 线性预热 + 余弦退火 |
🎯 推理与解码
| 序号 | 问题 | 你将实现的内容 | 难度 | 频率 | 关键概念 |
|---|---|---|---|---|---|
| 32 | Top-k / Top-p 采样 |
sample_top_k_top_p(logits, ...) |
🔥 | 核心采样、温度缩放 | |
| 33 | 束搜索 |
beam_search(log_prob_fn, ...) |
🔥 | 假设扩展、剪枝、EOS 处理 | |
| 34 | 推测解码 |
speculative_decode(target, draft, ...) |
💡 | 接受/拒绝、草稿模型加速 |
🔬 进阶 — 区分点
| 序号 | 问题 | 你将实现的内容 | 难度 | 频率 | 关键概念 |
|---|---|---|---|---|---|
| 35 | BPE 分词器 |
SimpleBPE |
💡 | 字节对编码、合并规则、子词分割 | |
| 36 | INT8 量化 |
Int8Linear (nn.Module) |
💡 | 按通道量化、缩放因子/零点、缓冲区与参数的区别 | |
| 37 | DPO 损失函数 |
dpo_loss(chosen, rejected, ...) |
💡 | 直接偏好优化、对齐训练 | |
| 38 | GRPO 损失函数 |
grpo_loss(logps, rewards, group_ids, eps) |
💡 | 分组相对策略优化、RLAIF、组内归一化优势 | |
| 39 | PPO 损失函数 |
ppo_loss(new_logps, old_logps, advantages, clip_ratio) |
💡 | PPO 截断代理损失、策略梯度、信任区域 |
⚙️ 工作原理
每个问题包含 两个 笔记本:
| 文件 | 用途 |
|---|---|
01_relu.ipynb |
✏️ 空白模板 — 在这里编写你的代码 |
01_relu_solution.ipynb |
📖 参考解答 — 遇到困难时可查看 |
工作流程
1. 打开空白笔记本 → 阅读题目描述
2. 实现你的解决方案 → 仅使用基础 PyTorch 操作
3. 自由调试 → 打印(x.shape),检查梯度等
4. 运行评判单元 → check("relu")
5. 查看即时彩色反馈 → ✅ 通过 / ❌ 失败,按测试用例显示
6. 卡住了?获取提示 → hint("relu")
7. 查看参考解答 → 01_relu_solution.ipynb
8. 点击工具栏中的 🔄 重置 → 清空所有内容 — 再次练习!
笔记本内 API
from torch_judge import check, hint, status
check("relu") # 评判你的实现
hint("causal_attention") # 获取提示,不完全剧透
status() # 进度仪表板 — 已解决 / 已尝试 / 待完成
📅 建议学习计划
总计:约 12–16 小时,分散在 3–4 周内。非常适合临近面试的备考。
| 周 | 重点 | 问题 | 时间 |
|---|---|---|---|
| 1 | 🧱 基础知识 | ReLU → Softmax → 交叉熵损失 → Dropout → Embedding → GELU → Linear → LayerNorm → BatchNorm → RMSNorm → SwiGLU MLP → Conv2d | 2–3 小时 |
| 2 | 🧠 注意力机制深入 | SDPA → MHA → Cross-Attn → Causal → GQA → KV Cache → 滑动窗口 → RoPE → Linear Attn → Flash Attn | 3–4 小时 |
| 3 | 🏗️ 架构 + 训练 | GPT-2 块 → LoRA → MoE → ViT Patch → Adam → Cosine LR → 梯度裁剪 → 梯度累积 → Kaiming 初始化 | 3–4 小时 |
| 4 | 🎯 推理 + 进阶 | Top-k/p 采样 → 束搜索 → 推测解码 → BPE → INT8 量化 → DPO 损失 → GRPO 损失 → PPO 损失 + 快速通关 | 3–4 小时 |
🏛️ 架构
┌──────────────────────────────────────────┐
│ Docker / Podman 容器 │
│ │
│ JupyterLab (:8888) │
│ ├── templates/ (每次运行后重置) │
│ ├── solutions/ (参考实现) │
│ ├── torch_judge/ (自动评分) │
│ ├── torchcode-labext (JLab 插件) │
│ │ 🔄 重置 — 恢复模板 │
│ │ 🔗 Colab — 在 Colab 中打开 │
│ └── PyTorch (CPU), NumPy │
│ │
│ 评判标准: │
│ ✓ 输出正确性 (allclose) │
│ ✓ 梯度流动 (autograd) │
│ ✓ 形状一致性 │
│ ✓ 边界情况及数值稳定性 │
└──────────────────────────────────────────┘
单容器。单端口。无数据库。无前端框架。无 GPU。
🛠️ 命令
make run # 构建并启动 (http://localhost:8888)
make stop # 停止容器
make clean # 停止 + 移除卷 + 重置所有进度
🧩 添加你自己的问题
TorchCode 使用自动发现功能 — 只需将新文件放入 torch_judge/tasks/:
TASK = {
"id": "my_task",
"title": "我的自定义问题",
"difficulty": "medium",
"function_name": "my_function",
"hint": "想想广播...",
"tests": [ ... ],
}
无需注册。评判系统会自动识别。
📦 将 torch-judge 发布到 PyPI(维护者)
评判系统被单独打包发布,以便 Colab 用户可以 pip install torch-judge,而无需克隆整个仓库。
自动化(GitHub Action)
在更改包版本后推送到 master 分支会触发 .github/workflows/pypi-publish.yml,该工作流会构建并上传到 PyPI。无需创建 Git 标签。
- 在
torch_judge/_version.py中增加版本号(例如:__version__ = "0.1.1")。 - 配置 PyPI 可信发布者(仅需一次):
- 进入 PyPI → 您的项目
torch-judge→ 发布 → 添加新的待定发布者 - 所有者:
duoan,仓库:TorchCode,工作流:pypi-publish.yml,环境:留空 - 运行一次该工作流(将版本号更新推送到
master分支,或通过 Actions → Publish torch-judge to PyPI → 运行工作流);PyPI 会随后关联该发布者。
- 进入 PyPI → 您的项目
- 发布:提交版本号更新,并执行
git push origin master。
或者,您也可以使用 API 令牌:添加仓库密钥 PYPI_API_TOKEN(值为从 PyPI 获取的 pypi-...),并在工作流中设置 TWINE_USERNAME=__token__ 和 TWINE_PASSWORD 为该密钥中的值,以替代使用可信发布者的方式。
手动
pip install build twine
python -m build
twine upload dist/*
版本号位于 torch_judge/_version.py 中;每次发布前请先更新版本号。
❓ 常见问题解答
我需要 GPU 吗?
不需要。所有操作都在 CPU 上运行。这些题目测试的是正确性和理解力,而非计算吞吐量。
我可以在不同运行之间保留我的解答吗?
每次执行 `make run` 时,空白模板都会重置,以便您从头开始练习。如果您想保留自己的工作,请将其保存为不同的文件名。此外,您也可以随时点击笔记本工具栏中的 🔄 重置 按钮,在不重启的情况下恢复空白模板。
我可以使用 Google Colab 吗?
可以!每个笔记本顶部都有一个 在 Colab 中打开 的标签。点击它即可直接在 Google Colab 中打开题目——无需 Docker 或本地环境设置。您也可以在 JupyterLab 内部使用 Colab 工具栏按钮。
答案是如何评分的?
评测系统会使用您的函数对多个测试用例进行验证,通过 `torch.allclose` 确保数值上的正确性,同时利用自动微分机制检查梯度是否正确传播,并针对每种操作的具体边界情况进行检查。
这个项目适合哪些人?
适用于准备顶尖科技公司机器学习/人工智能工程师面试的人士,以及任何希望深入理解 PyTorch 底层运作机制的人。
🤝 贡献者
感谢所有为 TorchCode 作出贡献的人。
duoan |
Ando233 |
ThierryHJ |
自动生成自 GitHub 贡献者图,包含头像和 GitHub 用户名。
版本历史
v0.1.1常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
