授業だけマン・研究で機械学習やってるマン・インフラ型・DB特化型…それぞれの学習パス

菱沼雄太氏(以下、菱沼):データエンジニアの学習パス。必要スキルもSQLとPythonだとみなさんわかったところで、エンジニアの学習パスをちょっと話そうかなと思います。

例えばデータエンジニアの学習パスはこんな感じのがよくあるパターンかなと思っています。Startが左上にあって、SQLの基礎とか、一段目にPythonの基礎とか、Linuxサーバーとか触ってみたり、開発環境とかね。VSCodeを使ってみようとか、Gitを使ってみようみたいなところが最初のあとにあるのかな。

これらを全部やって大学を卒業する人は、基本的にはいないと思います。日本の大学でこういうカリキュラムを持っているところがぜんぜんないんですよ。ないので。データのテック系スタックなんて研究と関係ないしな。

データエンジニアの学生の学習パス。授業だけやっておけば、このぐらいはカバーできるのかなと思います。まぁ、SQLをやらない人もいるかもしれないけれど、情報系の人たちだとSQLまではやるのかなと思います。例えば基本情報やっているとかね、そういうのとかでだいたい学ぶのかなと思います。

やはり研究室でデータサイエンスをやっている人だと、(スライドを示して)この緑のラインが強くて、数理や統計というところまでしっかり修めるために機械学習をやっていると思います。就職する時には非常に有利なんじゃないかなと思います。ただ、これには問題が1個あって、けっこうこの領域には人がいるんですよ。このタイプの人が市場にけっこういるというのが、みなさんの弱みだと思ってくださいね。

インフラ型のスタックで言うと、こんな感じなんですよね。サーバーを作って、クラウドを触ってみて、コンテナ技術も勉強して、分散コンピューティングのKubernetes。「k8s」って書いてあるこれ。クバネテス、クーベルネティス、ギリシャだから発音わからないんだけど、Kubernetesというクラスタ、分散コンピューティング基盤があるんだけど、そういうのを学んだり。あとはSparkと呼ばれる分散コンピューティング。まぁ鉄板だね。このあたりを勉強しておくと、でかいデータが捌けるようになってくるんだよね。

あとは、DB型。DBに特化してる人ね、学生いねえわ。まったくいねえ。実は僕、大学に行ってなくて専門学校の卒業生です。当時の専門学校でこれに近いところまで記憶あるんだけど、最近の学習カリキュラムを見てもDBをやっているようにぜんぜん見えないんだよね。

とにかく、DBに特化する人がなかなかいなくて、ツチノコ並みの発生率なんだなと思っていて。だから、けっこうすごいのかなと思っていたりする。

例えば、機械学習が得意な人がインフラをやったりDBに強くなったりすると、すごい価値が出るんだよね。

(コメントを見て)あ、CRUDね。CRUDはね、CreateとReadと、Updateと、Deleteみたいな。Destroyでもいいけど。要するに、データを作って、参照して、更新して、消すことをCRUDって言います。データベースの操作をCRUDで表現することがあるんですね。

ここらへんまでだいたい修めると、Data OpsとかML Opsみたいな領域にけっこうたどり着きやすくなるというか、いわゆるビジネスに近くなってくる感じですね。

ただ、データエンジニアは、ここからさらにビジネス的な理解みたいな、どういうデータが現実に必要なのかとか学ぶこともけっこういっぱい出てくるかなと思います。いやー、学ぶのは楽しいよなぁ。

では、あらためて「技育CAMPアカデミア」をよろしくお願いします。

データエンジニアと自然言語処理のサマーインターンを準備中

あと、ちゅらデータは、サマーインターンを一応準備中です。データエンジニアのサマーインターンは去年もやったんだけど、それをやりつつ、NLP、自然言語処理のサマーインターンも実は準備しています。

