「LLM時代、Ruffで「なぜ?」を理解していますか?」~【python】今週の人気記事TOP5(2025/12/28)
「LLM時代、Ruffで「なぜ?」を理解していますか?」今週の人気記事TOP5(2025/12/28)
2025年に読んだ技術書トップ10
2025年に読んだ技術書トップ10では、AIエージェント開発、LLMのファインチューニング、Kubernetes、Rust、DDD、モジュラーモノリス、グラフDBなど、多岐にわたる分野の実践的学習を推奨。特にLangChain、Hugging Face、PyTorch、Kubernetes、Neo4jに関する書籍が注目されている。著者はハンズオン形式で手を動かすことの重要性を強調し、来年の再挑戦を誓っている。
Pythonを書くなら、Ruffのルールページは最高の教材だと思う(AI時代の学び方)
AIコーディング時代、静的解析ツールRuffのエラー修正を通じて「良いコード」を学ぶ経験の重要性が説かれている。AIが自動修正するだけでなく、エラーの背景や理由を理解することが、AIを効果的に活用し、長期的な成長に繋がる。筆者は、この学びを支援するため、Ruffルール解説付きのMCPサーバー「ruff-tutor-mcp」を開発した。これは、AIが単なる修正案だけでなく、ルールの設計思想や背景まで説明することで、学習機会を損なわずに効率的なコーディングを可能にする。
LLMのCUDAカーネルを自作しよう!
本記事では、PyTorch内部のCUDAカーネルを理解するため、GPT-2モデルの主要コンポーネント(Linear, GELU, Dropout, Layer Norm, Embedding, Scaled Dot Product Attention)のCUDAカーネルを自作し、PyTorchと互換性のあるPythonクラスとして統合した。
自作カーネルを用いたGPT-2モデルの学習では、PyTorchと同等のloss推移を確認できたが、計算速度とGPUメモリ消費量で劣った。今後はこれらの改善を目指す。
Python のコンパイラを作りたい #9 - MLIR の導入と最適化
Lythonは、Pythonの構文とC言語の速度を両立させる静的型付け言語です。LLVM IR生成からMLIRへの移行により、Pythonの意味を保ったまま段階的な最適化を可能にし、Boxed (CPython互換オブジェクト) とUnboxed (C言語プリミティブ) の「二つの世界」を明確に分離しました。
特に、@nativeデコレータは関数全体をUnboxed世界に閉じ込め、ABI互換性を確保します。また、量的型理論(QTT)に基づいた参照カウント最適化により、Boxed世界でもGCオーバーヘッドを大幅に削減します。Fibonacci関数のベンチマークでは、CPython比でJITコンパイルは2.5倍、Primitive世界では22.3倍の高速化を達成しました。今後は高階プリミティブ、WASM対応、クロスコンパイルなどを展望しています。
『なぜそうするのか?』を説明できるようになりたい話
ZOZOのMLエンジニアが、技術選定における「なぜ?」への回答能力向上を目指し、「コミュニケーション」「シンプル」「柔軟性」の3つの観点を軸にすることを提唱。単に技術を知るだけでなく、他者への配慮、必要最小限での構築、変更箇所の見極めが重要。ML分野でも、複雑さより実用性や保守性を優先する例(モデル選択、特徴量設計、ハイパーパラメータ最適化)を挙げ、技術の背景理解も重視。バランス感覚が肝心とし、迷いを減らすための備忘録としている。
「RAGでExcelがAIの理解範囲に?その未来を覗く」今週の人気記事TOP5(2025/12/21)
RAGで厄介なExcel文書を意味構造JSON化するOSSライブラリを作りました
Excel文書の構造化を可能にするOSSライブラリ「ExStruct」が開発されました。xlwings/openpyxl等を利用し、セル値に加え図形、グラフ、罫線由来の表などもJSON/YAML/TOON形式で抽出。画像認識なしでフローチャートの方向やグラフ軸を捉え、RAGでのLLM復元精度向上が期待できます。Windows+Excel環境必須ですが、LLMのExcel理解度向上や社内DXに貢献します。APIリファレンスはMkDocsとAIで自動生成されます。
Pydantic の居場所は “境界” がちょうどいい
Pydanticは外部入力の検証と変換に強力だが、ドメインモデルの中心に据えると責務が曖昧になり、設計が破綻する。LLMも型ヒントと実態の乖離に弱くなる。
結論: Pydanticは、アプリケーションの「境界」(入力・出力・設定)でのみ使用し、ドメインモデルとは明確に分離するべきである。境界モデルは外部都合で変動し、ドメインモデルは意味と不変条件で安定させる。これにより、ドメインの濃密化、テストの分離、将来的な置換の容易化、LLM利用時の安全性向上が期待できる。
たった1日で実務経験が積める神ゲー『農家はReplace()されました』
「農家はReplace()されました」は、Pythonライクな言語で農場自動化を行うシミュレーションゲーム。プレイヤーはコードでドローンを操作し、作物の栽培・収穫を自動化する。ゲームを進めると、仕様変更、ドメインを意識した設計、最適化の判断、オブジェクト指向の活用といった、実務で直面する課題を短期間で体験できる。これにより、プロダクト成長に伴う技術的課題への対応を一日で学べる点が特筆される。
山岡家Map(非公式)を作った話
MIERUNEは、Python(Playwright, pandas, geopy)を用いてラーメン山岡家の全店舗情報をスクレイピング・DMS→DD変換・GeoJSON化し、MapLibre GL JSとAmazon Location ServiceでPWA対応の非公式マップアプリケーション「山岡家Map」を開発した。4種類の店舗タイプをアイコン表示し、レイヤ切り替え機能も実装。これにより、出店戦略の可視化や店舗検索を可能にした。
AI-FriendlyなNotebookを作ろう。次世代のNotebook環境について
Jupyter Notebook(.ipynb)はJSON形式で保存されるため、AIコーディングツールとの相性が悪く、編集時にJSON構造の複雑さや実行結果の混在が問題となります。
この解決策として、marimo は.pyファイルとしてNotebookを扱える環境を提供します。AIツールでの編集が容易で、リアクティブ実行やGitフレンドリーな特徴を持ち、スクリプトやWebアプリとしても実行可能です。
また、VSCodeのPython Interactive Windowも.pyファイルでNotebookライクな開発を可能にします。これらのツールは、AIとの連携を強化し、Notebookでの試行錯誤を効率化します。
「AIプロトタイプにReactは不要?FastAPI + htmxが示す新常識。」人気記事TOP5(2025/12/14)
「FastAPI + htmxが最強説」- AIエンジニアがモック作るならReactは不要、Streamlitも捨てよう
AIスタートアップのプロトタイプ開発では、「FastAPI + htmxが最強」と結論。Reactはセットアップと2サーバー管理が複雑で非効率、Streamlitはカスタマイズ性と本番化に難があるため不適とする。FastAPI + htmxは、PythonエンジニアがJS知識なしでhtmx属性により非同期・リアクティブUIを迅速に構築可能。LLMライブラリ豊富なPythonだけで開発が完結し、単一サーバーで管理、プロトタイプから本番へのスムーズな移行が最大のメリットである。
「その処理、本当に並列ですか?」Node.js, Python, Ruby, Goで踏み抜くCPUバウンドの罠
Node.js, Python, Ruby, Goの並行処理モデルをCPU/I/Oバウンドタスクで比較。Node.js(シングルスレッド), Python(GIL), Ruby(GVL)はI/Oバウンドでは並行処理可能だが、CPUバウンドでは逐次実行に陥りがち。Node.jsはWorker Threads、Pythonはmultiprocessing、RubyはRactorでCPUバウンドタスクを並列化できる。GoはGoroutineにより、両タスクを言語レベルで効率的に並行/並列実行可能。タスクの性質に応じた適切なモデル理解と選択が重要。
俺が一番好きなデザインパターン「Strategy Pattern」の話
ZOZOのアドベントカレンダーより、Python/PyTorchでの「Strategy Pattern」適用を解説。本パターンはアルゴリズムをオブジェクトとしてカプセル化し、実行時に動的に切り替えることで、if-else地獄を解消。PyTorchのモデル構築・学習・予測における具体例で、拡張性、テスト容易性、複数モデル比較の効率を大幅に高める。Factory Patternとの組み合わせで、戦略の生成と利用を分離し、保守性と可読性を向上させる。
【テスト配置の言語文化論】なぜPythonは tests/ に分け、Rustは src/ に同居させるのか?
記事はPython/Rust/C++のテストコード配置文化を比較。
Rust/Goは#[cfg(test)]等でビルド時テストコードを自動除外でき、プライベート関数もテスト可能なため実装と同居。C++はビルド時間と成果物純粋化のため分離する。
Pythonはインタプリタ言語でソースが配布物となるため、ユーザー環境へのテストコード混入防止、インポートパス複雑化回避、テストランナー効率化のためtests/に完全に分離する。結果、Pythonでは公開APIを通じたブラックボックステストが主流となる。
世界の住所、全部違う。だから型で守る。
国際住所対応の複雑性に対し、RecustomerはPythonで型安全な設計を構築。「構造は緩く、制約は外に出す」方針で、StrEnumによる国コード、Optionalフィールドの住所モデル、Strategyパターンを採用。assert_neverで実装漏れを型チェック時に検出し、ファクトリメソッドnew()で不正データ生成を防止。これにより、高い安全性と将来の拡張性を両立させた。
【2025/12/7】「DRYの誤解が、AI時代の開発で致命的な負債となる理由。」今週の人気記事TOP5(2025/12/07)
DRYにしすぎるとコードは干からびる
DRY原則の誤用が、見た目の類似で異なるユースケースを無理に共通化し、将来的な変更容易性やパフォーマンスを損ねる問題を指摘。解決策として、データの不変条件はドメインモデルに集約し、ユースケース固有の手順は重複を許容しつつ分離記述すべきだ。この明確な境界設計は、AI駆動開発時代においてAIの推論を助け、開発効率と「変わり続ける力(Modifiability)」を最大化する上で極めて重要となる。
投資xAIで勉強してきたことまとめ
本記事は、投資とAI(機械学習)の学習記録とリソースをまとめたもの。Courseraでポートフォリオ最適化やMLを実践し、古典理論とマルコス・ロペス・デ・プラドの書籍で金融データ特有のBars、CPCV、メタラベリング、デノイズといった高度なML技術を習得。NumeraiやJQuantsで実践し、AIはモデル利用法が重要だが、投資成功には相場観が不可欠と結論。今後は生成AI応用を志向する。
ChatGPT時代のAI Agent設計: LLMチャットUI vs OpenAI API vs フレームワーク5種の選定基準
本記事は、進化が著しいAI Agentフレームワークの選定基準を解説。LLMチャットUI/Raw APIと、LangGraph、CrewAI、smolagents、PydanticAI、AutoGenの5種を共通タスクで比較した。
結果、LangGraphは複雑な業務フロー制御、smolagentsはコード生成・データ分析、PydanticAIは型安全なWebアプリ連携、CrewAIはPoC、AutoGenは対話シミュレーションに適すると判明。各FWの特性を理解し、タスクに応じた「Agentのモジュール化」と適材適所での使い分けが重要であると結論付けた。
RAGを自分で実装したくなったらまずこれ見て【ruri-v3 × Faiss】
RAG自前実装の推奨手法として、LLMに外部知識を与えるベクトル検索の重要性を解説。日本語埋め込みモデルには、SOTAで無料・高速・ローカル実行可能なruri-v3を強く推奨。チャンキングはドメインに合わせ「問題単位」などで意味的に分割。ベクトル検索ライブラリにはFaiss(今回はIndexFlatIP)が適し、本番運用にはQdrantを推奨。RAG成功の鍵は「適切なチャンキング」と「良質な埋め込みモデル」にある。
esa記事を自動要約するSlack Botの実装詳細【Gemini + Cloud Run】
TransMedia Tech Labが、esa記事を自動要約しSlackに通知するBotの実装詳細を解説。Python/Slack Bolt/Gemini/Cloud Runで構成。要約精度向上のため、ペルソナと制約を明確にしたGeminiプロンプトを設計。Slack Socket Mode対応のためCloud Run(min-instances=1)を採用し、GitHub ActionsでCI/CDも構築。SlackのURL形式による課題解決も共有し、情報収集効率化に貢献するBotが完成した。
Discussion