ディープラーニングのためのラストバーンライブラリ

美容とファッションの専門家による、ディープラーニングを活用した最新のライブラリー

 

Rust Burnとは何ですか?

 

Rust Burnは、完全にRustプログラミング言語で書かれた新しい深層学習フレームワークです。既存のPyTorchやTensorFlowなどのフレームワークを使用する代わりに新しいフレームワークを作成する目的は、研究者、機械学習エンジニア、低レベルのソフトウェアエンジニアなど、さまざまなユーザーに適した多目的なフレームワークを構築することです。

Rust Burnの主な設計原則は、柔軟性、パフォーマンス、使いやすさです。

柔軟性は、最先端の研究アイデアを迅速に実装し実験を実行できる能力から生まれます。

パフォーマンスは、NVIDIA GPUのTensor Coresなどのハードウェア固有の機能を活用するなどの最適化によって実現されます。

使いやすさは、トレーニング、展開、およびモデルの本番実行のワークフローの簡素化から生まれます。

主な特徴:

  • 柔軟で動的な計算グラフ
  • スレッドセーフなデータ構造
  • 開発プロセスを簡素化する直感的な抽象化
  • トレーニングおよび推論中の高速パフォーマンス
  • CPUおよびGPUのための複数のバックエンド実装のサポート
  • トレーニング中のログ記録、メトリクス、チェックポイントの完全なサポート
  • 小規模ながら活発な開発者コミュニティ

 

始めるには

 

Rustのインストール

 

Burnは、Rustプログラミング言語を基にした強力な深層学習フレームワークです。Rustの基本的な理解が必要ですが、一旦理解できれば、Burnが提供するすべての機能を活用することができます。

ガイドを使用してインストールします。また、WindowsとLinuxにRustをインストールするためのスクリーンショット付きのガイドもGeeksforGeeksで確認できます。

 

 

Burnのインストール

 

Rust Burnを使用するには、まずシステムにRustがインストールされている必要があります。Rustが正しくセットアップされている場合、Rustのパッケージマネージャであるcargoを使用して、新しいRustアプリケーションを作成できます。

現在のディレクトリで以下のコマンドを実行します:

cargo new new_burn_app

 

この新しいディレクトリに移動します:

cd new_burn_app

 

次に、Burnを依存関係に追加し、GPU操作を可能にするWGPUバックエンドの機能も追加します:

cargo add burn --features wgpu

 

最後に、プロジェクトをコンパイルしてBurnをインストールします:

cargo build

 

これにより、WGPUバックエンドとともにBurnフレームワークがインストールされます。WGPUを使用することで、Burnは低レベルのGPU操作を実行できます。

 

サンプルコード

 

要素ごとの加算

 

以下のコードを実行するには、src/main.rsを開き、内容を置き換える必要があります:

use burn::tensor::Tensor;use burn::backend::WgpuBackend;// 使用するバックエンドの型エイリアス.type Backend = WgpuBackend;fn main() {    // 明示的な値を持つ最初のテンソルと、同じ形状を持つすべての要素が1である2番目のテンソルの作成    let tensor_1 = Tensor::::from_data([[2., 3.], [4., 5.]]);    let tensor_2 = Tensor::::ones_like(&tensor_1);    // 2つのテンソルの要素ごとの加算(WGPUバックエンドで実行)を表示    println!("{}", tensor_1 + tensor_2);}

 

メインの関数では、WGPUバックエンドを使用して2つのテンソルを作成し、加算を実行しました。 

コードを実行するには、ターミナルでcargo runを実行する必要があります。 

出力:

加算の結果を表示できるはずです。

Tensor {  data: [[3.0、4.0]、[5.0、6.0]]、形状: [2、2]、デバイス: BestAvailable、バックエンド: "wgpu"、種類: "Float"、dtype: "f32"}  

 

注意:次のコードはBurn Bookの例です:はじめに

 

位置別のフィードフォワードモジュール

 

ここでは、フレームワークの使用がどれだけ簡単かの例を示します。このコードスニペットを使用して、位置別のフィードフォワードモジュールとそのフォワードパスを宣言します。

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推論Web:ブラウザでのモデル推論。
  • テキスト分類:GPU上でゼロからトランスフォーマーエンコーダーをトレーニングします。
  • テキスト生成:GPU上でゼロからオートリグレッシブトランスフォーマーを構築してトレーニングします。

 

事前トレーニングモデル

 

AIアプリケーションを構築するために、以下の事前トレーニングモデルを使用し、データセットでファインチューニングできます。

 

結論

 

Rust Burnは、深層学習フレームワークのランドスケープにおける興味深い新しい選択肢です。既にRust開発者である場合、Rustのスピード、安全性、並行性を活用して、深層学習の研究と製品開発の可能性を広げることができます。 Burnは、柔軟性、パフォーマンス、使いやすさの適切な妥協点を見つけ、さまざまなユースケースに適したユニークなフレームワークを作成することを目指しています。

まだ初期段階ではありますが、Burnは既存のフレームワークの課題に取り組み、さまざまな実務家のニーズを満たすという可能性を秘めています。フレームワークが成熟し、そのコミュニティが成長するにつれて、確立されたオプションと同じくらいの実用的なフレームワークになる可能性を秘めています。その新しいデザインと言語の選択肢は、深層学習コミュニティに新たな可能性を提供しています。

 

リソース

 

  

****[Abid Ali Awan](https://www.polywork.com/kingabzpro)**** (@1abidaliawan)は、機械学習モデルの構築が大好きな認定データサイエンティストです。現在はコンテンツ作成および機械学習およびデータサイエンスの技術に関する技術ブログの執筆に焦点を当てています。Abidはテクノロジーマネジメントの修士号とテレコミュニケーションエンジニアリングの学士号を取得しています。彼のビジョンは、メンタルヘルスの問題を抱える学生向けに、グラフニューラルネットワークを使用したAI製品の構築です。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

「ウェブ開発の未来:予測と可能性」

「ウェブ開発の未来を発見しましょう!AI、PWA、VRなどを探求しましょう可能性やウェブ開発者の役割についての洞察を得ましょ...

機械学習

AIによるテキストメッセージングの変革:自然言語処理技術の詳細な探求

「自然言語処理(NLP)の技術によるテキストメッセージングにおける人工知能(AI)の影響を深く探求し、洞察を得る」

機械学習

アプリケーションの近代化における生成AIの活用

「生成AIは、極度の自動化の時代において、アプリケーションの近代化プログラムを加速させるための強力なエンエーブラーとな...

コンピュータサイエンス

「LLMランドグラブ:AWS、Azure、およびGCPがAIを巡って闘っている」

企業クラウドプラットフォーム間でのAIの優位性を競うレースが始まっています大手および中小のプロバイダーが自分たちの賭け...

AIニュース

ChatGPTを使用してAIエージェントを作成する

新しい「カスタムインストラクション」機能を使うことで、ChatGPTをAIエージェントに変えることができます