AIカンパニーとスマートスピーカー

吉原忠史氏(以下、吉原):AI開発室の吉原と申します。よろしくお願いいたします。まずAI開発室は、LINEの中のAIカンパニーという組織における開発部門です。

最初に、AIカンパニーはどういうものかを説明してから、今日の本題である、サーバーサイドエンジニアとSREの仕事について説明したいと思います。

これまでにお話しした機械学習・データ基盤開発部門は、LINEの本体であるコミュニケーションアプリと、それに非常に深く関係するサービスの開発の話でしたが、AIカンパニーはそれとはちょっと離れていまして。

LINEの中で使ったAIの技術を、他の会社さんに提供して、実際のサービスやアプリケーションは、その会社で開発するかたちのビジネスをやっています。

歴史的なところでいうと、最初の頃から「CLOVA WAVE」「CLOVA Frinds」などの名前でスマートスピーカーを作っているのですが、そのスマートスピーカーは、裏側でAIの技術をいろいろ使っていまして。

例えばユーザーが「音楽をかけて」と言うと、それを音声認識して、自然言語処理して、何をやりたいかということを解析、最後に「じゃあなになにという曲をかけますよ」と言う、音声合成を使ってユーザーに返事するようなことをやっています。

で、最初はそうやってスマートスピーカーの後ろでAIの技術を使っていたのですが、途中からAIの技術自体を他の企業にも提供したほうが、ビジネスとして広がりがあるんじゃないかということで、LINE BRAINという名前で、そういうB to Bのビジネスを始めました。そして今は、スマートスピーカーもやってはいるのですが、ビジネスの規模としてはそっちのほうが大きくなっている状態です。

LINEのAI技術は、非常に幅広い技術領域でやっていることが1つの特徴です。音声・画像・自然言語処理といろいろな分野で、それぞれ優秀なリサーチャーが開発しています。

AI開発室が手掛ける主なプロダクト

具体的にはこのようなプロダクトを提供していまして、チャットボット、認識音声合成、テキスト分析、あとは画像、動画のところ。こういった幅広いB to B向けのプロダクトを展開しています。

例としては、請求書の処理を専門にやっている経費生産システムベンダーさんと組んで、その請求書をOCR、画像認識して、システムに渡すというようなサービスであったり。

あるいは、このLINEの中のトークルームやLINE CONOMI(現名称は LINE PLACE)と連携して、そこにAIの機能を提供する。このような感じでいろいろなところに要素技術を提供することをやっています。

もう1つは、またその単体の技術を提供するということに加えて、それらを組み合わせたソリューションもやっています。

今のところはこの2つですが、LINE AiCallという電話の自動応答の部分も、スマートスピーカーとけっこう似ていますが、音声認識と自然言語処理と音声合成を組み合わせてやっています。

もう1つはeKYCといって、本人確認の部分。例えば銀行の口座を作る時や、役所で手続きをする時などに、オンライン上で本人確認をすることによって、銀行やか役所に行かなくても、家で処理が完結するというようなものです。

こういうものを、サービス事業者や、eKYCのビジネスを専門にやっている企業と組んで、ソリューションを提供しています。

一番有名な例としては運送業者さんの例ですね。「荷物を取りに来てください」というような集荷依頼の電話をLINE AiCallで受けて、自動で応答することによって、運送業者さんのほうでは、コールセンターの膨大な人的負担を削減できます。

そういうことをやっているのがAIカンパニーなのですが、その中でAI開発室がありまして、けっこう多くのチームがあります。

今日のテーマであるサーバーサイドエンジニアは、この中の上の3つです。AIプロダクト開発1と2と、あとAI開発支援チームの3つです。

AI開発室のサーバーサイドエンジニアの詳細

まず、サーバーサイドエンジニアの詳細を、お話ししたいと思います。先ほど図で見せた、AIプロダクト開発1と2が、サーバーサイドエンジニアの所属するチームになっていまして。

何をやっているのかといいますと、メインはLINE AiCallやCLOVA OCR、LINE eKYCなどの製品あるいはサービスの開発をやっています。

こういう、元となる音声認識や音声合成の機械学習モデルを、先ほどの図でいう下のほうの機械学習のチームが作っていますが、私たちは、それを使って実際にサービスを提供するためのシステムを開発するところがミッションになっています。

その他としては、ユーザーシステムとの統合だったり、この機械学習のパイプラインの構築だったり、あるいはR&Dプロジェクト、まだ製品やサービスになっていないもののプロタイピングの開発などもやっています。

AI開発室の技術スタック

技術スタックは、こんな感じになっています。最近だと、Goがメインの言語なのですが、やはりいろいろなシステムを統合したりする場合は、自分たちで作ったものだけではないので、いろいろなものを扱う必要が出てくるため、他にもJava、Python、JavaScriptといったものを扱う必要もあります。

あとは、データベースなどは普通な感じだと思います。インフラに関しては、LINEのプライベートクラウドが用意してくれたKubernetesのクラスタがあるのですが、それを使って運用するというのが最近の流れになっています。

また、DroneやArgoCDなどを使ってCI/CDをやっています。

サーバーサイドエンジニアとして働くおもしろさやメリットは、1つが業界有数のプラットフォーマー、例えばヤマト運輸さんなどのプラットフォーマーとの協業することによって、世の中で広く使われるサービスを開発できる。自分の使ったサービスが、家族とか友だちが実際に使うものになるということが体験できます。

