11月に日本電子専門学校AIシステム科で弊社CEO中瀬&現役エンジニアによるキャリアデザイン講義を実施いたしました。今回は、学生により当社の自社サービスや技術力も理解していただけるように、現役AIエンジニアも登壇してお話しました。講義の企画から実施した授業内容までご紹介します。
Avintonでは、複数の学校でキャリアデザイン講義を提供しています。
目的は大きく、下記3点です。
- IT、ビッグデータ分野の事業内容の把握やエンジニアキャリアストーリを聞くことで
今後のキャリア形成の参考にしてもらう - 将来どのような仕事・働き方をしたいのか、ビジョンを考えるきっかけの提供
- 大人と話して自分の脳に刺激を与えることで、学びを深くする。
- 質問することの楽しさを感じる
学校や学科によって学ばれていることは異なるため、内容も各学校の要望に合わせて変更して講義を実施しています。
キャリアデザイン講義を受講した学生の皆様からはこのような声をいただいています。
このようにITエンジニアとしての道を志す学生に、眠っている自分の希望や新しいキャリア選択の可能性を発見していただけたのではないかと思います。
今回の日本電子専門学校の授業企画は、実施1カ月半以上前からキャリアデザイン講義のための打ち合わせを重ねました。先生からのご期待は大きく下記2点でした。
- まだ就職活動を始めたばかり、これから就職活動を始めようとしている学生に話しをしてエンジニアキャリアの歩み方をより深く理解してほしい。
- AI関連のシステム開発について、学生のイメージが湧くように話してほしい。
その2点にお答えすべく、弊社はエンジニアの登壇を計画しました。また、先日Edge Tech+2022で奨励賞をいただいた「エッジAIカメラ」をお持ちしデモンストレーションを実施することで、よりイメージを深く持っていただきたいと考えました。また、学生の皆様に弊社を身近に考えていただきたいという想いから、来年入社予定の在学生の内定者にもお話してもらおうと計画いたしました。
当日、学校にお尋ねすると40名ものスーツをビシッと決めた学生の皆様が、開始40分前から待機してくださっていました。AIシステム科の1年生はこれまでに学内企業説明会を受けたことがなく、弊社が最初の学内企業説明会を担当したため、学生の皆様も気合十分に望んでいただいてるご様子でした!
以下、本説明会のアジェンダと一部詳細を紹介いたします。
30分:CEO 中瀬からのプレゼンテーション
- 中瀬がIT企業の立ち上げに至るまでのヒストリー
- 企業理念、Avintonのサービス紹介。AIがいかに社会に溶け込んでいて、現代の便利さに繋がっているかの具体例を説明(エッジAIカメラを実際にお持ちしました!)
- エンジニアリングサービスについて
- エンジニアの育成と自社教育プログラムについて
- エンジニアになった後は?(就職するだけ、自分の能力を上げるだけがゴールじゃない!?)
50分:弊社AIエンジニアのプレゼンテーション
- 学校で取り組んでいたこと
- 内定後に取り組んでいたこと
- 入社後に取り組んでいたこと
- 入社後に参画してきたプロジェクトについて(写真付の事例、使用している技術を紹介)
- AIエンジニアを目指す上で学習すべき技術領域について
- Avintonに入って良かったこと
10分:在学内定者によるプレゼンテーション
- Avintonを知ったきっかけ
- どんなところに興味をもったのか
- 就職活動体験談
- 内定後に取り組んでいる学校、Avintonからの課題
10分:SESのプロジェクトと採用情報について
- SESの具体的なプロジェクトの紹介
- 求める人材像や実際の働き方、手当等
- 選考の流れ、選考方法についての詳細
ここからは、弊社AIエンジニアによるプレゼンテーションの内容を詳細にお伝えいたします。
学校で取り組んでいたこと
在学中は分野が情報学群だったということもあって、一般的な情報分野を学習していました。卒業研究ではオープンデータの可視化に関連した分野をやっていました。この時点ではAIに全く触れておらず、将来AIの道に進もうとも考えていなかったです。学生時代はなぜかスプレッドシートを使うのが好きでした。卒業研究ではデータベースをスプレッドシートで、フロントエンドとしてなぜかGASを使って行っていました。Avinton Data Platformというソリューションが「卒業研究の延長線上、発展した分野だな」と感じたので、最初はData Platformの方向を考えてAvintonに入社しました。
内定後に取り組んでいたこと
内定〜入社までは会社が推奨しているLPIC-1というLinuxのベンダー資格取得のための勉強をしました。入社する前もAvinton Acadmyという当社独自の研修プログラムに取り掛かっていました。AvintonAcademyのコンテンツは多岐にわたっていて、その学習の中で初めてAIに関する分野に触れました。
入社後に取り組んでいたこと
入社後も引き続きAvinton Academyを約1カ月程行っていました。その後、社内サービスチームという自社ソリューションの開発チームに配属になりました。私が配属されたのは、画像処理や機械学習を専門に行うチームだったので、その内容に特化した勉強を始めました。Pythonのライブラリの中のOpenCVやNumpy等機械学習系のライブラリであるPyTorchやTensorFlow、更に機械学習の分野の画像分類、物体検出の領域の勉強を約1カ月くらい行っていました。この時には、先輩社員の仕事を参考に教えてもらいながら、勉強を進めていました。また、Dockerの勉強もして社内MLOps開発のためのkubernetes、 kubeflowという結構難しい分野の勉強もしていました。
入社後に参画してきたプロジェクトについて
現在のプロジェクト内容についてですが、関わっているのは大きく分けて3つです。
①AI Exchange
Avintonが提供する画像処理プラットフォームの開発です。入力した画像に対して特定の出力を返すというものになっていて、お客様がプラットフォームである画像を送ったら、ある処理をして返してくる。その処理を開発するといったようなものになります。
②社内 MLOps の環境開発
先程紹介したkubernetes, kubeflow等の開発です。
AI Exchange の開発にも利用します。
③License Plate reader
紹介にあったナンバープレートを認識させるAIの開発です。
一つずつ紹介していきます。
①AI Exchange
この画像はapple counter と呼ばれるモノで、リンゴの画像をAI Exchangeに入力するとリンゴを検出してバウンディングボックスという四角形で囲み、画像の中にリンゴが何個あるのかを瞬時に回答してくれます。例えば、農業で写真撮ったら収穫できるものが「どれで」「どこにあって」「何個あるのか」ということに活用されたりします。
こちらに使われている技術は「物体検出」と呼ばれるんですけれども、画像のどこに何があるのかを検出するような技術です。例えば、対象があるかないか、対象がいくつあるのかという検出に使われます。活用事例としては外観異常検知があります。例としてこちらの画像をご覧ください。
水槽の魚を検出しています。魚が元気がなくグダっとしていないかを調べられたり、数が減っていないか等確認することができます。
2つ目が自動運転です。
車載カメラや自動運転のメーカーが使っていたりします。上の写真のようなイメージです。人がいるかどうかを検出してます。これは車載カメラだけではなく、防犯カメラなどにも利用ができます。医療分野にも応用できます。例えば、一回CTスキャンをすると何千枚もの画像が生成されます。その画像を医師が全部確認することは大変なので、AIである程度分類したり、AIが診断をサポートする時に使われます。
次にOCRですが、簡単に言うとOCRは画像の文字を読み取ることです。パソコンなどでコピー&ペーストできるような文字データではなくて、画像内の文字です。そういった文字を読み取って結果を返すというシステムを開発しています。下記は僕が作った検証用の画像です。
左側の画像を入力したときに、右側の文字のようにどこに何があるのか返してくれるものです。その文字が合っているのか精度を見たり検証用として一次的に作ったものです。お客様から「とにかく画像に写っている文字を全部認識できるものを作って欲しい」と依頼いただき、「では、何を使う?」というところから始まっています。社内でオープンソースなものを使って試したり比較したり検証したりと行っています。
社内 MLOps の環境開発
MLOpsとは何か、GoogleとMicrosoftでは以下のように定義されています。
Google「DevOpsと同様に、MLOpsは、MLシステム開発(Dev)とMLシステム運用(Ops)を統合することを目的としたMLエンジニアリングの文化と実践です。DevOpsとは異なり、MLシステムは、継続的インテグレーションや継続的デリバリー(CI / CD)などのDevOps原則の核心にMLシステム特有の課題を提示します。」
Microsoft「Machine Learning 操作 (MLOps) は、ワークフローの効率を向上させる DevOps の原則と実践に基づいています。 たとえば、継続的インテグレーション、配信(注1)、デプロイです。 MLOps では、次のことを目標に、これらの原則を機械学習プロセスに適用します。
– モデルのより迅速な実験と開発
– 実稼働環境へのモデルのより迅速なデプロイ
– 品質保証」
こう聞くと難しいですよね。これをわかりやすくするためにAIを作る際の工程を簡単に説明します。データセットを用意したり加工したり、AIのトレーニングをしていく。出来上がったものをお客様が使用できるようにしないといけない(デプロイ)。このように、それぞれの工程があります。それを一連のものとして管理していく。AIにこだわらずですが、そういった枠組みが”DevOps”と呼ばれるもので、それにAI特有のものを組み合わせたのが”MLOps関係”です。図にすると下記のようになります。
DevOpsの考え方があってそれにマシンラーニングの特徴を組み合わせたものです。
Avinton社内の MLOps環境開発は、kubeflow pipelineを使用しています。
上の図のようにワークフローを管理していきます。ワークフローを管理する上でのポイントは複数のコンポーネントをワークフローとして繋ぎ合わせて管理することです。コンポーネントは箱です。箱一つ一つはそれぞれの仮想環境です。仮想環境を独立させることで再現性であったり再利用性、柔軟性、拡張性というのが担保される。そういったベースの考え方の基に、実装していく。特徴の一つとして「ひとつのコンポーネントにひとつのプロセスを適応」しています。多数のフローは組み込まず、フローを独立させてワークフローを管理しています。
License Plate Reader
画像を入力してナンバープレートの有無、ナンバープレートがあれば、ナンバープレートに何が書いてあるのかを読み取るようなものです。実際に開発したものが下記の図となります。
バスの画像を入力したら、水色の四角の中にナンバープレートがある。そして、”ナンバープレートの文字は何なのか”推論をかけて”推論のスコアを出す”という構成になっています。T1で見るとこの文字が「横浜」である信頼度は「0.85(85%)」となります。実際に検出して、その精度を高めていく業務を行っています。
駐車場で止まっている車は認識しやすいのですが、走っている車は認識しづらいです。そもそもナンバープレートがゆがんでいたり、カメラからの距離が遠い車のナンバープレートを読み取らないといけない場合もあります。ただ、今回の開発では「肉眼で見えるものは検出できるように」というアプローチなので、人が見て「ギリギリ数字が見える」なら検出しようと開発しました。
皆さんなら下の図を検出しようと考えたとき、どうやって検出しますか?
物体検出やOCRといった手法が考えられます。皆様の環境でも使用できるOCR機能で”Googleレンズ”というものがあります。上の図の左上のナンバープレートは、肉眼だとギリギリ「湘南」と読めますが、Googleレンズで実際に試してみると「テキストがありません」になって検出できないです。「では、どうやって検出するのか」を自分で考えて行っています。そういう風に考えながら開発していくことが面白いと感じています。上の画像の4つのナンバープレートの中の左下の画像は検出がかなり難しいです。ひらがなは「い」なのですが、肉眼でも難しいレベルです。その上の地域名も肉眼だとかなり読みにくいですが、僕が開発したOCRだと「横浜」と認識できています。ブレブレの画像ですが「500」も検出できています。最初はもちろんできなかったのですが、開発していく中でできるようになりました。
AIエンジニアを目指す上で学習すべき技術領域について
私はAIエンジニアをしているので、その観点からAIエンジニアをするうえで学習しておくとプラスになる技術領域についてお話しします。
AIエンジニア向けという観点では、「Linux」と「仮想化」さらに「GPUの扱い方」をセットで勉強するのがおすすめです。大規模で複雑な開発の場合、いくらかのリソースをチームで共有して使うことが想定され、その際に仮想化が用いられます。また、AIモデルのトレーニングには膨大な処理の計算が伴うため、より高速化するのに一般的にGPUが使われます。僕個人としてはMLOpsに通ずるようなAIモデルのワークフロー開発を担ってきた経験から、これらが特に求められてきたなと感じています。
次にGitHubやGitの扱いを理解することが重要だと考えています。AIエンジニア関係なく、ほとんどのエンジニアが使用しているのではないでしょうか。Avinton社内開発チームではGitlabを使用しています。扱いに慣れておいた方が業務で使用するときに、楽になるのではないかと思います。
次にマイクロサービスの学習をお勧めします。企業や会社によりますが、個人的なお勧めです。マイクロサービスという考え方が普及してきていて、やはり当社でも取り入れています。また、マイクロサービスを利用する場合にはLinuxや仮想環境が使われることが多いです。そのため、Linuxや仮想化を学ぶと同時にマイクロサービスもセットで勉強すると良いと思います。
他には「Google Colaboratory」「Jupyter Notebook」もお勧めです。検証するときに便利なツールです。Google Colaboratoryは、Pythonが簡単に実行できるような環境をGoogleが提供しています。GPUも簡単に使うことができます。制限はありますが、簡単に「これ試したい」というときに使ったりします。
Avintonに入って良かったこと
新卒で初めて入社した会社として言うと、「技術のレベルが高い」「比較的早く責任の伴う業務が行える」ことが良かったです。ナンバープレートのプロジェクトがまさにそうなのですが、こういった重要な仕事を入社してから8カ月、入社1年目の社員に任せてもらえる。ある意味、「信頼してくれたからアサインしてくれた」という段階への移行が早いと思います。大手企業だともしかしたらまだ研修を行っているかもしれないと思います。個人的な社風の評価ですが、実力主義ではなく「実力優遇な環境」だと感じています。入社8カ月で1人のプロジェクトにアサインされたのも、実力主義ではなくて優遇してくれた、信頼してくれたことが大きいと思います。意欲がある人ほど伸びやすい環境です。何か言われてからやるのではなくて、自分で調べてチームに貢献していくと評価してくださっていると感じています。文化で見ると、日本の古い会社体質のようないわゆる社交辞令、目上の人に対する堅苦しい礼儀作法はあまり感じません。また、理念にも通ずるのですが、会社は教育に積極的で若いエンジニアが多いです。そのため、若いエンジニアを採用して育てていく風習があります。さらに、副産物的に英語スキルが上がりました。入社した当初は英語が苦手で、あまり話したくないと言っていましたが、リードエンジニアとコミュニケーションを取ることがあるので、ある程度身につきました。
ここからは、学生の方々からのQ&Aの様子をお伝えいたします。
生徒A:これまでの紹介の中にいろんな言語等が出てきましたが、知っているものが数個しかありませんでした。これらの言語は、研修期間中に全て覚えられたのですか?
エンジニア:僕の場合は、研修期間と実務で覚えました。実務を行う中で覚えています。いきなり「これやって」「これ作って」と指示されることはあまりないですが、仮になったとしても実務で先輩がしている仕事を見ながら、教わりながらなので「研修で100%できます」という言語や技術はほとんどないです。
生徒B:現在は学生でのびのびとプログラミングの勉強をしています。社会人になって働きながらの勉強になると調べながら身に付けていく習得方法になるのでしょうか。
エンジニア:基本的にはそうなります。むしろ、その方が伸びやすいです。教えてもらった範囲だけ勉強することもできますが、自分で調べたほうがさらに発展させやすいと考えています。
生徒C:Linuxって実際にどうやって使っていますか?
エンジニア:よく分からない方のために説明するとLinuxはOSです。WindowsやMacと一緒で人がパソコンに命令するときのベースとなるOSです。基本的に、Linuxは仮想化とセットです。先程ご紹介した「社内 MLOps の環境開発」でも使用しています。DockerでLinuxのOSの仮想環境を立てて運用しています。コンポーネントの中で行われる処理はLinuxがベースになっています。Google ColaboratoryもPython以外のコマンドが実行でき、コマンドもLinuxの知識があれば問題ありません。Windowsで行うこともあるのですが、Linuxで行うことで仮想化が便利になり幅が広がります。
生徒D:世の中の技術が「まだ発展していない」と思うことはありますか。私は人の顔を識別したゲームをしたことがあり、うまく識別できず技術の発展が遅いと感じることがありました。
エンジニア:AIは特化型が多いと思っています。何かに特化させないと高い精度が出せない。汎用的なAIは現状ないと思います。GoogleレンズもOCRに特化したAIですが、僕が開発したナンバープレートのOCRはナンバープレートに特化しているからGoogleレンズにできないこともできます。そこの住み分けだと考えています。技術が足りないかどうかというよりかは「その分野を幅広く行っているのか」「一つに焦点当てている技術なのか」を注目してもらえると考え方も変わってくると思います。技術が足りてないために何でも使えるAIがないというのはその通りです。
生徒E:日常会話で英語を使いますか?それとも実務で英語を使っていますか?
エンジニア:どちらもです。リードエンジニアが絡むところは全部英語です。テキストは基本的に英語でのやり取りになります。また、最先端技術に関する資料は基本的に英語になります。英語のドキュメントを読んで開発していくことが多いので英語をやっておいた方が得ではあります。日本語のドキュメントがないからできませんでしたとなるよりはいいと思います。
生徒F:並行してプロジェクトを行うことはありますか?
エンジニア:並行して行っています。同じ熱量で行うのは難しいので、ナンバープレートにアサインされた当初はナンバープレートをメインに業務していました。他のプロジェクトはチームメンバーが肩代わり可能な範囲で積極的に代わってもらいました。そういった環境作りをチームがしてくれました。ナンバープレートのプロジェクトがトレーニングに時間がかかるフェーズになってきたので、空いている時間に他の業務を行ったり、他チームに情報共有したりしています。時期によって業務のメインは異なりますが、並行して行っています。
終わりに
たくさんのご質問を頂戴し予定よりも20分程長いプレゼンテーションとなりました。業務の詳細や業務を行う姿勢等様々な内容に触れて、会社に勤めたことがない学生でもエンジニアとして働くことはどんなことなのか概要を掴んでもらえたのではないかと思います。終了後も、多くの学生の方々がその場に残り、個々にご質問してくださいました。
中瀬、エンジニア、採用担当には勿論のこと、内定者の先輩にも質問が多く飛び交っていたのが印象的でした。
積極的に就職活動を考えられていて、AIに深い興味があり姿勢も素晴らしいと感じました!
IT業界、エンジニアという職種について今回参加してくださった皆様の理解が深まり、どんなことをしていきたいのか、どういったことがAIでできるのか等今後のキャリアの参考になれば嬉しいです。
その中でも、弊社Avintonジャパンを志望してくださり、共に働くことができれば更に喜ばしい限りです!!
現在、本格的に始まってきた24新卒の選考を進めておりますので、気になる方がいらっしゃれば、是非カジュアル面談からでも選考からでもフォームから応募してみてください!
皆様のご応募お待ちしております。
▼簡易エントリーフォーム
https://avinton.com/jobs/graduates-apply/
就職先を決めることは人生にとっても大きなイベントの1つ、私たちは相互理解が大切だと考えておりますので、選考関係なくオンラインカジュアル面談を歓迎しています。ご希望の方はまずは下記簡易エントリーフォームをご登録ください。2営業日(土日祝日以外の平日)以内に人事担当者よりメールにてご案内します。
当社のエンジニアキャリアの考え方や具体的な入社後のイメージをもっと知りたいという方はこちらの採用ピッチ資料をお目通しください。
▼採用ピッチ資料
https://www.avinton.com/careers/
▼学校関係者の方へ
キャリアデザイン講義、IT・AI業界研究等の授業や登壇をご希望の際には、下記フォームよりご連絡ください。
https://avinton.com/academy-on-campus/