Skip to content

docs: consolidate training/fine-tuning guides under training_guides/ - #256

Merged
typhoonzero merged 4 commits into
masterfrom
codex/training-guides-reorg
Jun 5, 2026
Merged

typhoonzero merged 4 commits into
masterfrom
codex/training-guides-reorg

Conversation

@typhoonzero

@typhoonzero typhoonzero commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Move every training and fine-tuning page (mdx, md, ipynb) plus their YAML / Containerfile assets out of docs/en/kubeflow/how_to/ and docs/en/workbench/how_to/ into a single top-level docs/en/training_guides/ section, with a landing index.mdx that routes users by workflow.
  • Move both coding-agent how-tos (mlops_with_coding_agents.mdx, coding_agents_with_inference_service.mdx) out of docs/en/model_inference/inference_service/how_to/ into a new top-level docs/en/agentic_mlops/ section.
  • Tighten each moved training guide: drop verbose background and duplicate parameter / data sections; keep prerequisites, YAMLs, notebooks, and device-specific details intact. Prose total ~1530 → ~944 lines.
  • Standardize file names to kebab-case across both new sections.
  • Rewrite every internal cross-reference touched by the moves.

Notes

  • The kubeflow-plugin training-runtimes README links to asset paths under docs/en/kubeflow/how_to/...; those will need a follow-up pointing at docs/en/training_guides/....
  • llms.txt and llmstxt-state.json still reference the old paths; they regenerate from llmstxt-config.yaml on the next docs build.

Test plan

  • yarn build against this branch — site builds, the training_guides and agentic_mlops sections appear in the sidebar, every moved page renders.
  • Spot-check internal links from and into both new sections resolve.
  • Regenerate llms.txt / llmstxt-state.json.

typhoonzero and others added 2 commits June 5, 2026 02:34
Move every training and fine-tuning page (mdx, md, ipynb) plus their
assets out of kubeflow/how_to/ and workbench/how_to/ into a new
top-level docs/en/training_guides/ section. Add an index page that
points to each guide based on the user's workflow.

Tighten each moved guide: drop verbose background, collapse duplicate
parameter / data sections, and keep the prerequisites, YAMLs, and
notebooks intact. Standardize file names to kebab-case.

Update internal links (training_guides → workbench/how_to /
model_inference / kueue references) and external references from
the MLOps coding-agents page.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Quote `<your-namespace>` and `<vendor-fine-tuning-image>` so the
embedded YAML is copy-pasteable without YAML parsing surprises.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 5, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

This PR consolidates training and fine-tuning documentation from deprecated kubeflow/how_to and workbench/how_to directories into a new centralized training_guides location, adding a navigation index and updating cross-references to guide users through eight distinct fine-tuning approaches.

Changes

Training Guides Reorganization

Layer / File(s) Summary
Training guides index and cross-reference updates
docs/en/training_guides/index.mdx, docs/en/model_inference/inference_service/how_to/mlops_with_coding_agents.mdx
New index page lists eight training paths; MLOps coding-agents guide link references updated from workbench/how_to to new training_guides locations.
Kubeflow Trainer v2 quick start and fine-tuning guides
docs/en/training_guides/kubeflow-trainer-quick-start.md, docs/en/training_guides/fine-tune-with-trainer-v2.mdx
Quick start covers runtime image and ClusterTrainingRuntime YAML with pod security and distributed PyTorch setup; fine-tune guide covers prerequisites, RBAC, prebuilt/custom images, and Kueue-based queue admission for GPU/Ascend NPU workflows.
Training runtime images documentation
docs/en/training_guides/training-runtimes.mdx
Curated TrainingRuntime images for CUDA GPU and CANN Ascend NPU, guidance for selecting runtimes by workflow (torchrun, LLaMA-Factory, TRL/PEFT, Megatron), device resource request examples, and custom runtime build pointers.
Workbench and VolcanoJob fine-tuning guide
docs/en/training_guides/fine-tuning-using-notebooks.mdx
End-to-end Workbench/VolcanoJob guide with Containerfile snippet, full VolcanoJob YAML (git-lfs auth, config generation, distributed execution, LoRA merging, result publishing), NFS storage setup, MLflow tracking, and non-NVIDIA device template.
Ascend NPU fine-tuning and pretraining guide
docs/en/training_guides/fine-tune-and-pretrain-llms-on-ascend-npu.mdx
Workbench-based Ascend NPU workflows using PyTorch CANN and MindSpore CANN images with validation notebooks, model/dataset preparation steps, notebook execution flow, parameter guidance, and offline/restricted-cluster setup differences.
Training Hub fine-tuning guide for SFT and OSFT
docs/en/training_guides/training-hub-fine-tuning.mdx
Training Hub library single-call entry points (sft, osft) with JSONL conversation dataset format, loss masking rules, example parameter blocks, key parameter tables (common and OSFT-only), and multi-node rendezvous configuration.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • alauda/aml-docs#201: The main PR migrates/replaces the Kubeflow Trainer v2 fine-tuning documentation with a new docs/en/training_guides/fine-tune-with-trainer-v2.mdx that preserves/expands the Huawei Ascend + MindSpeed-LLM alternative section introduced in the retrieved PR (and aligns with the added MindSpeed-LLM Trainer v2 notebook).
  • alauda/aml-docs#245: The main PR updates the docs/en/model_inference/inference_service/how_to/mlops_with_coding_agents.mdx fine-tuning workflow's "training guides" link targets, which directly overlaps with the retrieved PR that adds that same coding-agents MLOps how-to content.
  • alauda/aml-docs#255: The main PR reorganizes/removes the existing Kubeflow Trainer v2 training-runtimes and fine-tune guides and adds equivalent training_guides documentation, which directly overlaps with the retrieved PR that introduces a Trainer v2 TrainingRuntime catalog and corresponding YAML assets.

