Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
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
4 changes: 4 additions & 0 deletions .vitepress/sidebar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -579,6 +579,10 @@ export function getSidebar() {
},
],
},
{
text: '🤖 AI Framework Support',
link: '/protocol/ai',
},
],
},
],
Expand Down
175 changes: 175 additions & 0 deletions src/protocol/ai.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
---
title: AI Framework Support
description:
Comprehensive guide to AI framework compatibility and support on the iExec
platform
---

# 🤖 AI Framework Support

The iExec Platform provides comprehensive support for popular AI and machine
learning frameworks. Deploy your confidential AI applications with confidence
using our tested and optimized framework configurations, all running in secure

Check warning on line 12 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L12

[Google.We] Try to avoid using first-person plural like 'our'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'our'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 12, "column": 7}}}, "severity": "WARNING"}
Trusted Execution Environments (TEEs).

Check notice on line 13 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L13

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 13, "column": 32}}}, "severity": "INFO"}

## 🚀 Quick Start

**Want to get started immediately?**

- 📚
**[AI Frameworks Hello World](https://github.com/iExecBlockchainComputing/ai-frameworks-hello-world)** -
Ready-to-use Docker examples for TensorFlow, PyTorch, and more
- 🛠️ **[Build & Deploy](/guides/build-iapp/build-&-deploy)** - General iApp
development guide (not AI-specific)

Check notice on line 23 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L23

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 23, "column": 21}}}, "severity": "INFO"}
- 🔬
**[TDX App Guide](/guides/build-iapp/advanced/create-your-first-tdx-app)** -
Build TDX applications (works well for AI workloads)

Check notice on line 26 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L26

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 26, "column": 9}}}, "severity": "INFO"}

Check notice on line 26 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L26

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 26, "column": 26}}}, "severity": "INFO"}

## 🛡️ Why iExec for AI?

### Confidential Computing

Check warning on line 30 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L30

[Google.Headings] 'Confidential Computing' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Confidential Computing' should use sentence-style capitalization.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 30, "column": 5}}}, "severity": "WARNING"}

Your AI models and data are protected end-to-end using Trusted Execution

Check warning on line 32 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L32

[Google.WordList] Use 'data is' instead of 'data are'.
Raw output
{"message": "[Google.WordList] Use 'data is' instead of 'data are'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 32, "column": 20}}}, "severity": "WARNING"}

Check notice on line 32 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L32

[Google.Passive] In general, use active voice instead of passive voice ('are protected').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('are protected').", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 32, "column": 25}}}, "severity": "INFO"}
Environments (TEEs):

Check notice on line 33 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L33

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 33, "column": 14}}}, "severity": "INFO"}

- **Data Privacy**: AI computations are encrypted throughout processing

Check notice on line 35 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L35

[Google.Passive] In general, use active voice instead of passive voice ('are encrypted').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('are encrypted').", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 35, "column": 37}}}, "severity": "INFO"}
- **Secure Training & Inference**: Models and data can never be accessed by

Check notice on line 36 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L36

[Google.Passive] In general, use active voice instead of passive voice ('be accessed').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('be accessed').", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 36, "column": 62}}}, "severity": "INFO"}
unauthorized entities
- **Hardware-Level Security**: Intel SGX and TDX provide military-grade

Check failure on line 38 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L38

[Vale.Terms] Use 'intel' instead of 'Intel'.
Raw output
{"message": "[Vale.Terms] Use 'intel' instead of 'Intel'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 38, "column": 32}}}, "severity": "ERROR"}

Check notice on line 38 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L38

[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 38, "column": 38}}}, "severity": "INFO"}

Check notice on line 38 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L38

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 38, "column": 46}}}, "severity": "INFO"}
protection

### AI Monetization

Check warning on line 41 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L41

[Google.Headings] 'AI Monetization' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'AI Monetization' should use sentence-style capitalization.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 41, "column": 5}}}, "severity": "WARNING"}

Monetize your AI assets easily and securely:

- **Datasets**: Encrypt and sell access to your training data
- **Models**: Deploy and monetize your trained AI models
- **Agents**: Create and sell AI agents and applications
- **Ownership Preserved**: Your digital assets always remain yours

### Decentralized Infrastructure

Scale AI applications without centralized cloud dependencies:

- **On-Demand Compute**: Access powerful resources when you need them
- **Fair Pricing**: Transparent, blockchain-verified execution costs
- **Global Network**: Deploy across a worldwide network of secure workers

## 🤖 AI Framework Support

### Overview

| Framework | TDX Support | SGX Support | Best For |

Check notice on line 62 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L62

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 62, "column": 22}}}, "severity": "INFO"}

Check notice on line 62 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L62

[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 62, "column": 40}}}, "severity": "INFO"}
| ---------------- | --------------- | --------------- | ----------------------------- |
| **TensorFlow** | ✅ Yes (3.01GB) | ❌ No | Deep learning, production ML |

Check notice on line 64 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L64

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 64, "column": 28}}}, "severity": "INFO"}

Check failure on line 64 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L64

[Google.Units] Put a nonbreaking space between the number and the unit in '01GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '01GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 64, "column": 31}}}, "severity": "ERROR"}
| **PyTorch** | ✅ Yes (6.44GB) | ❌ No | Research, computer vision |

Check notice on line 65 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L65

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 65, "column": 28}}}, "severity": "INFO"}

Check failure on line 65 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L65

[Google.Units] Put a nonbreaking space between the number and the unit in '44GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '44GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 65, "column": 31}}}, "severity": "ERROR"}
| **Scikit-learn** | ✅ Yes (1.18GB) | ✅ Yes (1.01GB) | Traditional ML, data analysis |

Check notice on line 66 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L66

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 66, "column": 28}}}, "severity": "INFO"}

Check failure on line 66 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L66

[Google.Units] Put a nonbreaking space between the number and the unit in '18GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '18GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 66, "column": 31}}}, "severity": "ERROR"}

Check notice on line 66 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L66

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 66, "column": 45}}}, "severity": "INFO"}

Check failure on line 66 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L66

[Google.Units] Put a nonbreaking space between the number and the unit in '01GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '01GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 66, "column": 48}}}, "severity": "ERROR"}
| **OpenVINO** | ✅ Yes (1.82GB) | ❌ No | Computer vision, inference |

Check notice on line 67 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L67

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 67, "column": 28}}}, "severity": "INFO"}

Check failure on line 67 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L67

[Google.Units] Put a nonbreaking space between the number and the unit in '82GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '82GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 67, "column": 31}}}, "severity": "ERROR"}
| **NumPy** | ✅ Yes (1.25GB) | ✅ Yes (1.08GB) | Scientific computing |

Check notice on line 68 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L68

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 68, "column": 28}}}, "severity": "INFO"}

Check failure on line 68 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L68

[Google.Units] Put a nonbreaking space between the number and the unit in '25GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '25GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 68, "column": 31}}}, "severity": "ERROR"}

Check notice on line 68 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L68

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 68, "column": 45}}}, "severity": "INFO"}

Check failure on line 68 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L68

[Google.Units] Put a nonbreaking space between the number and the unit in '08GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '08GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 68, "column": 48}}}, "severity": "ERROR"}
| **Matplotlib** | ✅ Yes (1.25GB) | ✅ Yes (1.08GB) | Data visualization |

Check failure on line 69 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L69

[Vale.Spelling] Did you really mean 'Matplotlib'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Matplotlib'?", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 69, "column": 5}}}, "severity": "ERROR"}

Check notice on line 69 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L69

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 69, "column": 28}}}, "severity": "INFO"}

Check failure on line 69 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L69

[Google.Units] Put a nonbreaking space between the number and the unit in '25GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '25GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 69, "column": 31}}}, "severity": "ERROR"}

Check notice on line 69 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L69

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 69, "column": 45}}}, "severity": "INFO"}

Check failure on line 69 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L69

[Google.Units] Put a nonbreaking space between the number and the unit in '08GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '08GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 69, "column": 48}}}, "severity": "ERROR"}

### Framework Details

Check warning on line 71 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L71

[Google.Headings] 'Framework Details' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Framework Details' should use sentence-style capitalization.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 71, "column": 5}}}, "severity": "WARNING"}

| Framework | Version | Description | TDX Support | SGX Support | Use Cases | Resources |

Check notice on line 73 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L73

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 73, "column": 84}}}, "severity": "INFO"}

Check notice on line 73 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L73

[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 73, "column": 98}}}, "severity": "INFO"}
| ---------------- | ----------- | --------------------------------------------- | ----------- | ------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **TensorFlow** | 2.19.0 | Google's ML framework for production AI | ✅ 3.01GB | ❌ Too large | Deep learning, CV, NLP | [Docs](https://www.tensorflow.org/) • [Quickstart](https://www.tensorflow.org/tutorials/quickstart/beginner) • [Docker](https://github.com/iExecBlockchainComputing/ai-frameworks-hello-world/tree/main/tensorflow) |

