Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
3b9e64a
Add fexpa learning path
ClaudioMartino-arm Dec 8, 2025
7953738
Add cca-kata (Run Confidentail Containers with encrypted images using…
anta5010 Dec 11, 2025
6f7a0be
Dougs Updates for the RabbitMQ LP techreview
DougAnsonAustinTX Dec 12, 2025
3bc19f3
Initial plan
Copilot Dec 12, 2025
7cb1977
Fix style and formatting issues in RabbitMQ GCP Learning Path
Copilot Dec 12, 2025
14c39e9
Fix heading capitalization to use sentence case throughout
Copilot Dec 12, 2025
fb6860f
Merge pull request #1 from DougAnsonAustinTX/copilot/fix-rabbitmq-gcp-lp
DougAnsonAustinTX Dec 12, 2025
214e7ea
[CCA] Add a section on MEC.
Arnaud-de-Grandmaison-ARM Dec 8, 2025
1d71974
minor update to the install wording
DougAnsonAustinTX Dec 15, 2025
481047b
Refactor Django on GCP learning path documentation for clarity and co…
madeline-underwood Dec 15, 2025
695635b
Update Model Gym LP
annietllnd Dec 15, 2025
2d0b434
Merge pull request #2664 from madeline-underwood/django
jasonrandrews Dec 15, 2025
a1d1f33
Merge pull request #2662 from DougAnsonAustinTX/rabbitmq_pr_techreview
jasonrandrews Dec 15, 2025
bb8821b
Refactor Gardener documentation for clarity and consistency
madeline-underwood Dec 16, 2025
3397b7d
Update Gardener GCP learning path content
madeline-underwood Dec 16, 2025
619101e
Merge branch 'ArmDeveloperEcosystem:main' into mcpig
madeline-underwood Dec 16, 2025
000ace7
Merge pull request #2666 from annietllnd/neural-graphics
pareenaverma Dec 16, 2025
57b4588
Set draft status for FEXPA learning path
pareenaverma Dec 16, 2025
9a0026d
Merge pull request #2632 from ClaudioMartino-arm/main
pareenaverma Dec 16, 2025
670c7cc
Placeholder Further Reading in FEXPA LP
annietllnd Dec 16, 2025
0f6ecea
Merge pull request #2665 from madeline-underwood/gardener
jasonrandrews Dec 16, 2025
7947c75
Enhance GitHub Copilot installation guide for clarity and detail
madeline-underwood Dec 16, 2025
35c4240
Update GitHub Copilot install guide
madeline-underwood Dec 16, 2025
733345e
Improve clarity of instructions for creating and saving files in GitH…
madeline-underwood Dec 16, 2025
dcdc1fa
Update GitHub Copilot install guide
madeline-underwood Dec 16, 2025
cf909f3
Revise content organization and structure guidelines
madeline-underwood Dec 17, 2025
5e908be
Delete install guide scope awareness section
madeline-underwood Dec 17, 2025
684dac8
Merge pull request #2654 from Arnaud-de-Grandmaison-ARM/cca-mec
pareenaverma Dec 17, 2025
cc75851
Update cca-mec.md
pareenaverma Dec 17, 2025
c297e8d
Update MEC enabling instructions in cca-mec.md
pareenaverma Dec 17, 2025
4e45a3e
Merge pull request #2671 from pareenaverma/content_review
pareenaverma Dec 17, 2025
4041727
Add draft status to CCA Kata learning path
pareenaverma Dec 17, 2025
1831ce1
Merge pull request #2642 from anta5010/main
pareenaverma Dec 17, 2025
5cdf305
Merge pull request #2670 from madeline-underwood/copilot_instructions…
jasonrandrews Dec 17, 2025
d2ecfff
Merge pull request #2668 from annietllnd/main
pareenaverma Dec 17, 2025
c45f6aa
Ernie 4.5 on llama.cpp tech review
jasonrandrews Dec 17, 2025
055e202
Merge pull request #2669 from madeline-underwood/mcpig
jasonrandrews Dec 17, 2025
c9ca37a
Merge pull request #2673 from jasonrandrews/review
jasonrandrews Dec 17, 2025
5aefb86
Arm MCP Server LP
JoeStech Dec 18, 2025
727f4ff
tweaks to index file
JoeStech Dec 18, 2025
c3c8a1f
Migration to Arm not allowed for this category
JoeStech Dec 18, 2025
7f1d214
Initial plan
Copilot Dec 18, 2025
b412f0b
Convert external learn.arm.com links to internal format
Copilot Dec 18, 2025
e3d9e71
Merge pull request #6 from jasonrandrews/copilot/update-internal-link…
jasonrandrews Dec 18, 2025
7a2174d
fix link check errors
jasonrandrews Dec 18, 2025
b4e706f
Initial plan
Copilot Dec 18, 2025
afed37e
Convert learn.arm.com URLs to local markdown links
Copilot Dec 18, 2025
ecb13ac
Fix broken docker-woa link to use correct docker-desktop path
Copilot Dec 18, 2025
4c46f52
Merge pull request #7 from jasonrandrews/copilot/update-md-links-for-…
jasonrandrews Dec 18, 2025
83c4273
fix incorrect skill level
jasonrandrews Dec 18, 2025
9a6a7e6
Revise Rust on GCP learning path details
madeline-underwood Dec 18, 2025
8549bb3
Update title and headings in background.md
madeline-underwood Dec 18, 2025
74396fb
Revise baseline testing documentation for Rust on GCP
madeline-underwood Dec 18, 2025
8ca3cda
Refactor benchmarking.md for clarity and consistency
madeline-underwood Dec 18, 2025
35f3c39
Revise installation instructions for Rust on GCP Arm64
madeline-underwood Dec 18, 2025
f34f19e
Revise instance.md for clarity and accuracy
madeline-underwood Dec 18, 2025
6b1adb8
Merge pull request #2679 from madeline-underwood/rust_gcp2
jasonrandrews Dec 18, 2025
7a6adb5
Mark Arm MCP Server migration topic as draft
pareenaverma Dec 18, 2025
67513ac
Merge pull request #2674 from JoeStech/arm_mcp_server_migration
pareenaverma Dec 18, 2025
971b2c0
Update _index.md
pareenaverma Dec 18, 2025
b43c10f
Revise Arm MCP Server setup instructions
pareenaverma Dec 18, 2025
5d184eb
Update 1-overview.md
pareenaverma Dec 18, 2025
ed7b6e3
Update 2-docker-check.md
pareenaverma Dec 18, 2025
8402585
Update 3-simd-migration.md
pareenaverma Dec 18, 2025
97e6b79
Initial plan
Copilot Dec 18, 2025
133caf7
Fix 'this Learning Path' link terminology
Copilot Dec 18, 2025
43ff2ce
Fix '[here]()' link terminology
Copilot Dec 18, 2025
c3cfecf
Fix additional 'in this' and 'following this' link terminology
Copilot Dec 18, 2025
17559bb
Refactor Cassandra baseline testing instructions for clarity and conc…
madeline-underwood Dec 19, 2025
8984a43
Update Cassandra learning path content. Renamed files for correct spe…
madeline-underwood Dec 19, 2025
c128c29
Update Cassandra learning path content
madeline-underwood Dec 19, 2025
aebab93
Update Cassandra learning path content
madeline-underwood Dec 19, 2025
d856266
Update 3-simd-migration.md
pareenaverma Dec 19, 2025
53dd19e
Simplify error feedback instructions
pareenaverma Dec 19, 2025
f1fcbab
Update 4-agentic-systems.md
pareenaverma Dec 19, 2025
ff09754
Revise content on agentic systems and AI assistants
pareenaverma Dec 19, 2025
6e9a4f7
Merge pull request #8 from jasonrandrews/copilot/fix-improper-markdow…
jasonrandrews Dec 19, 2025
2d7deeb
Update Redis learning path
madeline-underwood Dec 19, 2025
1d3e070
Review and update Redis Learning Path materials
madeline-underwood Dec 19, 2025
fa36765
Merge pull request #2681 from madeline-underwood/cass
jasonrandrews Dec 19, 2025
fc6ec2d
Merge pull request #2682 from madeline-underwood/flink
jasonrandrews Dec 19, 2025
174a4c5
Merge pull request #2683 from madeline-underwood/redis
jasonrandrews Dec 19, 2025
1eb4ed9
fix double //
jasonrandrews Dec 19, 2025
2913d2d
Fix markdown link formatting across multiple files
jasonrandrews Dec 19, 2025
0122722
Merge pull request #2678 from jasonrandrews/review2
jasonrandrews Dec 19, 2025
be92bb4
Merge remote-tracking branch 'upstream/main' into review3
jasonrandrews Dec 19, 2025
e88d4e1
Merge pull request #2686 from jasonrandrews/review3
jasonrandrews Dec 19, 2025
e5d8e9d
spelling fixes
jasonrandrews Dec 19, 2025
1a477fc
Merge pull request #2687 from jasonrandrews/review
jasonrandrews Dec 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 99 additions & 32 deletions .github/copilot-instructions.md

Large diffs are not rendered by default.

58 changes: 57 additions & 1 deletion .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5383,4 +5383,60 @@ ultraedge
unclound
wNdi
whatsapp
workdir
workdir
Alexandre
CRI
ClickHouse's
EDuJ
EOL
ERNIE's
Expb
FEXPA
Grasset
Idxb
LOQ
MEC
MECID
MECIDs
MIMEType
Martino
NvLxg
Nydus
PASes
PolicyDeny
Remb
Romana
SLdG
TCB
aMWqFmwBgwT
actix
ae
aot
cdd
columnalt
cri
decrypt
eade
empt
expBits
exponentials
jsozZm
jyco
keyprovider
Linux's
minimax
modelcontextprotocol
nter
nydus
oMdFIQ
outputNAME
poweroff
qJs
rBD
rMDhjcaEM
remBits
snapshotter
unmounting
vnd
xqcqqYHrjZ
ztPjILBCbFEqnVlbvjUpM
276 changes: 145 additions & 131 deletions content/install-guides/github-copilot.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion content/install-guides/stm32_vs.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Run the installer(s) and follow on-screen instructions.

### How do I install Git for version control functionality?

You can download the latest version from [here](https://git-scm.com/).
You can download the latest version from [git-scm.com](https://git-scm.com/).

### What about Keil Studio for VS Code?

Expand Down
2 changes: 1 addition & 1 deletion content/install-guides/streamline-cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Streamline CLI tools are supported on the following Arm CPUs:

Use the Arm Sysreport utility to determine whether your system configuration supports hardware-assisted profiling. Follow the instructions in [Get ready for performance analysis with Sysreport][1] to discover how to download and run this utility.

[1]: https://learn.arm.com/learning-paths/servers-and-cloud-computing/sysreport/
[1]: /learning-paths/servers-and-cloud-computing/sysreport/

The `perf counters` entry in the generated report indicates how many CPU counters are available. The `perf sampling` entry indicates if SPE is available. You will achieve the best profiles in systems with at least 6 available CPU counters and SPE.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ The example has been tested on [AWS EC2](https://aws.amazon.com/ec2/) and an [Am

## Installation

You need Docker to run Open AD Kit. Refer to the [Docker install guide](https://learn.arm.com/install-guides/docker/) to learn how to install Docker on an Arm platform.
You need Docker to run Open AD Kit. Refer to the [Docker install guide](/install-guides/docker/) to learn how to install Docker on an Arm platform.

First, verify Docker is installed on your development computer by running:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ In modern vehicles, multiple sensors such as LiDAR, radar, and cameras must cont
DDS ensures these components share data seamlessly and in real time, both within the vehicle and across infrastructure such as V2X systems, including traffic lights and road sensors.

{{% notice Tip %}}
To get started with open-source DDS on Arm platforms, see the [Installation Guide for CycloneDDS](https://learn.arm.com/install-guides/cyclonedds).
To get started with open-source DDS on Arm platforms, see the [Installation Guide for CycloneDDS](/install-guides/cyclonedds).
{{% /notice %}}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ layout: learningpathall

Now that you’ve explored the concept of a safety island, a dedicated subsystem responsible for executing safety-critical control logic, and learned how DDS (Data Distribution Service) enables real-time, distributed communication, you’ll refactor the original OpenAD Kit architecture into a multi-instance deployment.

The predecessor Learning Path, [Deploy Open AD Kit containerized autonomous driving simulation on Arm Neoverse](http://learn.arm.com/learning-paths/automotive/openadkit1_container/), showed how to deploying three container components on a single Arm-based instance, to handle:
The predecessor Learning Path, [Deploy Open AD Kit containerized autonomous driving simulation on Arm Neoverse](/learning-paths/automotive/openadkit1_container/), showed how to deploying three container components on a single Arm-based instance, to handle:
- The simulation environment
- Visualization
- Planning and control
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ On the Simulation and Visualization node, execute:

Once both machines are running their launch scripts, the Visualizer container exposes a web-accessible interface at: http://6080/vnc.html.

Open this link in your browser to observe the simulation in real time. The demo closely resembles the output in the [previous Learning Path, Deploy Open AD Kit containerized autonomous driving simulation on Arm Neoverse](http://learn.arm.com/learning-paths/automotive/openadkit1_container/4_run_openadkit/).
Open this link in your browser to observe the simulation in real time. The demo closely resembles the output in the [previous Learning Path, Deploy Open AD Kit containerized autonomous driving simulation on Arm Neoverse](/learning-paths/automotive/openadkit1_container/4_run_openadkit/).

![Distributed OpenAD Kit simulation running on two Arm-based instances with visualizer and simulator coordination over DDS alt-text#center](split_aws_run.gif "Visualizer output from a distributed OpenAD Kit simulation showing ROS 2 modules running across two cloud instances using DDS communication.")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ Place a `MicroPacFile` in your project directory.
- **limits**: Resource limits (memory, cpu)
- **mount**: Volume mount points
- **network**: Network configuration
- **createdBy**: maintanier of the application
- **createdBy**: maintainer of the application
- **description**: description of the application

### Building the MicroPac
Expand Down
10 changes: 5 additions & 5 deletions content/learning-paths/automotive/tinkerblox_ultraedge/main.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,21 +97,21 @@ execution fabric for high-performance compute infrastructure

### 5.2 High-Level Architecture

**UltraEdge ‘Core’ Layer**
**UltraEdge ‘Core’ Layer**
Handles compute infrastructure management including service
orchestration, lifecycle management, rule engine orchestration, and
data-flow management .

**UltraEdge ‘Boost’ Layer**
**UltraEdge ‘Boost’ Layer**
Implements performance-critical routines and FFI (Foreign Function
Interface) calls; Contains dynamic connectors, and southbound protocol
adapters

**UltraEdge ‘Prime’ Layer**
**UltraEdge ‘Prime’ Layer**
Contains business logic, trigger & activation sequences, and AI & mixed
workload orchestration .

**UltraEdge Edge-Cloud ‘Connect’ Layer**
**UltraEdge Edge-Cloud ‘Connect’ Layer**
Supports data streaming to databases (InfluxDB, SQLite) and provides
diagnostic/logging outputs .

Expand Down Expand Up @@ -322,7 +322,7 @@ Place a `MicroPacFile` in your project directory.
- **limits**: Resource limits (memory, cpu)
- **mount**: Volume mount points
- **network**: Network configuration
- **createdBy**: maintanier of the application
- **createdBy**: maintainer of the application
- **description**: description of the application

### 7.4 Building the MicroPac
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Why MoE Models Let Edge Devices Run 21B LLMs
title: Understand Mixture of Experts architecture for edge deployment
weight: 2

### FIXED, DO NOT MODIFY
Expand All @@ -8,53 +8,47 @@ layout: learningpathall

## What is Mixture of Experts (MoE)?

As large language models grow to tens of billions of parameters, traditional dense networks — which activate all weights for every input become infeasible for edge deployment, especially on CPU-only Arm devices. [Mixture of Experts (MoE)](https://en.wikipedia.org/wiki/Mixture_of_experts) offers a breakthrough.
As large language models grow to tens of billions of parameters, traditional dense networks that activate all weights for every input become impractical for edge deployment, especially on CPU-only Arm devices. [Mixture of Experts (MoE)](https://en.wikipedia.org/wiki/Mixture_of_experts) offers an alternative approach that makes deploying these large models practical.

This is simple and uniform, but as model sizes increaseinto the billions of parametersthis structure becomes both memory-intensive and compute-intensive. For edge environments like mobile devices, embedded systems, this makes deploying large models nearly impossible.
Dense networks are simple and uniform, but as model sizes increase into the billions of parameters, this structure becomes both memory-intensive and computationally demanding. For edge environments like mobile devices and embedded systems, deploying large models presents significant challenges.

***[Mixture of Experts (MoE)](https://en.wikipedia.org/wiki/Mixture_of_experts)*** offers an alternative.
Instead of using all parameters all the time, MoE introduces a conditional computation mechanism: each input token only activates a small subset of model components (called ***experts***).
Think of it like having a team of specialists, and only calling the relevant few for a given task. This makes MoE ideal for environments where compute or memory is constrained, such as edge AI or embedded inference.
Instead of activating all parameters for every computation, MoE introduces a conditional computation mechanism where each input token activates only a small subset of model components called experts. Think of it like having a team of specialists where you consult only the relevant experts for a given task. This makes MoE ideal for environments where compute and memory are constrained, such as edge AI or embedded inference.

In a typical MoE setup, the model consists of many expert sub-networks (for example, 64 experts), but for each input, a router selects only a handful to compute the result. The rest remain inactive, conserving memory and compute. The model learns this dynamic routing during training, so during inference, only a fraction of the model is active. This leads to much lower compute and memory usage without sacrificing the total model capacity or diversity of learned behaviors.

In MoE:
- The model consists of many expert sub-networks (e.g., 64 experts).
- For each input, a router selects only 2–4 experts to compute the result.
- The rest of the experts remain inactive, conserving memory and compute.
## Benefits of MoE architecture

This dynamic routing is typically learned during training. In inference, only a fraction of the model is active, leading to much lower compute and memory usage ***without sacrificing the total model capacity** or ***diversity of learned behaviors***.
MoE architecture provides several advantages that make it particularly well-suited for edge deployment and large-scale model development:

**Scalable model size**: You can increase total parameter count without linearly increasing inference cost, allowing for larger, more capable models within the same resource constraints.

## Benefits of MoE Architecture
**Efficient inference**: The architecture requires lower memory and FLOPs per input compared to dense models of equivalent capacity, making real-time applications more feasible.

- Scalable Model Size: Increase total parameter count without linearly increasing inference cost.
- Efficient Inference: Lower memory and FLOPs per input.
- Modularity: Each expert can learn domain-specific patterns (e.g., finance, medicine, language).
- Specialization: Encourages the model to learn distinct processing behaviors across different experts.
- Routing Flexibility: Makes it easier to adapt to specific tasks using fine-tuned expert selection.
**Modularity**: Each expert can learn domain-specific patterns such as finance, medicine, or language, enabling the model to handle diverse tasks without retraining the entire network.

## ERNIE-4.5: A MoE Model for Chinese NLP
**Specialization**: The architecture encourages the model to learn distinct processing behaviors across different experts, improving performance on specialized tasks while maintaining general capability.

The [ERNIE-4.5](https://huggingface.co/collections/baidu/ernie-45) model family from [Baidu](https://huggingface.co/baidu) introduces a Mixture-of-Experts (MoE) architecture, which enables massive models (e.g., 21 billion parameters) to be deployed in constrained environments. MoE models dynamically activate only a small subset of parameters (e.g., 2–4 experts) during inference.
Specifically, ERNIE-4.5 uses a softmax-based router to select the top-6 experts from a pool of 64 per layer, activating only a subset dynamically per token. This makes runtime both efficient and adaptive. This architecture allows the model to retain high performance and generalization while drastically reducing inference-time resource requirements.
**Routing flexibility**: The dynamic expert selection makes it easier to adapt to specific tasks using fine-tuned routing strategies, allowing for task-specific optimizations without modifying the core model.

ERNIE-4.5 Model Series:
- PT (Post-Trained): General-purpose language model trained on Chinese and English data.
- Thinking: Optimized for reasoning tasks with long context support and structured outputs.
## ERNIE-4.5: An MoE model for Chinese NLP

In this learning path, we focus on the [ERNIE-4.5 Thinking](https://huggingface.co/baidu/ERNIE-4.5-21B-A3B-Thinking) variant as our primary model due to its enhancements for multi-step reasoning and long-context tasks. However, we also introduce the [PT (Post-Trained)](https://huggingface.co/baidu/ERNIE-4.5-21B-A3B-PT) variant to allow learners to compare model behavior across identical prompts, illustrating how task-specific tuning affects output quality.
The [ERNIE-4.5](https://huggingface.co/collections/baidu/ernie-45) model family from [Baidu](https://huggingface.co/baidu) introduces a Mixture of Experts (MoE) architecture that enables 21-billion-parameter models to be deployed in constrained environments. The model uses a softmax-based router to dynamically select the top six experts from a pool of 64 per layer, activating only this subset per token. This makes runtime both efficient and adaptive while retaining high performance and generalization.

## Why MoE Matters for Edge Devices
The ERNIE-4.5 model series includes two variants. The PT (Post-Trained) variant is a general-purpose language model trained on Chinese and English data. The Thinking variant is optimized for reasoning tasks with long context support and structured outputs. Both are designed for Chinese Natural Language Processing (NLP).

Deploying a 21B dense model on a CPU-only board is infeasible. But MoE changes that:
This Learning Path focuses on the [ERNIE-4.5 Thinking](https://huggingface.co/baidu/ERNIE-4.5-21B-A3B-Thinking) variant as the primary model because of its enhancements for multi-step reasoning and long-context tasks. However, you also use the [PT (Post-Trained)](https://huggingface.co/baidu/ERNIE-4.5-21B-A3B-PT) variant to compare model behavior across identical prompts, illustrating how task-specific tuning affects output quality.

| **Feature** | **Dense Model** | **MoE Model (e.g., ERNIE-4.5-21B)** |
|-----------------------|-----------------|---------------|
| `Total Parameters` | 21B | 21B |
| `Activated Parameters`| 21B | ~3B |
| `Memory Usage` | Very high | Moderate |
| `Inference Speed` | Slow | Fast |
## Why MoE matters for edge devices

This efficiency enables powerful language models to be run locally on ARM-based platforms — making MoE not just a model design choice, but a deployment enabler.
Deploying a 21-billion-parameter dense model on a CPU-only board is impractical, but MoE changes that. The table below compares key characteristics:

In the next module, you’ll bring this architecture to life — preparing a real Armv9 board, setting up llama.cpp, and verifying that a 21B MoE model like ERNIE-4.5 can run efficiently with no GPU required.
| **Feature** | **Dense Model** | **MoE Model (ERNIE-4.5-21B)** |
|-----------------------|-----------------|-------------------------------|
| Total Parameters | 21B | 21B |
| Activated Parameters | 21B | ~3B |
| Memory Usage | Very high | Moderate |
| Inference Speed | Slow | Fast |

This efficiency enables powerful language models to run locally on Arm-based platforms, making MoE not just a model design choice, but a deployment enabler.

In the next section, you set up a real Armv9 board, configure llama.cpp, and verify that you can run a 21-billion-parameter MoE model like ERNIE-4.5 efficiently without a GPU.
Loading
Loading