こんにちは、マイクです!今日は2025年2月18日、日曜日ですね。さて、今日の「zenncast」では、Zennでトレンドの記事をいくつかご紹介していきますよー!
前回紹介した記事は、「SQLを学習できるサービス『SQL道場』のご紹介」「Webサーバーがどのようにリクエストを並行に処理しているのか、説明できなかったのでRustでコードを書いてみる」「Notionからmarkdownに変換するOSSを公開しました(Zennも対応)」でした。
それでは、今日の紹介する記事の本数はなんと5本です!では、さっそく最初の記事からいきましょう。
1つ目の記事は「ゼロから検索エンジニアになるまで」です。著者は約1年半前に検索技術を学び始めたそうで、役立った資料をいくつか紹介しています。まずは、ChatGPTやPerplexityを利用して情報収集や要約、翻訳を行うことを推奨しています。検索技術の基礎を学ぶための書籍もいくつか挙げられていて、特に「検索システム 実務者のための開発改善ガイドブック」や「OpenSearchで始める全文検索」、公式ブログの「Elasticsearchで日本語の全文検索の機能を実装する」が特に役立つとされています。
実際にElasticsearchをローカル環境で動かして、KibanaのWeb Consoleを使ってクエリを試すことが勧められています。そして、実務に役立つ情報として「10Xの検索を10xしたい パートII」や社内情報共有のための横断検索に関する資料を紹介しています。ElasticsearchやLuceneの理解を深めるためには、公式ドキュメントや「Elasticsearch: The Definitive Guide」、「Lucene in Action」を読むことが推奨されています。
また、日本語検索には形態素解析が重要で、MeCabやSudachiに関する資料を通じてその仕組みを学ぶと良いそうです。情報収集には他社の技術ブログや検索技術勉強会を利用することで、最新のトレンドにキャッチアップできるとのことです。著者は情報検索が多様な技術が絡み合う魅力的な分野であると述べていて、学びを深めることが大切だと強調しています。
。...。
続いて2つ目の記事、「Create React Appが非推奨となり、これからは主にフレームワークを利用することになりそうなので軽くおさらいしてゆく」です。Create React App、通称CRAが2025年1月29日に公式に非推奨となりました。CRAは2016年の登場以来、React環境構築を簡易化してきましたが、現在はアクティブなメンテナが不在となり、各フレームワークが独自に環境構築を提供しているため、非推奨の決定に至ったそうです。
代替となるフレームワークとして、まずViteが紹介されています。ViteはESモジュールのビルドツールで、インタラクティブに環境構築が行えます。純粋なReact環境を構築したい場合には、手軽な選択肢です。
次にNext.jsが挙げられ、これはサーバサイドレンダリングに対応したフルスタックフレームワークで、ファイルサイズの最適化やセキュリティ対策を提供しています。プロジェクトのニーズに応じて、動的・静的レンダリングの戦略を選択可能です。
そしてReact Router v7やRemix v2も重要な選択肢です。これらはクライアントサイドのデータフェッチを効率化し、SPA開発に適した機能を提供します。特にRemixは、Reactの最新機能に適応しており、フルスタック開発にも向いているとのことです。
さらに、TanStack Routerも新たに登場したルーティングライブラリで、フレームワークに依存せず、SPA開発においてクライアントサイドのデータ管理を効率化します。これからのフレームワーク選び、しっかりと理解しておきたいですね。
。...。
3つ目の記事、「DeepDive Lighthouse」では、Lighthouseの内部実装について解説しています。LighthouseはChrome DevTools Protocol、通称CDPを直接操作し、Puppeteerに依存しない設計だそうです。CLIを使用してデータを収集・解析する方法やAuditsの実装過程を理解するための手法が紹介されています。
Lighthouseでは、監査対象のAuditsが5つのカテゴリに分類され、スコアが集計されます。CLIから特定のAuditsを指定して実行する方法が示され、データ収集は`Artifacts`として行われます。具体的には、`gather-mode`を使用してデータを収集し、`audit-mode`でAuditsを計算することができます。
また、Lighthouseが扱うデータには、`tracing`データもあり、これはパフォーマンス指標を計算するために使用されます。データの読みやすさは、`lhr` > `audits` > `artifacts` > `devtoolslog` > `tracing`の順で、データ量は逆になるそうです。
ソースコードの構成も紹介されており、`core`ディレクトリにはデータ収集やAuditsの計算に関するファイルが含まれています。CLIを経由せず、Puppeteerを利用して直接Lighthouseを初期化する方法も説明されていて、ページオブジェクトを通じてカスタマイズも可能です。
最後には、CDPを初期化してデータを集める方法や、データ収集処理、Auditsの計算方法が具体的なコード例とともに示されています。全体として、Lighthouseの実装を理解するためには、既存の実装を参考にしつつ、CDPのドキュメントを活用することが推奨されています。
。...。
4つ目の記事、「ModernBERTに学ぶモダンなBERTの学習レシピ」は、ModernBERTが採用した最新のBERT学習手法について解説されています。特に、学習手法のモダン化や処理効率の改善などについて詳しく述べられています。
学習手法のモダン化として、WSD(Warmup-Stable-Decay)を用いた学習率スケジューリングが挙げられ、これにより長時間の訓練による問題が解決されています。また、最大長でのpaddingを避けるUnpaddingや、Attentionの計算を局所化するWindow Attentionなど、効率的な手法が紹介されています。
CUDA最適化や最適化手法として、best-fit packingやバッチサイズのスケジューリング、Weight Tilingなどが取り上げられています。特にRetrievalタスクにおいて高いパフォーマンスを発揮し、処理効率の観点でも優れた結果を示しているとのことです。
これらの技術や手法により、ModernBERTは従来のBERTを超える性能と効率を実現しています。今後の自然言語処理の技術進化に注目ですね。
。...。
最後の記事は、「Raspberry Pi + Tailscale + Open WebUI で手軽に自分だけの LLM 環境を構築するチュートリアル」です。このチュートリアルでは、Raspberry PiにOpen WebUIをホストし、Tailscaleを利用して自宅外からアクセス可能なLLM環境を構築する方法が解説されています。
必要な機材はRaspberry Pi、microSDカード、ACアダプタなど。最初にRaspberry Pi Imagerを使って、Raspberry Pi OS LiteをmicroSDカードに書き込み、SSH接続の準備を行います。次に、Tailscaleをインストールして、どこにいてもRaspberry PiにSSH接続できるように設定します。
その後、Open WebUIをセットアップし、Dockerを使って起動します。Tailscale Serveを利用して自動的にSSL証明書を発行し、HTTPS接続を実現します。最終的にOpen WebUIの管理者アカウントを作成し、必要なAPIキーを設定します。
これで、自宅外からアクセス可能な自分だけのOpen WebUI環境が完成します。さらに、GPU付きのPCを用意すれば、自宅のGPUで動かすLLMにアクセスすることも可能です。詳細な手順はOpen WebUIのドキュメントを参照してください。
さて、今日はたくさんの興味深い記事を紹介しましたね!それでは、今日お話しした内容を駆け足でおさらいしましょう!検索エンジニアになるための道のり、Create React Appの非推奨、Lighthouseの内部実装、ModernBERTの学習手法、そしてRaspberry Piを使ったLLM環境の構築方法についてお話しました。
次回もお楽しみにしていてくださいね!詳しい内容はショーノートに書いてありますので、ぜひご確認ください。そして、番組の感想も募集していますので、どんどんお寄せください!それでは、また次回お会いしましょう!バイバイ!