さくらのクラウド高火力プランを使って大規模言語モデル(LLM)を動かしてみよう 〜前編〜

この記事は、2023年6月17日(土)に行われたオープンソースカンファレンス 2023 Online/Hokkaidoにおける発表を編集部にて記事化したものです。

はじめに

さくらインターネットの芦野と申します。

この記事では、いまChatGPTなどで話題となっている大規模言語モデルについて話をしたいと思います。どうぞよろしくお願いいたします。

自己紹介

軽く自己紹介をさせていただこうかと思います。さくらインターネット クラウド事業本部 クラウドサービス部で、さくらのクラウドのバックエンド開発やインフラ開発をやっています。また、弊社で衛星データプラットフォーム・Tellusというものもやっておりまして、そちらのバックエンドも作っています。Twitterもやっていますので、フォローしていただけるとうれしいです。

それから、経歴の紹介なんですけれども、10年くらい前に、地元である宮城県仙台市の専門学校で学んでおりました。この専門学校でOSC 2012 Sendaiというイベントが開催されて、偶然ではありますが自分はここで初めてOSCに参加して、OSSという素敵な世界があるんだなって思ったんですが、それから10年経った今、こうやって登壇する側に立てて、非常に感慨深く思っています。OSCには感謝の気持ちでいっぱいです。学生時代にはMSPとホスティングの会社でアルバイトとしてOSSをたくさん触って、2016年にさくらインターネットに新卒で入社しました。

本日のアジェンダ

本日のアジェンダを紹介します。

まず、「さくらのクラウド高火力プラン」がどのようなものかという概要説明を先にさせていただきまして、主な事例をお話しさせていただきます。その次に、今回のメインテーマである大規模言語モデルの話に進みます。後半は、さくらのクラウド上でこの大規模言語モデルを動かすための手順の説明と、簡単なデモを用意しておりますので、そちらの方をお見せしたいと思います。最後にまとめとして、こういった大規模言語モデルをセルフホストするメリットなどを紹介したいと思います。

さくらのクラウド高火力プランの概要と事例

それでは、さくらのクラウド高火力プランの概要と事例に移りたいと思います。

高火力プランの概要

さくらのクラウド高火力プランは、さくらのクラウドでご利用いただけるGPUサーバプランです。ハイパフォーマンスのGPUであるNVIDIA V100を、初期費用不要で1時間から、クラウドの使い勝手そのままに利用できるサービスとなっております。図にスペックを記載しています。サーバの提供ゾーンは石狩第1ゾーンです。サーバのスペックも図に記載の通りで、これにディスク(SSD/HDD)を選択して組み合わせることでご利用いただけます。主な用途例は、機械学習、ディープラーニング、ハイパフォーマンスコンピューティングといったところです。

こちらの高火力プランなのですが、2月27日に行いました弊社のイベント「さくらのテックランチ」で、このサービスを作った時の舞台裏の話をしています。もし関心のある方がいらっしゃいましたら、スライドを公開しておりますのでご覧いただければと思います。

高火力プランの利用事例

続きまして、事例の方に移っていきたいと思います。主な事例としましては、やはり今一番多いのが機械学習っていうところで、モデルの作成や推論っていうところが非常に多いなと思っております。あとは今年に入ってから生成AI系っていうところで、いろんなテストや検証がなされたりしております。大規模言語モデルが実際に動くかどうかというところも社内でテストしてました。その他にも、研究開発であったりとか動画系であったりとか、VRなどのメディアコンテンツ系でも一部ご利用いただいているようです。

機械学習

では、それぞれの事例をお話ししていきたいと思います。まず機械学習については、弊社のTellusというデータプラットフォームで、人工衛星から撮影した衛星データの写真をAPIを通して提供しています。そういった衛星データを用いてデータ分析するための、機械学習のモデルの作成・推論でよく使われているようです。例えば地形情報であったりとか天気の情報(例えば、ここの地域は曇ってるのか晴れてるのか)を、機械学習を用いて判定するといったような試行錯誤をしていました。上図の右側は、弊社のエンジニアが人工衛星の画像をもとに機械学習を行って、新しい人工衛星の画像を作ってみようという試みをした記事で、さくらのナレッジに掲載されています。こちらも遊び心があって面白い内容ですので、関心があればお読みください。

