こんにちは、マイクです!今日は2025年5月7日、火曜日です。「zenncast」へようこそ!今日はZennでトレンドの記事をいくつか紹介したいと思います。
では、早速今日の内容に入る前に、前回紹介した記事について少し触れましょう。「読みやすいコードを書く」、それから「LLMでコードレビューする際の自分用環境を整える」、そして「shadcnを理解する」といった内容でしたね。これらの記事も、ぜひチェックしてみてください!
さて、今日紹介する記事は全部で5本です!それでは、早速始めていきましょう。
まず最初の記事は、「RAG x Deep検索」でRAGの回答精度を向上させるという内容です。本記事では、RAGの新手法「DualRAG」について解説しています。このDualRAGは、2025年4月に天津大学の研究者によって提案されたもので、RAGの精度を向上させることを目的としています。
従来のRAGは検索結果に依存しており、複雑な質問に対しては一度の検索では不十分でしたが、DualRAGはLLM(Qwen2.5)を用いて、検索ワードの生成と情報の要約を自律的に行います。このプロセスにより、ユーザーの質問に的確に対応できるようになっているんです。
具体的には、HotpotQAなどのマルチホップQAデータセットで従来の手法を上回るスコアを達成し、検索の平均イテレーション回数を2~3回に削減しています。この手法は、エンタープライズ向けのRAGサービスを開発する中で特に重要視されています。精度を保ちながらも、高速な回答が可能なDualRAGは、これからのRAGシステム構築において欠かせない選択肢となるでしょう。
。.
続いて、2つ目の記事は「クロスプラットフォームアプリ開発の技術を比較する」です。この内容では、クロスプラットフォームアプリ開発における技術を4つの観点から比較しています。
まずはプラットフォームについて。Windows、Darwin(macOS/iOS)、Linux(Android)に分かれ、それぞれのセキュリティポリシーや開発環境の特徴が異なります。次に、コンパイル方式については、AOT(事前コンパイル)、JIT(実行時コンパイル)、インタプリタ方式の3つがあり、特にApple環境ではJITの使用が制限されています。
描画方式に関しては、ネイティブコンポーネント利用からWebviewによるレンダリングまで、それぞれの利点と欠点を整理しています。相互運用方式では、JavaScriptなどの非ネイティブ言語とネイティブコードとの連携がポイントです。
最後に、React NativeやFlutter、Electron、Tauriなどの主要なクロスプラットフォーム技術が紹介されており、それぞれの特性を理解することができます。技術選定の際には、開発の目的や使用する言語に基づいて最適な選択をすることが大事です。
。.
3つ目の記事は「作りながら学ぶLLM入門:前処理」です。この記事では、LLM(大規模言語モデル)の前処理工程、特にトークン化やデータローダーの作成について詳しく解説しています。
まず、LLMを構築するにはデータセットの準備が必要で、テキストデータを収集した後にクリーニングやトークン化を行います。トークン化は文章を単語やサブワード、文字単位に分割するプロセスで、日本語の場合はBPEやSentencePieceなどの手法が有効です。
前処理の流れとしては、テキストデータの収集から始まり、クリーニングやトークン化、辞書作成を経て特殊トークンの付与、データサンプリングを行います。この一連の流れがLLMの性能に大きく影響するため、特に日本語テキストにおいてはサブワード分割が重要であることが強調されています。
記事では、トークン化の実装例や、OpenAIの`tiktoken`ライブラリの利用方法なども紹介されていて、LLMの内部処理を理解するための良い手引きとなっています。
。.
続いて4つ目の記事は「Pythonで始めるGraphQL【Strawberry】」です。この内容では、PythonのStrawberryライブラリを使ってGraphQLの基本的な概念と実装方法を紹介しています。
まず、環境設定として新しいプロジェクトを作成し、仮想環境を構築後にStrawberryをインストールします。シンプルなヘルスチェックAPIを実装し、GraphQLスキーマを定義するところから始まります。基本的なクエリを使い、サーバーからのレスポンスを確認することで、GraphQLの主要コンポーネントであるQuery、Field、Resolverを説明しています。
また、CRUD操作の実装では書籍管理システムの例を用いてデータモデルを定義し、データの取得や追加、更新を行う方法が詳述されています。特にMutation型を用いたデータ更新操作についても触れています。
最後に、Strawberryを用いたGraphQL APIの実装を通じて、GraphQLの利点や使い方を理解することができる内容となっています。
。.
最後に5つ目の記事は「基本無料縛りの個人開発技術スタック」です。この記事では、個人開発における基本無料の技術スタックを3パターン提案しています。
まず、フロントエンドにはReact/TypeScriptを推奨し、バックエンドにはフルスタックフレームワークを使用する考え方です。案1はCloudflareを中心にした構成で、Next.jsをフレームワークとして採用。案2はリアルタイム機能に優れたSupabaseを利用する構成です。そして案3はAWSを中心にした構成で、Next.jsとAWS Amplifyを使用します。
それぞれのスタックには利点とデメリットがあり、最終的には個人の好みやプロジェクトの要件に応じて選ぶことが重要です。著者はVPS環境でのKubernetes運用を推奨し、自由度の高い開発環境を提案しています。
さて、今日はここまで!紹介した記事を振り返ると、RAGの新手法、クロスプラットフォーム技術、LLMの前処理、GraphQLの基礎、基本無料の技術スタックについてお話ししましたね。次回も楽しみにしていますので、ぜひお楽しみに!
詳しい内容はショーノートに書いてありますので、チェックしてみてください。番組の感想もお待ちしています!それでは、また次回お会いしましょう!