#202 エンジニアなら知るべきLLM入門!ChatGPTを使ったアプリ開発体験会!

2023/12/13 ·

  • 本日 カイチの学びの共有ということでお話しさせていただくんですけどありがとうございますまずですね あなた方 聞いてる皆さん



  • 最新技術をキャッチすべきであるエンジニアとしてと考えているでしょうかもちろんですもちろんですともそうは思ってるんですけどねなかなかキャッチできずにいますその情報いっぱいありますからキャッチするには色々情報を取らなきゃいけないっていううちの一つの手段としてヒマプロを使ってもらいたいニュース系ニュース系みたいなね



  • 技術書も読み切れないんでね代わりに読んであげるよっていうところもあるかもしれないですねようやく系それはリスナーの方に対してもそうですしじゅんぺいに対してもそういいね助かりますっていう中でLLMというキーワードお出たLLMって何でしょうはいじゅんぺい君どうぞ日本語はわかります大規模言語モデルじゃあ英語にすればいいだけだランゲージ



  • ラージランゲージモデル正解最悪って言われたかと思った最悪はやばすぎるっていうね大規模言語モデル大規模なデータセットを使用して訓練された人工知能ベースの言語モデル今ホットな技術ですよねとなので今日はそんなホットな技術のLMを使ったアプリケーション開発を聞くだけでなんとなく知れるといいですねちょっとお届けしたい



  • 樋口 うっすら思ってたんですけど今LLMってもうエンジニアじゃない人の間でも結構もう普通に知ってる単語っすもんね深井 そうっすねもう本当にバズワードですね樋口 すごい深井 DXの次に来てるバズワードなんじゃないかっていう樋口 確かに深井 要はあれですかねAIの話ですかねGPT君が要はそれを使って



  • LLMとGPTの関係性なんですけどまずLLMの方が大きい概念ですね大きい概念



  • いろんな大量のデータセットを使ったモデルを全般LLMと言いますその中のGPTはAIのアルゴリズムというか手法の一つ学習手法の一つというのかなこういうやり方でこういうデータを学習させるとこのぐらいの精度のモデルができますよっていう



  • のがGPTだからLLMの中のGPTっていうなるほどクリーかなそれをチャットのインターフェースで使えるようにしたのがチャットGPTってことですかチャットGPTは多分サービス名ですねオープンAI社のGPTのモデルを使ったチャットベースでやり取りできるっていう価値を全面に押し出してるからチャットGPTっていうサービス名だと思ってますなるほど商標取られてるんじゃないですか想像ですけど



  • なるほど多分今後LLMを使ったサービスいっぱい作らなきゃいけなくなってくると思います皆さんなんならちょっとじゅんぺいくんはそういうことやってるという噂を聞いてるんですがじゃあエンジニアとしてですよLLMを使ったアプリを作るときどういうとこ気をつけなきゃいけないんだろうなとかっていうところはやっぱ気になるところ押さえておかなきゃいけないところですねうんうんうん



  • 実際ですよ11月下旬にオープン会社がいろいろ新しいGPT4を出すとかねサム・アルトマンがクビになっちゃったり戻ってきたり1日で本当に今収録をしている週



  • のAWSリインベントでもねAmazonQっていううんうんうんコパイロットみたいなサービス出たりとかめちゃくちゃ話題になってるのでそこ押さえていきましょうそこじゃないそういうのを使ってアプリを開発してみようですわおはいじゃあ



  • 本日の種本なんですけどチャットGPTラングチェインによるチャットシステム構築入門という本を種本チャットを作るってことですかチャットシステムGPTなんて全部チャットなんでねこれはラングチェインというOSSのライブラリを使ってチャットGPTを使ったアプリを作れるという技術書ですかなりとっつきやすい内容というか優しい



  • 内容なのででPythonですうんうんPythonなんでまあPython使える人だったらまあ読んでみるといいかなっていうところとあと何でしょうLLMを使ってアプリを作るときに必要なところ抑えるべきところがなんかまあある程度モラ的に書かれているなるほど本なんでまあかなり取っ付きやすいかつこれは多分エンジニア本大賞のノミネートに残りますあそう



  • たぶん残るこれも確かにそういうのを使って開発するっていう知識においては一個もないから逆網羅的かもしれないですね今僕とりあえず一個は押さえておいた方がいいと思います来年とかに向けてなんとなくね僕が勝手に売ってるだけですよ世の中的に絶対そうだろうなって思ってますそうそうそう



  • この本はおすすめですがただちょっと注意が一つあって超初心者だと詰みます多分何の初心者?開発エンジニア初心者ちょっとしんどいかなと思っててどういうところがしんどいかなっていうところで言うとあのー



  • ラングチェインがすごくバージョンアップ早いんで環境構築でバージョンをちょっと違うの作っちゃうと多分全然違いますメソッドないやんとかになります多分なおかつ僕はこれでやってるんですけどバージョン合わせて動かんやんってなって一部ライブラリを書き換えましたライブラリを?ライブラリの方を書き換えたの?ライブラリ書き換えましたGitの



  • 一周とか見てこれライブラリーに書き換えるやんってなってライブラリーに書き換えましたちょっとそういう詰まりポイントはあるんですけどヤバい詰みそう俺俺も詰むかもしれん3年時点でやってれば大丈夫だと思います怪しい1年目だとメンターいるかもしれない先輩と一緒にやった方がいいかもしれないですけどただ本としては超面白いのでその面白ポイントを今日伝えますいいですねはい



  • というわけでチャットGPTを使ってアプリを作ってみようっていうところで早速作っていきますね想像してほしいのが株式会社ひまプロの社内エージェントアプリを作ってみましょうかよくわかんないですけどスラックでうちやり取りしてるんでスラックの中でね



  • メンションをつけると社内文書だからこの決済やりたいんだけど何したらいいって言ったらGPTがこういうやり方やるといいですよっていうのを社内のマニュアル参照して言ってくれるとかなるほどチャットベースのウィキみたいな感じですかねウィキもだし今のこの議事録



  • まとめてとかそんなことも昨日1日休んだからこのチャンネルで昨日1日やり取りされたやつまとめて教えてくんないとかすごすぎるめちゃいいそういうのをやるエージェントですねめちゃくちゃいいじゃんそういうサービスあんのちなみにGPTを使って作れるんですよだからこそすごく広がるんだろうなと思いつつちょっと脱線するんですけど



  • 今までって割と日本ではセキュリティ観点でGPTに社内文書を読ませるわけですからやれないよねっていう潮流があったんですけど昨今それこそAWSでそういうサービスが出てみたりとかAzure OpenAIもあったりとか



  • マイクロソフトには既に機密情報を出してたりするんですね大きい会社でもオフィス365に上げてるわけですからオープンAI社っていうよくわからん会社なら許せないけどAzureとかAWSならいいだろっていう会社はあるんですよで今週AWSでそういうGPTベースでいろいろ作れますよというGPTベースは言い過ぎでした生成AI、LLM



  • LLMのモデルを使った色々なサービス作りやすくなるサービス出ましたなので多分ここからすごく広がるんだろうなと思いますなるほどそういうパブリッククラウドに乗ってるやつなら使う人が増えるだろうとそうそうそうそうはぁ



  • 今まではこういうラングチェーンみたいなOSSベースしかなかったんでOSSなんてバグあるった時に悪いな自分ですしめっちゃアップデートされるしサポートもそんなないから使いづらかったんですけどパブリッククラウドに乗ってきたんでパブリッククラウドの会社はめっちゃちゃんとしてるじゃないですかそういうところだからどんどん使われるようになると急速にビジネスチャンス確かにチャンス



  • 2024年すごく来ると思いますこの辺は確かにっていうのでこのエピソードを届けたいっていう感じなんですけど話戻りまして戻りましてフロントエンドのところは面白くないんで置いておきましょうなんならスラックウォッドなんで



  • なるほどねまあ忘れちゃってまあ確かに我々バックエンドエンジニアなんでバックエンドで考えましょううわバックエンドむしろやれることあんのはいじゃあバックエンドどうなってるか想像してみましょうかまず構成からですね基本設計まずどういう登場人物が出てくるでしょうか



  • 今ディスカッションで作りましょうか言語モデル一旦チャットGPTで作るんでそれもあると一人まず今いますね他に何が必要ですか僕たちすいませんシステム考えてるから分からんアーキテクチャを考えたいってことですねアーキテクチャを考えてるんですけど順平の考えだとその間に一回人いるだろって話か



  • システムに組み込まれようとしてる?じゅんぺい今ちょっと待ってくださいじゃあ人を繋ぐ用のノートCPUのケーブル必要すぎごめんなさい一回今考えてるものもう一回いいですかシステムアーキテクチャバックエンドのバックエンドのシステムアーキテクチャでそこに人を組み込むか否かっていう議論いらない一旦一旦多分違うでそのスラック上でそのGPT君を組み込んでこうやり取りする時のシステムアーキテクチャそう



  • 必要に応じて多分社内文書を参照する必要があるんですよなるほどってことは社内文書をインプットするための何が必要なんだデータレイク社内文書を置いておく場所そうその通りストレージがいるんですよストレージもしくはデータベースであとはそれらをつなぐバックエンドシステム



  • そうだよねそれらをつなぐっていうのは社内文書を取ってきてそのLLMの方にぶち込むためのチャットGPTにぶち込むことをやってくれてるやつみたいな感じですかもっと言うとフロントからの受け口も必要なんですよねそれは同じサービスでやる



  • スラックAPIが叩きに行くんですかスラック側から叩くためのバックエンドAPIがあってそのバックエンドAPIはGPTに指示投げてそれを受け取って整形して返したりとか必要に応じてデータベースと繋いだりとかが必要なんですねなので同情人物としてはバックエンドAPIシステムとデータベース



  • あとはGPTチャットGPTの3体3つちょっと1個質問いいですかそもそもチャットGPTは例えばその社内文書を突っ込むわけじゃないですかその社内文書ってAPIコールごとに毎回突っ込むんですかそれとも事前学習みたいなのできるんですかえーと後で言います後で言いますが事前学習じゃないですなるほどっていうので



  • 当事人物今整理できましたねとで次ちょっとのりさんがさっきの話なんですけどじゃあどうやったらノウハウをそのGPTに食わせてうまいこと整理して返せるようにするかなるかっていうところなんですがよくあるのはまずデータベースに何を入れるか文章をそのまま入れるんじゃなくて文章をベクトル化したものをデータベースに突っ込みます



  • はい意味わかりませんベクトル化って何ですかとベクトルっていう単語はまずもう忘れてくださいがですがちょっと前のディープラーニングとは何かみたいな話をしたときに



  • これは猫であるか否かを判断するには1次元のベクトルが必要ですって話をしました懐かしいこれは猫であるか否かは1次元なんで表せるかっていうと1次元のベクトルって0か1かなんですね長さがあるかないかだけだから猫ですそっからじゃあ猫か犬かどちらでもないかを判断するのには2次元のベクトルがいりますとそれどういうことかっていうと1次元目の0と1が猫ベクトル2つ目の



  • 01が犬ベクトルうんなんで犬か猫か犬でも犬かつ猫っぽい何かか犬でもない猫でもない何かのまあ4つが表現できるようになりますと2次元ベクトルだとなるほどっていう感じでベクトルがどんどん増えていくと表現力がどんどん豊かになるんですねうんうんうんで空間じゃもう想像できなくなるんで確かに4次元以降はうん頭のそういう想像は忘れといてうんとりあえず表現力がめっちゃあるものなるほどうん



  • なので例えば今日は天気は晴れですっていう言語をベクトル化するとなんとなく天気の話晴れみたいな意味を含んだ何かになるんですよベクトルなんですけどそれがそういう意味を持ってる何かっていう風に捉えてくださいベクトルは捉えましたまずベクトルにしてデータベースに突っ込みます



  • データベースにベクトルをGPTに検索させたなんか聞いた時にGPTはこういう質問来てるわこれはデータベースを見るべき質問だと判断してもらってそのベクトルベースでデータベースに検索しに行って近い情報を取ってきてその情報を解釈して整形して返すみたいな動きをするんですよ



  • ちなみにそのベクトルはデータベースに突っ込んでるじゃないですかそのベクトルを決めるのは人間なんですかベクトルを決めるのはですねオープンAIのAPIかなライブラリがあってエンベッティングAPIっていうものをベクトル化するライブラリがあってそのライブラリでベクトル化しますなるほど



  • っていうのについてこれてる人がどれだけいるかわかんないんですけどすごいですよ今一旦今の話はそれで多分全体感としてやるんですが一方でちょっと対チャットGPTだけの話に移るとチャットGPTにも素で投げちゃダメなんですよほうプロンプトエンジニアリングっていうワードにちょっと聞き覚えはありますでしょうかありますあります若干プロンプトエンジニアリングっていうのはあの



  • 質問の投げ方を工夫することによっていい感じに答えをもらうための小技っていうものの総称だと思うんですけど今回の例で言うとおそらく質問文の前にあなたは優秀なエージェントですとよくありますよねあなたは社内の社内というかヒマプロの会社のどうどうこういうふうな役割をするエージェントですうんうん



  • 記者の質問に答えてくださいっていう前文を付け足してなおかつあとなんか機密情報というか何かに触れるようなものは答えないでくださいみたいな前置きをバッて送ってあげた上で質問をユーザーからもらった質問を入れて送るみたいなことをしなきゃいけないんですよなるほどそれにちょっとめんどくさそうだなっていう困り事が一つ確かに



  • そういうのあった方が精度が上がるっていう話ですねプロンプタエンジニア確かにそこでなんかもうすでに矛盾が一個発生する気がしてるんですけどチャットで投げられてくるんですよねそれを成形するためになんかすでにもうチャットGPTが必要そうだなっていう気配がすごいんですけど



  • と言いますとなんかその言葉って毎回違うじゃないですか人によって投げてくるのがなんでそれをプログラム的に処理してプロンプトにちょうどいいメッセージに変換するの難そうだなっていうイメージですね難しくない気がしててユーザーからもらったやつそのまま投げればいいだけ毎回定型文にするってことじゃんさっき言ってたプロンプトエンジニアリングはハードコードでいいんですよハードコーディングで入れて



  • その下にユーザーから来たやつそのまんま入れてGPTに投げればいいだけ毎回別にそこは同じでいいんだ会話の始まりだけは入れる必要があるかもしれないですね履歴を保持するみたいなやつはちょっと後なんでちょっと置いといてくださいその辺のプロンプトエンジニアリングしなきゃいけないとかあとは



  • ユーザーから入力したものに対して特定の形式を返してほしかったりしたくないですかJSONで返してとかプログラムで処理するとかございますこの辺めんどくさそうですよね考えなきゃいけないとかあとはGPTって足し算できないって話知ってます?知らないGPTって足し算苦手なんですよGPT4はできるんですけど



  • 1+1はできるんですけど例えばなんか35+6+4+7+11+13は?みたいなそういうのねなんとなく答えちゃうんでそうなの?ちょっとやってみていいですか?いいですよ足し算できますまあまあまあかけ算とか入れたらできなくなるんですか?そうできなくなるんですよただそれはできた方がいいじゃないですか



  • なので必要に応じてPythonのプログラムライブラリメソッドを呼び出して解決策を出して押して買ったりするケースがあるんですねなるほどねGPTを使って何かを作るときってはいなのでその辺の実装もめんどくさそううん今困りごと主に3つあとはさっきも言ったんですけどデータベースの情報を必要に応じて取ってこなきゃっていう風な指示取ってこなきゃって思ってもらって実際に取ってくる処理とか書くのどうやるんだろうとかって思うじゃないですかはい



  • この辺実装めんどくさそう確かにうわーめんどくせーって思うじゃないですかこの辺全部解決するのはラングチェーンっていうライブラリーなんですよ今流行りのやつだ聞いたことあるけど中身はよくわかんない全然知らないこれはOSSでそのLLMを使ってアプリを作る時にそういう必要なさっき言ったようなちょっとめんどくさいなーっていうのを全部抽象化してベソ取り出してくれてるやつ



  • 誰が考えるんですかそんなもんすごいな頭いいっすよね抽象化力すごいなそううわGPTいきそうだわGPTでアプリ作るときにはこういうのがめんどくさくなりそうだよしOSSでライブラリ作ろうってやつがいるんですよ信じられない世の中にすごいわ悔しい確かに悔しいな悔しいぞっていうのでちょっとさっき言った困り事をちょっと一つ一つラングチェーンで解決していきましょうはい一つ目



  • ちょっとさっき言ったプロンプトエンジニアリングのところはまずハードコードでいいって言ったじゃないですかハードコードでいいって言うとユーザーから受け取ったメッセージのストリングを結合して送るんかなって思うじゃないですかそんなコードを書くとなんかブワーってなりそうじゃないですかブワー変なメッセージになるってことですかいやいや汚いコードそういうことねうん



  • なのでこのラングチェーンを使うとまずメッセージを投げるオブジェクトみたいなのがあってそれに引数でハードコードの部分を出すパスしたりとかできる引数とかでっていうのでちょっと抽象化されて若干綺麗に書けるよっていうそのぐらいのちょいいい機能です今の話は2つ目ユーザーが入力したものに対して特定の形式に返してほしい



  • っていう需要JSONとかJSONに関してもこういうキーでとかキーぶれたら困るじゃないですかGPTなんてそういうことやりそうなんでそれもプロンプトエンジニアリングなんですけど結局JSONはこの形式で返してくださいでキーはこれ値はこれみたいな感じでやるんですけどそれ一時書くのもクッソめんどくさいじゃないですかなんとアウトプットパーサーっていうパーサーズっていうライブラリーラングチェーンの中のメソッドを使うと



  • モデルを定義して普通にクラスなんで相談相談って英語で何にしようかなクエスチョンクラス作ったら何が入るのねユーザーIDユーザーIDと内容コンテンツが入るとしてそのクラスを定義するだけでJSONでコンテンツとかあとアンサーちょっと戻って定義するのはGPTが返すもの



  • アンサークラスを作ってアンサークラスの中にはアンサーとあとラベルとか解答のタグとかあと日時とか解答日時とかっていう中身を定義するとそのJSONを勝手に作ってそのJSONの形式をGPDにこれで投げてねっていうプロンプトエンジニアリングを勝手にやってくれますJSONはどこで出てきたんですかアウトプットパーサーが勝手にそのクラスを解釈していい感じにJSONにしてくれます



  • ってことはJSON用のクラスを作ってたってことですかJSONアンサーみたいなそうそうそうそうなるほどアンサークラスこれでちょっと抽象化されてるんですよ2つ目はい文章の内容によってプログラムコードを呼び出したくないとかっていう話足し算だったら足し算するコードかもしれないですしあと必要に応じてね実はその決済処理の処理回せちゃうかもしれないですしGPTがねうん



  • これはチェーンズっていうラングチェーンのライブラリを使うとできてチェーンズって何かっていうと処理をつなげられるんですね文字通りチェーンズ鎖すごいキャッチーな例で言うと天気予報教えてってGPT3.5に言うと答えられないんですよ



  • 今日の沢口の埼玉県沢口市の天気はって答えられないんですよなぜなら昔のデータしか持ってないからなるほどただこのチェーンズを使うとググってくれるんですね天気予報について聞かれたじゃあ天気予報に聞かれたときはググるググってそのググった情報を解釈して返すっていうチェーンをつなげられるんですよはいはいはい



  • ラングチェーン自体がそもそもどういうタイプの質問なのか解釈できてるってことですかGPTに解釈してもらうんですよ一回その返ってきたものを解釈してもう一回質問投げ直してってやってるんですよラングチェーンはググってるんですよどっちかっていうともちろん事前に設定が必要ですようんうんうん



  • Googleならこのサイトとかこの本書ではDuckDuckGo使ってます検索エンジンですねDuckDuckGoかわいいアヒルアヒルGoGoogleだったらそうですし例えばSQL実行したりとかもできますしねそのGPTにSQL文出させてそのSQLを実行してっていうのはチェーンでつなげられるんですよすごいなマジで弱点補ってきてる



  • 樋口 すごいよくわからんなでもラングチェーンがどうやってそれを解釈してるとかがめっちゃわからん深井 ラングチェーンがどうやって解釈してるかはGPTにこうやって返せてプロンプトエンジニアリングで樋口 でもSQLで返してほしいかJSONで返してほしいかってどうやってその最初の段階でプロンプトエンジニアリングするんですか深井 質問の内容をまず解釈させてその種別によって機構を切り替えてるとかだった気がします樋口 えーそうなんだ



  • GPTがまず何の質問がいるかとかが分かるので詳しいときはこれSQL文入れる系のやつだわなのか天気予報だわっていうのはGPTが理解できるんでなるほどね



  • イメージで言うとまずテキストぶっこみますそうするとラングチェーンがそれを一回チャットGPTに投げてチャットGPTからその回答とプラスで今回どういうタイプで出力すればいいかみたいなのをチャットGPTにもう一回聞いて帰ってきた形式によって自分で実行するかもう一回GPTに投げるか決めてるみたいなことですかヤバくない?Pythonのメソッドを実行すべきなのかDBに何かやるメソッドを実行すべきなのかGoogleメソッドを実行すべきなのか



  • っていう結局Pythonのメソッドの呼び出しを振り分けてるだけなんですけど今プロンプトエンジニアリングをラングチェーンに投げる最初GPTですよねGPTに投げてそいつがもう一回ラングチェーンに投げるかどうかをラングチェーンには投げてラングチェーン側でじゃあそれはPythonの何に何のメソッドを呼び出すやつだわっていう風にしてそれで実行したリスポンスをまたGPTに食わせて成形して返すうんうんうん



  • これが本当にラングチェーンの肝みたいなところですね最初のJSONの話も結局そうですし今回のチェーンって話も結局そうなのでちょっとさっきの話につながって今あるデータとLLの連携も同じなんですねデータコネクションっていうのがあってデータコネクションは一つデータをぶち込むベクトルにしてぶち込むってやつとあとそれを読み込むっていう二つあるんですけど結局そのPythonのメソッドでデータコネクションの機能を使ってベクトルのデータを呼び出したりとか



  • してGPTと連携して既存のデータをGPTに解釈させて返すなるほどっていうことをやってるんですねで今回この話をじゃなくてこの本を読んでてめっちゃ面白いなって思ったのは僕あの今年結構システムアーキテクチャとか綺麗な行動みたいなのを勉強してたんですけどポイントは抽象化だと思ってるんですねうんうん抽象化どんだけ処理をシンプルにしていくか上のレイヤーで確かに



  • でGPTってめっちゃふわっとしてるんですよめっちゃふわっとしてるせいで投げる側の気遣いすごい必要なんですねプロンプトエンジニアリングを中心にでその処理めんどくさいよねっていうのを抽象化してくれてるのがラングチェインなんですよ結局なるほど



  • 多分白鳥?カモ?優雅に泳いでる鳥の足すごいことになってる水の下でめちゃめちゃバタバタしてるみたいなラングチェーンはね多分そういうことになってるんですよこの本はこのラングチェーンがGPDに実際に何を投げてるかとかもこうやったら見れるよとか本当にログ出すだけなんですけど見ながら進めるんですけど



  • 白鳥みたいになってますだからダックダック号なの?ダックダックは関係ない関係ないという感じで読み止めたりそういう風にして



  • LLMを使ってアプリを作っていくんですよそういうLLMを使って気になる実際にサービス作ろうって思うと気になるところはラングチェーンでカバーしていくラングチェーンの立ち位置ですねなるほどねなんか



  • すごいなチャットGPTみたいなすごいさ予測不能なものを抽象化してるのがすごいなと思いますねそうそうそうそうとはいえチャットGPTもとんでもないスピードでアップデートされますしラングチェインもとんでもないスピードでアップデートされますそうなんだラングチェイン今バージョン0.0.本書では28って書いててはい



  • 今ちょっとなんだかわかんないんですけど先日やったバージョンの話の通り0.0.何なんでバッジバージョンで正式版じゃないですしめちゃくちゃアップデートされます最新版のラングチェーン使ってこの本やろうと思ったらできなさそうだったんでやってないですし現に結構いろいろメソッド書き換わってるよって本にも書いてるんで目まぐるしいスピードで



  • 進化してるなるほどそれって旧バージョン使ってたらさChatGPTのアップデートに追いつけない可能性とかもないんですか今はなかったですねあとChatGPTのモデルもちゃんとモデルになってるバージョンになっててそこ選べるのか選べるある程度ですけどねパッチバージョンセマンティックバージョニングされてるわけじゃないんでうちうちで変わってるかもしれないですけど今のところは困ってないですねうんうんうん



  • で今なんとなく動けるのを作れそうだなって気持ちになったじゃないですかただここがもうまず激動ポイントなんですけど激動ポイントテストをどうやってやるんでしょうねえ?諦めよう確かにこれ激動ポイントなんですよモンキーテストそれいけるかいけないかどうやって判断するの



  • っていうので確かにここで確固たり方がないっていうのが現状なんですけどただ本書で紹介されてたもの2つあってこれも面白いなと思ったんですけどまず1つはベクトルの距離で測るっていうテスト



  • 出力したものをベクトル化して元のテキストソースのテキストをベクトル化して遠くないよねっていう判断をするある程度の域地を決めといてみたいなこれは分かりづらいもう一つ分かりやすいやつGPTでテストしますこれはこの2つの文章は同じことを言ってますかっていうのをGPTに投げてGPTに判断してもらうしかもそのメソッドがラングチェーンに入ってるっていう



  • エヴァニュエーションっていうこれも面白いですよね極論あれですよねそのGPTにテストをさせてそのテストをさせたGPT君も会ってますかっていうテストもさせるみたいなこともすごいラインコーみたいですね極論それも必要ですよね監視してるやつを監視するやつみたいなねすごいなすごい不安が残るこんなに不安が残るテストあるんだろうかっていうテストしてるねとはいえGPT3.5の



  • で作ってテストをGPT4にやらせるとかねこの2つあってもGPT4にやらせるみたいななるほどねっていうので本番システムにはコストかかるやつ入れれないけど評価用のためにはやっぱ精度いいやつの方がいいからGPT4でテストさせるのも手だよねみたいなはいはいはい実際体感ですけどその辺の人よりはまともに判断してくれるんで実際にテキストがあれば実際にテキストがあれば



  • っていうのがまず激動ポイント本当にこれはなんか最新技術感あるなと思って本当に何でしょう激流を頑張っていってるからもうすごい足場固めとかは一回後にしてというか追いついてなくて



  • ちなみにテストとの比較対象って最終的に出力したいやつと何を比較してるんですかデータベースにある元のドキュメントとかじゃないですか決済の手順を知りたいとかだったらマニュアルにある文章とGPTの回答を照らし合わせて同じことを言ってるよねとか内容難しいですね持ってきてるかどうかぐらいのテストしかできなそうな気がしますでも持ってきてるかどうかってどうやって判断するの



  • JSON形式で返してると指定してたらバリュー入ってるかどうかただそのバリューはGPTが一回食ってるから若干文言変わってんじゃない要約されたりとかしてるってことだよね5Gとかが直ってたりとかそのまま抜き出してくださいっていう要求をしてればそれでいいかもしれないけどそれって使いやすいシステムとは言えないかもしれないからいい感じにまとめて出してくれたはずなんだよねそれを合ってるかどうか判断するのって



  • 意味の解釈しかありえないから中身はむずいっていうのでGPTに判断させるっていうのがまあ個人的には今一番まだマシな選択肢うんうん



  • あとそのテストの観点もいろいろあってまず間違ったこと言ってないかも一つだしあとはなんかやばいこと言ってないかその倫理的にその辺のチェック入れなきゃいけないとか本当に効いてるかなっていうテストしなきゃいけないよねとか実際に商用で入れるとは入れようと思った時にはそういうハードがいろいろあるんだろうなと思ったんですけど確かにその辺をね先日のAWSのサービスでベッドロックガードレールっていう



  • その辺をガードするっていうフルマネージドサービス出てたりしましたけど面白ーと思ってそれはコンプラ的なところを見てくれるっていうフルマネージドサービスあらゆるコンプラチェックにも使えそうなんかそれはあるかもしれない広告チェックそれでいいですよねそうそうそうそう言うたら確かにそれはそうかも



  • っていうのがいろいろまだ課題があるんですけどラングチェーン使うとこういう便利なことがあるそのチャットGPでそのままアプリを作ろうとすると大変なことがいろいろあるとその大変なことをいろいろカバーしてくれてるのがラングチェーン本当にごく一部の機能を紹介したんですけどラングチェーンって割と他にもいろいろOSSある中でも広く網羅してるらしいんでPythonとJavaScript版があるんですけどTypeScriptPython版が今唯一全機能使えるらしいんで



  • まあそういうラングチェーン使いたいんだったらもう多分PythonにPythonでよかったーなるほどただ一方でほいラングチェーンに対して批判的な声もありますほうどんな批判ですかコードがクソだっていうそれはそれはね面白いなーと思ってえ



  • コードがクソだって言ってました?ライブラリを構成しているコードがクソってことかライブラリの中身のアーキテクチャが煩雑だから今後オープンAIというかチャットGPTとかに追従するためにいろいろ機能が追加された末に多分これじゃあバグがいっぱい出る複雑性の高いコードだからもうこのラングチェーンには未来がないって言ってツイッターで叩かれてますバージョン0.0.7なんで今後ねドカーンってリファクトリング入るのかもしれないですけど



  • そういう批判があったりしますねいやーでもなんか気持ちわかるというか今スピード重視の時期というかそんな感じでするよねしかも0.0点なんで実際バグ踏みましたし僕もそういうのはあるんでしょうねというところでやっぱりパブリッククラウドが出してるものが今ポンポン出てきてるんでいやー激アツだなっていうそういうことかはい



  • なるほどねパブリッククラウドがやってるやつはちゃんとメンテされるはずだしサポートにこれ変だよって言ったら直してくれるはずだし確かにこれはねだから激アツだなっていうところで僕は非常に注目してます今この辺ってことはそのえーと



  • 今オープンAIだとマイクロソフト系じゃないですか各社でおそらくLLMもやってるしラングチェーン的ななんだろうねあれはLLMのエージェントみたいなイメージで考えた方がいいのかなLLMエージェントフレームワーク言うてもコードなんでただの



  • 的なのがきっと他のクラウドにも出てきたらもうすでに出てるんで両方の精度が大事になってくるというかそうですそうですでもパブリッククラウドで言うとどっちかっていうとLLMで差別化してる感があって



  • AzureはオープンAIで強いただGCPとAWSはオープンAI使えないんでGoogleはGCPは多分ビングAWSはタイタンってやつらしいんですけど昨日初めて知ったんですがタイタンスープかと白い湯じゃないAWSのLLMの精度はよく分かりませんがとはいえねAWSは



  • Facebook Qメタメタの言語モデルとか担いでますからそのような戦争になってるっていうなるほど面白いっていう最新技術にちょっと最近ワクワクしたっていうところでこの本読んでて面白いなと思った整理しきれてないところで僕も使い倒せてないんで正直今本の上でチャットアプリ



  • を作ったのとあと今スラックボット一個作ってるぐらいで今後はね我々暇人プログラマーないしダンスチームの筋肉定食仕事いろいろありますからその辺を助けてくれるエージェントなんか一個作ったらおもろいなって思ってます機密情報もあんまないんで確かにあんまりお金の範囲ないかからない範囲でちょっとやれるといいなと思いながらちょっとこの本読んで楽しいってやってましたなるほど



  • でその面白いよっていうのを共有したいっていうだけのエピソードだったんでなんかその辺がちょっとでも伝わればいいなと激動の時代来てしまったな激動の時代感がありますねこれはカイチさんが注目してるので僕も注目することにしました考えること諦めてるカイチさんがやってたら間違いないですからそうだな俺もカイチがなんかいいって言ってるからやることにした



  • パブリッククラウドで触ってみたいなっていう気持ちですねちょっとお金わかんないんだけどねちょっとお金かかりそうですよねAI系は高いっていうイメージあるからなそうなんでしょうねチャットGPTは20ドルしますからね月額ねまあそうねAWSでラムダはかかんないけどチャットGPT使えないからなそのためにAzure契約するのやだな



  • 新しいパブリッククラウド使うときのハードルの高さえぐいよねでもそうなってしまったらおしまいだよなって気持ちもあるんですよねやっぱねどうせ使わなきゃいけないとき来るし



  • なのでねちょっと皆さんもあのまあ今やってることで精一杯の方は絶対今のことやってくださいとはいえなんか新しいこと勉強したいなと思ったらまあ今年LLMはもう本当に2013年LLMの年だったと思うんでうん確かにマジでそうだねエンジニアとしてはちょっとこの本を押さえておいた方がいいんじゃないと思いますなんか読み物としてもまあ動かすのが一番楽しいですけどうんまあ基本的にはその通りやれば動く本ではあるのでうんうんうん



  • LLM周りの感どころというかこういうのがあってとかプロンプトエンジニアリングの話とかもあるので実際に使ってみるとかその辺網羅的に勉強したいなと思ったらこの本読むといいかなと思います入門ですねしかもこの本早めに読んでおかないとなかなかそうかもしれない今の俺ですらちょっと遅れてたなって思ったんでそうなんだもうちょっと早く読んだらもっと花高できたなっていう時間経つほどエラー増えそうまあでも



  • バージョン戻せばいいだけなんでそれはそれでどうにかなるかなと思いますただこの本AWS前提なんで環境がお金をかけて学ぶ人前提ですみたいな数十ドルぐらいその辺抵抗ある人は抵抗外してください僕は外してるんで大丈夫ですいいですね



  • っていう感じでした質問ありますかいやもうボリュームがありすぎてあれなんですけどちなみにラングチェーン以外で今注目されてるやつとかはあるんですか注目は分かりませんラングチェーンが一番ホットだとは思いますそうなんだはい



  • 用途によって違うんですっていろいろこういうことしたい場合はこのライブラリーみたいなのがいろいろあるらしいですけどラングチェーンが薄く広くっていう感じみたいですなるほどあと実際ラングチェーン使ってコード書くよってなった時って今一応チャット作ってるって言ったじゃないですか難易度的にはどれくらいですかそれを使うってなったらただのチャット作るんだったらそんなにないです本当に



  • アップドットパイ今ちょっと見ますね100行くらいだった気がするなただのチャットを作るだけだったらその情報を参照してとかになると少し複雑になる気がしますけど試しに動くの作ろうだったら普通に聞いたに多分記事あると思うんでそれ見て作るだけで80行くらいでただのチャットチャットGPTみたいなやつ作ろうだったら



  • そうなんでできます結構手軽に始めれてこだわるってなるとちょっとむずいみたいなこだわるってなると社外に出さないんだったら簡単だと思います攻撃の防御とか間違った情報を出さないようにとかテスト書こうとかってなると大変だと思いますそうじゃないところは割とスッとかけるラングチェーンが抽象化してくれてますラングチェーン



  • ちなみにそのちょっと焦点違うコマなんですけどLLMってそのGPT用以外に使われるやつってあるんですかなんていうかGPT以外の言語モデルはいっぱいあるはずちょっと詳しくないけどチャットGPT以外のやつはいっぱいあるよね基本その生成AIのためのLLMみたいな感じになってるんですかね生成AIのためのLLMLLMがまず大規模言語モデルですはい



  • GPTがLLMの中の一つですだから今後GPTよりも優秀なアルゴリズムが出てきた時とかは使うよねアルゴリズムかなんかあれだよね言語モデルってパラメータ戦争みたいになってるんですよね



  • どういうことですかベクトル何次元にするとかそういう話ですよね中国のこのチームが何億個のパラメータを使ってすごい精度の高い言語モデルを発表したぞみたいな感じでとにかくパラメータ多い方が精度上がるみたいな時代がなんか訪れてる感あった気がするあるよねただ一方で



  • パラメータ数多いと精度がいいんですけどスピードがあれなんでじゃあその会社内社内で使う特定のジャンルの質問だけだったら確か4桁億パラメータなんですよGPT4とかって数千億とかなんですけど30億ぐらいでいいよねみたいなそういうのだとスピードが速いし安いからじゃあそっちのGPTじゃなくてLLM使った方がいいよねみたいなのはまあいろいろありますねうん



  • GPTとは全く別のアルゴリズム的なのってあるのかなと思ってあるあるあるバートとかってそれに入る?多分そう自然言語系のモデルはそうなんじゃないかな大規模言語の大規模ってどっから大規模って言うんやっていう話ですけどまあ入るんじゃない?ちょっとすみませんふわっとしてますそこは



  • でも自然言語系のモデルは結構昔からいっぱいある自然言語系っていうのはどういう自然言語を処理する自然言語って普通に喋る言葉とか日本語とか英語とか人間が使う言葉を自然言語って言いますけど自然言語を処理する例えば翻訳とかねあとは文章から写真を生成するとか自然言語の意味を解釈する自然言語系のモデルと画像生成のモデルの2つを組み合わせてやってると思うんだけど



  • なるほど画像生成そういうことかダリーとかそうだよねなんかそのダリーみたいななんか全く別の別でもないですけどそのLMMの新しい使い方みたいなのあるのかなと思ってまあ思いつくか次第じゃないいろいろあると思うけどね音声生成もあるだろうしね文章を打ったらその通りにAIが音声合成して人が喋ってるみたいにするとかも生成AIですねなるほど



  • 順平の質問の意図を正しく理解できてないかもしれないいやいやできてますじゃあよかったGPTってアルゴリズムっていう言い方がいいんですかねGPTっていうのはアルゴリズムっていうかなんていうんだろうね学習手法AIの学習手法そもそも何の略なのジェネレイティブなんでしょうねプリトレインドトランスフォーマートランスフォーマー



  • トランスフォーマーっていう言語系でよく使われるモデルがあってそれをベースにして作られてるやつなんだよねジェネレイティブプリトレインドトランスフォーマー生成系で事前学習してるトランスフォーマーベースのモデルか?はいはい合ってます合ってますなるほどアルゴリズムじゃない気がするな学習手法の方が近いイメージあるけどねはいはいはい



  • いやちょっとビジネスチャンスを探してましたビジネスチャンス探してた?今の?LLMの新しい可能性をちょっとなんかあんのかなと思って探しながらはいじゃあちょっと長くなりましたが僕がただはしゃいでたので楽しそうって思ってくれたらいいなと思いますので楽しそうって思ったら実質もしくは調べてみてねなんならちょっとこの本はね早めに読んだけって思うんでうん



  • そうなんだこの本はマジで早めに読んでおけって思いますこれちなみにAI知識なくてもいけるんですかいけるなるほどチャットGPT触ってるだけなんで中身を知る必要はないですなるほどねパイソンは知ってないときついそうだねパイソン知ってた方がいいでもある程度でいいですそんなに難しくないんでしかもパイソンがそもそも難しくないんでプログラミングしてればできると思いますうん



  • 最後お知らせハッシュタグひまじんプログラマーでフィードバック募集してますのでGPTというかラングチェーンというかこの辺の話面白かったよ刺激を受けたよこの本買ったよっていう人ポストお願いしますあと説明欄からラジオポッドキャストへの要望質問募集してますのでこちらもお気軽にお願いします質問お願いしますGPT



  • また各種ポッドキャストプラットフォームのフォロー高評価お待ちしてますこちらもお願いいたします僕らのモチベーションにつながります復習中はいじゃあまた面白いこと面白い本読んだら共有しますまた次回バイバイ



  • ソースコーダーまだ修正レーチがあるもう納品できるんだから次回納期おにおずってバックステンバイ

0:00 47:13

#202 エンジニアなら知るべきLLM入門!ChatGPTを使ったアプリ開発体験会!