DeepLearningにおける分散処理ではSPMDに基づいてバッチ分割を行うことが多い一方で、大規模モデルを取り扱うにあたってはメモリの制約などの課題があります。当記事では上記の解決にあたって用いられるModel-Pa…
Hello Statisticians!
DeepLearningにおける分散処理ではSPMDに基づいてバッチ分割を行うことが多い一方で、大規模モデルを取り扱うにあたってはメモリの制約などの課題があります。当記事では上記の解決にあたって用いられるModel-Pa…
確率分布の類似度を計算するにあたってKLダイバージェンスが用いられることが多いですが、式の解釈は抽象的で理解が難しいです。当記事ではKLダイバージェンスの概略が把握できるように通常の確率化とSoftmax関数による確率化…
Transformerに基づくLLMの学習にあたっては多くの文書を用いる一方で、単語をそのまま取り扱うとEmbedding処理のパラメータ数が増大します。当記事ではこの解決にあたって用いられる手法の$1$つであるBPE(…
最適化問題を解く際に勾配法などがよく用いられますが、多次元空間上における勾配法などを用いる際には取り得る範囲内でどのステップ幅が良いかを検討する場合があります。この際によく用いられるのが直線探索(line search)…
共役勾配法(Conjugate Gradient Method)は等高線が同心楕円で表される場合の最適化にあたって有用な手法です。当記事では具体的な二次形式に対して共役勾配法を元に最適化を行う流れをPythonを用いて計…
プログラミングを学んだり、自分で何かしらのコードを書こうと思った際に、開発環境の構築に手間取るケースは意外と多いと思います。また、ある程度プログラミング慣れてくると、利用しているライブラリのバージョン不整合でつまづくケー…
SciPyはNumPyに基づくライブラリであり、統計学に関するプログラムでは乱数生成の際などによく用います。使用方法の詳細に関しては都度調べれば十分である一方で基本的な用法に関しては抑えておくと良いので、当記事ではSci…
集合と要素や集合に基づいて必要条件・十分条件・必要十分条件などを取り扱う際に用いると良いのがベン図(Venn diagrams)です。当記事ではPythonを用いてベン図を描画するにあたって、matplotlib-ven…
$2$変数関数の描画を手動で行う場合はなかなか難しいのでPythonのようなプログラム言語を用いる描画法を抑えておくと様々な所で役に立ちます。当記事ではnumpy.meshgridとmatplotlib.pyplotのい…
ローゼンブロック関数(Rosenbrock function)は主に$2$変数で表される関数で、シンプルな数式である一方で等高線が複雑になることから最適化アルゴリズムのベンチマークなどに用いられます。当記事ではローゼンブ…