皆さんこんにちわ、こんばんわ、おはようございます。
株式会社ジール IP Hub プロダクトマネージャーの川合と申します。
今回は、昨年のジール化以降大幅なバージョンアップを引っ提げて、ようやく提供できるようになった、バージョン2番のSTORYAIについてご報告です。
STORYAIは20日の午後からアクセスを制限しておりましたが、昨日から再度アクセスできるようになっております。
◆なぜバージョンアップが必要だったのか?
今回メジャーバージョンアップという大仕事を1年掛けて行ったわけですが、その理由についてお話しします。
理由としては第一に、Nuxt2という負の遺産の後始末がありました。Nuxt2は実は今月末をもってEOLを迎えます。そうするとセキュリティアップデートに対応できなくなります。また、認証周りでAmplify(Cognito)を利用しており、すでにNuxt2.73からはサポートが出来なくなっており、1年前から最新版にアップグレードは出来なくなっておりました。(昨年はv3.8、現在はv6)
次にアーキテクチャの古さを解消したかったというのもあります。このサービスは特に各スピードが命なので、解析速度の向上と表示速度の向上を目指す必要があり、Nuxt2とサーバサイドで使っていたPHPのフレームワークであるLaravelを捨てる以外に選択肢はありませんでした。
Nuxt2から3への移行についてはNuxt Bridgeというものがありますが、結局ほとんど使い物になりませんでした。そこで、Nuxt3へ移行するのか、Reactにするのかを検討した結果、フルスクラッチでのNuxt3への移植を目指しました。
その際、もう一つやりたかったことがあります。それはTypeScriptを実装し型を指定した厳密な運用です。これにより、今後参加するメンバーがどのように増えて行ったとしても厳密な運用を心がければ、安全なプリケーションを開発し続ける事が可能となると考えております。
また、サーバサイドもPHPを捨てる決断をしておりNodeJSを使っております。NodeJSを採用することで、フロントもサーバサイドもすべてJSのエンジニアを並べる事が出来、シームレスな開発が実現できております。1点、LaravelやRailsの様に強力なO/Rマッパーを内蔵しているわけではないので、Prismaを今回は利用しました。これにより、劇的に処理速度が向上しており、体感も分析速度も速くなった、ボトルネックを解消できたと思っております。
さらに、我々はAWSを利用しておりますので、分析AI部分はSagemakerを利用しているのですが、基本的なバッチ処理は変更せず、BERTから変更しており、LLMを使ったものとしております。いくつか検証した結果ですが、基本transformerモデルを使っていたものであれば、バージョンアップ先はLLMで十分です。
また、ファインチューンするためにはGPTモデルやClaudeモデルを利用するわけにはいきません。さらにいえば、GPT等のAPIモデルは我々の処理方式だとお金がいくらあっても足りません。普通に処理したら赤字です。そのためセルフホスティングしかありえませんし、我々の処理方式やお客様の属性を考えると、エンドポイントを常時開いておく必要はありません。
ここら辺もすべてAWSさんと相談しながらアーキテクチャを育ててきましたので、フルサーバレスとして自信をもって提供できております。クーポン以外でも人的支援が大きいAWSさんが、新サービスを立ち上げるならベターかなと思います。
◆アップデート内容
さてさて、アップデートした箇所は以下の通りです
- LPの変更 UI/UXの改善
- 解析方法の変更(文字数から回数に変更)
- 動画解析の追加(ショート動画最大200MB程度)
- 追加解析(ワードクラウド、共起ネットワーク、コレスポンデンス分析、ネットワーク分析)
- 異なるコンテンツの差異分析
- 解析の多言語対応
- 新料金の追加(アドバンスド、ビジネス)
他にも細かい所がたくさんアップデートされてます。
次回以降、今回からのアップデート内容を細かくお伝えしていこうと思います。