実は先週の月曜日ぐらいから「NLP学会」があったのを知っていますか? なんと開催地が沖縄だったんですよ。我々がローカルのオーガナイザーということで、なにげにちゅらデータがいろんなところを駆け回ってNLP学会の運営のお手伝いをしました。

やっぱり学会ってすごいね。体力オバケばっかり生き残ってるからさ、サバイバルすぎるわと思ったんだけど。みんなバカみたいな体力で、ひたすら飲んでるっていう。昼間は学会でゴリゴリアカデミックなことをして、夜はひたすら飲んで肝臓バトルをするみたいなね。そういうのをやりながら1週間過ごしたので、実は今日ちゅらデータ(のメンバーが)少ないのはNLP学会班が倒れているからです(笑)。

でもね、そういうのもあってわりとうちはNLPが大好きで、NLPのやつもやりまーすって感じですね。

そんなところで、後半に近づいてまいりました。「ちゅらデータ新卒エンジニア採用」ということで、こういうTwitterアカウントがあるので、ぜひフォローしてください。

SQLインジェクションは簡単なのか?

こんなところでコンテンツが終わりまして、なんとあと10分ぐらいはみんなとおしゃべりする時間にしたいと思います。ちょうどいいタイミングかなと思います。ワイワイタイムということでいろいろな質問を受け付けようと思います。

(質問を見て)ボイチェンは何を使っているかというと、実はハードウェアボイチェンの「VT-4」というRolandの機材を使っております。

ボイチェンのVT-4をMacにUSBで入れて、入れたUSBの音声をLogic ProというMacのソフトで組んでいます。ある程度ノイズを落としているんだけど、Zoomと組み合わせたりする時に、もう少し改善の余地があるなって感じです。

(質問を見て)「SQLインジェクションって簡単?」。何も対策していない、SQLインジェクションができるアプリケーションはめっちゃ簡単にできちゃうかな。もともと金融系でセキュリティコンサルもやっていたんだけど、そういうところだとやっぱり話題になりますね。

クレイジーな人がいつか世界を変える

(質問を見て)「なぜクレイジーさを重視するんですか?」。ああ、いいですね。けっこう勘違いされがちで「ちゅらデータはクレイジーな仲間を求めています」みたいな空気になっていたり、実際そういうふうに言ってはいるんだけど、あれはもうちょっと深くてですね。やっぱりさ、出る杭みたいな人っているじゃん。そして出る杭を叩く社会ってあるじゃん。そういうのがね、ちゅらデータはムカついている。ちゅらデータ社員だけじゃなくて、たぶんけっこうな人がムカついていると思うんですけど、「出る杭叩くのやめろよ」みたいなのがあって。

なので、クレイジーな人とお仕事をしても嫌じゃない人も含めて募集しているし。でも、そもそもクレイジーな人は止めてもやっちゃうから、止めてもやっちゃう系の人を重視しています。

実際そういう人が世界をいつか変えてくれると思っています。イーロン・マスクさんみたいなさ。あの人ってすごく乱暴だし、たぶん周りにいる人はやっぱりすごくつらい思いもすると思うんだけど、世界を変えていると思っています。僕は、世界を変えて良くしていこうということが結果的に手に入るんだったら、そういう人と一緒に仕事をしたいなって思っているんです。

機械学習の勉強におすすめの本

(質問を見て)「ちゅらデータのインターンはいつですか?」。ちゅらデータのインターンは夏ぐらいを予定しています。なるべくほかの会社のインターンとかぶらないようにしたいんだけど、だいたい夏休みにやる予定です。ちなみに内定が出た人は、わりと気軽にアルバイトとして先行して会社入ってワイワイできます。例えばうちの持ってるやつだと、文章校正AIの「ちゅらいと」とかの開発に携わってくれたりするかな。

(質問を見て)「機械学習を勉強する時は何がいいでしょう?」。これめっちゃいっぱいあるからね。これは僕がここでしゃべらないほうがいい気がするな。機械学習の勉強は大学の先生に聞いたほうがいいと思います。

