#
21
2024/5/21
今日のトレンド

AlphaFold3やKubernetes Knativeなど など

はい、かしこまりました!以下が「zenncast」のマイクさん用のカンペです。

---

みなさん、おはようございます!「zenncast」のマイクです。今日は2024年5月22日、水曜日です。今日もZennでトレンドの記事をいくつかご紹介していきますよ。

まずは、前回紹介した記事について少し触れておきましょう。前回は「Goの標準のutf8.RuneStart関数がエレガントすぎる」、「RubyKaigi未参加/初参加の人に届けたい。初参加者の恥丸出しレポート【RubyKaigi2024】」、「Snowflake×Tableau:パフォーマンス・コストの最適化に使えるテクニック集」をご紹介しました。それでは、今日のトレンド記事を見ていきましょう。

今日は5つの記事をご紹介します。

まず1つ目の記事は、「AlphaFold3の中身の日本語解説」です。

AlphaFold3は、2024年にGoogle DeepMindとIsomorphic Labsが共同開発した最新のタンパク質構造予測モデルです。AlphaFold2からの進化点として、核酸や低分子リガンドを含む複合体の立体構造予測が可能になりました。特に、拡散モデルをベースに全原子の絶対座標を出力する点が特徴です。これにより、従来のAlphaFold2では難しかったタンパク質以外の化合物の構造予測が可能になっています。具体的な変更点としては、核酸やリガンドの入力への対応、Evoformerを簡略化したPairformerの導入、拡散モデルの採用、損失関数の改訂などが挙げられます。また、学習プロセスにおいては、PDBデータセットに加え、AlphaFold2/3の予測構造から得られた蒸留データセットを用いています。拡散モデルの詳細については、EDM(Elucidating the Design Space of Diffusion-Based Generative Models)をベースにし、新しい損失関数や蒸留プロセスを取り入れています。これにより、特に抗原抗体複合体の予測精度が向上しています。AlphaFold3の学習と推論には4段階の学習ステージが設定され、それぞれ異なるデータセットや学習パラメータが使用されます。推論時間はトークン数に比例して増加します。記事では、これらの技術的な詳細や変更点について詳しく解説しています。

....

次に2つ目の記事、「kubernetes knative でサーバレス Vim」です。

この記事では、著者がVPS環境をKubernetesクラスタに移行し、Knativeを利用してクラウドネイティブアプリを実行する方法について説明しています。KnativeはHelmパッケージとして提供されていないため手動でインストールする必要があります。ネットワークレイヤとしてnet-kourierを選択し、各種コマンドでインストールを行いました。また、ClusterDomainClaimやConfigMapを設定し、サブドメインからアクセス可能にする方法も紹介しています。さらに、Goで簡単なサーバレスアプリを作成し、`ko`を使ってビルド・デプロイする手順も紹介しています。最後に、Vimを使ったサーバレスアプリの作成方法についても触れています。CGIを利用してVim scriptを実行し、Dockerコンテナとしてデプロイする方法を紹介しています。具体的な手順を詳細に説明しているので、興味のある方はぜひ記事をチェックしてみてください。

....

次に3つ目の記事、「ベクトルデータの容量を96%削減するBinary Embedding」です。

この記事では、株式会社ナレッジセンスの須藤英寿が、RAGシステムにおけるEmbedding技術の一種であるBinary Embeddingについて解説しています。Embeddingは文章をベクトル化する技術で、一般的には32bitの小数を用いますが、Binary Embeddingでは各ベクトルの数値を1Bitのデータとして扱います。これにより、ベクトルデータの容量を96%削減しつつ、99%以上の精度を維持することが可能です。RAGシステムでは、ユーザーの質問に基づいて関連情報を取得する際にEmbeddingが使用されますが、通常のEmbeddingはデータ容量の問題を抱えています。この問題を解決するためにBinary Embeddingが有効です。検証結果では、バイナリ埋め込みは精度が低下するものの、再ランキング手法を組み合わせることで、元のEmbeddingとほぼ同等の性能を保つことが確認されました。この記事の結論として、容量削減のために精度を犠牲にする選択肢は現時点では難しいものの、Embeddingの精度が十分に上がった時には、Binary Embeddingの導入を再検討する価値があると述べています。

....

続いて4つ目の記事、「エンジニア勉強会でFigma使ってプレゼンしたら思ったより良さげでした」です。

この記事では、SODA Flutter Talk #1でFigmaを使ってプレゼンを行った経験について紹介しています。Figmaはデザイナー向けのツールですが、エンジニアでもプレゼン資料作成に活用できる点が多くあります。プレゼン用フレーム機能やComponent機能、Local styleやVariable機能を使うことで効率的に資料を作成できます。Auto layout機能を用いることで、要素の配置を自動化でき、見た目の統一感を保ちつつ、簡単にレイアウトを調整できます。ただし、Figmaでは発表者ノートを表示できないため、メモを見ながら話すことが難しい点がデメリットとして挙げられます。まとめると、Figmaは頻繁に登壇するエンジニアにとって有効なツールとなり得ますが、初めて使う場合には時間がかかるかもしれません。今後も使い方をさらに探求し、知見を共有していきたいと考えています。

....

最後に5つ目の記事、「Next.jsでDataLoaderを使ってコンポーネントの責務を明確にする」です。

この記事では、Next.jsでDataLoaderライブラリを使用してコンポーネントの責務を分離しつつ、N+1問題を解決する方法を紹介しています。N+1問題は、不適切なデータフェッチ設計により、データ取得が過剰に発生する問題です。例えば、本と著者の情報をフェッチする場合、不適切な設計だと本が100冊あると101回のデータフェッチが必要になります。これを解決するためにDataLoaderを用います。DataLoaderは、複数のデータフェッチを一つにまとめるライブラリです。複数のリソースアクセスを一定期間後にまとめて行うことで、データフェッチの回数を減らします。具体的な実装例として、`BookList`と`BookItem`コンポーネントをDataLoaderを用いて改良します。この記事では、具体的なコード例を交えつつ、DataLoaderの重要なポイントについても詳しく説明しています。Next.jsでの実践では、React Cacheを使ってDataLoaderインスタンスを管理し、効率的なデータフェッチが可能になります。

....

今日は以上の5つの記事をご紹介しました。次回もお楽しみに!詳しい内容はショーノートに書いてありますので、ぜひチェックしてみてください。また、番組の感想も募集していますので、ぜひお便りくださいね。それでは、また次回お会いしましょう!バイバイ!

Related episodes

内容の近いエピソードを推薦しています