私たちの世界では、行列や基底という概念が非常に重要です。特に、機械学習において行列乗算は必須の操作とされています。
エンジニアリングの学生だった頃、線形代数の授業で初めて行列や固有ベクトル、正規直交基底について学んだときのことが忘れられません。最初はとても混乱しましたが、行列や基底にこだわる理由、良い基底がどれほど重要かについて理解し始めると、線形代数の魅力に取りつかれました。
コンピュータサイエンスの視点から見ると、行列を効率的に扱うために開発されてきたアルゴリズムは驚異的です。行列とベクトルの積は比較的単純ですが、行列同士、あるいはテンソル同士の積はさらに複雑です。このため、行列乗算を最適化する多くの方法論が開発されてきました。
この記事では、効率的な行列乗算を求める過程におけるアプローチと、それらの背景にある線形代数の魅力について、Rustプログラミング言語を例に挙げながら解説します。
出典 : Writing LLMs in Rust: Looking for an Efficient Matrix Multiplication https://towardsdatascience.com/writing-llms-in-rust-looking-for-an-efficient-matrix-multiplication-e9539b0cb9d3