AutoML Tablesをやってみた(サンプルデータ利用)

だいぶ時間が空きました(汗

SEの稼働予測を行う上でまず、コアとなる予測を出力するための機能を検討する必要があります。取り得る実現策として、自作するか他社のフレームワークを使うかが挙げられます。

 

自作もいいですが、精度、スピード感、コストともに他社様のフレームワークを使うのがいいと思うので(当たり前(笑))、フレームワークとしてGoogleが提供しているAutoML Tablesを使って評価したいと思います。なぜ、Google AutoML Tablesにしたのか、特に大きな理由はないです。強いて挙げるならプログラムの知識不要というところが一番大きいです。まぁやってみて精度が良くなければ他のフレームワークを使ってみます。

 

AutoML Tablesとは何か、どのような手順でやったのか、ここがわかりやすいです。私もここをそのまま参考にしながらやってみました。

機械学習初心者はGoogleAutoML Tablesを使ってみては?メリットや使い方、使用感を知っておこう | データのじかん

 

Googleのクイックスタートもわかりやすいです。

Quickstart  |  AutoML Tables  |  Google Cloud

 

AutoMLを利用する前提として、事前にGCPのアカウントが必要です。

まだ本格的に検証できていないのでわかりませんが、簡単な試行レベルであれば無償でできます。

 

AutoML Tables利用の大きな流れは、インポート→予測したいパラメータ決定→トレーニング→モデルを使って予測

となります。

 

今回やったのは↑のリンク先の通りにやっただけなので、個人的に気になった、ポイントのみ抜粋します。

 

下記は、データのインポート画面です。BigQuery、CSV形式で可能です。

今回はGoogleのサンプルを指定します。

f:id:tomuo-i:20200628225123j:plain

 

次にトレーニングタブに移動します。↑のリンク先の手順のとおり、Depositをターゲットにします。

f:id:tomuo-i:20200628225120j:plain

 

モデルを作成します。

f:id:tomuo-i:20200628225115j:plain

 

完了するとメールが飛んできます。大体1.5時間くらいかかりましたね。

f:id:tomuo-i:20200628230843j:plain

 

出来上がったモデルを選択してみます。評価項目があるのですがこのあたりはもう少しAIの知識が必要そうですね。。

f:id:tomuo-i:20200628231421j:plain

 

ここまでやるのは簡単です。個人的にはトレーニングが完了するとメールが飛んでくるのがありがたいですね。

 

次回はGoogleのサンプルデータではなく、より実践的な生のデータを使いながら評価してみます。

 

SE稼働工数予測の実装方式について考える

前回、前々回の続きです。とゆーかしばらく続きます。

 

 

tomuo-i.hatenablog.com

 

実装方式を検討したいと思います。

 

まず、うちの会社はSE本部専用のポータルページがあるので、そこに

作成予定の工数予測を出力できるようにすると良さそうです。

また、うちの会社のグループウェアは基本、GSuiteです。O365も利用していますが、GSuiteから連携されるものが望ましいと考えています。

 

つまり、

①SE本部のポータルにアクセス

工数予測リンクをクリック

Googleフォームが立ち上がる

④予測に必要なデータを入力する

⑤予測工数が出力される。

⇒結果はメール送信がいいかも。

(出力までに時間がかかると思われるため。)

 

かなりざっくりです 笑

 

ここからさらに深堀します。

実装範囲は③、④、⑤になります。

 

③、④はGAS(Google Apps Script)を使うのでしょうね。⑤でスプレッドシートを基に予測すると思うので、Googleフォームから書いたデータを予測しやすいようにスプレッドシートに転記する仕組みを考える必要がありそうです。

GASは未経験なので勉強しながら作成します。

 

⑤は、何がいいんですかね。取り得る方法を洗い出す必要があります。

ここ数日で調べてみると、スプレッドシートのアドオン、Googleが提供するAI Platform(Cloud ML、Auto ML Tables)が候補に出てきました。

 

勉強がてらAuto ML Tablesを使ってみます。

 

稼働工数予測に必要なデータ

前回の続きです。

 

tomuo-i.hatenablog.com

 

目的を達成する(=SEの稼働を予測する)ためには、おそらく以下のようなデータが必要。これは仮置きなので出力結果、精度によって見直す予定。

 

工数に大きく影響するであろうものをピックアップしてます。

 

・案件規模(ユーザ数、拠点数)

・ソリューション、取り扱う製品・商材の種類

・ソリューション、取り扱う製品・商材の実績

・社内チーム、協力会社の数

・新規のお客様か既存のお客様か

・PJ完了までに要した期間(要件定義、設計、構築、テスト、いわゆるウォータフォール型の開発期間)

・成果物の数、粒度(これ難しいな。。)

・発生したインシデント件数(これも難しい。。)

 

次回は実装方法を考えます。あとはどれだけデータ集められるのかな。。

SEの稼働工数を予測できないか

IT技術は常に進化しています。これまで多くのコンセプト、技術が世に出回り、システムエンジニアはこれらを追従しながら飯を食って生きています。

 

また、単にSEといってもインフラやアプリケーション、インフラの中でもネットワークやサーバOSなど領域が広く、おそらく全ての領域を熟知、マスターできている人はいないのではと思います。いや、いないと断言します。

 

SEになって10年以上経ちますが、いまだに未経験の領域を依頼されることがあります。それは上記の背景によるものです。

 

この時、まず稼働工数を見積もることになるのですが、皆さんはこのようなやったことがないようなものをどれだけ正確に見積もりができていますか?

 

ある程度世に出回っているもの、実績があるものであれば、過去の経験やその領域に詳しい有識者ヒアリングしながら工数を算出でき、それなりに予実の工数に乖離は無いかと思います。

 

ただ、実績がないもの、初めて担当するお客様など不確定要素が多い中で見積もることって結構ありませんか。

 

このようなケースをなるべくAIである程度予測できないかなと思っているのですが、できないですかね。あくまで手段なので、最終的には有識者などに十分レビューしてもらう必要があるのですが、ある程度参考になるかなと思うのです。ということで、勉強がてら試しに実装してみようと思います。

 

下記の様なケースを考えています。

想定ケース

お客様から大規模を対象とした提案依頼が来る。内容はあなたがこれまで過去に対応したことがないようなサービス、世の中的に有名になりつつあるが、PoCレベルまでがほとんどで、実用レベルはまだまだという感じ。
SEに所属するあなたは、お客様のフロントとして案件を管理するPMを担当することになりました。
 
目的(Why)
より正確な稼働予測をすることで、以下の効果を狙いとする。
・SE自身にとって、予期しない事態、考慮漏れによる予定工数超過の発生頻度を低減する。
・SE自身にとって予実差異に関わる再計画の負荷が軽減する。
・管理者にとって適切な人員をアサインする際の参照元となる。
・SE組織にとって、案件リスク評価の参照元となる。
・お客様にとってベンダの納期遅延リスクが低減する。
 
予測対象(What)
PJ期間におけるPMに必要な稼働工数を予測する。各月にかかる1日に必要な時間。
 
予測される人(Who)
PM(プロジェクトマネージャー)、課題管理や進捗管理、品質管理を行いながらプロジェクト期間内に要件を充足したシステムをトラブルなく納品することに責任を持つ人。
 
上記を基に次回は予測するために必要なデータを考えます。
 
 

このブログは何を書こうとしているのか

公開できる範囲で簡単に自己紹介します。

 

1981年生まれの38歳です。今年で39歳です。

1児の父です。娘がいます。

 

大学院の情報系を卒業し、外資系IT企業に10年勤め、1年半コンサル会社、その後、いまの通信キャリア系にSEとして転職しています。

 

なぜ転職を繰り返したのか、IT業界とは、コンサルとは、SEとは、今後どうしていきたいのか、などなど考えていることはたくさんあるので、この辺りはまた別の機会で書こうと思います。

 

得意な領域はインフラです。インフラといっても何でもできるわけではなく、主にサーバ、ストレージなど。(と言って今の若い方はわかりますかね。。?)今でいうIaaSあたりでしょうか。若いころは自宅にサーバを置いたりして検証環境を作ったりしていました。

最近は通信キャリア系に勤めていることもあり、WANやインターネットゲートウェイが多いです。転職してもうすぐ2年になりますが、ネットワークの知識が全然足りず非常に苦労しています。

 

そんな私ですが、昨年の年末に会社の企画で新領域と呼ばれる、AIやIoTなどまだ成熟化していない領域に対して、取り組み、今後の業務に役立てようというものがありました。

 

その中で、AIによる議事録作成・予測というテーマがあり、私はメンバーとして参画しました。3月に最終報告会を行い、本活動は終了したのですが、せっかくなので学んだことを基にもう少し何かしたいなと思い、部内に貢献するようなAIを使った仕組みを実装しようと思いました。

 

本ブログはこのAIを使った仕組みを作り、部内に何かしらの貢献をすることを目標に、目標達成までの活動記録となります。

 

じゃあ何を実装するのか。次回書きます。

ブログ始めました

今更ですがブログを始めます。

 

目的は毎日勉強した内容、気づき、教訓、活用分野を記録することで、自分自身、身近な人、職場の人、同じ志を持った人、国内、国外に貢献していきたいと思います。

 

目標は1週間に1つの記事を、まずは半年間続けること。

 

それから先はどうするか。実は大きな目標というか野望があるのですが、それは半年続いたら公開することにします。続かなかったらそれまでということ。。