見出し画像

Bedrock開発入門を読みました

著者の方(みのるん氏)に献本していただき、発売前に読ませていただきました!
ただ、鈍器のようなボリューム感だったこともあり、レビューが発売前に終わりませんでした!!!

読者(私)のレベル感

最初に、読者として私がどれくらいの前提知識をもってこの本を読んだかについて軽く紹介します。

LLMについては昨年のブーム以降で触り始め、IVSハッカソンでの入賞を機に本格的に触っていくことになりました。
社内でRAGを用いたアプリケーションを開発したり、LangChainにコントリビュートしたりしています。

当初はOpenAI系がメインでしたが、BedrockがGAになってからは社内アプリケーションをBedrockに移行したりもしました
その際に「Bedrockする」という言葉を生み出し、3人くらいに流行らせることができました。

ただ、専任のLLMアプリケーション開発業務を行なっているわけではなく、主業務はSRE / データエンジニアリング / エンジニアリングマネージャーなので、最近のアップデートにはついていけておらず、この本がいいキャッチアップになった、というレベル感の読者です。

本書に記載されていること

生成AIについて、まだあまり詳しくない方向けのイントロダクションから、これから本格的に実装していこうとしている人向けの詳細なハンズオン、さらには少しマニアックな補足情報まで幅広く記載されていて、どの層の人が手に取ってもかなり勉強になるんじゃないかなと思います。

全てを読破するというよりは、自分の知識レベルと興味範囲に合わせてピックアップして読むタイプの本かな、と思いました。

なんせ、鈍器ですからね。この辺の本と並べても遜色ない威圧感。

総ページ数:528

ただ、内容はアーキテクチャ図や画面ショットなどがたくさん使われていて目に優しいので、安心して手に取ってもらって大丈夫です!

特に気に入ったポイント

ここからは、僕がピックアップして読んだ範囲で、特に気に入った点を述べていきます。

ちなみに読んだのは主に第4章以降の実践的な範囲が中心です。

欲しい情報に簡単にアクセスできる

先にも触れましたが、自分の知識レベルと興味範囲に合わせて、ピックアップして読むのがおすすめです。

構成もそういった読み方がしやすいようになっていて、章レベルで完結して一つの目的を達成できる形になっているので、今自分が興味を持っている、必要な情報はどれかを選んで読むといいと思います。

例えば僕の場合だと、基本的な生成AIアプリケーションの作り方や、RAGの動作原理などは理解している(つもり)ので、その章は軽く目を通すくらいにとどめました。
しかし、Bedrock自体の機能の使いこなし方や、各種AWSサービスとの連携についてはあまり詳しくないので、第6章「Bedrockの機能を使いこなそう」や、第7章「さまざまなAWSサービスとBedrockを連携しよう」、第8章「生成AIアプリをローコードで開発しよう」のあたりを重点的に読みました。

中でも、Step FunctionsがBedrockと連携したというニュースをTwitter(現:X)で見かけたとき、自分の中で用途がピンときていなかったのですが、第8章を読んで、かなり具体的なイメージを持つことができました。

Step Functionsについても、単純なworkflowを実装するだけではなく、MapステートやParallelステートを用いた例になっていて、本格的で素晴らしいですね。すごく実用的な例でした。

最新の情報に対応している

みなさんご存知かと思いますが、生成AIの世界は日進月歩で情報が更新されていっており、3ヶ月前の知識は古くて使えない、くらい言っても過言ではないのかな、と思います。

この流速の中で、情報更新の難しい「書籍」という媒体で情報を発信するのは非常に難しい判断だったんじゃないかな、と推測できますが、本書は出版時点でほぼ最新の情報に追従できており、今読むべき本として最適だと思います。

(LangChain本のレビュー書いた時にも同じこと言ってました)

各社の汎用モデルの進化が早くて追従できない、というのももちろん難しいポイントなのですが(発売日の前週にClaude3.5が出てきましたね)、

ハンズオン型の技術書において、より難しいのはライブラリやプロダクトの仕様です。ここがビハインドしてしまうと、すぐに取り残された情報を記述する本になってしまいます。

僕が素晴らしいなと思ったのが、第3章のLangChainを用いたアプリケーション実装事例の部分で、LangChainがv0.2に対応していたり(2024.05リリース)、langchain-awsを用いていたり(2024.04にlangchain-communityからスピンアウト)、といった辺りです。

LangChainという、v0.1で初のstable版を出してから過去の実装に大きな変更が入ってきているライブラリに対して、最新の情報に追従しつつ、しかもLangChainが今後コアにしていくとしているLCELについても補足されており、まさに今読むべき本として最適だな、と感じました(繰り返し)。

LCELについてはv0.1の時に僕も調べて登壇したことあるので、手前味噌ですが補足情報として掲載しておきます。

AWSサービスとの連携事例が豊富

Bedrock単体でLLMアプリケーションを何らかの方法で実装することは、正直そこまで難しくない時代になっていると思います(事例もたくさんあります)。

しかし、実際にLLMアプリケーションを作ったあと、デプロイして公開し、運用していくには色々考えないといけないことが出てきます。
ネットワークセキュリティ、ログ、モニタリングなど・・

また、単純に命令に応答するLLMアプリケーションだけでなく、その出力をさらに別の処理の入力にするようなパイプライン処理を作りたくなるケースも出てくると思います。

そう言った際に、AWSのどのようなサービスとどうやって連携できるのか、どうやってパイプラインアプリケーションを実装できるのか、の事例も丁寧に記載されており、すぐに自分のユースケースに活用できるようになっていて非常に素晴らしいですね。

特に第8章のStep Functionsを用いたローコードアプリケーションの実装ハンズオンについては、どの層の読者にとっても一度やっておいて損はないです!

これからどう活用していきたいか

この書籍を読むことで、LLMアプリケーションをBedrockを用いて実装し、AWSの各種サービスをどのように活用できるかについてのインデックスを脳内に持つことができるようになったのかな、と思います。

学んだ内容は実践しないと身につかないので、以下を早速試してみます。

  • 社内で利用しているBedrockを用いたRAGアプリケーションを最新化し、ロギングなど運用性を向上させる

  • Step Functionsを用いたパイプラインアプリケーションを使って何か作ってみる(テーマ検討中)

なんか面白いものができそうなら、Zennとかに上げていきます!

最後に

非常に素晴らしい鈍器書籍を献本いただいたみのるんさん、ありがとうございます!
社内での生成AIアプリ啓蒙のバイブルとして布教活動していきます!

生成AI禁止イベントで反則ギリを狙うみのるん氏と、私


この記事が気に入ったらサポートをしてみませんか?