2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
では、そういった分析活動の中で、Azureをどのように活用しているかを説明します。分析活動の中でAzureを活用する意義は、手軽にできることと、Webアプリなどでの公開が非常に簡単なので、メンバー全員に知見のトレースや、デモの環境を簡単に渡せることが、最大のメリットだと思っています。
今回、はじめにお見せるデモ環境は、すごく簡単なトイプログラムですが、App Service planの中にApp Serviceを1個立てて、これがWebの入り口になります。そこに、Streamlitという、PythonベースでWebアプリが作成できるライブラリを置いて、Text AnalyticsのAPIを呼んで、その結果をただ表示してみるようなデモアプリです。このあと、見せて説明したいと思います。
(デモ開始)
先ほど紹介したデモサイトについてのApp Service planが、画面に映っています。このURLにアクセスすると、このようなすごく簡単なページが出てきます。
でもこれがサイトになっていて、ここにテストで用意したデータがありますが、それを上げるとそのデータが見えて、ここからさっそくAzureのText Analyticsを使っています。自動検出:Japanese、日本語でうまくいっています。
いくつかサンプルをもってきて、センチメント分析。ポジティブ、ネガティブ、中立のスコアリングが見えます。
固有表現抽出と言われている、固有名詞や企業などを抽出する機能も、日本語できっちり働いていて、例えば、“東京メトロ”はOrganization、組織にちゃんとなっているし、“KDDI”、“ソフトバンク”もOrganizationになっています。
この固有表現抽出には、ちゃんとカテゴリーやサブカテゴリーがつくような状態ですが、そのキーフレーズだけを抽出して集計するような機能ももちろん備わっていて、キーフレーズを抽出してきて、カウントをしているかたちになっています。
これだけだと、ちょっとなんぞやというかたちだったので。せっかく私が「比較比較」と言っているので、比較をしてみましょう。キーフレーズをカテゴリーごと頻度順に並べます。これはlivedoorのニュースコーパスですが、そのlivedoorのニュースコーパスのカテゴリーごとに、キーフレーズを頻度で並べてみます。
そうすると、違いがいろいろ出てきて、まず1つ目に見えるのは、「こと」は分析上大事じゃないと言われていて。
やはり自然言語の中でよくある、ストップワード処理を、「こと」は入れようかがこれでもうわかります。各記事の特徴が、それぞれ違う。今回は「単語、キーフレーズが使われているんだな」「しっかりジャンル分けされているんだな」ぐらいしか考察しませんが、そういうことをはっきり可視化できるのが、やはり比較の大きな強みかと思います。
今回はこれぐらいしかプログラムを用意していませんが、これに用いたライブラリは、実はこの3つだけです。requirementでサーバーに飛ばしているものですが、streamlit本体と、表で見せなければいけなかったのでpandasは入れました。あとは、azure-ai-textanalyticsのAPIを使うためのライブラリ。
しかも、総コード数は、フロントとバックエンド合わせて実は100行ちょっとしかないです。そのぐらい簡単なコードで、実はもうここまで分析チックなことができています。
実務上はさすがにこれだともう少し足りないので、自分たちでもう少しライブラリで可視化をしたり、スコア計算をして内部で展開して、可視化ツールとして使っています。これで今回のデモ、「はじめ」を終わります。
(デモ終わり)
先ほど見ていただいたデモでは、可視化のところまで、もしくは比較して集計をするところまででしたが、BERTなどを利用したいときにも、Azureは非常に便利です。
自分のBERTを利用したいときに、Azureの活用として大きく2つのパターンがあります。1つ目は、DSVM(Data Science Virtual Machines)を立てて、GPUを自分たちで利用すること。もう1つは、Azure Machine Learningと、その中に含まれているNotebookを活用するという方法があります。今回は後者を紹介します。
これもちょっと簡単なデモをまた用意しています。Azure Machine Learning上にJupyter Notebookを立て、そこでVMにTransformersを入れます。
先ほども出てきましたが、Transformersは事前学習済み言語モデルを活用する際に、Pythonではデファクトライブラリになりつつある、非常に有名なライブラリです。そのTransformersを使って、BERTの学習をAzure VM上で回してみます。
(デモ開始)
こちらがAzure Machine Learning Studioと呼ばれている、Azure Machine Learningのリソースを立てるとアクセスできる、Azure Machine Learningを使うためのポータルページのようなところです。
実は、もうデプロイ済みです。GPUを立てるのが非常に簡単で。コンピューティングというところで、Newを押して、GUPを選択すると、自分が立てられるGPUが出てきます。これを「次へ」とやり、名前決めればこれだけでもうGPUが使えるような環境になっています。
今回紹介するのはNotebookなので、「Notebooks」というところに行って。もう自分が作ってしまっているのもありますが、このフォルダのところで「ファイルをアップロード」を選択し、自分が作ったNotebookを上げて、それを開く。
さっきのGPUが使えるような、もうマウントされた状態でNotebookを使えます。このNotebookはネットにもよく落ちている、BERTでlivedoorのニュースコーパスを分類するNotebookです。自分で少し変えているところもありますが、それを今回デモで流します。
実行は「カーネルを再起動し、すべてのセルを実行する」を押せば、上からバーっと流れていきます。
VMを自分でもつことのいいところはけっこうあります。今マジックコマンドで各ライブラリをインストールしていますが、以前にGPUvmでは試しているので、各ライブラリはもうあるよということで、環境の保存ができます。
言語の分野はいろいろなことをやり始めると、ライブラリの依存関係で入れていき、コンパイルしてみたいな、いろいろな外部ツールのインストールも走るようになってきます。要は、1回やった作業をクラウドなどに保存できるのは非常に大きな強みかなと思っています。
こんなふうに話していると、どんどん処理が進んでいきます。今ちょうど、そのインストールしたライブラリを、さらにインポートしているところです。
ここでちょっと先に言ってしまうとcudaのavailable。いわゆる「GPU使えていますか?」という確認をここでちゃんとしてみます。ここでちゃんとTrueになっているので、GPUが使えていることがわかります。
あとはもうファイルを、ニュースコーパスを読み込んで。ラベルはトランスフォームしていますが、各ニュースコーパスについてFine-Tuningがここで始まります。
もう、Fine-Tuningの実施が始まろうとしていて、もう少しすると、始まりの画面が出てくると思います。今ちょうど、事前学習済みのモデルを読み込んでいて、Transformersで読み込んでいます。
ここでも使用デバイスはちゃんとcudaになっているので、GPUが使われています。スタートとなり、どんどん学習が進んでいきます。
ただこの学習、さすがにGPU使っても1時間弱ぐらいかかるので、実行済みのものをもってきています。Fine-Tuningの実施をやっていくとどんどんログで吐き出していて、Lossなどが下がり、精度が上がっていくことが確認できます。
学習が終わったので、テストデータを使って、検証して。モデルの保存も1回行っていますが、そのあと精度検証ということで。まず精度はaccuracyのほうで、全体で0.95出ています。もう少しちゃんと見ていくということで、各ラベルについて、precision、recall、f1-scoreを出してみます。
ネットで転がっているものだと、実は0.97や0.98を越えていますが、今回はパラメーターチューニングをちゃんとしていないし、高速化のために少し学習をサボっているところがあるので、少し精度は落ちています。それでも、ベースラインと言われてるモデルよりもぜんぜん高い精度が叩き出せます。
confusion_matrixもこうやって出せます。あと、ここが少し特殊で、自分たちで学習したあとにBERTを分析するとき、どうしてもattentionsの中身や、hidden_statesの中身を見たいことがありますが、Transformersだとそれも簡単に取り出せます。
今回はモデルを読み込むときにoutput_attentionsをTrueにしているだけですが、hidden_statesもTrueにすれば、それも取り出せます。
今回はただベクトルを並べているだけですが、取り出して、数値を使ってattentionsの内容を可視化してみたり、ちゃんと自分たちが意図したところの単語にattentionsがついているかの分析の確認などもできるようになっています。
本当にこれだけ簡単にGPUをポチポチすれば動かせるのは、非常に有益です。毎回GPUを使う案件ではないからこそ、ただGPU使いたくなったときに、気楽に試せる環境は非常にありがたいと思って、今回デモとして紹介しています。
(デモ終わり)
デモで見てもらったように、かなりAzureの活用ができることが理解してもらえたかなと思います。
NLP分野でも、かなりGPUが必須になりつつあります。どうしてもBERTなどを使って分類をしたいという要件も少ないけれども増えてきています。分類までいったらBERT系の技術が必須になってきているこの時代の中で、やはりGPUをふだん用意できないときに、手軽に試せる環境がクラウドで用意できるというのは、私にとっては本当にありがたい状況になっています。
今見せたデモは、いきなりText Analyticsのリソースが立っていたり、Azure Machine Learning Studioから始めてしまいましたが、そこのデプロイ方法については公式のドキュメントがかなり丁寧に整備されています。
この章は自分たちのサービス紹介で、少し宣伝になりますが、今見せたデモ、トイプログラム2つなので、「実案件だとなかなか使えないんじゃない?」とか、「言うて、そんなに活用していないんじゃないの?」と言われるかなと思ったので、「いや、そんなことないですよ」ということで2つ。ちょっと宣伝もかねて紹介します。
1つ目が「ML Connect」。私たちはMLCと呼んでいます。こちらは先ほど見せたBERTのアーキテクチャーに実は近いです。私はNotebooksをデモをしましたが、そこにあるAutoMLを活用して、時系列予測と異常検知を早く手軽に低コストで提供するサービスになっています。
MLC - Forecast、時系列予測のほうは、例えばビルの電力需要の予測、もしくは材料や部品の需要予測などに活用してもらうことを想定しています。
異常検知モデルに関しては、工場設備の異常検知などで活用してもらえればと考えております。
2つ目、アンケート分析ツール「CogEra」です。こちらはデモ1のほうで使ったアーキテクチャーをもう少しサービス向きに拡充させて、もう少し内部でも自然言語処理のスコアリングや、可視化、カラフルにする活動をもう少しがんばってみた、みたいなツールになっています。
そのため、実は先ほどのApp Serviceとレジストリを使ったようなアーキテクチャー構成そのままに、私たちはサービス展開もしているのが実状になっています。
先ほど見せたようにアーキテクチャーは非常に簡単なので、低コストで早くサービスを届けることを目指しています。「簡単に、知見がなくても低コストで」をモットーに提供しています。
では、最後にまとめです。2018年度以降、NLPの研究は非常に活性化をしています。研究分野もどんどん実用に向けた応用系の分野にシフトが進んでいます。ただ一方、実案件上では、機械学習を利用した分類や翻訳、生成よりは、可視化や分析のニーズがまだ大多数です。
その中で、私がモットーにしているのは、いかに分析速度を上げて、お客さまにぶつけていくかということが大事になってくるかなと思っています。また、そういった活動をAzureをうまく活用することで、すごく効率的に、かつ、早くできることが、今回この発表で言いたかったことになります。
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05