python
Issue Date: 2025-08-19 [Paper Note] Efficient Memory Management for Large Language Model Serving with PagedAttention, Woosuk Kwon+, SOSP'23 GPT Summary- PagedAttentionを用いたvLLMシステムを提案し、KVキャッシュメモリの無駄を削減し、リクエスト間での柔軟な共有を実現。これにより、同レベルのレイテンシでLLMのスループットを2-4倍向上。特に長いシーケンスや大規模モデルで効果が顕著。ソースコードは公開中。 Comment
(今更ながら)vLLMはこちら:
https://github.com/vllm-project/vllm
現在の主要なLLM Inference/Serving Engineのひとつ。
#EfficiencyImprovement #Pocket #NLP #LanguageModel #LLMServing #read-later #Inference
Issue Date: 2025-06-12 [Paper Note] SARATHI: Efficient LLM Inference by Piggybacking Decodes with Chunked Prefills, Amey Agrawal+, arXiv'23 GPT Summary- SARATHIは、LLMの推論効率を向上させる手法で、プレフィルリクエストをチャンクに分割し、デコードマキシマルバッチを構築することで計算利用率を最大化します。これにより、デコードスループットを最大10倍向上させ、エンドツーエンドスループットも改善。特に、A6000 GPU上のLLaMA-13Bモデルで顕著な性能向上を示し、パイプラインバブルを大幅に削減しました。 Comment
vLLMでも採用されている `Chunked Prefills` と `Decode-Maximal Batching` を提案している。

