Skip to content

ci(docker): add DeepSeek-V3 kernels and modernize tooling#861

Merged
garrett4wade merged 3 commits into
mainfrom
build-docker-image
Jan 30, 2026
Merged

ci(docker): add DeepSeek-V3 kernels and modernize tooling#861
garrett4wade merged 3 commits into
mainfrom
build-docker-image

Conversation

@fishcrap

@fishcrap fishcrap commented Jan 27, 2026

Copy link
Copy Markdown
Collaborator

Description

Enhance Docker image with DeepSeek-V3 optimization packages to enable MoE training with optimal performance on Hopper GPUs. Also modernize development tooling and resolve dependency conflicts.

Key additions:

  • DeepSeek-V3 kernels: FlashMLA (Multi-head Latent Attention), DeepGEMM (FP8 GEMM), DeepEP (Expert Parallelism), flash-linear-attention
  • Modern Node.js setup: Replace nvm with fnm for faster installation
  • AI coding tools: opencode, @openai/codex, @google/gemini-cli
  • Dependency fixes: Resolve uvicorn version conflicts via litellm[proxy]

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Code refactoring (no functional changes)
  • Performance improvement
  • Test coverage improvement

Checklist

  • I have read the Contributing Guide
  • I have run formatting tools (pre-commit or manual)
  • I have run relevant unit tests and they pass (requires Docker build)
  • I have added tests for new functionality (validation script updated)
  • I have updated documentation if needed
  • My branch is up to date with main
  • This PR introduces breaking changes (if yes, fill out details below)
  • If this PR changes documentation, I have built and previewed it locally with jb build docs
  • No critical issues raised by AI reviewers (/gemini review)

Breaking Change Details (if applicable):

This is a backward-compatible addition. Existing usage remains unchanged.

Changes

Dockerfile

Change Description
DeepSeek-V3 packages Added FlashMLA, DeepGEMM, DeepEP, flash-linear-attention for MoE optimization
Node.js tooling Replaced nvm with fnm; moved to STAGE 2.5 after CUDA compilation
AI coding tools Added opencode, @openai/codex, @google/gemini-cli

Python Dependencies (pyproject.toml)

Change Before After
PyTorch optimization - torchao>=0.15.0
Claude SDK - claude-agent-sdk
LiteLLM litellm + litellm-proxy-extras litellm[proxy]>=1.81.3
uvicorn >=0.34.2 (strict) (unconstrained)
override-dependencies - openai, soundfile

Documentation & Validation

  • Added DeepSeek-V3 packages section to docs/tutorial/installation.md
  • Added validation tests for FlashMLA, DeepGEMM, DeepEP, fla, NVSHMEM in validate_docker_installation.py

GPU Requirements

Package Minimum GPU Notes
FlashMLA SM90+ (Hopper) Multi-head Latent Attention kernels
DeepGEMM SM90+ (Hopper) FP8 GEMM library for MoE
DeepEP SM80+ (Ampere) Expert Parallelism communication
flash-linear-attention Any GPU Pure Triton kernels
NVSHMEM Any GPU Required for DeepEP internode

Additional Context

  • The uvicorn version conflict was caused by litellm-proxy-extras requiring a different version than the main dependencies. Using litellm[proxy] bundles the proxy extras and manages the version constraints internally.
  • fnm is significantly faster than nvm for Node.js installation and better suited for Docker builds.

@fishcrap fishcrap requested a review from garrett4wade January 27, 2026 08:17
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @fishcrap, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a dependency conflict involving litellm[proxy] and uvicorn by adjusting the pyproject.toml to specify the correct litellm variant and relaxing the uvicorn version constraint. Additionally, the Docker build process has been enhanced to leverage uv for efficient and reliable dependency synchronization, ensuring the project builds consistently.

Highlights

  • Dependency Resolution: The pyproject.toml file has been updated to resolve a dependency conflict between litellm[proxy] and uvicorn. Specifically, litellm and litellm-proxy-extras were replaced with litellm[proxy], and the uvicorn version constraint was relaxed from >=0.34.2 to uvicorn.
  • Dockerfile Dependency Management: The Dockerfile now incorporates a uv sync command to manage project dependencies, ensuring they are installed using the lockfile and specific project settings. This includes mounting necessary files like uv.lock, pyproject.toml, and areal/__init__.py during the build process, aligning with best practices for uv in Docker.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request addresses a conflict with litellm[proxy] and uvicore>=34.2 by adjusting dependency specifications in pyproject.toml and updating the Dockerfile to use uv sync for dependency installation. The changes correctly consolidate litellm dependencies and remove the problematic uvicorn version constraint, which is a good step towards resolving the reported conflict. However, there are some redundant instructions in the Dockerfile that should be addressed for better maintainability.

Comment thread Dockerfile Outdated
@garrett4wade garrett4wade changed the title [ci] Fix litellm proxy fix(deps): resolve litellm proxy dependency conflict with uvicorn Jan 27, 2026
@garrett4wade garrett4wade added new-image enable building a new docker image and removed new-image enable building a new docker image labels Jan 27, 2026
@garrett4wade garrett4wade changed the title fix(deps): resolve litellm proxy dependency conflict with uvicorn ci(docker): reorganize Dockerfile and update Python dependencies Jan 27, 2026
@garrett4wade garrett4wade added safe-to-test Ready to run unit-tests in a PR. new-image enable building a new docker image and removed new-image enable building a new docker image safe-to-test Ready to run unit-tests in a PR. labels Jan 27, 2026
@garrett4wade garrett4wade added new-image enable building a new docker image safe-to-test Ready to run unit-tests in a PR. and removed safe-to-test Ready to run unit-tests in a PR. new-image enable building a new docker image labels Jan 27, 2026
@garrett4wade garrett4wade requested a review from rchardx January 28, 2026 02:41
@garrett4wade garrett4wade added new-image enable building a new docker image safe-to-test Ready to run unit-tests in a PR. and removed safe-to-test Ready to run unit-tests in a PR. new-image enable building a new docker image labels Jan 28, 2026
Comment thread Dockerfile Outdated
Comment thread Dockerfile Outdated
Enhance Docker image with DeepSeek-V3 optimization packages (FlashMLA,
DeepGEMM, DeepEP, flash-linear-attention) to enable MoE training with
optimal performance on Hopper GPUs. Also modernize development tooling
and resolve dependency conflicts.