Check failure on line 75 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L75

[Google.Units] Put a nonbreaking space between the number and the unit in '01GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '01GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 75, "column": 88}}}, "severity": "ERROR"}

Check notice on line 75 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L75

[Google.Acronyms] Spell out 'NLP', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'NLP', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 75, "column": 137}}}, "severity": "INFO"}
| **PyTorch** | 2.7.0+cu126 | Facebook's research-focused DL framework | ✅ 6.44GB | ❌ Too large | Research, DL, CV, NLP | [Docs](https://pytorch.org/docs/) • [Quickstart](https://docs.pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html) • [Docker](https://github.com/iExecBlockchainComputing/ai-frameworks-hello-world/tree/main/pytorch) |

Check failure on line 76 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L76

[Google.Units] Put a nonbreaking space between the number and the unit in '44GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '44GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 76, "column": 88}}}, "severity": "ERROR"}

Check notice on line 76 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L76

[Google.Acronyms] Spell out 'NLP', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'NLP', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 76, "column": 136}}}, "severity": "INFO"}
| **Scikit-learn** | 1.6.1 | Comprehensive ML library for Python | ✅ 1.18GB | ✅ 1.01GB | Classification, regression, clustering | [Docs](https://scikit-learn.org/stable/) • [Examples](https://scikit-learn.org/stable/auto_examples/index.html) • [Docker](https://github.com/iExecBlockchainComputing/ai-frameworks-hello-world/tree/main/scikit) |

Check failure on line 77 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L77

[Google.Units] Put a nonbreaking space between the number and the unit in '18GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '18GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 77, "column": 88}}}, "severity": "ERROR"}

Check failure on line 77 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L77

[Google.Units] Put a nonbreaking space between the number and the unit in '01GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '01GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 77, "column": 101}}}, "severity": "ERROR"}
| **OpenVINO** | 2024.6.0 | Intel's high-performance AI inference toolkit | ✅ 1.82GB | ❌ Execution issues | Computer vision, inference | [Docs](https://docs.openvino.ai/) • [Tutorial](https://docs.openvino.ai/2023.3/notebooks/004-hello-detection-with-output.html) • [Docker](https://github.com/iExecBlockchainComputing/ai-frameworks-hello-world/tree/main/openvino) |

Check failure on line 78 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L78

[Vale.Terms] Use 'intel' instead of 'Intel'.
Raw output
{"message": "[Vale.Terms] Use 'intel' instead of 'Intel'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 78, "column": 36}}}, "severity": "ERROR"}

Check failure on line 78 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L78

[Google.Units] Put a nonbreaking space between the number and the unit in '82GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '82GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 78, "column": 88}}}, "severity": "ERROR"}
| **NumPy** | 2.0.2 | Fundamental package for scientific computing | ✅ 1.25GB | ✅ 1.08GB | Scientific computing, data analysis | [Docs](https://numpy.org/doc/) • [User Guide](https://numpy.org/doc/stable/user/index.html) • [Docker](https://github.com/iExecBlockchainComputing/ai-frameworks-hello-world/tree/main/numpy) |

Check failure on line 79 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L79

[Google.Units] Put a nonbreaking space between the number and the unit in '25GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '25GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 79, "column": 88}}}, "severity": "ERROR"}

Check failure on line 79 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L79

[Google.Units] Put a nonbreaking space between the number and the unit in '08GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '08GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 79, "column": 101}}}, "severity": "ERROR"}
| **Matplotlib** | 3.9.4 | Comprehensive library for data visualization | ✅ 1.25GB | ✅ 1.08GB | Data visualization, plotting | [Docs](https://matplotlib.org/) • [Gallery](https://matplotlib.org/stable/gallery/index.html) • [Docker](https://github.com/iExecBlockchainComputing/ai-frameworks-hello-world/tree/main/matplotlib) |

Check failure on line 80 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L80

[Vale.Spelling] Did you really mean 'Matplotlib'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Matplotlib'?", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 80, "column": 5}}}, "severity": "ERROR"}

Check failure on line 80 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L80

[Google.Units] Put a nonbreaking space between the number and the unit in '25GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '25GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 80, "column": 88}}}, "severity": "ERROR"}

Check failure on line 80 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L80

[Google.Units] Put a nonbreaking space between the number and the unit in '08GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '08GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 80, "column": 101}}}, "severity": "ERROR"}

## 🐳 Getting Started with Docker Examples

### What's Included

Our

Check warning on line 86 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L86

