1. 趣味でOSSをやっている者だ
  2. 23: 趣味でオープンなAI作りを..
2025-02-13 46:24

23: 趣味でオープンなAI作りをやっている者だ (hotchpotch)

spotify
  • 趣味でオープンなAI作りをやっている者だ
  • KaggleのRAGコンペ参加
  • 庶民の味方、エンコーダモデルと情報検索
  • 2024年に行った活動
  • オープンなAIとは?
  • 日本語情報検索モデルの開発
  • エンコーダモデル, SLMの進化
  • オープンなAIの始め方

KaggleのRAGコンペ参加

庶民の味方、エンコーダモデルと情報検索

2024年に行った活動

オープンなAIとは?

  • 公開済みのモデル(重み)がオープンである
  • コード(trainer / 推論コード)がOSSである
  • データセットがオープンである

日本語情報検索モデルの開発

エンコーダモデル, SLMの進化

オープンなAIの始め方

サマリー

このエピソードでは、セコンさんがゲストとして登場し、趣味でオープンなAI作りについて話します。特に、情報検索を重視したAIモデルの開発や、その過程での課題、技術的な内容が詳しく掘り下げられます。また、オープンソースAIの定義とその複雑さについても深く考察されています。特に、モデルの重みやソースコード、データセットのオープン性、そしてそのライセンスに関する課題が議論されています。さらに、オープンなAI開発における検索技術の進化や、LLMとエンコーダーモデルの関係についても触れられています。オープンソースAIの難しさや、良質なデータセットの作成方法についても議論が行われます。AI開発においては、特に日本語圏に特化したモデル作成の楽しさや、かぐるを通じた学びの重要性が語られています。