#RecommenderSystems #Tutorial #Infrastructure #Slide
Issue Date: 2021-10-21 コミュニティサービスにおけるレコメンデーションの変遷とMLパイプラインについて, PyCon'21 Comment
・ママ向けのQ&AサービスにおけるレコメンドとMLパイプラインについて紹介
◆レコメンドエンジンの変遷
・Tensorflowで実装したMFから始まり、その後トピックを絞り込んだ上で推薦するためにLDAを活用したレコメンド、最終的にSoftmax Recommendationを開発
* Softmax Recommendation:
https://developers.google.com/machine-learning/recommendation/dnn/softmax
* ユーザプロファイル(e.g. 行動ベクトル, ユーザの属性情報)等を入力とし、hidden layerをかませて最終的にアイテム次元数分のスコアベクトルを得る手法
* 行動ベクトル=ユーザが過去にクリックしたQ&Aだが、質問ベクトルを得るために内容テキストは利用せず行動ログ+word2vecで学習
* 類似質問検索による定性評価の結果良い結果、関連質問を抽出できるベクトルとなっていることを確認
→ レコメンド手法の変遷につれ、ベンチマークを上回るようになっていった
◆MLパイプラインについて
・AWS Step FunctionsとAmazon Sagemakerを利用
・AWS Step Functions
* AWS上の様々なサービスをワークフローとして定義できる(json形式でワークフローを記述)
・Amazon Sagemaker
* 機械学習向けのIDE
* notebook上でのデータ分析・モデル学習、実験管理や学習済みモデルのデプロイが可能
* Sagemaker Processingを用いることで、実行したい処理やインスタンスタイプを指定することで、notebookとは別の実行環境(コンテナ)で任意のpythonスクリプトを実行可
・ワークフローの定義=AWS Stepfunctions, スクリプト実行のリソース=Sagemaker Processingとして利用
MLパイプラインについては下記資料により詳しい情報が書かれている
https://speakerdeck.com/takapy/sagemaker-studiotostep-functionswoyong-itemlopshefalse-bu-wota-michu-sou
元ポスト:
ポイント解説:
vLLMにおいてinferenceをdeterministicにする方法が、vLLMのissue number 24583に記載されているので参照のこと。
transformersでの実装例:
#Article #NLP #LanguageModel #Blog #LLMServing #read-later #Selected Papers/Blogs Issue Date: 2025-09-03 Inside vLLM: Anatomy of a High-Throughput LLM Inference System, Aleksa Gordić blog, 2025.08 Comment
めっちゃ良さそう
#Article #EfficiencyImprovement #LanguageModel #Blog #LLMServing #Decoding #SpeculativeDecoding Issue Date: 2025-08-21 vLLMのSpeculative Decodingによる推論高速化を試す, Aratako, 2025.05 #Article #NLP #ReinforcementLearning #Repository #GRPO #On-Policy #MinimalCode Issue Date: 2025-08-19 reasoning-minimal, torotoki, 2025.08 Comment
TRLのGRPOTrainer、および独自定義のReward(フォーマット/acc)を用いたミニマルなGRPOの実装。GRPOを実施する際には参照のこと。
#Article #EfficiencyImprovement #NLP #Attention #Repository #read-later #MinimalCode Issue Date: 2025-08-19 simple-paged-attention, torotoki, 2025.06 <span class=\"snippet\">Comment
CUDA + C++によるミニマルなpaged-attentionの実装。アルゴリズムの理解+実装理解の参考に非常に良さそう。
PagedAttentionは 現在の主要なLLM Inference/Serving EngineのひとつであるvLLM で(提案|実装)された技術であり、元論文は下記:
- <a href=\"https://github.com/AkihikoWatanabe/paper\_notes/issues/2474\" target=\"\_blank\" rel=\"noopener noreferrer\">\[Paper Note] Efficient Memory Management for Large Language Model Serving with PagedAttention, Woosuk Kwon+, SOSP'23</a>
この辺もあわせて読むとおもしろいかもしれない:
https://nttdocomo-developers.jp/entry/2024/12/19/090000_6
#Article #EfficiencyImprovement #LanguageModel #Library #LLMServing Issue Date: 2025-08-03 LMCache, LMCache, 2025.07 Comment
元ポスト:
KV Cacheを色々なところにキャッシュしておいて、prefixだけでなく全てのreused可能なものをキャッシュすることで、TTFTとスループットを大幅に向上するらしい。特にlong contextなタスクで力を発揮し、vLLMと組み合わせると下記のようなパフォーマンス向上結果
#Article #LLMAgent #project_template #Coding #SoftwareEngineering Issue Date: 2025-07-26 Python Template for Claude Code (Cookiecutter), zerebom, 2025.07 Comment
元ポスト:
#Article #NLP #LanguageModel #Blog #Repository #LLMServing #MinimalCode Issue Date: 2025-06-22 Nano-vLLM, GeeeekExplorer, 2025.06 Comment
元ポスト:
vLLMと同等のinference speedを実現するミニマムでクリーンな実装。勉強用に良さそう。
#Article #NLP #LLMServing Issue Date: 2025-06-20 Mirage Persistent Kernel: Compiling LLMs into a MegaKernel, 2025.06 Comment
vLLM, SGLangよりもデコーディングが早い模様(図は下記ブログより引用)
ブログ:
https://zhihaojia.medium.com/compiling-llms-into-a-megakernel-a-path-to-low-latency-inference-cf7840913c17
元ポスト:
#Article #NLP #LanguageModel #Library #ReinforcementLearning Issue Date: 2025-05-16 verl: Volcano Engine Reinforcement Learning for LLMs, ByteDance Seed Team, 2025.04 Comment
SoTAなRLアルゴリズムを数行のコードで実装可能で、Sequence Parallelismがサポートされているので長い系列を扱える。FSDP, Megatron-LM,vLLM,SGLangなどとシームレスに統合できるっぽい?
注意点(超重要):
inference backend(ブログ中ではvLLM, SGLangなどを仮定。ロールアウトに利用する)とtrainingのbackend(モデルを学習するフレームワーク, FSDPなどを仮定する)のミスマッチによってトークンの生起確率に差が生じ、ポリシーの更新がうまくいかなくなる。
- 論文では語られないLLM開発において重要なこと Swallow Projectを通して, Kazuki Fujii, NLPコロキウム, 2025.07
でも言われているように、ライブラリにはバグがあるのが普通なのね、、、。
#Article #MachineLearning #NLP #LanguageModel #Library #ReinforcementLearning #Reasoning Issue Date: 2025-03-02 Open Reasoner Zero, Open-Reasoner-Zero, 2024.02 GPT Summary- Open-Reasoner-Zeroは、推論指向の強化学習のオープンソース実装で、スケーラビリティとアクセスのしやすさに重点を置いています。AGI研究の促進を目指し、ソースコードやトレーニングデータを公開しています。 Comment
元ポスト:
#Article #LanguageModel Issue Date: 2025-02-12 Docling, DS4SD, 2024.07 Comment
Unstructuredとどちらが良いだろうか?
#Article #LanguageModel #LLMServing #Selected Papers/Blogs Issue Date: 2025-02-12 SGlang, sgl-project, 2024.01 GPT Summary- SGLangは、大規模言語モデルと視覚言語モデルのための高速サービングフレームワークで、バックエンドとフロントエンドの共同設計により迅速なインタラクションを実現します。主な機能には、高速バックエンドランタイム、柔軟なフロントエンド言語、広範なモデルサポートがあり、オープンソースの活発なコミュニティに支えられています。 Comment
- Open R1, HuggingFace, 2025.01
のUpdate2でMath Datasetの生成に利用されたLLM Servingフレームワーク。利用前と比較してスループットが2倍になったとのこと。
CPU, external storageを利用することでTTFTを改善するようになったようで、最大80%TTFTが削減されるとの記述がある。
(原理的には元来可能だが計算効率の最適化に基づく誤差によって実装上の問題で実現できていなかった) Deterministic Inferenceをサポート:
#Article #LanguageModel #Chain-of-Thought #StructuredData Issue Date: 2025-01-25 Structured Outputs OpenAI Platform, 2025.01 Comment
pydanticを用いて、CoT+構造化されたoutputを実施するサンプル
#Article #Blog Issue Date: 2025-01-04 pydantic-settingsで環境変数からもオプション引数を指定できるCLIを作る 〜サブコマンド篇〜, nikkie-ftnextの日記, 2025.01 Comment
pydantic-settingsを使ったCLI作成に関する記事。環境変数からオプションを指定できるので、コマンドライン引数を動的に柔軟に変更したい場合に便利そう
#Article #NLP #LLMAgent #Blog #API #ComputerUse Issue Date: 2025-01-04 browser-use やばいです, Syoitu, 2024.12 Comment
すごい手軽に使えそうだが、クローリング用途に使おうとするとhallucinationが起きた時に困るのでうーんと言ったところ。
#Article #NLP #LanguageModel #Library #Repository #API Issue Date: 2025-01-03 LiteLLM, BerriAI, 2023.08 Comment
様々なLLMのAPIを共通のインタフェースで呼び出せるライブラリ
- aisuite, andrewyng, 2024.11
とどちらがいいんだ・・・?
aisuiteのissueの113番のスレッドを見ると、
- LiteLLMはもはやLiteではなくなっており、コードベースの保守性が低い
- aisuiteは複数のLLMプロバイダーをシンプルに利用する方法を提供する
- 今後発表されるロードマップを見れば、LiteLLMとの差別化の方向性が分かるはずだ
といった趣旨のことが記述されていた。
#Article #NLP #LanguageModel #Library #Repository #API Issue Date: 2024-11-28 aisuite, andrewyng, 2024.11 Comment
複数のLLM Providerの呼び出しを共通のインタフェースで呼び出せる。変更するのは、モデルを指定するパラメータのみ。
元ポスト:
https://www.linkedin.com/posts/andrewyng_announcing-new-open-source-python-package-activity-7266851242604134400-Davp?utm_source=share&utm_medium=member_ios
#Article #Library Issue Date: 2024-10-07 Streamlit, 2020.12 Comment
データを用いたアプリを簡単に作れるpythonライブラリ
データ/モデルを用いたvisualization等を実施するアプリを、数行で作れてしまう。綺麗なUIつき。便利。
#Article #Library #Blog Issue Date: 2024-09-12 Pluggyとは, 2023.02 Comment
pluggyに関する概要が説明されている。
公式の説明を読むとpytestで採用されており、pluggyは関数フックを可能にし、プラグインをインストールするだけでホストプログラムの動作を拡張、または変更できるようになる代物とのこと(=プラガブル?)。
pluggyがなぜ有用なのかの説明については、Pythonでは、他のプログラムやライブラリの動作を変更するための既存のメカニズムとして、メソッドのオーバーライドやモンキーパッチが存在するが、複数の関係者が同じプログラムの変更に参加したい場合、これらが問題を引き起こすので、pluggyはこれらのメカニズムに依存せず、より構造化されたアプローチを可能にし、状態や動作の不必要な露出を避けるとのこと。これにより、ホストとプラグインの間が疎結合になるので、問題が軽減されるとのこと。
#Article #NLP #LanguageModel #Library #Repository #LLMServing Issue Date: 2024-08-31 NanoFlow, 2024.08 Comment
vLLMよりも2倍程度高速なLLM serving framework。
オフライン評価
オンラインでのlatency評価
機能はvLLMの方が多いが、速度はこちらの方がかなり速そうではある。latencyのrequirementが厳しい場合などは検討しても良いかもしれない。
しかしLLM serving frameworkも群雄割拠ですね。
元ポスト:
DeepSpeed, vLLM, CTranslate2 で rinna 3.6b の生成速度を比較する, 2024.06 も参照のこと
#Article #MLOps #Blog #SoftwareEngineering Issue Date: 2024-08-27 AutoMLOpsを使って機械学習CI_CDパイプラインを組んでみた, 2024.08 Comment
pythonコードでコンポーネントや、パイプラインを関数の形で記述するだけで、MLのCI/CDパイプラインをVertexAI上に自動構築できる模様。非常にお手軽で、多くの設定ファイルなどは自動生成されるようなので、簡単に始めることができそう。
記事中では、多クラス分類器を学習するためのデータをBigQueryから取得、モデル訓練、デプロイ、推論エンドポイント生成、モニタリングなどを簡単なコードベースで実現できている。便利そうではある。
細かいチューニングも自動生成された設定ファイルをいじれば可能だと思われる。
#Article #EfficiencyImprovement #Library #Blog #OpenWeight #LLMServing Issue Date: 2024-08-05 DeepSpeed, vLLM, CTranslate2 で rinna 3.6b の生成速度を比較する, 2024.06 Comment
[vllm](
https://github.com/vllm-project/vllm)を使うのが一番お手軽で、inference速度が速そう。PagedAttentionと呼ばれるキャッシュを利用して高速化しているっぽい。
(図はブログ中より引用)
こちらも参照のこと
vLLMの仕組みをざっくりと理解する:
https://dalab.jp/archives/journal/vllm/#PagedAttention
vLLMでReasoning ModelをServingするときは、`--enable-reasoning`等の追加オプションを指定する必要がある点に注意
https://docs.vllm.ai/en/stable/features/reasoning_outputs.html
#Article #Library Issue Date: 2023-11-19 lifestar Comment
非常に高速なpythonのASGIライブラリ。WSGIとは異なり非同期処理なためリアルタイムアプリケーションに向いているっぽい。
#Article #Blog Issue Date: 2023-10-17 Loggingモジュールではじめるログ出力入門 Comment
- ライブラリ開発の際は、ライブラリのトップレベルのLoggerにNullHandlerを設定して、詳細設定を呼び出し側に委ねるのがお作法
- NullHandlerは何もせずに上位ハンドラに伝搬させるため
- ライブラリ側でやることは、タイミングとメッセージ内容のみ
- loggerを利用するか否かは、「書き捨てか否か」
- 書き捨て例: 内容のちょっとした確認やデバッグ、局所的な出力、プログラムとログのライフタイムが短い
参考になる
propagateの仕組みや、構成要素、Loggerの恩恵はすべてのpythonモジュールがロギングに参加できること、モジュール名で基本的にはgetLoggerすることなど、勉強になった
#Article #MachineLearning #project_template Issue Date: 2023-05-25 Ascender Comment
pythonを利用した研究開発する上でのプロジェクトテンプレート
#Article #EfficiencyImprovement #NLP #Library #Transformer Issue Date: 2023-05-11 Assisted Generation: a new direction toward low-latency text generation, 2023 Comment
1 line加えるとtransformerのgenerationが最大3倍程度高速化されるようになったらしい
assistant modelをロードしgenerateに引数として渡すだけ
#Article #Library #Blog Issue Date: 2023-01-23 Polars, 2023 Comment
pandasより100倍高速で複雑なクエリも見やすく書けてindexも存在しないのでバグも出にくいという優れものらしい
#Article #NeuralNetwork #Tools #Library #Blog Issue Date: 2021-06-12 pytorch_lightning tips Comment
PyTorch Lightning 2021 (for MLコンペ)
https://qiita.com/fam_taro/items/df8656a6c3b277f58781
#Article #Tutorial #Tools #NLP #Library #Slide Issue Date: 2021-06-11 最先端自然言語処理ライブラリの最適な選択と有用な利用方法 _ pycon-jp-2020 Comment
各形態素解析ライブラリの特徴や比較がされていて、自分の用途・目的に合わせてどの形態素解析器が良いか意思決定する際に有用
#Article #NeuralNetwork #Tutorial #Tools #Library Issue Date: 2021-06-06 TRTorch Comment
pytorchの推論を高速化できるライブラリ。6倍ほど早くなった模様。TorchScriptを介して変換するので、PythonだけでなくC++でも動作できるらしい。
#Article #Tutorial #Tools #Library Issue Date: 2021-06-05 pytorch tips Comment
【PyTorchでたまに使うけどググって情報探すのに時間かかるやつ】
https://trap.jp/post/1122/
- scatter_add, einsum, Bilinear あたりが説明されている
【NLLossの細かい挙動】
https://tatsukawa.hatenablog.com/entry/2020/04/06/054700
【PyTorchで絶対nanを出したいマン】
https://qiita.com/syoamakase/items/40a716f93dc8afa8fd12
PyTorchでnanが出てしまう原因とその対策が色々書いてある
【pipで様々なCuda versionのpytorchをinstallする方法】
https://stackoverflow.com/questions/65980206/cuda-10-2-not-recognised-on-pip-installed-pytorch-1-7-1
#Article #EfficiencyImprovement #Library #Blog Issue Date: 2021-06-03 intel MKL Comment
intel CPUでpythonの数値計算を高速化するライブラリ(numpyとかはやくなるらしい; Anacondaだとデフォルトで入ってるとかなんとか)
#Article #Tools #PerformanceTesting Issue Date: 2021-05-26 locust Comment
負荷テスト用のツール
JMeterと違って、pythonコードでテスト内容を制御できるらしく、かなり使いやすいらしい。