[Google.We] Try to avoid using first-person plural like 'Our'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'Our'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 86, "column": 1}}}, "severity": "WARNING"}
[AI Frameworks Hello World repository](https://github.com/iExecBlockchainComputing/ai-frameworks-hello-world)
provides ready-to-use examples:

```
ai-frameworks-hello-world/
├── tensorflow/ # TensorFlow 2.19.0 example
├── pytorch/ # PyTorch 2.7.0+cu126 example
├── scikit/ # Scikit-learn 1.6.1 example
├── openvino/ # OpenVINO 2024.6.0 example
├── numpy/ # NumPy 2.0.2 example
└── matplotlib/ # Matplotlib 3.9.4 example
```

### Quick Start Commands

Check warning on line 100 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L100

[Google.Headings] 'Quick Start Commands' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Quick Start Commands' should use sentence-style capitalization.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 100, "column": 5}}}, "severity": "WARNING"}

```bash
# Clone the repository
git clone https://github.com/iExecBlockchainComputing/ai-frameworks-hello-world.git
cd ai-frameworks-hello-world

# Try TensorFlow example
cd tensorflow
docker build -t hello-tensorflow .
docker run --rm hello-tensorflow

# Try PyTorch example
cd ../pytorch
docker build -t hello-pytorch .
docker run --rm hello-pytorch
```

### Features

- **✅ Isolated Testing**: Each framework runs in its own container
- **✅ Reproducible**: Consistent environment across systems
- **✅ TDX Ready**: All containers tested for Intel TDX compatibility

Check notice on line 122 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L122

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 122, "column": 7}}}, "severity": "INFO"}

Check failure on line 122 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L122

[Vale.Terms] Use 'intel' instead of 'Intel'.
Raw output
{"message": "[Vale.Terms] Use 'intel' instead of 'Intel'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 122, "column": 46}}}, "severity": "ERROR"}

Check notice on line 122 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L122

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 122, "column": 52}}}, "severity": "INFO"}
- **✅ Easy Deployment**: Simple build and run commands

## 📊 Technology Comparison

### TDX vs SGX for AI

Check notice on line 127 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L127

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 127, "column": 5}}}, "severity": "INFO"}

Check warning on line 127 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L127

[Google.Headings] 'TDX vs SGX for AI' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'TDX vs SGX for AI' should use sentence-style capitalization.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 127, "column": 5}}}, "severity": "WARNING"}

Check notice on line 127 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L127

[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 127, "column": 12}}}, "severity": "INFO"}

| Feature | Intel TDX | Intel SGX |

Check failure on line 129 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L129

[Vale.Terms] Use 'intel' instead of 'Intel'.
Raw output
{"message": "[Vale.Terms] Use 'intel' instead of 'Intel'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 129, "column": 27}}}, "severity": "ERROR"}

Check notice on line 129 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L129

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 129, "column": 33}}}, "severity": "INFO"}

Check failure on line 129 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L129

[Vale.Terms] Use 'intel' instead of 'Intel'.
Raw output
{"message": "[Vale.Terms] Use 'intel' instead of 'Intel'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 129, "column": 56}}}, "severity": "ERROR"}

Check notice on line 129 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L129

[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 129, "column": 62}}}, "severity": "INFO"}
| --------------------- | -------------------------- | ---------------------------------- |
| **Memory Limit** | Multi-GB+ | ~1.95GB |

Check failure on line 131 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L131

[Google.Units] Put a nonbreaking space between the number and the unit in '95GB'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '95GB'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 131, "column": 59}}}, "severity": "ERROR"}
| **Framework Support** | All major frameworks | Limited (Scikit-learn, NumPy) |

Check notice on line 132 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L132

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 132, "column": 64}}}, "severity": "INFO"}
| **Code Changes** | Minimal ("lift and shift") | Significant modifications required |

Check notice on line 133 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L133

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 133, "column": 35}}}, "severity": "INFO"}
| **Production Ready** | ✅ Yes | ⚠️ Limited |
| **AI Workloads** | ✅ Excellent | ❌ Restricted |

### Recommendations

#### For Production AI Applications

Check warning on line 139 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L139

[Google.Headings] 'For Production AI Applications' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'For Production AI Applications' should use sentence-style capitalization.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 139, "column": 6}}}, "severity": "WARNING"}

- **Use TDX** for TensorFlow, PyTorch, and OpenVINO

Check notice on line 141 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L141

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 141, "column": 9}}}, "severity": "INFO"}
- **Use SGX** for lightweight ML with Scikit-learn and NumPy

