Skip to content

docs: address 9 open documentation issues - #1722

Merged
lbliii merged 9 commits into
NVIDIA-NeMo:26.04-stagingfrom
lbliii:lbliii/fix-open-issues
Apr 16, 2026
Merged

docs: address 9 open documentation issues#1722
lbliii merged 9 commits into
NVIDIA-NeMo:26.04-stagingfrom
lbliii:lbliii/fix-open-issues

Conversation

@lbliii

@lbliii lbliii commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

Description

Addresses all open documentation issues assigned to @lbliii in a single PR. Adds new README sections (Updates, Architecture, Why Data Curation with throughput example from Berkeley lecture, Nemotron usage, Citation), fixes broken tutorial links, clarifies Dask→Ray migration, documents pip install limitations, and adds four new Scaling & Performance concept pages (resource allocation, streaming, auto-balancing, throughput) to the fern docs.

Closes #1264, #1326, #1546, #1547, #1548, #1549, #1550, #1551, #1552

Usage

# N/A — documentation-only changes.

Checklist

  • I am familiar with the Contributing Guide.
  • New or Existing tests cover these changes.
  • The documentation is up to date with these changes.

@lbliii
lbliii requested review from a team as code owners April 2, 2026 16:43
@lbliii
lbliii requested review from abhinavg4 and removed request for a team April 2, 2026 16:43
lbliii and others added 6 commits April 2, 2026 13:08
…o#1326, NVIDIA-NeMo#1546, NVIDIA-NeMo#1547, NVIDIA-NeMo#1548, NVIDIA-NeMo#1549, NVIDIA-NeMo#1550, NVIDIA-NeMo#1551, NVIDIA-NeMo#1552)

