ポエム回です
Chat GPTのリリースから1年が経った。多くの人にとって縁遠い存在であったAI技術は今や世間の関心の的となり、孫正義をしてまだChatGPTを使ってない人は「人生を悔い改めた方がいい」とまで言わしめるほどだ。当初はその実務的な有用性に疑問を持っていたり、「Artificial Intelligence」という言葉の安易な運用に抵抗を感じていた人々も、ある人は翻意し、ある人は諦め、「生成AIによるDX案件」に動員されている今日この頃である。
かくいう私は生成AIに関わる技術を肯定的に受け止めていて、それ自体に不満はない。一方で引っ掛かるのは、生成AI、ひいてはAI一般に類される技術を活用することと、SaaS的に提供される一部のクローズドなサービスを利用することが少なからず同一視されているように感じることだ。「そんなことないよ!」というコミュニティもきっとあるだろうが、少なくとも私の観測範囲(主にエンタープライズなIT)ではそういった傾向が見受けられる。エンドユーザーや企画系の役職はともかく、技術職の人間がそういった認識を持っているとしたら、些かもったいないように感じる。たしかにOpen AIなどのサービスは本当に素晴らしいと思うし、私自身ヘビーユーザーでもある。しかし、それらを支える基礎となる技術は特定の企業が独占しているわけではなく、知識と環境があれば誰もが触れられるものだ。
もちろん、私を含むML領域の専門家ではない人間がゼロベースでモデルを構築したり、チューニングすることは容易ではない。また、モデルの開発には巨大なマシンリソースが必要になるため、経済的な制約も大きいだろう。ただ、既にトレーニング済のモデルを手元のマシンに導入するのはそれほど難しいことではない。Hugging Faceには多数のモデルが公開されていて、日本語に対応しているものもあるし、商用利用可能なライセンスで配布されているものも少なくない。生成AIと付き合う上での距離感の一つとして、「オープン」なモデルをセルフホストする選択肢にもっと光が当てられても良いのではないかと思っている。その代表的な利点としては、データのプライバシーとセキュリティのコントロール、カスタマイズの自由度の向上、コストの最適化などが挙げられるだろう。(これについては別途詳しくまとめたい)
そうは言ってもMLのことなどよくわからないし、専門家に任せておきたい気持ちもあるかもしれない。しかし考えてみて欲しい。私たちは情報システムに関わる中で普段から多くのブラックボックスを扱っている。OSやデータベース、フレームワークの中身をすべて理解している人は少ない。CPUやNICなどのハードウェアが物理的にどのような設計になっているかなど想像もできないし、インターネットを支えるキャリア網の仕組みを説明し切ることも難しい。それでも私たちは自らが選んだスタックを適度な抽象度で理解してソフトウェアを開発できるし、自信を持って運用できる。一部の道具については人一倍詳しくなることも出来るし、時には情報発信やプルリクエストなどによってコミュニティに貢献することもあるだろう。また同時に、個々の道具が完全には理解できないものであるからといって、それらを適切に選定し、構成し、導入し、運用するプロセスに「技術」が要求されないわけでもない。性能、セキュリティ、信頼性、コスト、運用性をトータルで具備したソフトウェアを扱うことは、それ自体が知識と経験を要求されるプロセスなのだ。MLの専門家ではない人間が生成AIに対して持つべき態度にも同じことが言えるのではないか。
なにも、無条件にSaaSを捨ててセルフホストに切り替えるべきだと言いたいわけではない。便利なものは使い倒せばよいし、現時点でのセルフホストの実用性は多くの人にとって精度やコスト面で微妙なところではあると思う。ただ、多様な選択肢と進化の動向をウォッチして、必要に応じて取り出せる引き出しを用意しておく価値を訴えたいのだ。その引き出しには単に最新のモデルを把握しておくことだけではなく、セルフホストを行う上でのスケーラビリティの確保やコスト効率の向上などの、「道具をうまく使う」ノウハウも含まれる。そして後者のノウハウを蓄積して、手の内におさめておくことこそが今の時点でモデルをセルフホストする経験を積んでおく最大の利点なのではないかとも思う。
最後に、私が生成AIの活用に対して感じている別の課題として、サービス開発者とMLの専門家との間の断絶がある。MLの専門家はモデルの構築や調整が得意であるが、それらのモデルを安定的にホストしたり、End to Endなサービスに組み込む作業については土地勘がない場合も多い。一方でサービスの開発者からすると、MLは良くわからないので近寄りがたい。結果として、MLの専門家がJupyter上で実現した「魔法」がエンドユーザーに届きづらい状況が起きているように思う。そういった断絶を越えるためにも、サービス開発者がMLモデルを程よい距離感で扱えるようになり、歩み寄っていく必要があるはずだ。