Check notice on line 142 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L142

[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 142, "column": 9}}}, "severity": "INFO"}

#### For Development and Testing

Check warning on line 144 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L144

[Google.Headings] 'For Development and Testing' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'For Development and Testing' should use sentence-style capitalization.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 144, "column": 6}}}, "severity": "WARNING"}

- **Start with SGX** for simple ML tasks

Check notice on line 146 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L146

[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 146, "column": 16}}}, "severity": "INFO"}
- **Migrate to TDX** for complex AI workloads

Check notice on line 147 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L147

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 147, "column": 16}}}, "severity": "INFO"}

## 📚 Next Steps

### Learn TEE Technologies

Check warning on line 151 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L151

[Google.Headings] 'Learn TEE Technologies' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Learn TEE Technologies' should use sentence-style capitalization.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 151, "column": 5}}}, "severity": "WARNING"}

Check notice on line 151 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L151

[Google.Acronyms] Spell out 'TEE', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TEE', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 151, "column": 11}}}, "severity": "INFO"}

- **[Intel SGX Technology](/get-started/protocol/tee/intel-sgx)** - SGX

Check failure on line 153 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L153

[Vale.Terms] Use 'intel' instead of 'Intel'.
Raw output
{"message": "[Vale.Terms] Use 'intel' instead of 'Intel'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 153, "column": 6}}}, "severity": "ERROR"}

Check notice on line 153 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L153

[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 153, "column": 12}}}, "severity": "INFO"}

Check notice on line 153 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L153

[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 153, "column": 69}}}, "severity": "INFO"}
limitations and capabilities
- **[Intel TDX Technology](/get-started/protocol/tee/intel-tdx)** - TDX

Check failure on line 155 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L155

[Vale.Terms] Use 'intel' instead of 'Intel'.
Raw output
{"message": "[Vale.Terms] Use 'intel' instead of 'Intel'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 155, "column": 6}}}, "severity": "ERROR"}

Check notice on line 155 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L155

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 155, "column": 12}}}, "severity": "INFO"}

Check notice on line 155 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L155

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 155, "column": 69}}}, "severity": "INFO"}
advantages for AI
- **[SGX vs TDX Comparison](/get-started/protocol/tee/sgx-vs-tdx)** - Detailed

Check notice on line 157 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L157

[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'SGX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 157, "column": 6}}}, "severity": "INFO"}

Check notice on line 157 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L157

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 157, "column": 13}}}, "severity": "INFO"}
comparison

### Build AI Applications

Check warning on line 160 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L160

[Google.Headings] 'Build AI Applications' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Build AI Applications' should use sentence-style capitalization.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 160, "column": 5}}}, "severity": "WARNING"}

- **[Build & Deploy](/guides/build-iapp/build-&-deploy)** - Create your first AI
application

Check warning on line 163 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L163

[Google.WordList] Use 'app' instead of 'application'.
Raw output
{"message": "[Google.WordList] Use 'app' instead of 'application'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 163, "column": 3}}}, "severity": "WARNING"}
- **[Build Intel TDX App](/guides/build-iapp/advanced/create-your-first-tdx-app)** -

Check failure on line 164 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L164

[Vale.Terms] Use 'intel' instead of 'Intel'.
Raw output
{"message": "[Vale.Terms] Use 'intel' instead of 'Intel'.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 164, "column": 12}}}, "severity": "ERROR"}
TDX applications for AI workloads

Check notice on line 165 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L165

[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TDX', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 165, "column": 3}}}, "severity": "INFO"}
- **[Inputs and Outputs](/guides/build-iapp/inputs-and-outputs)** - Handle data
flow in TEE environment

Check notice on line 167 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L167

[Google.Acronyms] Spell out 'TEE', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'TEE', if it's unfamiliar to the audience.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 167, "column": 11}}}, "severity": "INFO"}

### Explore Examples

Check warning on line 169 in src/protocol/ai.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/ai.md#L169

[Google.Headings] 'Explore Examples' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Explore Examples' should use sentence-style capitalization.", "location": {"path": "src/protocol/ai.md", "range": {"start": {"line": 169, "column": 5}}}, "severity": "WARNING"}

- **[AI Frameworks Hello World](https://github.com/iExecBlockchainComputing/ai-frameworks-hello-world)** -
Ready-to-use Docker examples
- **[iExec Discord](https://discord.com/invite/pbt9m98wnU)** - Community support
- **[Protocol Documentation](https://protocol.docs.iex.ec)** - Technical deep
dive