株式会社grasys
代表取締役
長谷川 祐介さん
20代でさまざまなシステム開発経験を積み、特にソーシャルゲームのシステム設計・運用を数多く手がける。2014年にgrasysを起業。「攻めのインフラ構築」をテーマに掲げ、製造業からIT企業まで多くのクライアントを抱える
【PR】 ITニュース
クラウドファーストやクラウドネイティブといった考えが広く浸透した現在、クラウドエンジニアの需要は右肩上がりで伸びている。
クラウドの膨大な計算リソースを活用したAI技術なども注目を集めており、こうした技術を使いこなしてエンジニアとしての強みを武器にしたいと考えるエンジニアは多くいるだろう。
そんな中、Google Cloud プレミア Sell パートナーとしてクラウド活用を支援している株式会社 grasysの代表・長谷川 祐介さんは「AIやクラウドにチャレンジしたいなら、コンピューターの基礎知識からしっかりと学ぶことが重要」と考えている。
その言葉の真意とは一体。
AIやクラウドにチャレンジするエンジニアが、挫折せずにキャリアを描き続けるために必要なことを伺った。
株式会社grasys
代表取締役
長谷川 祐介さん
20代でさまざまなシステム開発経験を積み、特にソーシャルゲームのシステム設計・運用を数多く手がける。2014年にgrasysを起業。「攻めのインフラ構築」をテーマに掲げ、製造業からIT企業まで多くのクライアントを抱える
ChatGPTの出現により、多くの人がAIの可能性に気づきはじめた今、AIを駆使できるインフラエンジニアの需要は高まり続けていくと予想される。クラウド上で大量のデータを学習させて、リアルタイムで複雑な処理を行う「Edge AI」の登場も、需要の増加を後押ししている。
「最近はAIに関する業務を志望するエンジニアが増えてきましたが、AI=ChatGPTだと思っている方も見かけるように、AIという言葉だけが先行している印象がありますね。
AIの関連サービスは、AWSにもMicrosoft Azureにもあります。Google Cloudだったら『Vertex AI』などが有名ですよね。最近はWindowsやmacOS向けのインストーラーが豊富にあるので、それらを駆使すれば自分の使っているWindowsやmacOSでシステムを動かせます。なんとなくであれば、それなりに動いちゃうんですよ(笑)
ただ、実際にLinuxを駆使して環境構築しながら機械学習ライブラリをビルドした経験がある方なら分かると思うのですが、これってもの凄く骨が折れる作業なんですね。
Linuxの基礎からミドルウェアやライブラリといった環境周り、C言語の基礎的な知識が必要ですし、更にPythonの知識も必要になります。またPythonには環境構成にいくつかの方法がありますが、それらにも明るい必要があります」
クラウドサービスでのAI活用と、実直に自前の環境を構成し整えて実行することには、想像以上にレベルの差がある。その上で、AIを活用するためには、広範囲にわたるコンピューターの基礎知識を根底から理解することも欠かせない。
「AIに関係するプラットフォームには、学びに役立つ『Kaggle』や計算モデルの試用もできる『Hugging Face』があります。ただ、どれもとても広く『テキストデータをベクトル化しましょう』みたいな話の場合でも、『じゃあまず何から使います?』みたいなところから始まっちゃって、もう大冒険ですよ。
どうやって活用するかを考える以前に、どれを活用するべきかから考えなければならない。これは安易に太刀打ちできる代物ではないなと思います。
例えばIntelマシンだと比較的パワーがあるので、コンパイルもそこそこの速度を出せるんですが、エッジで使うコンピューターはCPUにARMアーキテクチャを採用している。なので『これまたTensorflowをインストールするのにとんでもない時間がかかるな』っていう(笑)」
クライアントからの要求もあり、AI技術の需要は増えつつある。しかし、いざ実務として新規・既存システムにAI技術を活用することや組み込むことは、かなりの前提知識が必要になる。
キャリアのスタート地点に立ったばかりのエンジニアが、生半可な気持ちでAIに手を出し、実際の現場で大きな壁にぶつかるのもうなずける。
軽い気持ちで手を出すと痛い目を見るとはいえ、AI活用はもはや避けては通れない道であるのも事実。日進月歩で進むAI技術に踏み込まざるを得ないタイミングがきたら一体どこから始めるのがベストなのだろうか。
長谷川さんは「まずはコンピューターの基礎知識を得ることが重要です」と断言する。
「AIの技術に興味を持ち習得することは、エンジニアのキャリアとしては重要な要素になると思います。ただその前に、まずはLinuxやコンピューターの基礎スキルをしっかり身につけることが大切です。
クラウド環境ではインフラ構築などの業務がプロビジョニングツールなどで自動化される傾向にあるのですが、この自動化の仕組みを実装するためにはプログラミング言語の基礎知識が欠かせません。今であれば、Pythonを学ばないとこの先苦しむと思います。
その上で、各種ライブラリを整えられる程度のC言語を駆使するスキルも身に付けられれば、より良いと考えています。これらの知識を駆使して経験を積んでいけば、自分なりにAIに関する周辺の技術をだんだん理解できるようになると思います」
何事も、まずは基礎となる原理や原則を理解することが肝心。そして、それらをキャッチアップしやすくするために「コンピューターを使って『作る経験』をする」ことを長谷川さんは勧める。
「クラウドやオープンソースの普及などでエンジニアの世界は仮想化されました。そんな時代だからこそ、あえて手元のコンピューターにLinuxをインストールするのも良いと思います。最近エンジニアになったという人の中には、Linuxのインストーラーも見たことない人が結構いるのではないでしょうか。
実際に、手元で動くマシンを使ってシステムを作り動かしてみると、コンピューターの世界観が具体的につかめるはずです。何か新しい技術に手を付けようとしたときにも、過去の経験を転用することで理解をスムーズに進められます。
今の業務環境がオンプレミスで、パブリッククラウドの経験が欲しいという方もたくさんいらっしゃいます。ただ個人的に思うのですが、パブリッククラウドは動くように作られているので、動かすこと自体はとても簡単です。そんなことより、Linuxを触ることの方がよっぽど難しいです」と長谷川さんは話す。
「オープンソースを組み合わせて、スクラッチで何かの動くシステムを作ってみる。必ずしも必要なことではないかもしれませんが、やってみると案外コンピューターの使い方が分かりますし、面白さも感じられますよ」
また、コンピューターの基礎をキャッチアップする上で気を付けなければならないのが、ChatGPTをはじめとする生成AIだ。
「エンジニアの学びの最初の一段目や二段目の段階であれば、ChatGPTで十分に対応が可能だと感じています。プロンプトを入力すればすぐに答えが出力されますし、これは中堅以上のエンジニアが活用すれば大きな力になると考えています。
ただ、経験を十分に積んでいない人の場合はそうとは限りません。一段目や二段目の知識をしっかり理解できていないままでいると、その次の段階を実現するためのプロンプトをChatGPTに投げられなくなり、その回答を適用することも難しくなります。
例えば、ミドルウェアのコンフィグを作ろうとした場合、簡単なセクションだけであれば、ChatGPTに聞けば作れます。ですが、そのコンフィグの複雑さが増した段階で徐々にChatGPTとのやり取りがうまくできなくなると思います。
当たり前ですが、そのミドルウェアの基本を知らないと、専門性の高い領域に入っていくにつれ、求める動作を実現するための必要なプロンプトを作れなくなります。だからこそ、時間をかけることを惜しまず、基礎知識をしっかりと習得することが重要だと感じる局面が、最近多くなりました」
では基礎固めが必要な若手エンジニアは、生成AIとどのように付き合えばよいのだろうか。
「例えば、Pythonで表計算などができるpandas(パンダス)と呼ばれるデータ解析ライブラリがあります。このオフィシャルドキュメントはとても大きいので読み解くのが大変なんですよね。自分は職業的にプログラマーというわけではないのと、やりたいことが明確なのでさっと教えて欲しい(笑)。でも、ChatGPTを使えば、欲しい答えがすぐに出力される。だからついみんな使っちゃうわけですが、若手エンジニアは気を付けた方がいい。
Pythonを知っている人が活用する分には問題ありませんが、自力で読み解いた経験があるのとないのとでは、エンジニアとしての力量に差が生まれます。
まだ詳しく理解していないのであれば、まずはPythonの言語体系や基本を理解する作業を面倒くさがらないようにした方が良い。それは必ず、自身の将来的な成長に差を発生させます」
トレンドに飛びつくのは良いことだが、頼りすぎるのはリスクが高い。そう言われると及び腰になってしまう若手エンジニアは多いだろう。ただ、「新しい技術にいち早く飛びついてしまう性分や好奇心はエンジニアにとって最も重要」と長谷川さんは付け加える。
「そもそも技術のアンテナが敏感でなければキャッチアップができませんし、やるからには楽しい方が良いですよね」
長谷川さん自身も、インターネット黎明期に手探りでさまざまな技術に触れながら、エンジニアとしての原体験をつくった経験がある。
「これからエンジニアの経験を積む人は、もっとコンピューターで遊んだ方が良いと思います。仕事でしかコンピューターを触らないのは楽しくない。マインクラフトのようなローカルにサーバーを立てられるゲームもあるので、中身を見てみたりする。自分で解き明かしていくことで、コンピューターの楽しさを感じられるはずです。SteamなどのゲームでMODを作るなどしても楽しいのではないでしょうか。
そして、この解き明かす過程こそ、学びの過程で重要なエッセンスです。プログラミング言語でもAIでも何でもいいのですが、いざ新しい知識を習得する必要が出てきた時に大いに役立ちます。遊びの幅を広げると、知識が膨らみやすい。その過程で行うトライ&エラーこそがエンジニアが学ぶために必要で、エンジニアの下地となるものです」
技術への好奇心を大切にする一方、「エンジニアはコミュニケーション能力を磨くことも忘れてはならない」と、長谷川さんは念を押す。
「専門的な技術一本で生きていくと考えている人こそ、他者への説明力を積んでおくべきです。ベテランになった時に、コミュニケーションスキルがないと道が閉ざされます。
例えば、ある分野のスペシャリストとして仕事を請け負ったとします。クライアントは別の分野の専門家です。そこではクライアントに、技術的な要素を分かりやすく伝えなければいけません。
このとき、いくら実現や改善できる技術を持っていたとしても、適切なコミュニケーション能力がなければ何の意味も持ちません。管理系の業務を避ける傾向があると聞きますが、リーダーや管理職の経験を積める機会があれば、積極的に手を上げた方がいいと思います。ずっとそのチャンスが巡ってくるとは限りません」
知識と経験とコミュニケーション、昔から重視されてきたこれらの要素は、AI時代でも変わらず求められるスキルだ。最後に、これからエンジニアのキャリアを築く人に向けてアドバイスを送ってくれた。
「エンジニアは大きな失敗をしないために、小さい失敗をたくさん重ねることが仕事だと考えています。トライ&エラーですね。その失敗は一見すると無駄なように思えますが、その無駄を許容し、たくさんの寄り道を経験するのがおすすめです。
現代は選択肢の多い時代ですが、あれこれ悩みすぎるのではなく、まずは自分にできることから手をつければいいんです。今はもう、誰もがコンピューターを操作できる時代です。後は無限の好奇心で楽しく技術を遊びながら学ぶだけ。その体験は、きっと仕事でも活きるはずです」
>>>株式会社grasysの中途採用情報はこちらから
取材・文/中たんぺい 写真/桑原美樹 編集/今中康達(編集部)
NEW!
NEW!
タグ