Dockerfile changes:
- Add FlashMLA, DeepGEMM, DeepEP, flash-linear-attention for DeepSeek-V3
- Replace nvm with fnm (Fast Node Manager) for faster Node.js setup
- Move Node.js/npm tooling to STAGE 2.5 after CUDA compilation
- Add AI coding tools: opencode, @openai/codex, @google/gemini-cli

Dependency changes:
- Add torchao>=0.15.0 for PyTorch quantization and optimization
- Add claude-agent-sdk for Claude Agent SDK integration
- Replace litellm + litellm-proxy-extras with litellm[proxy]>=1.81.3
  to resolve uvicorn version conflict
- Add openai and soundfile to override-dependencies

Validation and documentation:
- Add DeepSeek-V3 package tests to validate_docker_installation.py
- Document GPU requirements (SM90+ for FlashMLA/DeepGEMM, SM80+ for DeepEP)
@garrett4wade garrett4wade changed the title ci(docker): reorganize Dockerfile and update Python dependencies ci(docker): add DeepSeek-V3 kernels and modernize tooling Jan 28, 2026
@garrett4wade garrett4wade added new-image enable building a new docker image safe-to-test Ready to run unit-tests in a PR. and removed safe-to-test Ready to run unit-tests in a PR. new-image enable building a new docker image labels Jan 28, 2026
@garrett4wade garrett4wade added safe-to-test Ready to run unit-tests in a PR. and removed safe-to-test Ready to run unit-tests in a PR. labels Jan 28, 2026
@garrett4wade garrett4wade added safe-to-test Ready to run unit-tests in a PR. and removed safe-to-test Ready to run unit-tests in a PR. labels Jan 28, 2026
@garrett4wade garrett4wade merged commit 0488db2 into main Jan 30, 2026
7 checks passed
@garrett4wade garrett4wade deleted the build-docker-image branch January 30, 2026 07:01
leandermaben pushed a commit to leandermaben/AReaL that referenced this pull request Mar 24, 2026
…ect#861)

* ci(docker): add DeepSeek-V3 kernels and modernize tooling

Enhance Docker image with DeepSeek-V3 optimization packages (FlashMLA,
DeepGEMM, DeepEP, flash-linear-attention) to enable MoE training with
optimal performance on Hopper GPUs. Also modernize development tooling
and resolve dependency conflicts.

Dockerfile changes:
- Add FlashMLA, DeepGEMM, DeepEP, flash-linear-attention for DeepSeek-V3
- Replace nvm with fnm (Fast Node Manager) for faster Node.js setup
- Move Node.js/npm tooling to STAGE 2.5 after CUDA compilation
- Add AI coding tools: opencode, @openai/codex, @google/gemini-cli

Dependency changes:
- Add torchao>=0.15.0 for PyTorch quantization and optimization
- Add claude-agent-sdk for Claude Agent SDK integration
- Replace litellm + litellm-proxy-extras with litellm[proxy]>=1.81.3
  to resolve uvicorn version conflict
- Add openai and soundfile to override-dependencies

Validation and documentation:
- Add DeepSeek-V3 package tests to validate_docker_installation.py
- Document GPU requirements (SM90+ for FlashMLA/DeepGEMM, SM80+ for DeepEP)

* remove nvshm validation

* fix fla version validation

---------

Co-authored-by: 博惟 <bowei.fw@antgroup.com>
SathyaGnanakumar pushed a commit to danielkiely/AReaL that referenced this pull request Apr 29, 2026
…ect#861)

* ci(docker): add DeepSeek-V3 kernels and modernize tooling

Enhance Docker image with DeepSeek-V3 optimization packages (FlashMLA,
DeepGEMM, DeepEP, flash-linear-attention) to enable MoE training with
optimal performance on Hopper GPUs. Also modernize development tooling
and resolve dependency conflicts.

Dockerfile changes:
- Add FlashMLA, DeepGEMM, DeepEP, flash-linear-attention for DeepSeek-V3
- Replace nvm with fnm (Fast Node Manager) for faster Node.js setup
- Move Node.js/npm tooling to STAGE 2.5 after CUDA compilation
- Add AI coding tools: opencode, @openai/codex, @google/gemini-cli

Dependency changes:
- Add torchao>=0.15.0 for PyTorch quantization and optimization
- Add claude-agent-sdk for Claude Agent SDK integration
- Replace litellm + litellm-proxy-extras with litellm[proxy]>=1.81.3
  to resolve uvicorn version conflict
- Add openai and soundfile to override-dependencies

Validation and documentation:
- Add DeepSeek-V3 package tests to validate_docker_installation.py
- Document GPU requirements (SM90+ for FlashMLA/DeepGEMM, SM80+ for DeepEP)

* remove nvshm validation

* fix fla version validation

---------

Co-authored-by: 博惟 <bowei.fw@antgroup.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe-to-test Ready to run unit-tests in a PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants