2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
リンクをコピー
記事をブックマーク
深谷勇次氏(以下、深谷):「PyTorch × Azure × 自然言語処理 → ISID の AI 製品: TexAIntelligence の技術」と題して、電通国際情報サービスの3名が発表します。よろしくお願いいたします。
弊社、電通国際情報サービス、通称「ISID」と言います。ISIDは主に4つの事業セグメント、製造、金融、ビジネス、コミュニケーションを中心としてITのビジネスを展開している会社です。
ISIDは昔からAIのビジネス進めてきていますが、2020年に「より力を入れていこう」というメッセージも含めて“AIトランフォーメーションセンター”というものを設立し、よりお客さまにAIの技術を活用してDX、新規ビジネス革新につないでほしいと思っています。
私は、電通国際情報サービスの深谷と言います。ふだんはAIコンサルティンググループのマネージャーを実施しています。
AIの実社会への実装に際してですが、AIの不確実性の話があります。「これはどういうことだろう」ということです。AI、データ分析もそうですが、お客さまのデータは、特に未来のデータも含めて考慮していかなきゃいけないところがあって。そうすると、やはり“やってみないとわからない”という観点がAIにはあるわけです。
そういうAIに対してどういうプロジェクトが必要かというと、探索的段階的な推進の必要性があります。これは経産省とか、さまざまなところで言われていることです。
探索的段階的な進め方を実施していくと、やはり先が見えにくいとか、時間がかかってしまうところがあるわけです。そうなると、やはりお客さまから、導入効果が早く得られるAI製品を提供してほしいという話が昔からよくありました。
そのような背景から、我々は日々たくさんの文章を読んで業務している方々を、AIの技術で支援できないかといろいろ考えていました。
このような方々の業務がどういう流れかというと、たくさんの文章がありますと。それを日々読んでいるわけですが、過去の知見文書のデータなどを参考にしながら業務をしています。そういう業務の中では、やはりキーワードの検索では不十分みたいなこともあります。
あとは、文章をもとに情報を展開する方々に業務を依頼することも必要です。あとは、ビジネスを判断する方々に情報をまとめて提供することも必要になってきます。
そのようなビジネスの現場に適用するものとして、我々は「TexAIntelligence」を開発して提供しています。機能としては、大きく「意味的類似検索」「自動分類」「文章要約」というものがあります。
このTexAIntelligenceを先ほどの業務に適用すると、スライドのようになるわけです。過去の知見文書データに対して意味的に類似検索したり、自動分類を行うことで情報展開を早めたり、効率化する。あと、文章を要約することで、ビジネスを判断する方々によりわかりやすく説明できたりします。
このようなTexAIntelligenceですが、さまざまな場面に利用してもらえると我々は思っていて、特に今は、品質保証部門や、製品企画部門、コールセンターの方々に活用してもらっています。
TexAIntelligenceはサブスクリプションのライセンスですが、日々、定期的にバージョンアップしています。2021年の1月にBERTの搭載も実現しています。
このようなTexAIntelligenceの技術を、今日は発表します。TexAIntelligenceはやはり製品なので、単なるプロトタイプじゃないところがありなかなか難しいところがあることの背景も踏まえ、後藤とファイサルから発表します。よろしくお願いいたします。
後藤勇輝氏(以下、後藤):それでは発表者代わり、私後藤から「ソリューション内でのAzure活用方法の解説」ということで発表します。よろしくお願いします。
まず簡単に自己紹介させてください。私は名前を後藤勇輝と言い、所属は深谷と同じく電通国際情報サービスのAIトランスフォーメーションセンターに所属しています。現在の業務としては、自社AIソフトの開発であったり、機械学習の案件の技術担当であったり、機械学習関連の研究開発などを行っています。
その他ということで個人的な活動として、2021年に入り書籍『PyTorch実践入門』を翻訳・出版しました。そのほか、QiitaやTwitterなども行っています。
それでは本題に入ります。自然言語処理ソフトウェアTexAIntelligenceでのAzureの活用実態について発表します。
初めに、TexAIntelligenceのシステムのインフラ構成図になります。この図でわかるように、TexAIntelligenceはすべてAzure上で構成されています。
こちらすべてを載せているわけではないのですが、基本的にはスライドのようなパーツでTexAIntelligenceは構成しています。ストレージアカウント上に静的サイトをホスティングして、そのほかにデータベースであったり、アプリケーションサーバー、そして機械学習を行うサービス群といったような構成になっています。今回はまずアプリケーションサーバーの部分を説明します。
アプリケーションサーバーの6つの特徴ということで、先ほどのアプリケーションサーバーを詳しく中身を示したものがこの図です。
アプリケーションサーバーの中には、まずNGINX、Webサーバーがあり、クライアントからの情報を受け取ります。その後、具体的な処理はDjangoとDjango REST frameworkを用いて処理を行います。ここまではよくあるWebアプリケーションの中身だと思いますが、ここからが少し違って、今回TexAIntelligenceはAI製品ということで、学習や推論処理といった、比較的時間のかかる処理が存在します。
そういった処理ではレスポンスをすぐクライアントに返せないため、非同期処理が必要になります。
それを実現するのが、ブローカーであるRabbitMQと、実際に非同期処理の実施などを行うCeleryです。これらを使って非同期処理を行っています。
また、右側にあるのが、AzureのデータベースであるPostgreSQL。そしてログを収集するためのAzure Log Analyticsです。このように、Azureのサービスを使うことで、導入や開発のコストを下げて実装を行えました。
今少し簡単に説明しましたが、より詳しい説明を次のスライドに記載しているので、ご覧ください。
続いては、マシンラーニング・サービス部分の説明に入りたいと思います。マシンラーニング・サービスの2つの特徴ということで特徴を2つあげていますが、今回は時間の都合上、特徴の1つ目だけを説明します。
今回TexAIntelligenceのAI部分に関しては、Azure Machine Learningサービスを利用しています。AIサービスの実現のためには、普通のアプリケーションとは違うさまざまな難しさがあります。そういったAI製品特有の難しさというのを、Azure Machine Learningサービスを使うことで低減できます。
例えばモデルの管理であったり、学習データの管理といったものを、Azure Machine Learningサービスを使うことで、ソフトウェアに簡単に組み込めます。
こちらがマシンラーニングを使った際のTexAIntelligenceの挙動を、少し詳しく説明した図です。まず①の部分です。バックエンドのDjangoからデータセットをAzureのBLOBに登録します。その後、学習が走る際は、先ほど説明したように非同期処理が実行されます。
そして訓練のプログラムが計算サーバーのデータサイエンスVM(Data Science Virtual Machines)のほうに渡り、そこで実際に学習などの処理が行われます。
学習が終了すると、学習済みモデルを再びBLOBにアップロードして、その後推論を行う際には、このモデルをバックエンド側でダウンロードして推論を行うという流れになっています。ここまでがTexAIntelligenceのシステムのインフラ構成の内容になります。
続いては「AIソフトウェアのアジャイル開発過程におけるAzure活用方法」ということで、Azure DevOpsと、実際にそれを使った実装の流れについて説明します。
まずAzure DevOpsです。こちらは開発に必要なサービスを統合したプラットフォームです。スライドに示したように、Azure DevOpsの中には例えばタスク管理ツールである「Boards」というチケット式でタスク進捗を管理する機能であったり、CI/CDツールである「Pipelines」、そしてソースコードを管理する「Repos」などがあります。
そして下に記載しているのが、Azure DevOpsサービスのほかに今回の実装で使用したツールです。コミュニケーションツールとして「Teams」、そして開発用のコードエディターとして「Visual Studio Code」を開発チームでは使用しています。
実装の流れに入る前に、まずは現在の開発体制について少し説明させてください。現在の開発体制ということで、私たちのチームでは現在週に3日、開発用チャネルをTeams上で用意して、メンバー全員がそのチャネルで通話状態にして開発を行っています。
基本的に私たちのチームでは外部発注などは行わず、有識者を社内から横断で集め、完全内製化のスクラム体制で開発を行っています。
画像にあるのがコロナ前の開発体制です。以前はこのようにアジャイルスペースに集まって開発を行っていましたが、コロナ後は右に示す画像のように、Teams上で完全リモートの開発を行っています。
では実際にどのように開発を行っているか、その流れを説明します。開発の流れということで、基本的にはAzure DevOpsですべて完結しています。はじめにタスク管理を先ほどのBoardsで行い、必要な機能や実装しなければいけない機能を開発メンバー個々人に割り当てます。
その後、開発はVisual Studio Codeを使って行います。リモート体制になってからは拡張機能の「Live Share」という機能を使い、言葉では説明しづらいコードの部分はLive Shareを使って実際にコードを書いて見せる、ということを行って対応しています。
コード管理の部分では先ほどご説明したReposにGitで管理されているので、コードをPushなどするとPipelinesのほうに移り、CI/CDが実行されます。このCI/CDの結果などはTeams上に再び通知されるといったように、本当にAzure DevOpsのみで完結する開発の流れになっています。
ここでAzure DevOpsの使用例ということで、Pipelinesの実際どのように構築しているかを見せます。Azure DevOpsの画面はこのようになっています。BoardsやReposがあり、今回見せたいのがPipelinesの画面になります。
Pipelinesでは、CI/CDをGUIベースで組み込めます。これによって本番環境の違いを意識せずに、ストレスなく開発できました。Azureを使った開発の流れはここまでになります。
(次回につづく)
関連タグ:
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.11.29
「明日までにお願いできますか?」ちょっとカチンとくる一言 頭がいい人に見える上品な言い方に変えるコツ
2024.12.04
いつも遅刻や自慢話…自分勝手な人にイラっとした時の切り返し 不平等な関係を打開する「相手の期待」を裏切る技
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.06
嫌いな相手の行動が気になって仕方ない… 臨床心理士が教える、人間関係のストレスを軽くする知恵
2024.12.03
職場の同僚にイライラ…ストレスを最小限に抑える方法 臨床心理士が語る、「いい人でいなきゃ」と自分を追い込むタイプへの処方箋
2024.12.05
「今日こそやろう」と決めたのに…自己嫌悪でイライラする日々を変えるには
PR | 2024.12.04
攻撃者はVPNを狙っている ゼロトラストならランサムウェア攻撃を防げる理由と仕組み