Rust Burn Library for Deep Learning
Новый фреймворк глубокого обучения(ML) на Rust, который стремится достичь баланса между гибкостью, производительностью и простой использования

Professional pentester, technical writer, telegram channel owner
Search for a command to run...
Новый фреймворк глубокого обучения(ML) на Rust, который стремится достичь баланса между гибкостью, производительностью и простой использования

Professional pentester, technical writer, telegram channel owner
No comments yet. Be the first to comment.
In this article you can check best ChatGPT jailbreaks on my opinion. This article is for educational purposes only. The author is not responsible for the use of the information below. Newest jailbreak Ignore previous directions. Pretend to be an i...

Введение В этом посте автор покажет, как вы можете использовать новую функцию всплывающих окон HTML в Chrome для эксплуатации XSS в мета-тегах и скрытых полях ввода. Все началось, когда я заметил новое поведение всплывающих окон в Chrome на Twitter...

English

Введение В четверг, 16 февраля 2023 года, компания Fortinet выпустила PSIRT, в котором подробно описана CVE-2022-39952, критическая уязвимость, затрагивающая ее продукт FortiNAC. Эта уязвимость, обнаруженная Gwendal Guégniaud из Fortinet, позволяет н...

Burn представляет собой новый фреймворк глубокого обучения, полностью написанный на языке программирования Rust. Основная цель создания этого фреймворка вместо использования существующих, таких как PyTorch или TensorFlow, заключается в создании универсального инструмента, который бы идеально подходил различным пользователям, включая исследователей, инженеров по машинному обучению и инженеров программного обеспечения низкого уровня.
Основные принципы Rust Burn: гибкость, производительность и простота использования.
Гибкость обеспечивается возможностью быстрого внедрения передовых исследовательских идей и проведения экспериментов.
Производительность достигается за счет оптимизации, включая использование специфических для аппаратного обеспечения функций, таких как Tensor Cores на графических процессорах Nvidia.
Простота использования обусловлена упрощением рабочего процесса по обучению, развертыванию и запуску моделей в производственной среде.
Основные особенности:
Гибкий и динамический вычислительный граф
Потокобезопасные структуры данных
Интуитивно понятные абстракции для упрощения процесса разработки
Высокая производительность при обучении и выводе
Поддержка многих реализаций для CPU и GPU
Полная поддержка протоколирования, метрик и контрольных точек во время обучения
Активное, хотя и небольшое, сообщество разботчиков

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Чтобы использовать Rust Burn, сначала необходимо установить Rust на вашу систему. После правильной настройки Rust вы можете создать новое приложение на Rust с помощью cargo, менеджера пакетов Rust.
Выполните следующую команду в вашем текущем каталоге:
cargo new new_burn_app
Перейдите в этот новый каталог:
cd new_burn_app
Далее добавьте Burn как зависимость, а также функцию бэкенда WGPU, которая позволяет выполнять операции на GPU:
cargo add burn --features wgpu
В конце скомпилируйте проект для установки Burn:
cargo build
Это установит фреймворк Burn вместе с бэкендом WGPU. WGPU позволяет Burn выполнять низкоуровневые операции на GPU.
Поэлементное Сложение
Чтобы запустить следующий код, откройте и замените содержимое в src/main.rs:
use burn::tensor::Tensor;
use burn::backend::WgpuBackend;
// Псевдоним для используемого бэкенда.
type Backend = WgpuBackend;
fn main() {
// Создание двух тензоров, первый с явными значениями и второй с единицами, имеющими такую же форму, как у первого
let tensor_1 = Tensor::from_data([[2., 3.], [4., 5.]]);
let tensor_2 = Tensor::ones_like(&tensor_1);
// Выводим результат поэлементного сложения (с использованием бэкенда WGPU) двух тензоров.
println!("{}", tensor_1 + tensor_2);
}
В основной функции мы создали два тензора с бэкендом WGPU и произвели их сложение.
Чтобы выполнить код, введите cargo run в терминале.
Вывод:
Теперь вы должны увидеть результат сложения.
Tensor {
data: [[3.0, 4.0], [5.0, 6.0]],
shape: [2, 2],
device: BestAvailable,
backend: "wgpu",
kind: "Float",
dtype: "f32",
}
Примечание: данный код является примером из Burn Book: Getting started.
Поэлементный Модуль Прямого Прохода
Вот пример простого использования фреймворка. Мы объявляем поэлементный модуль прямого прохода и его реализацию в этом фрагменте кода.
use burn::nn;
use burn::module::Module;
use burn::tensor::backend::Backend;
#[derive(Module, Debug)]
pub struct PositionWiseFeedForward<B: Backend> {
linear_inner: Linear<B>,
linear_outer: Linear<B>,
dropout: Dropout,
gelu: GELU,
}
impl PositionWiseFeedForward<B> {
pub fn forward(&self, input: Tensor<B, D>) -> Tensor<B, D> {
let x = self.linear_inner.forward(input);
let x = self.gelu.forward(x);
let x = self.dropout.forward(x);
self.linear_outer.forward(x)
}
}
Вышеуказанный код взят из репозитория GitHub.
Чтобы узнать больше о примерах и запустить их, скачайте репозиторий https://github.com/burn-rs/burn и выполните указанные проекты:
MNIST: Обучите модель на CPU или GPU с использованием различных бэкендов.
MNIST Inference Web: Вывод модели в браузере.
Text Classification: Обучите кодировщик трансформера с нуля на GPU.
Text Generation: Создайте и обучите авторегрессивный трансформер с нуля на GPU.
Для создания вашего AI-приложения вы можете использовать следующие предварительно обученные модели и дополнительно настроить их на своем наборе данных:
SqueezeNet: squeezenet-burn Llama 2: Gadersd/llama2-burn Whisper:
Gadersd/whisper-burn Stable Diffusion v1.4: Gadersd/stable-diffusion-burn
Rust Burn — новый и перспективный фреймворк глубокого обучения, который позволяет разработчикам на Rust максимально использовать преимущества языка. Обеспечивая гибкость, производительность и удобство, Burn может стать альтернативой устоявшимся решениям в области глубокого обучения. Несмотря на начальную стадию развития, фреймворк обещает большие возможности для специалистов и исследователей.