オープンなAI作りの挑戦
趣味でOSSをやっている者だ、ですが、引き続き、セコンさんをゲストに迎えてお話をしていきたいと思います。
ということで、セコンさんが持ってきてくださった話が、趣味でオープンなAIを作っている者だ、というお話ですが、これはどういうお話ですか?
そうですね。この趣味でOSSをやっている者だっていうタイトルな感じで、趣味で結構オープンなAI作りをやっている者だ、みたいな感じでネタとして持ってきたんですけど、
AIっていうと、皆さんLLMとかを想像するのが一般的なのかなとは思うんですけど、
LLMって結構学習にはめちゃくちゃコストがかかるんですよね。それを趣味でLLMを作るっていうと、ちょっとコストがかかりすぎて無理みたいなところがあって、
最近のLLMってNVIDIAが出している高性能なH100、H200とかのGPU、一個何百万するGPUっていうのを、普通に数字機とか、大きいものだと数千並列とかで並べて学習するんですけど、
こうすると初期コストで数十億、一回の学習コストで電気代とかその他諸々で、普通に何か数百万から数億とかかかるんですね。一回の学習で。
一回で学習うまくいくことってないので、それを何回もいろいろトライしながらやっていくっていうところを、普通に個人とか、冷裁企業の自分の企業とかじゃ全然無理だったりするので、
ただやっぱりオープンなAI、オープンソースコミュニティで育った身としては、できる限りそういうAIっていうのも作って還元できると面白いよなと思って、
趣味でそういうオープンなAIを去年とか結構作って出したりしたんですけど、その辺のところのお話ができたらなと思ってます。
よろしくお願いします。
結構この前半の最後に話していたカグルのコンペで、ラグに関するものを作ったみたいなところが結構現体験の一つになられてるんですか。
そうなんですよ。2024年は結構ラグっていう言葉をよく耳にした年なのかなと思っていて、
ラグってLLMに対して、より自分たちの持っているデータとかを適切に与えると、よりそのデータからより良い結果とか、自分たちが持っているデータじゃないと導き出せないような結果とかをAIが出せるっていうところで、
いろいろ注目された技術なのかなと思うんですけど、これがちょうどまだラグっていう言葉が流行る前の2023年に参加したカグルのコンペがたまたま今で言うザ・ラグコンペだったんですよね。
それは適切に何か質問に対して、そのWikipediaの文章から適切なこの質問の回答に乗ってそうだぞっていう部分を抽出してきて、
LLMとかに与えるとベストな回答が出てくるので、それで勝つみたいな感じのコンペで、それをやったときにすごく検索めっちゃ面白そうみたいに思い出したんですよね。
なので、情報検索ってそれまで真面目にちゃんとやったことが全くなかったので、そのとき、検索面白い、意外とニューラルネットワークを使うと検索モデルも割と簡単に作れそうだぞっていうところを裸感としていたので、
その情報検索モデルを作ってみようみたいなところを始めた感じでしたね。
なるほど。最初はそういうラグみたいなLLMを活用するようなものが現体験だったと思うんですけど、そこからまたちょっと方向性を変えて、今はいろいろなことを試されてるっていう感じなんですかね。
そうですね。ただ、今もやってるのも基本的には情報検索周りのモデル作りっていうところで、いわゆるLLMって言われるような、AIに話し合うとAIが答えてくれるっていうTHE AIのモデルっていうよりも、そのAIをサポートするための機械学習のオープンなモデルっていうところを今作っていってるっていう感じでして、
ちょっと先ほどその大前提としてそのLLMってすごい学習にコストかかるっていうのがあって、ちょっとさっきもちょっと前回の話でそのOSS、チームで会社で組織で何かいいプロダクトを作るっていうのと、ある意味趣味で自分でフィットする何かこれあったら便利じゃん。
もしくはここの部分が足りないからちょっとこれを作りたいなって思ったところを、ある意味最初は自分一人でサクッと作れるっていうところだと、LLMはあまりにも巨大すぎる、あまりにもコストがかかりすぎるっていう中で、
そのエンコーダーモデルっていう、いわゆるその今自然言語処理、テキストを理解して処理するモデルのベースの技術がトランスフォーマーっていう技術なんですけど、
トランスフォーマーって大きくエンコーダーモデルとデコーダーモデル、この2つを組み合わせたエンコーダーデコーダーモデルっていう3つが主流なんですよね。
その中でもLLMっていうのはデコーダーモデルっていう、ある意味こういう風に話している文章の次の単語を予測するっていうモデルがLLMなんですけど、
このデコーダーモデルっていうのが最近LLMが台頭しているので非常に強いと。でもこのもともと大元にそのトランスフォーマーっていうのは提唱された最初のBERTっていうモデルはエンコーダーって呼ばれるモデルで、
デコーダーっていうのは次の1つの単語を予測していくっていうモデルなんですよ。エンコーダーっていうのは文章全体の中からこの単語って何なんだろうみたいなところを学習していることがほとんどなので、
日本語に特化したモデルの開発
そうすると文章の理解力っていうのはデコーダーモデルよりも一般的にはだいぶ良かったりするんですよね。この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って何なんだみたいなところでいくつか定義が、いくつか定義がというかいくつかあって、一つはまず公開済みのモデルで、このモデルって言ってるのは、いわゆるその重みとか呼ばれているウェイトプラスバイアスっていう数値の羅列なんですけど、これがオープンである。
オープンソースAIの基本要素
それに誰でも使っていいですよとか、このうちのモデルはMITライセンスなんで、MITライセンスに沿って使っていいですよみたいなところの重みっていうのがまず一つオープンであると。で、これを重みだけ公開している会社さんっていうのもすごい多くて、で、これはオープンウェイトモデルみたいに呼ばれていたウェイト重みのがオープンなんで、オープンウェイトモデルとかも呼ばれていたりするんですけど、これいわゆるその推論とかファインチューンって呼ばれるような、LLMだったら文章をどんどん生成していったり、
こうどんどん生成していくみたいなのが推論なんですけど、それとかに普通に使えるんで、一般の人はこれだけあれば十分みたいなケースも多かったりするんですけど、これはオープンソースのAIの成果物の一つでしかないんですよね。ソフトウェアで言うと何かにコンパイルされたバイナリーがポンって置かれていますと、でもこのバイナリーの作り方はソースコード公開してないんで秘密ベースみたいな感じなんですけど、一般の人は別にバイナリーだけあればアプリケーション動かせるので十分じゃんみたいなところはあるんですけど、
そこが要するに実用的な重みだけが公開されているという状態があったり、かつこの公開済みのモデルっていうのもすごいライセンス縛りがあるモデルが非常に多いんですよね。
例えば、よくあるのは非商用利用とか、商用で利用するときはライセンス費払いっていうのもそうですし、最近話題なのはやっぱりこのFacebookの作っているLyamaっていうモデルを活用していろんな会社がうちもAIモデル作った、うちもAIモデル作ったって言ってたりするんですけど、このLyamaもFacebookライセンスに縛られるんですよね。
MetaのLyamaライセンスかなとか、これはどういうライセンスかっていうと、世界にユーザーが7億以上いるとダメだよみたいなライセンスなんですけど、この世界に7億以上いるっていうのは普通にビッグテックもしくは中国の巨大企業ぐらい、インドの巨大企業とかしかいないので、基本はほぼフリーじゃんって思いながらも、ほぼオープンっていうところが結構罠で、ほぼはオープンじゃないよねみたいなところがあったりするし、
それを使って、じゃあ日本の会社がうちが独自でLLM作ったよって言っても結局その縛りを継承して受けてしまうので、それってオープンなモデルじゃないよねみたいな感じだったりっていうところのライセンスの難しさっていうところと、公開している重みしか公開していないよっていうと、オープンなAIって言っても限定的なオープンなAIだよねみたいなところの難しさがあったりするんですよね。
これソフトウェアエンジニアにも分かりやすいんですけど、ソースコードがOSSであるっていうのがあって、ソースコードは僕らソフトウェアエンジニアからするとそうだねっていう話になるんですけど、ただこのソースコードっていうのを主にこのAIモデルの場合は2つあって、よく公開されているのはなんか推論をするコードなんですよね。
推論っていうのはさっき公開されていた重みっていうものを利用して次の単語を予測するみたいなものを実行するためのコードで、要するにその公開されている重みを実行するっていうために必要なもので、もう一つトレーナーっていう学習に使うソースコードもあって、この学習に使うソースコードがないとどういうアルゴリズムで学習したかっていうのが、ソースコードは公開されてないので論文とかではあるかもしれないんですけど、
なんかいまいち不明瞭みたいなところがあって、この推論するためのソースコードと学習するためのソースコード、両方がOSSで公開されていないとオープンソースなAIって言えないんじゃないかっていうのがあったり、そして最後に一番難しいのがデータセットがオープンであるっていうことなんですよね。
データセットっていうのはモデルを学習するために様々な文章とか様々なデータを用いて学習しているんですけど、そのデータセットがオープンであるっていうのが大変難しくて、データセットがオープンってなんだみたいなところで、例えばWikipediaだったらCreative CommonsのCC by SAとかなので、それっていうのは利用していいんじゃないのかみたいなのがあったりもするが、よくあるのはウェブのスクレーピングした文章って山ほどあって、
日本の著作権法的には利用していいんだけど、他の国ではどうなんだとか、その利用したウェブのコードっていうのは実はウェブページに行くと、本人が絶対これは利用してはいけないみたいに書かれているのを使っていたりすると、じゃあそれってどうなのみたいなところがあったり、またそのライセンスっていうところも一見オープンに見えるけど、実はCC by NCとか商用利用付加みたいなところのライセンスを使われていたり、そのライセンスが不明瞭だったりっていうところで、
そのデータセットがオープンであることの、そのデータセット元の著作権的な難しさだったり、あとは基本そのデータセットっていうのも加工して使うことが多かったりするので、その加工された後のデータセットがないとか、学習ができないんだとすると、ちゃんとその加工された後のデータセットも公開すべきなのでは、みたいなところの、すごくなんか複雑にいくつかのものが絡み合って、そういうものをすべて満たしていたら、なんかオープンソースな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に費用を取れないモデルっていうのを作ったらすごく早いし費用も安くできるから、
LLMとエンコーダーモデルの関係
それやろうよみたいにやったときに今おっしゃったような方法でそういうモデルをどんどん作っていくっていうのがすごいやりやすくなった。かつ、ちょっとしたAIエンジニアがいたら、じゃあそれちょっとやりますねってパッてできるみたいなところの世の中にどんどんどんどんなっていくんじゃないのかなとは思ってますね。
なるほどそれはすごい今日かなり僕にとって学びがありました。なんか最近やっぱ思うこととしてはやっぱLLM地球を燃やしすぎじゃないかっていうのをちょっとこう感じていて、やっぱりそのチャットGPT PROとかが、あんだけの料金取って赤字だみたいな話を聞くと、いや結構こうちょっと暗い気持ちになってたというかみたいなのがあるんですけど、やっぱそういうちゃんとこう
LLMとSLMみたいなものがこう住み分けすることでうまくやれる余地があるんだなっていうのを知れたのはすごい良かったです。
そうですよね。電力消費量をエンジニアリングの力で抑えていくっていうのはなんかソフトウェアエンジニアにとって結構いい話なので、そういうところとかはどんどんどんどんなんか世の中進むに、今は電力消費量多いけどどんどんどんどん減らしていける方向にきっと進んでいくんじゃないのかなとは思って。
なるほど。ありがとうございます。であとはそうですね、挙げてくださってる話としてはオープンソースAIの難しさみたいなところがありますかね。
でもまあ難しさはもう先ほど結構話した通りでして、で結果やっぱり難しさ、このオープンソースAIさっきのその重みとソースコードとデータセット全部公開するっていうことって結構なんか大変なんですよね。
ちゃんとやろうとするとめちゃくちゃ大変で、なので結構そこにモチベーションっていうのがあんまり湧かないなっていうのも肌感としてあったりして、なぜならさっきのそのオープンウェイトモデルぐらいしか世の中にあんま実はほとんどの人は喜ばなくて、オープンウェイトだと世の中の人はすぐ使えるんで便利って喜ぶんですけど、
頑張ってソースコードを公開して、頑張ってデータセット整備して公開しても、本当に研究者の人とかは喜ぶんですけど、普通の人は別に喜ばないのでほぼ反響はなかったりするんですよね、みたいなところとかもあって、なんかちゃんとこのできる限りAIをオープンな状態で公開していくぞみたいな感じだと、
モチベーションの高まりっていうのも難しかったり、それ以外にもさまざまな先ほど話したような要因での難しさみたいなところがあったり、また研究者の方だと別にわざわざオープンソースAIじゃなくても、むしろちゃんとしっかりといろんな人に読まれる論文を公開するぞっていう方がやっぱり大切だったりするので、このオープンな形で公開するっていうところの難しさ、モチベーションを高く保つ難しさみたいなところも非常に感じたりしますね。
おだしょー なるほど。論文とか結構出てるみたいな印象がありますけれども、それだけじゃなくて、我々はソフトウェアエンジニアなんで結構コードを書いて貢献していこうぜみたいな話でもあるんですかね。
おだしょー そうですね。コードと本当にデータとか再現性みたいなところっていうのをちゃんと公開することで、別の人がまたチャレンジしやすい環境を理解しやすい環境っていうのを作っていくっていうのは、自分自身は引き続き少しずつですけどやっていけたらなと思ってますね。
おだしょー そこに結構今そういう面白みを感じて活動されてるっていうことですよね。
AI開発の楽しさ
おだしょー そうですね。もうその辺はオープンにできる限り公開したいっていうところもあるし、ちょっと先ほど話した通りも知れば知るほど新しいこんなやり方あるんだとか、こんな応用できるんだっていうことだらけなんで、それを知って自分の中でまだとりわけその日本語圏にないようなものっていうのをちゃんと日本語に特化したものを作って出していくと、一部の人には非常に喜んでいただいたりしたりするし、本当にモチベーションを持って楽しく、
本当にAI開発面白いなっていう感じで、いろいろそういうモデルとかを作っていってる感じですね。本当に2000年代のウェブと同じ、自分自身が2000年代にウェブプログラミングにハマった時と同じような感じで、どんどんソースコードその他いろいろオープンに公開していきたいし、もっといろんなことを知るとこんなこともできるんだの。
そういう知識が広がっていく面白さ。かつ当時のWeb2.0の熱狂ってやっぱりありとあらゆるものがポコポコ発生していたので、それが今のこのAI機械学習周辺だとポコポコ発生しまくっていたりするので、そういう時代の流れの速さの面白さみたいなのも含めて、すごくAIモデル作り楽しいよみたいなところですね。
なるほど、すごいそのあたりも興味を持ちました。実際そういう、今日の話を聞いて僕も含めて興味を持った人結構いると思うんですけど、そういうエンコーダーモデルとかそういったものを使って自分なりのモデル作成をするみたいなことを始める時の、最初何やればいいかとか、取っ掛かりとか、そういうお勧めの始め方みたいなのってありますか?
かぐるやるといいんじゃないですかね。
この辺結構素振りなんですよね。ソフトウェアエンジニアも結構何か作るときにある程度いろんなプログラミングをしてみて、自分なりの型を身につけていくみたいなのがあったりするじゃないですか。みたいなものを最初何のきっかけで、もちろんみんないろいろね、直接プロダクトを作るのがいいよとか、ちゃんと基礎を勉強するといいよみたいな、いろいろあるんですけど、自分自身が一番その学習がガッと進んだなっていうのは、そのかぐるに参加して、よくわかんないけどいろんな人がいろんなことやってて、
それはある意味社協をするだけで徐々に理解していってっていうところでのその学習が一番早かったり、かぐるをやると大体何かのモデルを作っていくことになるので、そうするとモデルの学習のさせ方ってGPU使ってこんなふうにやると学習できるんだみたいなのを直接知れたりするので、最初にこうやってみるのにはひょっとしたらそのかぐるでのモデル作りみたいなのがちょうどいいのかもしれないですね。
たしかにそういうハンズオンでやっぱり自分が作ったものに対するフィードバックみたいなのが素早く得られるのが一番解像度が上がるので、たしかにそういうのがあるし、やっぱりそういうのが用意されてるっていうのもやっぱりいいことなのかなっていうのを思いました。
なので興味が持つ方は皆さんぜひかぐるに挑戦してみるといいのかなと思います。
なるほど。ありがとうございます。いや、かぐるに対してがぜん…ずっと話は昔から聞いてたんですけど、興味は沸きました。ありがとうございます。
はい。じゃあちょうどちゃんと話したい話も話し終えたので、今日はこれぐらいにしようかなというふうに思います。
はい。
ということで、趣味でOSSをやっているものだセコンさんを招いて機械学習とかかぐるの話なんかをしました。ありがとうございました。
どうもありがとうございました。
46:24

コメント

スクロール