続いてこちらはインフィニットループさんという弊社のお客様が提供している「カートル」という、車両撮影のサービスです。このサービスでは自動車の内外の360度写真を撮影するのですが、その写真をAIを使って画質を良くする機能を作られました。そして、そのAIを動かす基盤として、さくらのクラウドの高火力プランをご利用いただきました。(関連記事)

生成AI

続いては生成AIの事例です。まずは画像生成の方からお話ししたいと思います。皆さんもよくご存知かもしれませんが、Stable Diffusionですね。パラメータを与えて画像生成するもので、私もいろいろいじって遊んでたんですけれども、すごく楽しくて、無限に時間が溶けていく感じがしました。こちらもさくらのクラウドで動かすためのハンズオン資料がありますので、よろしければご覧ください。

それからコーディングアシスタントですね。これはプログラミングなどコードを書く作業をアシストしてくれるものです。例えばTabbyというのがあります。例えばPythonの関数名を入れると処理内容が補完されて、TABキーを押すとその補完された内容が入力されるといった、いわゆるGitHub Copilot的な動きをするオープンソースの実装です。これもいろいろ試してみたんですけども、非常に面白いと思いました。VSCode向けのプラグインがあるようなので、VSCodeと連携ができるのかなと思ってます。Tabbyも高火力プランで動かしてみた記事があります。

大規模言語モデル+チャットボット

続いて大規模言語モデルの事例です。これは大規模言語モデルとチャットボットのサービスを組み合わせた事例になります。会話型AI構築サービス「miibo」というものと、OpenCALMというサイバーエージェント社が公開しているLLMを用いたチャットボットになります。こちらは後ほど詳しく紹介したいと思います。

大規模言語モデル(LLM)とは

ということで、先ほどからお話ししている大規模言語モデルとは、というところに入っていきたいと思います。

まずは、せっかくなのでChatGPTに聞いてみました。回答をかいつまんでいくと、「大規模機能モデルとは自然言語分野で使用される人工知能(AI)の一種です。大量のテキストデータをデータセットとして学習して、人間のような文章生成や、質問に対して応答するといったタスクを実行することができます」というところですね。技術的にはニューラルネットワークという機械学習を使って行われていて、膨大な量のデータセットを使って学習しているというのが大きなところなのかなと思ってます。

…ということなんですが、これだとちょっと長くてわかりにくいなと思ったので、もう少しわかりやすく教えてくださいとお願いしてみると、上記のような感じでさっきよりは簡潔に教えてくれました。「LLMは人間のように文章を読んだり書いたりすることができます」などと書いてあります。一言で言うと、機械学習を用いて作成したモデルを使ったものである、と言えるかなと思います。

そういったLLMなんですけれども、大規模言語モデルにはどんなものがあるかを調べてみました。まず本当に大きいところを紹介しますと3つございます。まずGPTですね。OpenAIが提供しています。ChatGPTで使われているもので、GPT3とか3.5とか4などいろいろあります。次にBERTというものがあります。こちらはGoogleが開発したものになります。最後にOPTですね。こちらはMETA(Facebook)が開発したプリトレーニングモデルになります。

他にもLLMはたくさんあるのですが、中でもオープンソースの言語モデルを調べたりニュースの記事から持ってきました。まず最初にDollyです。こちらは今年の2月か3月に公開されて、オープンソースかつ商用利用可能というのは個人的には衝撃的なニュースでした。Datablicks社が公開しており、パラメータが異なるモデルを複数提供しています。他にもいろんな組織がLLMを独自に開発・提供しております。中でも特筆すべきところとしては、日本語の大規模言語モデルがどの程度あるのか気になって調べたところ、サイバーエージェント社が公開したOpenCALMっていう大規模言語モデルがあります。

つづきは後編で

本記事では、さくらのクラウド高火力プランの概要や事例、それから大規模言語モデル(LLM)の概要や主な実装をご紹介しました。続く後編の記事では、さくらのクラウドでLLMを動かす方法の解説や、LLMを使って実装したチャットボットのデモなどをご紹介します。