Yosuke Asai
Atsushi Hatakeyama
{openStarringSelector = false;})"
wire:loading.class.remove="cursor-pointer"
wire:loading.class="cursor-wait"
aria-label="出演者を紐付ける">
Yosuke Asai
{openStarringSelector = false;})"
wire:loading.class.remove="cursor-pointer"
wire:loading.class="cursor-wait"
aria-label="出演者を紐付ける">
Atsushi Hatakeyama
Yosuke Asai
なるほど。
じゃあそっか。付加情報を与えてプロンプトを作るっていう感じですね。
Atsushi Hatakeyama
そうですね。
Yosuke Asai
そのデータベースから取ってくる部分っていうのはLLM使ってるんですか?
Atsushi Hatakeyama
そうですね。ここも精度を向上させるためにいろんなアプローチがされるところであって、
基本的にはセマンティックサーチのように高次元、1500とかっていう次元で、
意味的に近しいところをコサイン類似度みたいなところで取っていきますと。
ベクトルDBにはそもそも何が入ってるのみたいな話をまずお伝えすると、
ドキュメントをベクトルDBに登録したいときにテキストを分割するんですよね。
そのテキスト情報とそれを数値情報に変換した埋め込みデータが一つのローに入ってくるイメージですね。
ユーザーが何か質問を投げたときに、そのクエリ自体も埋め込み数値情報に変換されて
2つの数値データの近しいところをマッチさせて、
ドキュメントが取ってこられるみたいなイメージです。
これ伝わってますかね。
Yosuke Asai
いやちょっと難しいですね。
コサインとか出てきてからちょっともう。
Atsushi Hatakeyama
意味的に近しい情報がどこにあるのかっていう判断は、
エンベディングデータっていう高次元データで算出することができるんですよね。
Yosuke Asai
これ例えば同じ質問を投げたら、ほぼ必ず同じ答え返ってくるっていうことになりますかね。
Atsushi Hatakeyama
そうですね。
そこも設定することができまして、
例えばその確率でこの質問に対してこのドキュメントどのぐらい近いみたいなのをある程度固定してるんですけども、
それをどのぐらいばらけさせるかみたいなのも編集することができて、
基本的には同じ質問をしたら同じような答えが返ってくるんですけども、
その設定に応じてある程度そのばらつきが出るような設定にしたりだとか、
確率が高いものが1位に返ってくるような設定にしたりすることもできますね。
Yosuke Asai
なるほど。
実際にその辺のツールとかライブラリーはあつしさんが変わっているんですか、
それとももうちょいコアな人が作っているみたいな感じですか。
Atsushi Hatakeyama
そうですね。今2つプロジェクトをやってるとお伝えしたんですけども、
1個目の時は自分はどちらかというとバックエンドとインフラのアーキテクチャを考えるみたいな仕事をしていて、
逆に2個目では同じかアーキテクチャを考えると今バックエンドをメインにやってる感じですね。
なので本当にこのラグでどうやって情報を取得してくるかっていうところも結構考えてはいるところです。
Yosuke Asai
じゃあ細かいライブラリの違いとか設定とかそういうのも理解しないといけないというか。
Atsushi Hatakeyama
そうですね。
Yosuke Asai
勉強しているという感じですかね。
Atsushi Hatakeyama
そうですね。この辺は本当にモデルとかあとはどうやって取得してくるかっていうテクニックに応じて
最終的に出てくるアウトプットの回答精度がかなり変わってきたりするので、
Yosuke Asai
難しくもあり改善の余地がすごくあるポイントかなと思ってます。
いや本当に難しそうですね。でもすごい面白いところですね。かなり。
Atsushi Hatakeyama
そうですね。
じゃあラグの話は一旦この辺にして、
逆にアサヒさんが行われているソナースウィープについてもちょっと深掘っていきたいんですけども。
本当ですか、はい。
Yosuke Asai
もうちょいでもラグの話聞いてもいいですか。
Atsushi Hatakeyama
全然。
Yosuke Asai
ちょっと気になるところがあって。
っていうのもやっぱりデータの管理とかちょっと気になっていて、
要は例えば人のデータとかを入れるわけじゃないですか。
例えば私はこの日に勤務していますとこの日に休みですとかそういうのがあれば
この人は休みですかみたいなのを聞けたりするわけですよね。
そういうのってどんどん更新されていくじゃないですか、社内の情報って。
それをベクテルDBに反映しなきゃいけないと思うんですけど、
それってどういうふうに反映していくのかとか気になるので聞けたら嬉しいです。
Atsushi Hatakeyama
そうですね、まさにデータをスケールさせていく方法とか
マネジメントって結構難しいトピックかなと思っていて、
結論ここ企業のニーズ次第みたいなところがあるんですよね。
というのも、例えば意図的に過去分を知りたいニーズがあったりだとか、
一方で逆に最新データしかいらないよみたいなニーズがあるので、
そのアプローチに応じてどういうふうにデータバッジ的に削除するのか更新するのかみたいなのが変わってくるので、
一位にこの方法が絶対いいですみたいなのがないっていうのが前提としてあります。
具体的なユースケースを挙げると、
例えば建設企業さんとかだと年度ごとに設計基準書とかがあるので、
そういった場合だと逆に意図的に消さずにどんどんストックさせるみたいなアプローチが取られますと。
逆にその最新データしか必要ないよっていう場合は、
さっき言ったVectorDBの中にメタデータみたいなのを付け加えてあげて、
これは例えば2025年のデータみたいなラベリングをして検索をするときに、
まず数値データでセマンティック検索するのではなく、
まずメタデータの段階で2025年のデータだけをフィルタリングしてきて、
その後にラグを検索するみたいなことをすることで、
逆にその最新データしか取ってこられないみたいなことが実現できたりしますね。
なのでデータマネジメントに関してはユースケース次第で、
どういう風に取るかっていうのはそういったメタデータとか、
いろんなアプローチを用いて期待する結果だけを取るようにするっていうのが、
基本的な手段というか戦略になるかなと思います。
Yosuke Asai
かなりお客さんごとに違うから、
Yosuke Asai
その辺はカスタマイズして設定を変えて使ってもらうっていう感じですかね。
そうですね。
どんどん更新が必要な場合のお客さんっていうのは、
どうやってデータを更新していくかってもう想定はありますかね。
例えばそのデータの更新ってすごい難しいじゃないですか。
ライブで反映させなきゃいけないとかってすごい大変だと思うんですけど、
その辺もちょっともし分かっていることがあれば聞いてみたいです。
Atsushi Hatakeyama
更新方法もお客さん時代になってきて、
お客さん、例えば大企業であればあるほど、
例えば年代の時代、シェアポイントを使っていた時代だとか、
今でいうとBOXっていうクラウドストレージを使っている時代であれば、
いろんなところにいろんな情報が散らばっているので、
それをどういうふうにAIのインフラに適応させるかっていうのが、
一つ考え方としてあるのかなと思っていて、
例えばそのBOXの情報をラグ検索できるようにしたい場合は、
BOXとかのMCPを使ってあげて、
まず疎通できるようにして、
あとはこっちがアプリケーションサイドからバッジ的に、
数値データに変換する処理をかけることもありますし、
逆にそのユーザーが一時的にこのドキュメントに対して質問したいとかっていうときは、
アプリケーション内に手動でアップロードする画面とかを設けてあげて、
ユーザーが適宜自分のナレッジベースを作れるようにするっていうようなアプローチがあるので、
どういうデータが保存されていて、
こういうふうに参照したいかに応じて、
MCPなり柔軟に入り口を提供するっていうのが手段かなと思います。
Yosuke Asai
ありがとうございます。
じゃあやっぱりお客さんごとにかなりアプリケーションのコードも異なるというか、
コアの部分は多分近いと思うんですけど、
異なるソースコードをデプロイしていくっていう感じだったんですかね、その辺は。
Atsushi Hatakeyama
そうですね、まさにおっしゃる通りで、
たぶんSaaS、逆にここのSaaSとかっていうのはそこの辺のフレキシビリティがないので、
ここ結構クルーするところかなと思うんですけど、
逆にソフトウェアを提供する側としては、
ある程度基本的なアセットを、基本的にラグのワークフローとかを組んだ上で、
細かいどういうふうにデータを登録したいだとか、
っていうところをある程度お客さんごとにカスタマイズして提供することで、
企業向けのラグっていうのが価値が出てくるのかなと思ってますね。
Yosuke Asai
理解しました。じゃあ保室する先もおそらくお客さんの環境というか、
オンプレなりお客さんのクラウド環境なりっていう感じなんですかね。
Atsushi Hatakeyama
そうですね、お客さんが例えばAWSと契約しているのであれば、
AWSに展開できるようなインフラを作りますし、
AzureならAzureなりで展開できるように、
テラフォームでコードを組んで即座に環境ができるようになっているような感じです。
Yosuke Asai
じゃあもうマルチプラットフォーム対応できるというか、
準備しているという感じですか。すごいなそれ。
それなかなか大変そうですね。
Yosuke Asai
それちなみに聞いてもらえれば何人くらいのチームでやってるんですか、
その全体のラグのサービスを。
Atsushi Hatakeyama
今は人出たり入ったりしてるんですけど、
平均6人くらいでクイックに回していて、
まだ6人で対応できる理由はプロダクションとかみたいに
何千人何万人が使ってるわけじゃないので、
基本的なベースラインだけ作ってあげて、
あとそのお客さんに提供するときは人をもっと増やしたり減らしたりすることで
対応してるみたいな感じです。
Yosuke Asai
それはすごいですね。6人でマルチプラットフォームもやって、
カスタマイズもやって、
ラグの内部も理解してっていうのはなかなか大変そうですね。すごいな。
Atsushi Hatakeyama
そうですね。これなんかちょっと余談みたいなんですけど、
なんか上のレイヤーの人、エグゼクティブの人とかって、
なんかAIがあればもっと生産性上がるでしょみたいな仮説があって、
じゃあもっと働けるよねみたいな。
Yosuke Asai
いやそれも。
Atsushi Hatakeyama
結果その業務が増える、めちゃめちゃ増えてるみたいなのがあるので、
そこはちょっと苦しい部分でもあります。
Yosuke Asai
本当にそうなんですね。AIがあるからもっとできるでしょみたいな感じで。
それは僕の会社もありますね。すごいプレッシャーが増えました。
Atsushi Hatakeyama
ちょっと辛いですよねそれは。
そうですね。そういうところで、
今カスタマサポートのところもベースはもう2,3週間で作ってくれって言われていて、
多分裏側のバックエンドのコードをPythonで書くと時間かかるので、
さっきちょっとちらっと言ったんですが、
N8nっていうローコードのコードツール使って一応構築したんですけども、
やっぱりそういうツールってパフォーマンス上の
ボトルネックがあったりだとかするので、
結局Pythonに変えようみたいな感じになってますね。
Yosuke Asai
そうなんだ。カスタマイズもしずらそうですね。
ローコードとか使うと思いようができないところが多かったり。
Atsushi Hatakeyama
そういうツールのいいところって、
あらかじめビルドインでツールが使えるところだと思うんですけど、
逆に捉えるとビルドイン以外をやろうとすると制限がかかったりだとか、
その内部にPythonツールを書けるところがあるんですけど、
ライブラリーが読み込めなくて結局外のPythonスクリプトを
わざわざ読み込むみたいなことをしてるので、
これは一体何をしてるんだみたいな。
Yosuke Asai
だったらPythonで書いた方が早いっていう。
Atsushi Hatakeyama
っていうなんかありますね。
その辺のバランスはやってみないと分かんないところもあるから難しいですよね。
Yosuke Asai
初めてのことだし。
Atsushi Hatakeyama
そうですね。
この話題のついでにラグの課題をもう少しお伝えすると。
Yosuke Asai
ぜひ。
Atsushi Hatakeyama
やっぱり制度向上っていうのがラグの課題というか、
達成したい一つの目標としてあると思っていて、
アサヒさんもまさにどういうふうにコードの品質を高めるかっていうのが、
AIを使う上で肝になってくるポイントかなと思ってます。
ラグだと、さっきお伝えしたLLMにコンテキストとして与える情報が
すごく重要になってきているので、
それを実現するためにいくつかのテクニックが用いられてますと。
1個あるのがOCRっていうのは非常に重要になってきていて、
エンタープライズム系だとExcelとかPDFとかいろんな
はたまた手書きのデータがあったりとかするので、
そういったテキストデータを画像とかPDFに含まれる文字っていうのを
正しく読み取ってデータベースにいかに正しく登録するかっていうのが
回答精度を高める上で非常に重要になっていきますと。
今いろんなモデルが出てきているんですけども、
まず日本語系の処理は中国系のモデルがすごく優秀というか精度が高くて、
クエンとかっていうモデルであったりだとか、
パブルOCRみたいなのがあるんですけども、
そういう中国製のモデルを使うことで手書きデータとか、
あとはPDF内の表データっていうのを正しく読み取って
ベクトルDBに登録するっていうのが、
すごく精度向上のために非常に重要なポイントになりますっていうのと、
あともう一つあるのがリランキングみたいな仕組みがありまして、
これはLM、例えばユーザーが質問を投げたときに、
まず外部情報から意味的に近いものを30件ぐらいガサッと取っていきますと、
このときに例えばユーザーがPythonについて教えてみたいなクエリを投げたときに、
例えばPython言語に関するドキュメントも取ってこられますし、
はたまたヘビに関する情報とかももしかしたら取ってこれる可能性があります。
Pythonとヘビ、キーワード的には近いので、
混ぜてくる可能性もあるんですよね。
こういった30件のデータに対して、今度は別の方法で類似度検索することで、
今度は意味的に近い順にさらに別のアプローチで並び替えるみたいなことができるんですね。
その並び替えのテクニックをリランキングみたいな言うんですけども、
こういうアプローチを取ることで、
30%ぐらい精度が向上したみたいなのがあるので、
こういったドキュメントを取ってくるプロセスの中で、
いろんなテクニックを使うことで最終的なアウトプットの演出を高められますよっていうのが、
ラグで気にするポイントというか、あるのかなと思ってます。
Yosuke Asai
なるほど。ありがとうございます。
Yosuke Asai
中国製のクエンとかの精度がいいっていうのは面白いですね。日本語だと。
Atsushi Hatakeyama
そうですね。漢字で近いのかわかんないですけど、
あと純粋にやっぱり中国の研究力というか、高いなっていうのを持っていて、
やっぱりそのディープシークとか、いろんな企業も使ってますし、
あとコストが安いとかっていうのもあるので、
今後使う企業増えるのかなっていうのを勝手に思ってますね。
Yosuke Asai
なんか僕も結構論文とか最近読むんですけどたまに、そういうキャッチアップが必要なんで。
読んでみるとやっぱり中国から来てる論文がすごい多いというか、
すごいAI関連のリサーチとか開発とかはすごい中国で活発だなっていうのは自分も感じてるところですね。
うん。
あとはその、なんかそういうキャッチアップみたいな、ほんと大変ですよね。
これまでの開発だったら、やられることに制約があったというか、
この言語とこのインフラとこれを使ってみたいな、
だったらできることってもちろんあるけど、そんなにたくさんあるわけじゃないというか、
この今AIの文脈でいうと、どんどん新しいこと出てきて、
どんどんキャッチアップしなきゃいけない内容が増えてるというか、
これやったらもっとよくなるかもしれないみたいなのがあまりにも多すぎて、
なんか大変じゃないですか。
Atsushi Hatakeyama
そうですね。まさに、まだなんか、今までそのJavaScriptとかフロントエンドとか、
あとはそのインフラのことを知ってた、勉強してたんだあれですけど、
で、その時に機械学習っていう新しいフィールドで目新しさがあって、
面白いなっていう気分は続いてるんですけども、
なんかずっとこれが続いてるんで、正直ここ2年ぐらい。
いつの日か、バンアウトじゃないですけど、
ちょっと疲れたなみたいな日が、もしかしたら来るかもしれないですね。
Yosuke Asai
いやー、なんかふと疲れたなって僕は最近思いますね。
ちょっと休みたいなみたいな。
Atsushi Hatakeyama
そうですね。まあ、量もそうですけど、やっぱりスピードが尋常じゃないみたいなところがあって、
うん、ほんとに。
ちょっと前の最新が、もう1年前ってすごい古いなみたいなのがあるので、
やっぱりその、前お話しした、若妻さんとお話しした話じゃないですけど、
学び方をどう学ぶかとか、誰の情報を参照するかみたいなのが、
なんかすごいマインドとして重要になってるなっていうのは感じます。
Yosuke Asai
うん、確かに。本当に。
必要のないことはなるべく削がないとちょっとやっていけないですね。
そうですね。リソースも限られてるので。
本当にそう思います。
Atsushi Hatakeyama
あと、なんかラグこういうところとか、
企業どういう課題あるとかなんかお聞きしたいことありますか。
Yosuke Asai
でも結構聞けたんで、満足しました。
Atsushi Hatakeyama
ありがとうございます。
Yosuke Asai
ちょっともっとキャッチアップしてからしたら質問したいことありそうですけど、
はい、ありがとうございます。
Atsushi Hatakeyama
ありがとうございます。
ちょっとじゃあ自分もお聞きしたくてですね、
純粋にざっくりセキュリティの話みたいなのをさせていただきたいなと思っていて、
今AIとかが登場したことによって、
攻撃パターンとかも変わってきたのかなみたいな思ってですね、
例えばエージェントがブラウザを実行できるようになったりだとか、
そういった意味で、
例えばバイブコーディングによって脆弱性の高度が増えたとか、
AIを用いた攻撃が増えたみたいなのを、
セキュリティの会社に勤められている方から見て、
どういう変化があったのかなみたいなのがもしあればお伺いしたいです。
Yosuke Asai
セキュリティの会社に勤めているかもしれないですけど、
僕全然その辺詳しくなくて、
全然関係ないビリングっていうプランとか決めるドメインにいたので、
全然ちょっと分かんないんですけど、
最近ちょっとやっぱり勉強しなきゃいけないこともあって、
分かる範囲でっていうと、
OWASPっていうの知ってますかね?
Atsushi Hatakeyama
はい、日売り団体。
Yosuke Asai
リスクとかで公表している、
2025年OWASP Top 10 for LLM Applicationsっていうのがあるんですけど、
それによると、
第1位がプロンプトインジェクションっていうのが出てきて、
プロンプトに対してインジェクトするのをしてくる、
プロンプトを編集して、
それを悪意のあるプロンプトをLLMに投げるとか、
そういういろんな新しいのが出てきているっていうのは、
すごい話題になっていて、
LLMでもサプライチェーンアタックっていう、
多分モデルのトレーニングの時に悪いデータを仕込むとか、
あとは何だろうな、
あとはあれですね、
たぶん畑山さん、厚木さんのやつでも関係ありそうですけど、
アウトプットが、
例えば出すべきでないアウトプットを出してしまう、
ラグとかだと特に問題ないそうですけど、
ある平社員の人がこの情報をくださいって言って、
本来見るべきじゃない情報が見えてしまうとか、
そういうのもあるっていう話なので、
その辺の情報は社内ではいろいろとキャッチアップが進んでいるっていう感じですかね。
Yosuke Asai
そういうメジャーなのがあって、
さらにLMに含まれるデータに問題があるとかそういうのが出てくるので、
いろいろとその辺は僕ももっと勉強していきたいなっていう感じですけど。
Atsushi Hatakeyama
ここ追加で質問してもいいですか。
Yosuke Asai
はい、どうぞ。
Atsushi Hatakeyama
アサヒさん、多分行動の中で良いデータと悪いデータの識別みたいなのを
しているのかなっていうのを勝手に思っているんですけども、
なんかその中で危険なデータ、危険な行動っていうのが
どういう風に分類しているのかなっていうのが気になりました。
Yosuke Asai
僕の今の業務ではそんなにそういうことはまだやっていないんですけれども、
ソナーの製品、ソナーキューブがやっていることは簡単にお話できて、
そもそもソナーキューブは何をしているかというと、
静的解析っていうのをしていますと、
静的解析とは何かというと動的解析というのもあって、
動的解析というのは要はテストですよね。
要はテストを書いて実際にプログラムを実行して確認する。
あとはセキュリティの文脈でいうと、
Penetration Test、日本語で痛感テストっていうんですかね。
ちょっと分からないですけど、そういう実際にブラックボックスでテストをするとか、
実行するテストが動的解析で、
静的解析の方はコンパイラーとか、
コンパイル段階でのコードを実行せずに解析していくっていうのをやってますね。
いろんなテクニックがあるんですけど、
一つ有名なのはASTっていうのがあって、
Abstract Syntax Treeって言うんですけど、
これは単純にコードの情報とクラスとメソッドと、
if文と変数があってみたいな、
そういう情報を全部ツリーにして解析しますみたいなのがあって、
これは例えばなんだろうな、
どういうのかな。
例えばif文で、
このif文に到達しませんとか、そういうことが分かったりするのかなっていうのがあったり、
もっとセキュリティ系の検知しやすいロジックもあって、
それが例えばTaint Analysisっていうのがあるんですけど、
知ってますかね、こういうの。
Atsushi Hatakeyama
ASTまではついていったんですけど、
その単語がちょっと分からなかったです。
Yosuke Asai
Taint Analysisっていうのもあって、
これはなんだろうな、それこそSQL Injectionとか、
そういうメジャーなセキュリティ系の問題を検知できるやつで、
どういうものかというと、ソースとシンクっていうのがあって、
必ずSQL Injectionするためには入力が必要で、
ユーザーからの入力があって、
その入力っていうのは基本的には信頼できないですと。
それが実際にSQL実行されるところに到達するかどうか、
みたいなのをチェックするもので、
そのプログラムのコントロールフローっていって、
その流れを全部フローにして解析していくっていう感じですね。
その入力がもしサニタイズされずに実行されてしまうと、
例えばドロップテーブルみたいなものがそのまま実行されちゃう可能性があるので、
そういうのを検知するっていうのがTaint Analysisになりますね。
Yosuke Asai
他にもいくつか手法はあるんですけど、こんな感じですかね。
Atsushi Hatakeyama
ありがとうございます。
Yosuke Asai
ちょっとあれですよね。
Atsushi Hatakeyama
個人的にESLintみたいなの頑張って作ろうと思ってたので、
勝手にASTにしたものに対して何か事前定義したルールベース、
例えばこういうパターンだったらSQL Injection起きるなとか、
わかるのかなと思ったので、そういうわけじゃなくて、
Taint Analysisみたいないろんなアプローチで、
コードの中の脆弱性っていうのを検知してるみたいな流れになるんですかね。
Yosuke Asai
そうですね。
特徴があって、ASTの場合はやっぱりやれることが限られてるというか、
見つけられるバグの数が少ないんですよね。
その分、正確性は高いというか、
見つけたものはバグである可能性が高いっていうのもあるんですけど、
一方でコントロールフローとかTaint Analysisを使うと、
よりいろんなものを見つけられる、やっぱりフローがわかるので。
一方で正確性が低くなりがち、そのASTに比べると。
なので、フォルストポジティブ、擬陽性みたいなのが出やすいっていう特徴があって、
その辺はうまく組み合わせて使うというか、必要がありますね。
セキュリティ系の問題っていうのは、
ケンさんがお得意のアナロジーで言うと、
手洗い部屋みたいなのと結構近くて、
例えば、自分が外から帰ってきて、
手に細菌がついてるかついてないかはわかんないけど、
とりあえず手を洗っておくっていうのはついてるかもしれないし、
ついてたら風邪ひいちゃうかっていうのはありますよね。
このTaint Analysisも、
もしかしたらこれはセキュリティ的に問題ないかもしれないけど、
可能性があるから、擬陽性でもとりあえず上げておくっていう。
上げたほうがいいっていうのはあるので、
これは結構擬陽性が出るのは仕方ないっていう方向で解析をする。
でも擬陽性が多すぎてもその辺のバランスは大事なんですけど。
一方でASTのほうはバグの検知とかが多いんで、
例えばアレルギー検査みたいな。
例えば卵は食べれませんみたいなのが擬陽性で言ったら、
そうすると一生卵は食べれなくて、だいぶ人生損するじゃないですか。
っていうので、そういうバグとかを見つけ、
これはバグですよっていうのをちょっと嘘で言ってしまうと、
結構それも逆に問題なんで、
ASTや正確性を重視しているみたいなところはありますかね。
逆にこれ混乱したかもしれないですけど。
Atsushi Hatakeyama
こんな感じの説明で大丈夫でしょうか。
ありがとうございます。
じゃあフェーズじゃないですけど、
どういったアプローチに応じて正確性が違かったりだとか、
検出できるパターンが違かったりするみたいな感じなんですか。
Yosuke Asai
そうですね。
より複雑な分析をするとより時間もかかるんで、
その辺はトレードオフというか、
しながら多分開発しているんですかね。
Atsushi Hatakeyama
なるほど。
なんかここの検知のプロセスの中において、
ある程度傾向というか、
ルールベースで検出できるのか、
そのプロセスの中にAIみたいなのが入る余地があって、
統計的にとか特徴的にこの可能性があるみたいな判別をしているのかというと、
どういうアプローチが取られているのか。
Yosuke Asai
基本的に今ソナーがやっているのはルールベースの解析ですね。
逆にAIを使って新たなルールを見つけていくっていうのはありますけど、
解析の段階では今はAIは使っていないという認識です。
使っているかもしれないです。
逆にAIを使ってできるのは、
どんな新しい接着性があるかっていうのを、
エージェントにチェックしてもらうとか、
そういう製品外でそういうのはかなりやっているとは思いますね。
Atsushi Hatakeyama
そうですね。ソースコードの検出だとルールベースとかでいいかもしれないですけど、
なんかモンキーテストというか、
ダストみたいな投擲テストだとエージェントが頑張って動いて、
ここ行けそうだなとかっていうのを見つけるとかっていう余地があるのかなっていうのを勝手に思いましたね。
Yosuke Asai
そうですね。
多分それをやるとエージェントとかAIのリスポンスを待ってとかやらなきゃいけないので、
その分やっぱり解析の時間は増えるので、
それでも問題ないかとか、
多分それを認めてもらえる状況であれば、
そういうのがもっと実装されていくのかもしれませんね。
例えばマスターブランチだけはそれを確認してみるとか、
だったらコスト的にも問題ないですよみたいな感じになるかもしれないですし。
Atsushi Hatakeyama
ありがとうございます。
関連した質問なんですけど、
例えばルールベースで決めるっていうことは、
ある程度こういう書き方がまずいよねとかっていうのが分かっている状態で
ルール定義ができると思うんですけども、
そういった情報とか、もしくは脆弱性の情報っていうのは
どういうふうに取得されているのかなみたいなのが気になりました。
Yosuke Asai
これも僕はあまり分かんないんですけど、
僕の会社のソナの社内にはセキュリティチームがいるので、
間違いなく最新のCVEって書いてありますかね、
セキュリティ系の脆弱性の情報を引っ張ってきて、
チェックしてこれを製品に反映するべきかどうかっていうのは議論していると思います。
あとは、うちの会社で最近買収した会社の製品で、
ソフトウェアコンポジションアナリシススカっていうのがあって、
それ自体は脆弱性の、
何をしているかというと、
サードパーティーのライブラリとかをチェックする。
自分たちが書いたコードだけじゃなくて、
自分たちが使っているサードパーティーのライブラリに問題がある可能性もあるので、
それをチェックするみたいな製品も導入していて、
それを使うと、
そのサービス自体が脆弱性のデータベースを持っているんですよね。
このライブラリのこのバージョンは脆弱性がありますとか、
このバージョンを使っている場合はダメですよみたいな検知してくれますし、
逆にサードパーティーのコードを解析することで脆弱性を見つけたりとかこともできるんですよね。
なので、そういうのを今は開発しているというか、
Atsushi Hatakeyama
製品として出していますね。
確かに今なんか自分の視点、
自分が書いたソースコードみたいな視点になってますけど、
もちろんその使うサードパーティーの中で脆弱性があって、
それに引っ張られるみたいなことも全然ありますよね。
Yosuke Asai
確かに。
僕が一番覚えているのはログ4Jっていうので、
インシデントが、バグがあったっていうのは何年前だろうな。
7年前くらいか5年前くらいかにあったんですけど、
Javaのライブラリですね。
そういうのでかなり多くの企業が影響を受けて、
すぐパッチ出さなきゃみたいな感じになっていたので、
そういうのを早めに解析できたらやっぱりいいですよね。
Atsushi Hatakeyama
セキュリティチームがありつつ、
買収した企業もそういったナレッジを持っているっていう感じなんですね。
Yosuke Asai
そうですね。
Atsushi Hatakeyama
ありがとうございます。
Yosuke Asai
おっしゃる通り、
セキュリティはかなり会社の中でも注目されるトピックになっている感じはあって、
やっぱりLLMの登場で、
このLLMに書かれた行動が安全じゃない可能性がやっぱりまだ高いので、
それはしっかりチェックしたいよねっていうのは、
ニーズとしてもすごいあるのかなという気はしますね。
ありがとうございます。
Atsushi Hatakeyama
ちなみに今あったソースコード上のセキュリティに限ってお話したと思うんですけど、
逆にエージェント自体のセキュリティチェックとかっていう、
Yosuke Asai
もっと幅広い分野に拡張していくみたいなビジョンとかってあったりするんですかね。