そうすると文章の理解力っていうのはデコーダーモデルよりも一般的にはだいぶ良かったりするんですよね。このLLMってラージなランゲージモデルって言ってる通りラージなんですよね。
どれくらいラージかっていうと、例えばその公開されているモデルのその山みたいなモデル、LLMのモデルだと3サイズあって7ビリオン、70ビリオン、300ビリオンみたいな感じのサイズのモデル。
モデルのこのパラメータっていうのがウェイトとバイアスがパラメータとしてあるんですけど、これが超巨大なパラメータを持ってるビリオンなんで、すごいダメですよねっていうぐらいなんですけど、
このエンコーダーモデルって呼ばれるバートモデルとかは100ミリオンぐらいなんですよね。100ミリオンって言うとJAMA3の7ビリオンより70分の1ぐらいのサイズのモデルなんですよ。
70分の1って言うとLLMと比べるとだいぶ小さいんですよね。そうすると単純計算としてLLMを学習させるのに70分の1のコストで済むっていうことになるので、
つまり結構小さい自分の中でも何とか手にか届くようなマシンリソースでも学習が可能っていうのがあって、これを利用すると本当に公開可能なAIモデルっていうのを自宅の家庭用のGPUとかでも使うことができるじゃん。
趣味ではめっちゃちょうどいいモデルサイズだなっていうので、こういうLLMのデコーダーモデルではない小さい文脈理解に特化したエンコーダーモデルっていうところを
今どんどんどんどん学習させてきてる感じなんですよね。
なるほど。つまりそういうデコーダーモデルみたいなものだと、そのLLMみたいに文章を書かせたりとかコード書いたりみたいなことはちょっと難しいかもしれないんですけど、
それこそ今興味を持たれているような情報検索みたいなところにかなりフィットするっていうような理解であってますかね。
そうですね。すごいエンコーダーは本当に文章自体を理解するっていうのが得意なので、予測っていうのは難しくても文章理解がかなり強いので、情報検索とか例えばクラスタリングとかレコメンデーションのエンジン作るとか、
そういうところにはむしろデコーダーモデルよりも非常に向いているっていうのがあって、すごくなので作りやすい、趣味でも作りやすいリソースだったりするんで、そこに興味を持ってていろいろやってみてるっていう感じですね。
なるほど。エンコーダーモデルか。情報検索みたいなのって、それこそGoogleとかが蛇口をひねるように使ってきましたけれども、あんまり確かに、課題意識はあるんですけど、あんまり自分でやろうと思ったことは僕もあんまりないかもしれない。
そうなんですよね。情報検索とかは、例えばOSSの分野ではね、エラスティックサーチとかオープンサーチとか、パッチルシーンとかいろいろそういう情報検索用の検索エンジンがあって、今までだったら、とりあえずそれに放り込んでおくと最低限の検索っていうのはできますって、実際最低限の検索で十分なユースケスっていうのもすごいたくさんあったんですけど、やっぱりAIが対等してくると、
AIって自然文で聞いたりするので、その文脈のコンテキストを理解して、一番欲しいドキュメントってどれなんだろうみたいなところをやってくると、またLLM時代のトランスフォーマーって文脈を理解するモデルなんで、そういうのを理解したモデルのほうが実は強かったりみたいなところもあったりして、そういう感じでAIがどんどん情報を得ながら何かをやるっていうことが、最近はAIエージェントみたいな言葉もどんどん流行りだしてますけど、
やっぱり適切な情報をいかに持ってくるかっていうと、すごくこの情報検索の分野がまたさらにホットになってきてるなっていうのを、すごく当時ラグコンペやったときに感じたっていうところだったんですよね。
確かに適切な情報とか適切なリソースをレコメンデーションしてくれるみたいなところだけでもすごく便利だし、そこは割と自分の工夫でよくできるみたいなものがあるのであればすごく便利そうですね。
そうなんですよ。例えばSOMさんのプロフィールについて知りたいって思っても、LADMは直接的には答えてくれないじゃないですか。それが本当にSOMさんのプロフィールが載ったドキュメントを適切に与えたらバチッと答えるみたいな当たり前の話なんですけど、
この部分をいかに検索技術を持ってきて本当に必要な真のドキュメントはこれなんじゃないっていうのを発掘するみたいなところが、今までは人間が見るとGoogle検索で上位20件しか見ないで終わりみたいなところがAIだったら、
割とAI自体がそれを評価して別の検索キーワードを作って投げてみたいなのをどんどんループで最適的に処理したりだとか、本当に人間がやらないがためAIがどんどん検索を使っていくっていうところもあって、よりそこの検索技術をより良くしていくと様々なことに応用したり、さらに性能を深めることができたりとか、すごいまた広がりを見せてる感じで面白いですね。
なるほどね。そういう活動結構去年とか今年にかけてやられてる感じなんですか?
そうですね。去年とかは本当に情報検索右も左もわからんみたいなところからスタートしたんで、そもそも情報検索するためにその評価をするためのデータセットを作ろうみたいなところがあって、ちょっと例えば自分自身でデータセットをいくつか作って、こういう例えば検索キーワードが来たらこのドキュメントが買えるっていうのを正解とするよねみたいなデータセットを作って、それでその検索モデルを評価できるようにしたりっていうのでまずデータセットを作ってみたりしたり、
あとはそこの次のモデルとしてリランカーモデルっていうドキュメントに対して調べたい言葉があったら、その調べたい言葉に適切なドキュメントである意味相当かけるみたいなところをやるモデルを作ってみたりして、
その相当かけるモデルっていうのもマルチリンガルグローバルなモデルはあったんですけど、日本語に特化したモデルがなかったんで、日本語に先ほど最初に作ったデータセットと合わせてそのデータセットを評価してみたらやっぱりマルチリンガルってグローバルなモデルだと日本語に特化したモデルよりもだいぶ性能が悪いので、やっぱり日本語に特化したモデルを作ろうっていうので日本語に特化したモデルを作ったりだとか、
あとはその理論化っていうのは全文検索モデルではないんですよね。全文検索モデルっていうのは例えば100万個ドキュメントがあったら、その100万件全部の中から一番マッチするドキュメントはこれですよっていうのをやるのがいわゆる全文検索、全部の文から検索するっていうモデルなんですけど、理論化っていうのは全部から検索するには計算機コストが高すぎてできないので、
その全文検索をした例えばトップ100のうちからさらにより良い相当するみたいなのが理論化モデルだったんで、理論化は作ったんで次にちゃんと全文検索できるようなモデルかつ、なんかまだ日本では行われていないような取り組みのモデルを作ろうっていうので、スプレイドっていう情報検索モデルを作ったりしてまして、このスプレイドが結構自分の中では結構オープンなAI作ったなみたいな感じだったんですよね。
おだしょー オープンなAI、最近ちょっと話題のやつですね、いろいろ定義的にも。
おだしょー そうですね。結構やっぱりその、なんていうんでしょう、この辺の部分っていうのが、いわゆるソフトウェアエンジニアリングにおいてのオープンソースみたいな、オープンソースとはまた違ったいろいろな複雑さがあったりしていまして、結構その辺のところのお話をちょっと僕の理解でしていくと、結構やっぱりソフトウェアのOSSに比べて、なんかまだ真にAIが流行り始めて、そんなに時間が経ってないんで、
法整備だったりライセンス整備だったりっていうのは追いついてないっていうのが現状なのかなと思っていて、AIのオープンなAIって何なんだみたいなところでいくつか定義が、いくつか定義がというかいくつかあって、一つはまず公開済みのモデルで、このモデルって言ってるのは、いわゆるその重みとか呼ばれているウェイトプラスバイアスっていう数値の羅列なんですけど、これがオープンである。
そうか、つまりデータセットがオープンであるみたいなところがやっぱすごく難しいんですね。それこそその著作権を、まあそうですね、著作権はあるし、それを改変することが認められていない場合、それを加工したものを使っていいのかみたいなところも結構ありそうだから、そのあたりはかなりそうですね、難しいんだなっていうのを思いました。
そうですね。それをグレーにするためには、データセットを公開しないのが一番なんですよね。なぜなら、なんかすごい良いものができたよ、データセットはいろいろ社内で整備したものを使っている以上だと、正直なところ真っ白ではないんだけど、なんか黒とは断言できないっていうのがあるんで、データセットをむしろ公開しない方がリスクが減るっていうのもあったりして、なかなかとりわけこのデータセットっていうのが全然公開されづらいみたいなところはあったりしますね。
そうですよね。結局、膨大なデータを扱う以上、どこで刺される要素が眠ってるかわからないから、なかなか公開に踏み切るのは難しい感じはしますね。
そうですね。
OSS的なものの精神としては、ちゃんと公開されていて、かつ自由に差別なく利用可能であるみたいなところが大事なところだったりするから、それを実現するのが結構難しいんだなっていうのを感じました。
そうですね。やっぱりオープンソフトウェアのコンポーネントじゃないですけど、こういうのって一個一個全てが揃ってじゃないと思っていて、結構最近やっぱりこのAIがブームになってきて、このデータセット、オープンなデータセットを公開している方っていうのがすごい増えてきたんですよね。
それが非常にありがたくて、いわゆるクリーンでオープンなデータセットがたくさん出てくると、それを元にオープンなAIも作りやすくなるっていうのが間違いなくあるので、そういう意味でそういうデータセットも徐々に徐々に整備をされていったり、徐々に徐々にライセンスで問題がないようなものが作られていくと、本当にオープンソースAIっていうのもどんどんどんどん作りやすくなっていくんだろうなっていうところがあるので、
これがたぶん5年後とか10年後だと当たり前のようにさまざまなオープンなデータセットが出てきていると思うんですけど、今まだまだAIブームになってまだ2年目ぐらいなので、どんどんこういう環境が徐々に徐々に整備されていっている最中だなみたいなところをすごい感じますね。
おだしょー なるほど、そこにエコシステムがちゃんとできてきてるのは正常進化だしいい話ですね。ちなみにちょっと興味、よくわかってないでお伺いするんですけど、今の定義でちゃんとモデルの重みがオープンであり、コードがオープンであってデータセットがオープンであるってお話だったと思うんですけど、
この時ってそのデータセットを使って、かつその重みを使ってトレーニングさせて、かつ推論させた場合って同じ結果が返ってくるもんなんですか?それともそこは揺らぎがあるもんなんですか?
おだしょー めちゃくちゃ揺らぎはありますね。これはなんかもう揺らぎのいわゆるニューラルネットワーク計算するときに基本不動小数点で計算するので、例えば機械のアーキテクチャがほんのちょっと違っても微妙な揺らぎが発生するんですよね。ニューラルネットワークだとそれを山ほどやっているので、全く同一な環境で全く同じランダムのシード値とかを使って再現しようと思っても、基本的にはほんのわずかにずれるケースがほとんどだと思いますね。
なので、100%その再現性があるかっていうと非常に難しいっていうのが現状で、ほんのわずかにずれるっていうのも学習が進んでいくとそのわずかの揺れがいろんなところに波及するので、全く同じものが作れるかっていうと全くも同じものを作るっていうのは理論的には可能だけど現実的には難しいんじゃないのかっていうところがあると思いますね。
なるほど、そうなんですね。そうなんだろうと思いましたが、やっぱりそうすると余計何がちゃんとオープンなのかみたいなところがやっぱり難しいんだろうなっていうのを思いました。
結局再現可能性だったり、リプロデューシビリティみたいなところがこういうのって大事だったりするのかなと僕は思っているので、とはいえ構造上そこが完全再現が難しいしそこにこだわるべきではないみたいな話だとすると、やっぱりそこはいろいろな議論があるだろうなというのを感じました。
そうですね。ほぼ一緒のやつを使うと、例えば99パーセントぐらいはほとんど一緒の再現とか可能なので、多分これで問題ないんじゃないのかとかはできるとは思うんですけど、ただその99パーセントだと残りの1パーセントの差は完全再現ではないというようなところはあったりするのかなという感じはしますね。
ただそれが実際現実問題、何かそれで悪くなるかっていうと、意図的な何かのバイアスとかが入ってない限りはそんなに悪くならないんじゃないのかなという気もするので、それはそれでそういうもんだなと考えるしかないのかなと思ってますね。
まあそうですよね。そこはやっぱり統計みたいなのと似た話で、どれぐらいの精度とか一度で帰却するか否かみたいな話ではあると思うんで、そこでちゃんとそこの定義付けができればよいのかなと思いました。
ということで、先ほどセコンさんが作られたものの話にすると、多分最初作られたリランカーのものに関しては、これはオープンウェイトモデルに今のところなっていて、
スパースっていう全文検索のほうは、もう先ほどの定義に照らすとオープンソースAIだと言えるんじゃないかみたいな、そういうことになるんですかね。
そうですね。スパース検索のSprayedっていうモデルのほうは、ほぼ言えるっていう。何でほぼかっていうと、データセットが本当に100%全部白かっていうと、正直法的な部分わからんみたいなところがあったりするんで、
その難しさっていうのはあるなと思うので、100%クリーン化って言われたら100%ではないかもなっていうところが正直な、100%クリーンっていうか100%オープンソースなAIかって言われるとどうなんだろうみたいなところはあったりするんですけど、
ただ、もともとのこのSprayedっていう情報検索モデルが、ネイバーのヨーロッパラボっていうところが研究開発しているもので、ソースコードとかモデルの重みを公開してるんですけど、これが全部非AVだけなんですよね。
非AVで公開してるんで要するにAV利用には使えないっていうのと、ソースコードもCC by NCとかなんで、商用利用不可みたいなソースコードで公開されているんで、
これは非常に性能は高いんだけど、自分自身でモデル作るときに使いづらかったんですよね。
なので、ちょっとフルスクラッチでソースコードから書いてみようっていうところで、論文自体は何本も公開されてるんで、論文のアルゴリズムを元に作ってみたみたいなところで、
自分自身がソースコードもOSSでまず推論と学習ができるソースコードを公開して、その後データセットっていうところも基本的には問題ないと思われるようなデータセットっていうのを持ってきて、それも公開して、最後はこの学習させた重みっていうのを公開してっていうところなんで、
もしどなたかがもっとこのモデルを良くしたいとか、もっとこのモデルを自分たちの持っているデータソースから学習したいみたいなことを思ったときには、ある程度簡単に再現して学習させることができるような感じで公開できたんじゃないかなと思ってたりしますね。
おだしょー なるほど、いいですね。なんか日本語検索すごく課題意識があって、というのも社内情報検索みたいなところがなかなかいいものがないなというふうに感じているので、そういったところに応用が効くとうれしいなっていうのを感じました。
それこそ今Notion使ってるんですけど、社内では。Notionの検索が、あれって多分検索をさせる設計にあんまなってないからこそだと思うんですけど、やっぱいけてないと思ってるので、そういうのをちゃんと食わせて、ちゃんといい検索結果を出してくれるとうれしいなと思ったんですけど、そういったところにも使える可能性はありますかね。
おだしょー そうですね。そういう感じのどんどんどんどん、とりわけその自社で使うようなデータにフィットさせて改変するっていうのもありますし、普通に使うだけでもそれなりにいい検索結果を返せるんじゃないのかなと思ったりもしているので、いろんなところで検索の精度を向上させるところには使っていけるんじゃないのかなとは思ってます。
ただやっぱり検索みたいな感じのところになると、皆さんGoogle検索利用してる通り、自分たちの自社で検索をホスティングしてちゃんと検索エンジンを回していくぞってなると、それはそれで結構コストかかって大変なんで、やっぱりプラットフォーマーがどんどんそこを良くしていくのかなっていう感じはしていますし、もしくは検索を良くすることによって収益が発生するようなところ、例えば一番検索改善で収益が発生するのってECと広告だと思っていて、
そこの2つは情報検索が良くなれば良くなるほど、基本的にわかりやすい感じで収益改善が望めるので、そういうところはどんどんよりこういうニューラルネットワークのモデルを使って改善していくんだろうなという感じはしてますね。
いや、そうだと思います。ただ、社内のナレッジベースみたいなところの検索みたいなところが、多分そういうのを作ってる企業的に優先度がそんなに高くないっていうところと、あと難易度が高いなと思っているので、あんまり開発がされないんじゃないかなっていうところを感じているので、
そういう意味では、そういう既存のナレッジベースにある程度ありものの検索エンジン、自分たちで作った別の検索エンジンをかませられるようになったりすると嬉しいよなっていうのを結構思ったりしてるんですよね。
具体的には、やっぱり権限の話が一番厄介だと思っていて、結局オープンなデータに対してみんなが同じアクセス権がある情報に対して検索を作るのは結構比較的楽だと思うんですけど、社内ドキュメントみたいなのだと結局アクセス制限があって、ある人の検索とある人の検索結果を分けなきゃいけないとか、ある人の検索結果にはこれを出したくないとか、
そういう話があるから、やっぱり作るのがすごい難しいよなっていうのを思うんですよね。
そうですね。その辺はきっとNotionだったりGoogleワークスペースだったりの検索が良くなれば解決みたいなところで待つしかないみたいなところはあったりするかもしれないですね。
そうですね。Googleワークスペースとか結構頑張るのかもしれないんですけど、個人的にはNotionはあんまり期待できないんじゃないかなっていうのをちょっと思っていたりはする。
個人的に検索モデルを作っている身からすると、Notionの今の検索は非常に良くないんですよね。
ただ非常に良くないっていうのが、良いニューラルネットワークのモデルに差し替えるといきなり性能が上がるっていう可能性が大変十分にあって、
そうするとNotionがそういう情報検索に優れたエンジニアの人が入って、デコイレするだけでいきなり突然めっちゃ引っかかるようになったっていう風になるかなと逆に思っていたりするので、
そういうところで言うと、結構良くなる可能性っていうのはすごくあるんじゃないのかなと思って、
技術的にはそんなに僕がちょろっとやってある程度改善できるぐらいなので、そうするとそんなに難しくないんじゃないのかなと思ってたりもしますね。
なるほどなるほど。そうですよね。技術的にそんなに難しくないみたいな話を今されてたと思うんですけど、
確かにそういうエンコーダーモデルだったりSLMみたいなものにおけるブレイクスルーみたいなものって何かあったんですかね。
というのも、SLMがブレイクスルーがあったのってちょっとわかると思っていて、結局実現できるデータ量と膨大なデータ量とそこに対する膨大な計算リソースが揃ったところで、
そういうモデルを作れる状況になり、それがさまざまなチャットGPTに代表されるようなものが出てきて、一気に波及したみたいなのがあると思ってるんですけど、
わりと今言ったようなエンコーダーモデルとかそういったものって、わりとある意味簡単にできる分、誰でもリーチできるような話なのかなっていうふうに今、
伺ってて思ったんですけど、それって逆にすでに多くの企業が同じようなことをやってなかったのかとか、逆にそこで進化の余地みたいなのが今どういったところにあるのかみたいなのが、ちょっと今伺ってて気になりました。
そうですね、エンコーダーモデルすごく今面白い状況にあって、まず一つは、先ほどブレイクスルーが起きたLLMってこの2年間3年間でめちゃくちゃ論文出まくって技術的にすごい進化してるんですよね。
それがエンコーダーモデルに今降りてきてるんですよ。要するにデコーダーモデルで培った、こうやったらもっとAIよくなるよねっていう技術がデコーダーモデルでいろいろ開発されたものが、
バートって2017年に出たものに対してよりまたさらに最適用されているので、またそのエンコーダーモデルっていうのはデコーダーモデルが進化したことによってエンコーダーモデルもいろんなことができるようになっていってるぞっていうところで広がっていってるっていうのが一つあって、
そうするとさらに良い検索モデルっていうのが作れる余地が非常に出てきているし、検索は先ほどお話したようにAIと相性がいいので、いろんな会社がコストをかけてやっているので、ここがまたさらに全然良くなる余地っていうのはありますっていうのが一つ。
もう一つが、この小さなモデルっていうのを学習するためには良質な適切なデータセットが必要なんですよね。
この良質な適切なデータセットっていうのをどう作るのが一番簡単かっていうと、LLMに作らせるのが一番簡単なんですよ。
要するにLLMってさっき話した通り超巨大なパラメーターを持っていて、ありとあらゆる事情を知っているみたいなような状態になったときに、何かの状態を作ってもらう、仮想的に作ってもらうっていうのは非常に簡単になるんですよね。
そうすると、今まで例えば何かデータを作るっていうときに、検索のニューラルネットワークを作ろうって思うと、そのやり方としては、とあるドキュメントがあって、このドキュメントに何という検索キーワードで検索したら、このドキュメントが引っかかると嬉しいんだろうみたいなものを、いろんな手段でデータを作ってきたんですよね。
それは人が例えば検索エンジンを見てクリックしたっていうデータとかもそうですし、なんかもう本当にクラウドソーシングみたいなところで何百人が何十万件のデータを手動で作ってみたいなのもそうだったんですけど、実はLLMに作らせると、それが割と一瞬で終わってしまうっていうのがあって、それがLLMからの知識上流みたいに言われてるんですけど、上流っていうのはなんかLLMが持ってる知識の一部分っていうのを圧縮して濃縮して小さなモデルに落とすっていうことが、
このLLMが進化していった結果すごくやりやすくなったっていうのがあって、そうするとどんどんLLMが技術的に進化したことでエンコーダーモデルの技術っていう部分も良くなるし、データっていうところもLLMが進化すれば進化するほど、その小さいモデルに欲しいデータを適切に作ることができるっていう状況になっていっているので、この小さいモデルがより賢くなっていってるっていうような状態にどんどんどんどんなってきているので、
本当にLLMの進化の恩恵を受けて、かつその小さなモデルがユースケースにフィットする部分がどんどん広がっていくっていうのがあったりするので、なので本当にこの小さなモデルを作るユースケースって、この先むしろLLMが進化したからこそすごいたくさん出てくるんじゃないのかなと思ってたりするんですよね。
なるほど。よく分かりました。ちゃんとそういうLLM的なものの進化がエンコーダーモデルの進化にも一役かかってるし、ちゃんとそれを活用してさらにエンコーダーモデルが良くなるようにも今なってるっていう状況なんですね。なるほど。
なんで本当にLLMを活用してまた小さなAIモデルを作っていくっていうところも面白さの一つで、なのでそのさっきのオープンなAIを個人で作るっていうのも、今まで個人で作ろうと思うと、じゃあデータも全部自分で作るのみたいな、じゃあクラウドソーシングに委託して、すごい費用をかけてみたいなところも、いやこれLLMに食わせたらデータ作れるよねみたいな世の中にどんどんなってきた。
そういう意味でも、アイデアと発想さえあればまた新しいモデルを作るっていうのは非常にやりやすくなっているっていう感じなんですよね。なるほど。じゃあそこのやっぱ隅分けみたいなのがちゃんとできたほうが、それこそ地球にも環境にも優しいみたいな部分もあったりするんですかね。
それこそ全部LLMにラグ被せて何とかするってよりかは、ちゃんと小さなモデルみたいなものでやるほうがやっぱり電力消費量も少ないとかそういった側面もあったりするんですか。そうです。いやめちゃくちゃいい指摘。最近論文とかによくこのモデルは電力消費量いくつで学習されて、もしこのモデルで推論したら電力消費量はこれぐらいで地球に優しいっていうのは結構書いてあるんですよね。
それは本当にその通りで例えば文章とかがあって、じゃあよくあるこの文章ってAとBどっちのカテゴリーに属するのかみたいなのをLLMにやらせようとすると、LLM適切に答えてくれるんですよ。こっちは文章は多分Aのほうです、Bのほうですみたいなことをやってくれるんですけど、じゃあこれをもう世の中でうちの会社ではこれを1日100万回回すみたいになってLLMにやると非常に費用もかかるし電力消費量も高いと。
でもそれを小さなモデルに学習させちゃったらLLMの1万分の1とか10万分の1ぐらいの費用で推論とかができるようになって、精度はほとんど変わらないっていうモデルを作ることが実際にできたりするので、そうすると、例えばLLMでEOCみたいな実際どうだろうってやってみて、LLMでいいからうちはちょっと特化した電力消費量も低くLLMに費用を取れないモデルっていうのを作ったらすごく早いし費用も安くできるから、