post
MambaをPoetryで管理する
· ☕ 1 min read
リンク集 Mamba: Linear-Time Sequence Modeling with Selective State Spaces https://github.com/state-spaces/mamba https://github.com/Dao-AILab/causal-conv1d 備忘録 mamba-ssmやcausal-conv1dがPEP517に準拠していないのでpoetry add <package-name>だとインスコできない poetry add <path>でもsetup.py読んでくれないからムリ → 無理やりローカルでwheelを作ってpoetry addすれば ...

bfloatとは何か
· ☕ 1 min read
double vs fp32 vs fp16 vs bfp16 double (64bit) 1/11/52 = 64 fp32 -> float (32bit) 1 / 8 / 23 = 32 fp16 -> float (16bit) 1 / 5 / 10 = 16 IEEEで規格化 bfloat16 1 / 8 / 7 = 16 指数部をfp32に合わせている 仮数部は実質的な有効数字 (粒度) を決めて,指数部は値のrangeを決めるので,仮数部を減らして指数部を増やすことで,取りうる値のrangeを最大化してあげる (仮数部) x 2^(指数部) 2^() ...


【poetry】poetry updateが終わらない(気がする)とき
· ☕ 1 min read
pyproject.tomlで変な制約を付けていると,poetry updateで依存関係の解決が終わらないことがある. とりあえず poetry update -vvvでverbose mode (mode 3)で出力しましょう. 大抵は無限にバージョンを遡って行っているパターンが多い. 目で追っていくと,やたらとバージョンを探索しているライブラリだったり,頻出するライ ...

CPU = ALU + Register + L{1..3} Cache + etc
· ☕ 1 min read
CPUの主な構成要素は以下の通り: ALU(Arithmetic Logic Unit,算術論理演算装置): ALUは,レジスタから読み出されたオペランド(操作対象のデータ)とオプコード(操作を指示するコード)を用いて,算術計算や論理演算を行う. レジスタ: レジスタは,高速な小容量の記憶装置で,CPU内で直接アクセスされるデータや指令を ...

【Computer Science】知っておくべき数字一覧
· ☕ 1 min read
分岐予測の失敗 → 5ns L1 / L2キャッシュ→ 0.5ns / 7ns L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns Mutex lock/unlock 100 ns Main memory reference 100 ns Compress 1K bytes with Zippy 10,000 ns 0.01 ms Send 1K bytes over 1 Gbps network 10,000 ns 0.01 ms Read 1 MB sequentially from memory 250,000 ns 0.25 ms Round trip within same datacenter 500,000 ns 0.5 ms Disk seek 10,000,000 ns 10 ms Read 1 MB sequentially from network 10,000,000 ns 10 ms Read 1 MB sequentially from disk 30,000,000 ns 30 ms Send packet CA->Netherlands->CA 150,000,000 ns 150 ms Where 1 ns = 10-9 seconds 1 ms = 10-3 seconds 引用: “Numbers Everyone Should Know” from Jeff Dean. doubleのbit数 MSB・指数・仮数で1 ...


【k8s・DDP】クラスタ上でのtorch.loadが遅い
· ☕ 3 min read
概要 巨大なembeddingをチャンクで外部に保存し,DDP(Distributed Data Parallel)を使った学習時に各GPUで読み込みたい そんなときtorch.load(path, map_location=f"cuda:{rank}")にかかる時間の分散が大きい場合がある 前提: torch.loa ...

ABCIで任意のDockerイメージを使用する
· ☕ 3 min read
前提: ABCIとは AI橋渡しクラウド(AI Bridging Cloud Infrastructure、以下「ABCI」という)は、国立研究開発法人 産業技術総合研究所が構築・運用する、AI技術開発・橋渡しのためのオープンな計算インフラストラクチャです。ABCIは、2018年8月に本格運用を開始し、2021年5月にABCI 2.0にアップグレードされ ...


【ECDH・aes128gcm】MissCatの通知システムについて
· ☕ 8 min read
こんにちは.論文執筆真っ最中のYuWdです. 最近,研究および論文執筆のタスクが落ち着いてきたのでMissCatの改修をボチボチ行っています. (MissCatとはiOS向けのMisskeyクライアント) 改修に着手するにあたって,まずは通知システムを直すところに目星をつけたのですが,昔の自堕落(ドキュメントを書かない性分) ...

ReduxとSwiftUIについて
· ☕ 3 min read
Redux 状態は複数のView, Controllerが相互に依存するので管理が難しい そこで,相互にイベントを発火させるのをやめて,単一方向にのみ状態が流れるように ユーザ操作で変数が変更→変更を検知したらレンダリング → flux さらに,変数変更とレンダリングの間に更新ロジックを挟むのがRedux Reduxはグローバルな状態を管理するのが ...

【LangChain】Agentの仕組みを理解して, 任意のLLMを使用する
· ☕ 3 min read
OpenAIの提供するGPT-3には何種類かある text-davinci-003 / text-curie-001 / text-babbage-001 / text-ada-001 特にLangChainでは最も性能の良いtext-davinci-003が使用されている. だが,APIは金が掛かるのでなるだけフリーのLLMが使いたい → transformers-openai-api等で偽サーバを建てて,APIのオリジンをすり替えると任意のL ...

【合格体験記】1週間程度で応用情報に受かるコツ
· ☕ 8 min read
はじめに この記事は慶應理工アドベントカレンダー2022の25日目の記事です. ← 24日目 (アドカレが全て埋まってくれて非常に嬉しい!!!) 導入 はじめましての方、はじめまして。2019年に慶應理工へ入学し、その後情報工学科に進学して今現在B4、無事ストレートでの卒業ができそうなYuWdと申します。 この度、なぜか10日程度の ...

Distance CorrelationとPartial Distance Correlation について
· ☕ 4 min read
概要 pearsonの相関係数は線形な関係しか捉えることが出来ない. そこで, 点同士の距離を用いたDistance Correlationという相関係数が提案された. さらに, Distance Correlationを拡張し, 内積の期待値が共分散の二乗となるようなヒルベルト空間を定義したPartial Distance Correlationが提案されている. ...