もう1つは、超巨大言語モデルと書いていますが、最近GPT-3という新しい言語モデルに関する論文を参考に、日本語の超巨大言語モデルを開発中でして、そういった世界最先端の技術を使ったサービスを開発できるのも魅力になっています。

あと、AIカンパニーは、LINEの中ではまだまだ立ち上げ時期です。そこに参加することで、立ち上げのメンバーとして非常大きな裁量を持って働けます。

また、ビジネスのほうもこれからどんどん成長しないといけないので、そこの成長にダイレクトにコミットできて、成長が実感できるところも、魅力なのかなと思っています。そういったところに興味を持っている方に、ぜひ来てほしいと思っています。

次からSREエンジニアの説明になりますので、荻林さん、お願いします。

AI開発支援チームのお仕事

荻林裕憲氏(以下、荻林):では私から、AIカンパニーのSREのポジションについて説明します。私、AI開発支援チームのマネージャーをしている、荻林と申します。よろしくお願いします。

まずAI開発支援チームを紹介します。英語のチーム名はAI Dev Productivity Teamとなっていて、開発者のプロダクティビティ、生産性を向上させていくことをミッションにしています。

その先にあるビジョンは、開発者がより気持ちよくスムーズに開発や運用ができるようにしたいという思いを込めて、このようなビジョンを掲げています。

AI開発室はどんどん大きくなっていまして。プロダクトも、先ほど紹介されたとおり、非常にいろいろあります。どこの開発チームでも考えなきゃいけないことはいろいろありますが、そういうところを共通のチームでやって、全体を底上げするのが効率的だろうということで、先月新しく発足しました。非常に新しいチームです。

業務内容ですが、主にこの絵の赤枠に書いた部分。実行基盤だったり、CI/CDだったり、モニタリングだったりといった、開発を支えてプロダクションに出すスピードを上げる。あとは、出した上で安定して稼働させるための土台の部分を強化していくのがお仕事になります。

運用よりも仕組みを整えることを優先

SREというと、運用とかオンコールといったイメージのある方も多いと思います。現時点では、運用よりもそういう仕組みを整えることを優先にやっていて、今後は運用にも入って、体制を組んでオンコールをしたりするようなところも入ってくるかな、と思っています。

補足として、さきほど言ったようなCI/CDだったり、モニタリングだったりは、「LINEだったら社内でいろいろあるんじゃないの?」みたいな話があるかもしれませんが、もちろんあります。それも1個じゃなくて複数あったりします。

社内では、そういうのもどんどん新しいのが出たりとか変化したりしていて。なので、結局開発者は「今だと何使うのがいい?」みたいなことをそれぞれ考えて、自分たちで採り入れている状況なので、AI開発については、そこを開発支援チームでやりましょうと、チームを作ってやっています。

AI開発支援チームが使っている技術

使っている主な技術は先ほどのカンパニーの紹介とも若干重複しますが、運用周りのところにフォーカスすると、だいたいこのようなものを使っています。話にもありましたが、Verdaという社内クラウドでKubernetesを使うことが最近増えています。一方で、まだ確立していない部分もあったりするので、そういうのも整えて提供していく役割も担っています。

チームとしては本当に先月できたばかりなので、「今やっています」というよりは「これからやりたいこと」っていうかたちになります。

基本的には、自分たちで検証とかをして、先ほどの土台といった部分について、「こうやるといいよ」というやり方を集約して、その上でよりよいものに育てていくことをやりたいと思っています。

モニタリングであれば、例えばよりアクションにつながりやすい、余計なものがないとかっていうのも課題になってくると思います。リリースに関しても、なるべく後から追跡可能にしていきたいだったり、キャパシティ管理だったりが課題になると思います。

あとやはり、特に私たちはB to Bのお客さまとやっているので、セキュリティ対策はだいぶ大事になっていまして、そういうところをより固く、「私たちはこういうふうにしっかりやっています」と説明できるようにしていきたいと考えています。

こういったことをやる中で、社内でなにかいいものがあれば、もちろん使いますし、OSSでやるほうがよさそうであれば、それを使うこともあります。あるいは自分たちで何かを作るとか。そういういろいろなパターンがあるかな、と考えています。

SREにポジションマッチしそうな人物像

最後に、AIカンパニーのSREというポジションマッチしそうな人物像をちょっと書いてみました。プロダクトを直接開発するわけじゃないのですが、一方で複数のプロダクトに関わって、それらを支えるかたちになるので、そのような開発者やプロダクトを助ける役割に魅力を感じる人がいいんじゃないかなと思っています。エンジニアに「便利」って言われると、すごくうれしいと感じる人など。

これから、プロダクトもまだまだ増えていきます。トラフィックも当然増えていきます。すごく成長の初期にあるサービスが多いし、これからも増えていくんですね。

それを一緒に経験しながら、もちろんトラブルもけっこう出てくると思うので、そういう経験して、一緒に楽しみつつ、トラブルも乗り越えていくといった、そういうのが楽しめる人がいいんじゃないかなと思っています。

技術的なところでいうと、先ほどのコンテナのところはまだ掘っていく余地、改善する部分がけっこうあると思っているので、そういうところをやりたい方がいたら、ぜひジョインしてほしいなと考えています。

私からSREの紹介としては以上です。この発表を聞いて、少しでも興味を持ってもらえたらうれしいです。どうもありがとうございました。