Poem

📚 From scattered corners to one central space,
Training guides now have a proper place,
Kubeflow, Workbench, Hub—all aligned,
Eight paths to fine-tune, thoughtfully designed,
No more lost links, just clarity refined! 🐇✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly and concisely describes the main change: consolidating training and fine-tuning documentation guides from scattered locations into a new centralized training_guides directory.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/training-guides-reorg

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/en/training_guides/fine-tune-and-pretrain-llms-on-ascend-npu.mdx`:
- Around line 11-13: The three notebook links (`qwen3_finetune_verify.ipynb`,
`qwen25_pretrain_verify.ipynb`, `qwen3_0.6b_finetune_verify.ipynb`) are
root-absolute (`/...ipynb`) and will break after the reorg; update each link in
the table to a relative path (e.g. remove the leading slash or use
`./qwen3_finetune_verify.ipynb`) so the markdown in this file
(`fine-tune-and-pretrain-llms-on-ascend-npu.mdx`) points to the notebooks now
located under the same `training_guides` directory.

In `@docs/en/training_guides/fine-tune-with-trainer-v2.mdx`:
- Around line 30-33: The links to the notebooks use GitHub "/tree/" paths which
are for directories and can break navigation; update both URLs in the text that
reference fine-tune-with-trainer-v2.ipynb and
fine-tune-with-trainer-v2-mindspeed-npu.ipynb to point to the actual file blob
URLs (replace "/tree/" with "/blob/" and include the branch/path as in the repo)
so the links open the notebook file directly; ensure you update the two
occurrences that mention the notebook filenames in the paragraph describing
TrainingRuntime/TrainJob and the Huawei Ascend NPU note.
- Line 46: Update the YAML example where the line reads namespace:
<your-namespace> to quote the placeholder so parsers don't misinterpret angle
brackets; locate the YAML block containing the symbol "namespace:
<your-namespace>" in the fine-tune-with-trainer-v2.mdx doc and change it to use
quoted placeholder (e.g., namespace: "<your-namespace>" or namespace:
'<your-namespace>').

In `@docs/en/training_guides/fine-tuning-using-notebooks.mdx`:
- Around line 163-165: Remove the unsafe git configuration flag `-c
http.sslVerify=false` from the documented git commands (the `git -c
http.sslVerify=false -c lfs.activitytimeout=36000 clone
"https://${gitauth}@${BASE_MODEL_URL#https://}"` and the `(cd ${BASE_MODEL_NAME}
&& git -c http.sslVerify=false -c lfs.activitytimeout=36000 lfs pull)`) and the
other occurrences referenced (around the other snippets at 169-170 and 270),
leaving only `-c lfs.activitytimeout=36000` (or no `-c` flags) and update
surrounding text to advise configuring proper CA trust instead of disabling TLS
verification.
- Around line 406-408: The non-NVIDIA vendor template still uses hard-coded
NVIDIA resource keys (nvidia.com/gpualloc, nvidia.com/gpucores,
nvidia.com/gpumem); update that resource block in the fine-tuning notebook
content to use explicit vendor placeholders (e.g., <vendor>.com/gpualloc,
<vendor>.com/gpucores, <vendor>.com/gpumem or a descriptive placeholder like
ACME.com/*) so the example is generic and schedulable on non-NVIDIA
accelerators; ensure any accompanying text mentions replacing <vendor> with the
actual accelerator vendor name.

In `@docs/en/training_guides/kubeflow-trainer-quick-start.md`:
- Line 93: The notebook link for "kubeflow-trainer-mnist.ipynb" currently uses a
/tree/ URL which points to a directory view; update the URL in the markdown line
that contains the link text kubeflow-trainer-mnist.ipynb to use the GitHub
/blob/ path (or the raw file URL) instead of /tree/ so the notebook can be
opened/downloaded directly.

In `@docs/en/training_guides/training-hub-fine-tuning.mdx`:
- Around line 48-49: Replace the GitHub "tree" URLs for
sft-comprehensive-tutorial.ipynb and osft-comprehensive-tutorial.ipynb with
direct raw-file or repo-relative documentation links so the table's "Download"
action opens/serves the notebook file (for example use the
raw.githubusercontent.com URL for each .ipynb or a docs permalink that serves
the file) and update the table entries for "sft-comprehensive-tutorial.ipynb"
and "osft-comprehensive-tutorial.ipynb" accordingly.

In `@docs/en/training_guides/training-runtimes.mdx`:
- Around line 52-58: The smoke-test instructions are incomplete: before applying
trainjob-smoke.yaml, download the remote file (trainjob-smoke.yaml), edit it to
set metadata.namespace to your namespace and spec.runtimeRef.name to the runtime
you want, then kubectl apply the edited file; alternatively show a patch/kubectl
-n <your-namespace> apply -f /tmp/trainjob-smoke.yaml example so the subsequent
kubectl -n <your-namespace> get trainjobs and the trainjob=$(kubectl -n
<your-namespace> ...) log command target the same namespace and runtime.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 83ff1be6-fbf5-42d4-ab29-d4f0df007f90

📥 Commits

Reviewing files that changed from the base of the PR and between 0c97d8f and a718f0b.

⛔ Files ignored due to path filters (1)
  • docs/en/training_guides/assets/build-train-image/uv.lock is excluded by !**/*.lock
📒 Files selected for processing (31)
  • docs/en/kubeflow/how_to/fine-tune-with-trainer-v2.mdx
  • docs/en/kubeflow/how_to/training-runtimes.mdx
  • docs/en/model_inference/inference_service/how_to/mlops_with_coding_agents.mdx
  • docs/en/training_guides/assets/build-train-image/fine_tune_with_llamafactory.Containerfile
  • docs/en/training_guides/assets/build-train-image/fine_tune_with_llamafactory_npu.Containerfile
  • docs/en/training_guides/assets/build-train-image/pyproject.toml
  • docs/en/training_guides/assets/kf-trainingruntime.yaml
  • docs/en/training_guides/assets/kf-trainjob.yaml
  • docs/en/training_guides/assets/training-runtimes/llamafactory0.9-cann8.5-arm64-trainingruntime.yaml
  • docs/en/training_guides/assets/training-runtimes/llamafactory0.9-cu126-amd64-trainingruntime.yaml
  • docs/en/training_guides/assets/training-runtimes/mindspeed-llm-cann8.5-arm64-trainingruntime.yaml
  • docs/en/training_guides/assets/training-runtimes/torch2.6-cann8.5-arm64-trainingruntime.yaml
  • docs/en/training_guides/assets/training-runtimes/torch2.6-cu126-amd64-trainingruntime.yaml
  • docs/en/training_guides/assets/training-runtimes/traininghub0.1-cu126-amd64-trainingruntime.yaml
  • docs/en/training_guides/assets/training-runtimes/trainjob-smoke.yaml
  • docs/en/training_guides/fine-tune-and-pretrain-llms-on-ascend-npu.mdx
  • docs/en/training_guides/fine-tune-with-trainer-v2-mindspeed-npu.ipynb
  • docs/en/training_guides/fine-tune-with-trainer-v2.ipynb
  • docs/en/training_guides/fine-tune-with-trainer-v2.mdx
  • docs/en/training_guides/fine-tuning-using-notebooks.mdx
  • docs/en/training_guides/index.mdx
  • docs/en/training_guides/kubeflow-trainer-mnist.ipynb
  • docs/en/training_guides/kubeflow-trainer-quick-start.md
  • docs/en/training_guides/osft-comprehensive-tutorial.ipynb
  • docs/en/training_guides/sft-comprehensive-tutorial.ipynb
  • docs/en/training_guides/training-hub-fine-tuning.mdx
  • docs/en/training_guides/training-runtimes.mdx
  • docs/en/workbench/how_to/fine-tune-and-pretrain-llms-on-ascend-npu.mdx
  • docs/en/workbench/how_to/fine_tunning_using_notebooks.mdx
  • docs/en/workbench/how_to/kubeflow_trainer_quick_start.md
  • docs/en/workbench/how_to/training_hub_fine_tuning.mdx
💤 Files with no reviewable changes (6)
  • docs/en/kubeflow/how_to/training-runtimes.mdx
  • docs/en/workbench/how_to/fine-tune-and-pretrain-llms-on-ascend-npu.mdx
  • docs/en/workbench/how_to/training_hub_fine_tuning.mdx
  • docs/en/workbench/how_to/fine_tunning_using_notebooks.mdx
  • docs/en/kubeflow/how_to/fine-tune-with-trainer-v2.mdx
  • docs/en/workbench/how_to/kubeflow_trainer_quick_start.md

Comment on lines +11 to +13
| [`qwen3_finetune_verify.ipynb`](/qwen3_finetune_verify.ipynb) | `PyTorch CANN` | Full-parameter SFT of `Qwen3-8B` (MindSpeed-LLM) |
| [`qwen25_pretrain_verify.ipynb`](/qwen25_pretrain_verify.ipynb) | `PyTorch CANN` | Pretraining of `Qwen2.5-7B` (MindSpeed-LLM) |
| [`qwen3_0.6b_finetune_verify.ipynb`](/qwen3_0.6b_finetune_verify.ipynb) | `MindSpore CANN` | Full-parameter SFT of `Qwen3-0.6B` (bundled MindSpeed-Core-MS + MindSpeed-LLM) |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use relative notebook links to avoid broken navigation after the move.

On Line 11, Line 12, and Line 13, the notebook URLs are root-absolute (/...ipynb). In this reorg, these assets were moved under training_guides, so root-absolute links can 404 depending on site routing.

Suggested fix
-| [`qwen3_finetune_verify.ipynb`](/qwen3_finetune_verify.ipynb) | `PyTorch CANN` | Full-parameter SFT of `Qwen3-8B` (MindSpeed-LLM) |
-| [`qwen25_pretrain_verify.ipynb`](/qwen25_pretrain_verify.ipynb) | `PyTorch CANN` | Pretraining of `Qwen2.5-7B` (MindSpeed-LLM) |
-| [`qwen3_0.6b_finetune_verify.ipynb`](/qwen3_0.6b_finetune_verify.ipynb) | `MindSpore CANN` | Full-parameter SFT of `Qwen3-0.6B` (bundled MindSpeed-Core-MS + MindSpeed-LLM) |
+| [`qwen3_finetune_verify.ipynb`](./qwen3_finetune_verify.ipynb) | `PyTorch CANN` | Full-parameter SFT of `Qwen3-8B` (MindSpeed-LLM) |
+| [`qwen25_pretrain_verify.ipynb`](./qwen25_pretrain_verify.ipynb) | `PyTorch CANN` | Pretraining of `Qwen2.5-7B` (MindSpeed-LLM) |
+| [`qwen3_0.6b_finetune_verify.ipynb`](./qwen3_0.6b_finetune_verify.ipynb) | `MindSpore CANN` | Full-parameter SFT of `Qwen3-0.6B` (bundled MindSpeed-Core-MS + MindSpeed-LLM) |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| [`qwen3_finetune_verify.ipynb`](/qwen3_finetune_verify.ipynb) | `PyTorch CANN` | Full-parameter SFT of `Qwen3-8B` (MindSpeed-LLM) |
| [`qwen25_pretrain_verify.ipynb`](/qwen25_pretrain_verify.ipynb) | `PyTorch CANN` | Pretraining of `Qwen2.5-7B` (MindSpeed-LLM) |
| [`qwen3_0.6b_finetune_verify.ipynb`](/qwen3_0.6b_finetune_verify.ipynb) | `MindSpore CANN` | Full-parameter SFT of `Qwen3-0.6B` (bundled MindSpeed-Core-MS + MindSpeed-LLM) |
| [`qwen3_finetune_verify.ipynb`](./qwen3_finetune_verify.ipynb) | `PyTorch CANN` | Full-parameter SFT of `Qwen3-8B` (MindSpeed-LLM) |
| [`qwen25_pretrain_verify.ipynb`](./qwen25_pretrain_verify.ipynb) | `PyTorch CANN` | Pretraining of `Qwen2.5-7B` (MindSpeed-LLM) |
| [`qwen3_0.6b_finetune_verify.ipynb`](./qwen3_0.6b_finetune_verify.ipynb) | `MindSpore CANN` | Full-parameter SFT of `Qwen3-0.6B` (bundled MindSpeed-Core-MS + MindSpeed-LLM) |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/en/training_guides/fine-tune-and-pretrain-llms-on-ascend-npu.mdx` around
lines 11 - 13, The three notebook links (`qwen3_finetune_verify.ipynb`,
`qwen25_pretrain_verify.ipynb`, `qwen3_0.6b_finetune_verify.ipynb`) are
root-absolute (`/...ipynb`) and will break after the reorg; update each link in
the table to a relative path (e.g. remove the leading slash or use
`./qwen3_finetune_verify.ipynb`) so the markdown in this file
(`fine-tune-and-pretrain-llms-on-ascend-npu.mdx`) points to the notebooks now
located under the same `training_guides` directory.