なんでかというと、実は僕、「データサイエンスをやりたい」で入ったんだけど、データエンジニアリングばかりしていて、そんなに機械学習に強くないんだよね。だから、個人的にプログラマーとしてやるレベルだったら、Pythonでゼロから作る機械学習のやつがあると思うので、あのO'Reillyのあの本を読んでもらえればいいと思います。シリーズ4冊ぐらいまで出てるはずです。

分散コンピューティングもよく学んでおくといい

(質問を見て)「機械学習の次に勉強したほうがいい領域は何でしょうか?」。今回ChatGPTが出てきて、GPT-4の超膨大なパラメーターとかを捌くことになったと思うんです。1台のマシンではやっぱり捌けないので、分散コンピューティングみたいなところまでいかないと、いきなり詰まるんですよ。なので、機械学習をやっていくんだったら、大規模データに対応するために分散コンピューティングもよく学んでおくといいと思います。

(質問を見て)「バ美肉ってムズいの?」。 うーん、Live2Dのモデル、実はね、知り合いの漫画家に書いてもらっているんですよ。このモデルのLive2Dのモデリング自体も友人たちに作ってもらっています。なので、ムズいか? というと、ものがあればなんとかなると思います。ただ、うまく動かしてかわいくするのはやっぱり難しい。

ちなみに首を振るとかわいくない、これ? 髪の毛ふわふわするね、これ。ふわふわ。かわいいでしょ?

(質問を見て)「みんな業務時間内に勉強してる?」。業務時間だから勉強する・しないっていう概念がちゅらデータにはあまりなくて、目の前のものを倒すために最新の論文を読まないといけなかったりする。勉強と業務が一致しているはいるけれど、業務時間を外れたらみんな好きなことをしているかな。

例えばね、真嘉比社長(真嘉比愛氏)が忙しすぎるから、「真嘉比社長の忙しメーター」というデバイスを作るために、CADで図面設計して中国の工場に発注している人もいるので、そういう意味だとけっこう自由にやっている。勉強時間は業務内でもいいよ。

(質問を見て)「やっぱりわからないものは調べまくりますか?」。はい、調べまくります。オープンソースだったら、コードを実際に読みにいくところまでやったほうがいいね。GitHubとかでオープンソース公開されてるじゃん。ググって済ますのは浅くて、やっぱり最適解が出ない。実際にどういう挙動するんだろうとかは、コード読むところまでいったほうがいいですね。

(質問を見て)「どうやって勉強してきたんでしょうか?」。必要とされるものに対してがっつり取り組んでいく感じで勉強してきたね。僕は、市場のニーズに対して勉強することのほうが人生で多かったなぁ。でも、ちゅらデータの社員はどちらかというと、自分が興味の湧いたものをただただ勉強しているというより、自然に学んでいる人が多いですね。

「新しい人類を見たい」がコンピューターに興味を持ったきっかけ

(質問を見て)「コンピューターに興味を持ったきっかけは何ですか?」。あ、難しいねぇ。難しいなぁ(笑)。僕ね、本当は人類学みたいなことをやりたかったんだけど、ある時ふと「やっぱり新しい人類を見たいな」と思ったんだよね。若い頃、「新しい人類ってAIみたいなところから生まれるだろうな」って漠然と思っていて。

だから、この業界で大量のデータを捌いたり、すごいハイトラフィックなものを捌いたり、リアルタイムにしたり、そういう技術領域にずっとチャレンジしている理由は、次の人類を作るため。我々旧人類が滅びた時に次の世代にバトンタッチするために僕たちはがんばっているし、責任があると思っています。

(質問を見て)「データ領域の仕事は5年後にどう変化しているか、お考えを聞かせてください」。えー、わかんない。これはね、わかんない。今週もすごかったじゃん、AI系の変化。この技育祭のイベントに登壇してくれている有名な人たちも全員ChatGPTを使っていたでしょう?

そういうですね、出てきたものに対して柔軟に適合していく、市場適合をすることが重要なのであって、未来を予測してそこに計画を立てて走っていくというのはあまり重要じゃないから、5年後どうなっているかはわからない。現時点でデータエンジニアの職はAIの元データになるからさ、重要じゃん。だからなかなか消えないと思うよ。って今は言いたいところですかね。

(質問を見て)「データエンジニアリングでどういうことが実現できるでしょうか?」。社会インフラとか、はデータを基に意思決定しないともう勝てないから、データエンジニアリング自体は、そういう社会的なインパクトの裏側を支えているインフラ系のものになってくるのかな。

(質問を見て)「何の言語が好きですか?」。僕は実はもともとPHPerで、PHPをずっと書いてたから、今でもPHPが好き。若い頃はRubyやJavaが大好きだったね。今はどうかな。今はSQLが一番好きかな。

(質問を見て)「どうやって勉強するのがいいですか?」。初めて入る領域だったら、入門の本だね。入門を2、3冊、立ち読みでもいいから読みなよ。僕は学生の頃、お金がなくて、ジュンク堂にこもって毎日、入門本バーって読み漁っていたな。そんな時期もありました。社会人になってからは山のように本を買うようになったけれど、お金がないんだったら、図書館でも、本屋でもとにかく知識を本から得るのが一番高速道路に近いかな。

とはいえ、僕がいるような領域は最新のものが本になっていなくて、逆に自分が本を書くことになるから、体系化していくことが必要になるかな。僕のTwitterアカウントが執筆モードになっているのはそういう理由かな。

(質問を見て)「ChatGPTをどう思いますか?」。僕は大好きです。全社員に福利厚生として配りたいと思っているぐらいです。

優秀なデータエンジニアの条件は時間とパワーとお金を支配する

(質問を見て)「優秀なデータエンジニアの条件を教えてください」。ええとね、すごく極端だけど、今はクラウドでいくらでもコンピューティングリソースが手に入る時代になっちゃったから、優秀なデータエンジニアというのは、コストコントロールが結局できる人なんですよ。

無限にリソースを使えばだいたい問題って解決できるようになった。だけど、それを最適に使う、コストをコントロールする、コストを支配する、時間とパワーとお金を支配するのが優秀なデータエンジニアであると言われていますね。

(質問を見て)「AWSとGCP、学ぶならどっち?」。世界的なシェアだけで言うと、AWSのほうがあるけれど、データ界隈に関してはBigQueryがいるから、GCPを使う人もやっぱり多いな。「どっちもやっとけ」というのが個人的な思いです。入門本はAWSのほうが多いですね。

(質問を見て)「高校生は何を勉強すればいいですか?」。まず、Pythonでいろんなもの作ってごらんよ。コードをひたすら書くことが重要だと思います。

(コメントを見て)「O'Reillyのゼロから作るシリーズは名著」。おっしゃるとおり。

(質問を見て)「OSコマンドインジェクションを防ぐ方法を実現できるようにするにはどうすればよろしいでしょうか?」。これは難しいね。いったん「徳丸本」をひたすら読んだあとに、いろいろセキュリティトピックを考えてみるのが大事だと思います。

(質問を見て)「『データサイエンティストはビジネスの知識が必要』とよく聞くけれど、ビジネスの何が必要なんですか?」。ビジネスモデル、クライアントの業務内容、どちらもですね、業務知識というのは実際、ITエンジニアの必須技能の1つなので、このあたりは社会に出てから正直時間かけて学んでいくしかないね。

司会者:はーい。ちょうど終了のお時間です。

菱沼:思った以上に質問が来ちゃいました。Twitterをフォローしてくれて質問してくれたら、答えられるよ(笑)。

司会者:それでは菱沼さん、貴重なお話ありがとうございました。

菱沼: ありがとうございました。失礼いたします。