- Fix broken Installation and Configuration links in tutorials/README.md (NVIDIA-NeMo#1264)
- Document pip install dependency conflict and recommend uv (NVIDIA-NeMo#1326)
- Clarify that Curator uses Ray (not Dask) in migration guide and about page (NVIDIA-NeMo#1546)
- Add architecture diagram section to README (NVIDIA-NeMo#1547)
- Add Nemotron dataset usage section to README (NVIDIA-NeMo#1548)
- Add data curation importance section to README (NVIDIA-NeMo#1549)
- Add deep-dives section to fern docs (resource allocation, streaming, auto-balancing, throughput) (NVIDIA-NeMo#1550)
- Add citation section to README (NVIDIA-NeMo#1551)
- Add Updates/News section to README (NVIDIA-NeMo#1552)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Lawrence Lane <llane@nvidia.com>
Images now live in fern/assets/images/ and README references updated.
Reverted docs/about/release-notes/migration-guide.md and
docs/admin/installation.md since docs/ is deprecated in favor of fern/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Lawrence Lane <llane@nvidia.com>
Update resource allocation, streaming, and auto-balancing deep-dives
with concrete details from internal slides: ~5x CPU stage speedup,
20% streaming overlap improvement, before/after auto-balancing example
(1 vs 4 videos/s), and code examples matching actual API.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Lawrence Lane <llane@nvidia.com>
Add illustrative pipeline example from UCB lecture (lang ID → tokenization
→ 5B model, 13,000s naive → ~1,000s with Curator) to the "Why Data
Curation?" section and throughput deep-dive. Update auto-balancing with
accurate tasks/s numbers and streaming with 99% GPU utilization stat.
Framed as illustrative, not a benchmark claim.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Lawrence Lane <llane@nvidia.com>
These are concept articles, not a new content type. Moved resource
allocation, streaming, auto-balancing, and throughput pages under
About > Concepts > Scaling & Performance. Removed the separate
Deep Dives nav section and index page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Lawrence Lane <llane@nvidia.com>

@sarahyurick sarahyurick left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is great, thanks!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Can we get the image without the red underline on DocumentBatch?

Comment thread fern/versions/v26.04/pages/about/concepts/auto-balancing.mdx Outdated
Comment on lines +28 to +35
class TokenizerStage(ProcessingStage[DocumentBatch, DocumentBatch]):
def __init__(self):
super().__init__()

@property
def resources(self) -> Resources:
return Resources(cpus=1) # CPU-only — no GPU needed
# ... stage logic ...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nit but we don't want users setting the resources property themselves. The snippet should probably look more like:

class TokenizerStage(ProcessingStage[DocumentBatch, DocumentBatch]):
    name: str = "TokenizerStage"
    resources: Resources = Resources(cpus=1.0)

    def __init__(self):
...

Comment thread fern/versions/v26.04/pages/about/concepts/resource-allocation.mdx Outdated
Comment thread fern/versions/v26.04/pages/about/concepts/resource-allocation.mdx Outdated
Comment on lines +64 to +74
### 1. Add More Nodes

The most straightforward way to increase throughput. When you add nodes to your Ray cluster, the executor automatically distributes pipeline stages across the expanded cluster.

```bash
# Start head node
ray start --head --port=6379

# Add worker nodes (run on each additional machine)
ray start --address=<head-node-ip>:6379
```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is this how we should always do it? Maybe for now, we just reference RayClient and RaySlurmClient?

Comment thread fern/versions/v26.04/pages/about/concepts/throughput.mdx Outdated
Comment on lines +96 to +99
# CPU-heavy: no GPU needed
filter_stage = ScoreFilter(
filter_obj=WordCountFilter(min_words=80),
)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Maybe add a comment above that ScoreFilter by default uses Resources(cpus=1).


Use Ray Dashboard and stage performance stats to identify bottlenecks. Common issues:

- **I/O bound reader**: Increase reader parallelism or use faster storage (NVMe, parallel file system).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there a specific example you had in mind here? Not sure I instead the suggestion here.

Use Ray Dashboard and stage performance stats to identify bottlenecks. Common issues:

- **I/O bound reader**: Increase reader parallelism or use faster storage (NVMe, parallel file system).
- **Single slow stage**: Check if the stage can use more GPU memory or workers.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

To be clear, Curator will auto balance to assign more workers to slower stages. But agree it is good for the user to assign more GPU resources to a stage right off the bat if it needs it.

- resource-allocation: Use class-level resources attr, fix .with_() API,
  replace fractional GPU example with Resources(gpus=0.25), remove
  unsourced 5x claim, remove deduplication from CPU-bound example
- streaming: Remove unsourced 20% claim, use quickstart-style example,
  soften batch size trade-off language
- throughput: Clarify GPU memory math in example, emphasize streaming,
  use RayClient/RaySlurmClient, add ScoreFilter default note, note
  auto-balancing behavior
- auto-balancing: Remove untested stage_stats snippet, reference Ray
  Dashboard instead
- tutorials/README: Add .html extensions to doc URLs for consistency

Signed-off-by: Lawrence Lane <llane@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Apr 15, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

lbliii added 2 commits April 16, 2026 14:11
Signed-off-by: Lawrence Lane <llane@nvidia.com>
Signed-off-by: Lawrence Lane <llane@nvidia.com>
Comment thread README.md
@@ -133,3 +175,29 @@ Data curation modules measurably improve model performance. In ablation studies
## Contribute

We welcome community contributions! Please refer to [CONTRIBUTING.md](https://github.com/NVIDIA/NeMo/blob/stable/CONTRIBUTING.md) for guidelines.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 CONTRIBUTING.md link points to the wrong repository

This link goes to NVIDIA/NeMo (the NeMo framework repo), not NVIDIA-NeMo/Curator. Contributors following it will land on the NeMo framework's contribution guide, which has different requirements. The correct URL is used in the PR checklist itself.

Suggested change
We welcome community contributions! Please refer to [CONTRIBUTING.md](https://github.com/NVIDIA/NeMo/blob/stable/CONTRIBUTING.md) for guidelines.
We welcome community contributions! Please refer to [CONTRIBUTING.md](https://github.com/NVIDIA-NeMo/Curator/blob/main/CONTRIBUTING.md) for guidelines.

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.

2 participants