Comment on lines +30 to +33
Download [`fine-tune-with-trainer-v2.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/fine-tune-with-trainer-v2.ipynb) into your workbench and follow the cells. The notebook creates a `TrainingRuntime`, then submits a `TrainJob` that mounts the shared PVC and uses the `aml-image-builder-secret`.

For Huawei Ascend NPUs, use [`fine-tune-with-trainer-v2-mindspeed-npu.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/fine-tune-with-trainer-v2-mindspeed-npu.ipynb) instead — it runs the MindSpeed-LLM SFT pipeline (HF → MCore checkpoint, preprocess, train) on `huawei.com/Ascend910B4` resources with `runtimeClassName: ascend`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use file URLs for notebook links instead of /tree/ paths.

Both notebook links target files via /tree/, which is intended for directories and can break user navigation.

Suggested doc fix
-Download [`fine-tune-with-trainer-v2.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/fine-tune-with-trainer-v2.ipynb) into your workbench and follow the cells.
+Download [`fine-tune-with-trainer-v2.ipynb`](https://github.com/alauda/aml-docs/blob/master/docs/en/training_guides/fine-tune-with-trainer-v2.ipynb) into your workbench and follow the cells.

-For Huawei Ascend NPUs, use [`fine-tune-with-trainer-v2-mindspeed-npu.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/fine-tune-with-trainer-v2-mindspeed-npu.ipynb) instead
+For Huawei Ascend NPUs, use [`fine-tune-with-trainer-v2-mindspeed-npu.ipynb`](https://github.com/alauda/aml-docs/blob/master/docs/en/training_guides/fine-tune-with-trainer-v2-mindspeed-npu.ipynb) instead
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Download [`fine-tune-with-trainer-v2.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/fine-tune-with-trainer-v2.ipynb) into your workbench and follow the cells. The notebook creates a `TrainingRuntime`, then submits a `TrainJob` that mounts the shared PVC and uses the `aml-image-builder-secret`.
For Huawei Ascend NPUs, use [`fine-tune-with-trainer-v2-mindspeed-npu.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/fine-tune-with-trainer-v2-mindspeed-npu.ipynb) instead — it runs the MindSpeed-LLM SFT pipeline (HF → MCore checkpoint, preprocess, train) on `huawei.com/Ascend910B4` resources with `runtimeClassName: ascend`.
Download [`fine-tune-with-trainer-v2.ipynb`](https://github.com/alauda/aml-docs/blob/master/docs/en/training_guides/fine-tune-with-trainer-v2.ipynb) into your workbench and follow the cells. The notebook creates a `TrainingRuntime`, then submits a `TrainJob` that mounts the shared PVC and uses the `aml-image-builder-secret`.
For Huawei Ascend NPUs, use [`fine-tune-with-trainer-v2-mindspeed-npu.ipynb`](https://github.com/alauda/aml-docs/blob/master/docs/en/training_guides/fine-tune-with-trainer-v2-mindspeed-npu.ipynb) instead — it runs the MindSpeed-LLM SFT pipeline (HF → MCore checkpoint, preprocess, train) on `huawei.com/Ascend910B4` resources with `runtimeClassName: ascend`.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/en/training_guides/fine-tune-with-trainer-v2.mdx` around lines 30 - 33,
The links to the notebooks use GitHub "/tree/" paths which are for directories
and can break navigation; update both URLs in the text that reference
fine-tune-with-trainer-v2.ipynb and
fine-tune-with-trainer-v2-mindspeed-npu.ipynb to point to the actual file blob
URLs (replace "/tree/" with "/blob/" and include the branch/path as in the repo)
so the links open the notebook file directly; ensure you update the two
occurrences that mention the notebook filenames in the paragraph describing
TrainingRuntime/TrainJob and the Huawei Ascend NPU note.

kind: LocalQueue
metadata:
name: local-queue
namespace: <your-namespace>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Quote angle-bracket placeholder in YAML example for copy-paste safety.

<your-namespace> should be quoted in YAML examples to avoid parse issues in some tools.

Suggested doc fix
-    namespace: <your-namespace>
+    namespace: "<your-namespace>"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
namespace: <your-namespace>
namespace: "<your-namespace>"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/en/training_guides/fine-tune-with-trainer-v2.mdx` at line 46, Update the
YAML example where the line reads namespace: <your-namespace> to quote the
placeholder so parsers don't misinterpret angle brackets; locate the YAML block
containing the symbol "namespace: <your-namespace>" in the
fine-tune-with-trainer-v2.mdx doc and change it to use quoted placeholder (e.g.,
namespace: "<your-namespace>" or namespace: '<your-namespace>').

Comment on lines +163 to +165
GIT_LFS_SKIP_SMUDGE=1 git -c http.sslVerify=false -c lfs.activitytimeout=36000 \
clone "https://${gitauth}@${BASE_MODEL_URL#https://}"
(cd ${BASE_MODEL_NAME} && git -c http.sslVerify=false -c lfs.activitytimeout=36000 lfs pull)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Remove http.sslVerify=false from documented Git commands.

These commands teach users to bypass TLS certificate validation for clone/pull/push, which weakens transport security and can expose credentials in MITM scenarios. Keep TLS verification on; document proper CA trust configuration instead.

Suggested doc patch
- GIT_LFS_SKIP_SMUDGE=1 git -c http.sslVerify=false -c lfs.activitytimeout=36000 \
+ GIT_LFS_SKIP_SMUDGE=1 git -c lfs.activitytimeout=36000 \
   clone "https://${gitauth}@${BASE_MODEL_URL#https://}"
- (cd ${BASE_MODEL_NAME} && git -c http.sslVerify=false -c lfs.activitytimeout=36000 lfs pull)
+ (cd ${BASE_MODEL_NAME} && git -c lfs.activitytimeout=36000 lfs pull)

- git -c http.sslVerify=false -c lfs.activitytimeout=36000 \
+ git -c lfs.activitytimeout=36000 \
   clone "https://${gitauth}@${DATASET_URL#https://}"

- git -c http.sslVerify=false -c lfs.activitytimeout=36000 push -u ${PUSH_URL} sft-${push_branch}
+ git -c lfs.activitytimeout=36000 push -u ${PUSH_URL} sft-${push_branch}

Also applies to: 169-170, 270-270

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/en/training_guides/fine-tuning-using-notebooks.mdx` around lines 163 -
165, Remove the unsafe git configuration flag `-c http.sslVerify=false` from the
documented git commands (the `git -c http.sslVerify=false -c
lfs.activitytimeout=36000 clone "https://${gitauth}@${BASE_MODEL_URL#https://}"`
and the `(cd ${BASE_MODEL_NAME} && git -c http.sslVerify=false -c
lfs.activitytimeout=36000 lfs pull)`) and the other occurrences referenced
(around the other snippets at 169-170 and 270), leaving only `-c
lfs.activitytimeout=36000` (or no `-c` flags) and update surrounding text to
advise configuring proper CA trust instead of disabling TLS verification.

Comment on lines +406 to +408
nvidia.com/gpualloc: "1"
nvidia.com/gpucores: "50"
nvidia.com/gpumem: "8192"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Vendor template still hard-codes NVIDIA resource keys in the non-NVIDIA section.

In a “non-NVIDIA” template, nvidia.com/* limits are misleading and can make the example unschedulable on other accelerators. Replace these with explicit vendor placeholders.

Suggested doc patch
-                  nvidia.com/gpualloc: "1"
-                  nvidia.com/gpucores: "50"
-                  nvidia.com/gpumem: "8192"
+                  <vendor-device-resource-key>: "1"
+                  # Optional vendor-specific subresources:
+                  # <vendor-device-cores-key>: "50"
+                  # <vendor-device-memory-key>: "8192"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
nvidia.com/gpualloc: "1"
nvidia.com/gpucores: "50"
nvidia.com/gpumem: "8192"
<vendor-device-resource-key>: "1"
# Optional vendor-specific subresources:
# <vendor-device-cores-key>: "50"
# <vendor-device-memory-key>: "8192"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/en/training_guides/fine-tuning-using-notebooks.mdx` around lines 406 -
408, The non-NVIDIA vendor template still uses hard-coded NVIDIA resource keys
(nvidia.com/gpualloc, nvidia.com/gpucores, nvidia.com/gpumem); update that
resource block in the fine-tuning notebook content to use explicit vendor
placeholders (e.g., <vendor>.com/gpualloc, <vendor>.com/gpucores,
<vendor>.com/gpumem or a descriptive placeholder like ACME.com/*) so the example
is generic and schedulable on non-NVIDIA accelerators; ensure any accompanying
text mentions replacing <vendor> with the actual accelerator vendor name.


The notebook installs Python packages and downloads MNIST, so the workbench needs outbound network access.

Download [`kubeflow-trainer-mnist.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/kubeflow-trainer-mnist.ipynb) and upload it to your workbench, then follow it to submit the `TrainJob`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix the notebook URL path (/tree//blob/ or raw).

The current notebook link points to a file via /tree/, which is a directory route and can break direct navigation/download for users.

Suggested doc fix
-Download [`kubeflow-trainer-mnist.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/kubeflow-trainer-mnist.ipynb) and upload it to your workbench, then follow it to submit the `TrainJob`.
+Download [`kubeflow-trainer-mnist.ipynb`](https://github.com/alauda/aml-docs/blob/master/docs/en/training_guides/kubeflow-trainer-mnist.ipynb) and upload it to your workbench, then follow it to submit the `TrainJob`.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Download [`kubeflow-trainer-mnist.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/kubeflow-trainer-mnist.ipynb) and upload it to your workbench, then follow it to submit the `TrainJob`.
Download [`kubeflow-trainer-mnist.ipynb`](https://github.com/alauda/aml-docs/blob/master/docs/en/training_guides/kubeflow-trainer-mnist.ipynb) and upload it to your workbench, then follow it to submit the `TrainJob`.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/en/training_guides/kubeflow-trainer-quick-start.md` at line 93, The
notebook link for "kubeflow-trainer-mnist.ipynb" currently uses a /tree/ URL
which points to a directory view; update the URL in the markdown line that
contains the link text kubeflow-trainer-mnist.ipynb to use the GitHub /blob/
path (or the raw file URL) instead of /tree/ so the notebook can be
opened/downloaded directly.

Comment on lines +48 to +49
| SFT comprehensive tutorial | SFT | [`sft-comprehensive-tutorial.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/sft-comprehensive-tutorial.ipynb) |
| OSFT comprehensive tutorial | OSFT | [`osft-comprehensive-tutorial.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/osft-comprehensive-tutorial.ipynb) |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix notebook “Download” links to actual downloadable targets.

The table labels these as downloads, but https://github.com/.../tree/master/...ipynb opens repo pages instead of directly downloading/opening the notebook content. Use raw file URLs (or repo-relative docs links) so the action matches user intent.

Suggested patch
-| SFT comprehensive tutorial | SFT | [`sft-comprehensive-tutorial.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/sft-comprehensive-tutorial.ipynb) |
-| OSFT comprehensive tutorial | OSFT | [`osft-comprehensive-tutorial.ipynb`](https://github.com/alauda/aml-docs/tree/master/docs/en/training_guides/osft-comprehensive-tutorial.ipynb) |
+| SFT comprehensive tutorial | SFT | [`sft-comprehensive-tutorial.ipynb`](https://raw.githubusercontent.com/alauda/aml-docs/master/docs/en/training_guides/sft-comprehensive-tutorial.ipynb) |
+| OSFT comprehensive tutorial | OSFT | [`osft-comprehensive-tutorial.ipynb`](https://raw.githubusercontent.com/alauda/aml-docs/master/docs/en/training_guides/osft-comprehensive-tutorial.ipynb) |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/en/training_guides/training-hub-fine-tuning.mdx` around lines 48 - 49,
Replace the GitHub "tree" URLs for sft-comprehensive-tutorial.ipynb and
osft-comprehensive-tutorial.ipynb with direct raw-file or repo-relative
documentation links so the table's "Download" action opens/serves the notebook
file (for example use the raw.githubusercontent.com URL for each .ipynb or a
docs permalink that serves the file) and update the table entries for
"sft-comprehensive-tutorial.ipynb" and "osft-comprehensive-tutorial.ipynb"
accordingly.

Comment on lines +52 to +58
A shared smoke template applies to any runtime — set `spec.runtimeRef.name` to the runtime you want to exercise:

```bash
kubectl apply -f $base/trainjob-smoke.yaml
kubectl -n <your-namespace> get trainjobs
trainjob=$(kubectl -n <your-namespace> get trainjobs -o name | tail -1)
kubectl -n <your-namespace> logs -f -l jobset.sigs.k8s.io/jobset-name=${trainjob##*/}-node

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

TrainJob smoke-test commands are incomplete and can fail as written

Line 52 says to set spec.runtimeRef.name, but Line 55 applies a remote YAML directly, so users never actually change runtimeRef.name. Also, the smoke YAML carries an explicit metadata.namespace, while Lines 56-58 query <your-namespace>, which can return nothing if they differ.

Please add an explicit mutation step (download/edit/patch) before apply, or provide per-runtime/per-namespace apply examples.

Suggested doc patch
 A shared smoke template applies to any runtime — set `spec.runtimeRef.name` to the runtime you want to exercise:

 ```bash
-kubectl apply -f $base/trainjob-smoke.yaml
+curl -L "$base/trainjob-smoke.yaml" -o /tmp/trainjob-smoke.yaml
+# edit /tmp/trainjob-smoke.yaml:
+# - metadata.namespace: <your-namespace>
+# - spec.runtimeRef.name: <your-runtime-name>
+kubectl apply -f /tmp/trainjob-smoke.yaml
 kubectl -n <your-namespace> get trainjobs
 trainjob=$(kubectl -n <your-namespace> get trainjobs -o name | tail -1)
 kubectl -n <your-namespace> logs -f -l jobset.sigs.k8s.io/jobset-name=${trainjob##*/}-node
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @docs/en/training_guides/training-runtimes.mdx around lines 52 - 58, The
smoke-test instructions are incomplete: before applying trainjob-smoke.yaml,
download the remote file (trainjob-smoke.yaml), edit it to set
metadata.namespace to your namespace and spec.runtimeRef.name to the runtime you
want, then kubectl apply the edited file; alternatively show a patch/kubectl -n
apply -f /tmp/trainjob-smoke.yaml example so the subsequent
kubectl -n get trainjobs and the trainjob=$(kubectl -n
...) log command target the same namespace and runtime.


</details>

<!-- fingerprinting:phantom:poseidon:hawk -->

<!-- This is an auto-generated comment by CodeRabbit -->

rspress build failed with `ShikiError: Language `Dockerfile` is not
included in this bundle`. Match the previous convention of bare code
fences for Containerfile blocks.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 5, 2026

Copy link
Copy Markdown

Deploying alauda-ai with  Cloudflare Pages  Cloudflare Pages

Latest commit: 507cc40
Status: ✅  Deploy successful!
Preview URL: https://194a7a4b.alauda-ai.pages.dev
Branch Preview URL: https://codex-training-guides-reorg.alauda-ai.pages.dev

View logs

Move `mlops_with_coding_agents.mdx` and
`coding_agents_with_inference_service.mdx` out of
docs/en/model_inference/inference_service/how_to/ into a new top-level
docs/en/agentic_mlops/ section, standardizing names to kebab-case.

Rewrite every relative link to resolve from the new location: the two
pages still reference each other and link out to inference-service
how-tos, Envoy AI Gateway, hardware profiles, training guides,
LLM compressor, and the MLflow page.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@typhoonzero
typhoonzero merged commit 0ab8e31 into master Jun 5, 2026
3 checks passed
@typhoonzero
typhoonzero deleted the codex/training-guides-reorg branch June 5, 2026 05:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant