Developers Summit福岡会場参加レポ

2018/9/6(木)に福岡で開催された[Developers Summit](https://event.shoeisha.jp/devsumi/20180906)(以下，デブサミ)に参加してきたので，それのまとめです
自分が参加したプログラムをツイッターで呟いたものを基にレポートしてます

# 最新AI技術「NAS（Neural Architecture Search）」を紐解く～ Google Cloud AutoMLの裏側を見ていく ～（仮）
この講演開始前にデブサミ開催宣言をツイートしてたら，まさかの登壇者からいいねされてやる気が限界点突破してました
最初はAIの最近の情勢についてでした
スーパー掻い摘むと

* AI学校と呼ばれる，AIについて学べるサービスが有る(知らなかった)
    * ちょっとググったら，結構あった(私・・・取り残される・・・)
    * やはりPythonだった
* ここ数年のAI技術のトレンドは**ディープラーニング**，一強の世界でした
    * CNN(Convolutional Neural Network)
    * RNN(Recurrent Neural Network)
    * AE(Auto Encoder)
* 最新のAI技術
    * カプセルネットワーク
    * 転移学習
    * QRNN

## Google Cloud AutoMLとは?
[公式サイト](https://cloud.google.com/automl//)はこちら
Googleが提供するAutoML
手軽に独自モデルを構築してくれるらしい・・・
詳細は[公式ブログ](https://cloud-ja.googleblog.com/2018/01/cloud-automl-making-ai-accessible-every-business.html)
とりあえず触りたい・・・と思ったら以下のサービスが提供されてます

* Cloud AutoML Vision(α版，画像認識，米Disneyは採用してオンラインショップで利用中)
* Cloud AutoML Natural Language(β版，自然言語解析)
* Cloud AutoML Translation(β版，翻訳)

AutoML Visionをフォーカスして，どれだけAutoMLが手軽にモデル構築できるかというと，

1. 訓練画像アップロード
2. ラベルと関連付け
3. TRAIN押下
4. モデルが構築されて評価も行われる

というまさかの**ノーコーディング**です(↓はその様子)

<iframe width="560" height="315" src="https://www.youtube.com/embed/GbLQE2C181U" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

できたモデルはPREDICTボタンでテストができ，REST API呼出で利用もできます
ｱﾗﾔﾀﾞｲｹﾒﾝ

## AutoMLの裏側
「転移学習」と「NAS(Neural Architecture Search)」で構築

### Neural Architecture Searchとは?
実際に学習するメインと，それの学習を支援するサブが有り，メインが学習した結果をサブに渡してサブはその学習内容がいいのか悪いのかをメインに教える構造のこと
多分，こんな感じです

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56006/f10d8b6e-937b-551c-305d-6185ab8bdd3c.png)

サブがメインの学習を支援するので，人手無くして最適化モデルが獲得できる←やばい(語彙力)

## NASすごくない??
って思いますが，実は計算コストが高いのが欠点・・・
800個のGPUを使っても21～28日も実行時間がかかるという致命的な致命傷ですw
NAS終わったりかと思えば，新しい手法ENASが登場しました[ソース公開中](https://github.com/melodyguan/enas)
どれくらい改善されたかというと，GPU1個で半日で終わるようになりました←記録更新しすぎw
ちなみにエラー率は変わってません

# 福岡発Node.jsで支える大規模システム！〜「誰ガ為のアルケミスト」と歩んだ三年〜
タガタメしたくなったし，開発会社であるgumiさんでも開発したくなった
特に「誰よりも早く挑戦し失敗し，そして復活する」という思想がかっこよすぎて・・・
というわけで私の心鷲掴み状態です
ここでは失敗事例とそこからの復帰事例がメインでした

## 失敗事例その1:リリース時
Assetサーバー9台用意し，ここでユーザーのDLを制御していたけど，遅くなってしまう・・・
原因はCDNのキャッシュがうまく動作せずに高負荷状態が発生，遅くなりました
臨時対応として，サーバーを9台から400台に増強です(物理)

## 教訓
* 負荷試験をやりましょう(負荷試験してたけど・・・)
* キャッシュヒットを高くするために，想定される組み合わせは予めリクエストする
* 後日談ですが，Assetサーバーの管理は無理なのでこれを廃止，CDN S3に移行しました
* リリース前は負荷試験，リリース時はリソース的なとこを考えてみることが大事です

## 失敗事例その2:1周年
このタイミングで大規模アプデを行い，Appサーバも増強してましたが，Auroraの制限に引っかかってしまう

## 教訓
* Appサーバを削減して引っかからないようにした
* RDS応答速度を上げるためにAttribute指定
* キャッシュも利用する(可能な限り先を見越した利用を)
* 不要なレコード，カラムを取得しない

## 小話程度で終わった失敗?事例

### リリース数週間目
海外からBotによる不正アクセスを検知したそうです
特定の時間にアクセスが増えてたので，調べてみると↑が発覚
これの対策に監視用サーバが新設されました

### コラボ
新たなユーザーが入ってくることを想定してサーバを増強しました
・・・だがしかし，それを上回る加入で辛かった模様です
結局それで乗り切れたので，特段の対策はなかった模様

## まとめ
負荷試験しよう(3回言われた)

# Googleを支えるグローバルネットワーク
昼ご飯の軽食があり，公演時間が他よりも短かった・・・
だがしかし，中身は圧倒的に時間が足りてない内容でした(超濃かった)

## Googleのネットワーク
アメリカ中国ブラジルに日本を中心に，拠点をおいたGoogle社内専用のネットワークがあるそうです
つまり，Googleの社内ネットワークは世界規模という・・・(インパクトでかすぎた)

## Googleのサーバ
世界各地にサーバがありますが，GoogleのIPアドレスを指定すると自動的に最寄りのサーバと直接通信を行うそうです(どこが近いかを算出するサーバは経由しない)
コンピュータとIPアドレスは1対1なのに・・・(取り残された)

## Googleのトラフィック率
普通は30%くらいのトラフィック率だそうですが，Googleはなんとほぼ100%!
効率的な構成を編み出すとできるみたいですが，ネットワークの知識が足りず，理解できず・・・
ちなみに，トラフィック100%でもパケットロスが発生するので，アプリでデータの重要度をつけて，ロスしてほしくないデータとロスしても問題ないデータを区分することで落ちないように対策しているようです

## まとめ
ネットワーク勉強してきます

# VR/AR/MRって何？―基本概念から利用事例紹介―
機械学習と同じくらい最近ホットな技術の一つだと思ってます

## VR
Virtual Reality(仮想現実)のことで，お初は1968年と意外と古い・・・
VR元年と呼ばれる2016年でたくさんのVRを体験できる製品が登場します
ちなみに，元年の10年前は840万，元年には4万円位で買えます(10年前高すぎる・・・)
元年ではまだ映像を出力するハイスペックPCやゲーム機などのコンピュータが必要でしたが，最近はスタンドアロン型が登場してそれすら不必要に

### 活用事例
1. 手術や訓練，ドライビングなどの，シュミレーターとしての訓練機材
2. 同じ仮想空間を共有してゲームの世界を再現!
3. 自分のアバターを用意してそれを使ってコミュニケーション(まるでSAO)

## AR
Augmented Reality(拡張現実)のこと
PC，カメラ，情報を表示するマーカーが必要でVRよりも必要なものが多かったけど，スマホの登場でこの3つの機能が1つになり，一気に流行することに!
今ではARCoreやARKitが出てきて，個人でも開発でき，マーカーがなくても壁や床の空間把握ができてそれを基に情報を引き出すことができるようになりました
ちなみに，ブラウザ上にでもARができます

### 活用事例
1. 展示物の情報開示(カメラ越しに見ると，外見以外に内部の見た目や歴史などの情報が出てくる)
2. 機械の保守とIoT(操作情報を出してくれる)
3. AIを使ってスポーツ観戦を3D化(テーブル上にサッカーの試合が3Dで表示されるようになる←近未来過ぎない?)
4. 空間共有(デモ動画でひみつ道具の空気クレヨン使ってた)
5. ビジネスでは名刺としても

VRよりも活用事例多すぎない・・・?

## MR
Mixed Reality
現実空間と仮想空間を混合する技術全般(なのでVR，ARも含まれます)
現実要素が強いとAR，仮想要素が強いとAV(電波少年のような，背景の色をなにかの写真に加工するあれ)と呼ばれる

## 開発したい時は?
Unity使ったり，ブラウザのAR開発キットがあるので，それを使うと手軽にできるそうな・・・(とてもやってみたい)

# スーパーエンジニアを「育て」られるか？ - ペパボのエンジニア教育の挑戦
何気に自分も教育する立場にあるので，とても気になって参加しました

## 大切なこと
* みんなと仲良く
* ファンを増やす
* アウトプットする

## ペパボカレッジ
めちゃくちゃ濃厚な研修を1ヶ月受けて，その中で大切なこととエンジニアとしての技術を学ぶカリキュラム
スケジュールは2日でGit，RoRを3日，フロントエンド，インフラを3日ずつ・・・と他にもあり，最終的にはアプリを開発するのがゴールです(めっちゃ過密だった)
Gitを学習中はクイズ形式で習得していってる風景を見ました
最終的に開発していたのは，レビュー依頼サービス(Webアプリ)でした(やはり過密)
講師陣は~~イカれた奴ら~~現場のエンジニアです
開発はスクラムで回してました

## ペパボカクテル
Onboardingプログラムのこと
具体的には以下のことをしているようです

* やっていきシート作成(1ヶ月，2ヶ月，3ヶ月・・・自分がどうなっているかを会社内で公開，これを先輩が乗っかってやっていくというもの)
* 職階を超えて色んな人と交流する機会をたくさん設ける
* Slack利用してそこで困っている後輩を先輩が助ける構図も作る

こうすることで，中途でも新卒でも垣根が無いようにして，不安を可能な限り取り除く様にすることと，マインドを醸成することができるそうです

# コンテナ＆サーバーレス：トレンドの考察と少し先の未来の展望
コンテナ勉強中に，サーバーレス技術が興味あったので，参加してみましたが，圧倒的な知識不足感が・・・

## コンテナ
DockerとかKubernetes(これは今日知った)が注目されている仮想環境

## サーバレス
AWS Lambdaがサーバレス利用者の利用率が77%という絶対王者が君臨する，サーバ管理を必要としないアプリケーションの構築と実行の概念
あまり触ったことないのでAWS Lambdaを始めます

## コンテナとサーバレス，どっちがいいの?
どっちもいいのが結論
使い分けは非機能要件の洗足で決まるそう

# Terraformを用いた機械学習インフラの構築／マイクロサービスとそれを支えるアーキテクチャー

## Terraformとは?
AWSなど様々なサービスProviderに対して、サーバの構築・変更・管理を行うためのツール
これを使うと機械学習の基盤が作りやすいらしい・・・

## どんな感じに使っているのか
機能ごとに分離，機能内でもモジュール化して管理，VPCも機能ごとに分離，外部API使う時はGatewayを使って，スパゲティを回避している様子でした
なんかTerraformの使い方じゃない気がしてきた

## マイクロサービスとは
小さいサービスを開発して，それらをWebAPIで連携してる作りのこと
小さいサービスはそれぞれ独立しているので，デプロイする時はシステム全体ではなくてサービス単位でできるのが個人的には嬉しいポインツ
後，各々で好きな言語が使えるというところも・・・

## つまりは銀の弾丸・・? 
そういうわけではありません，開発アプリにあったアーキテクチャが大事です

# 最後に
終わった日に，夜な夜な書く量じゃなかった(満身創痍で後半からまともなこと書いてない気がする)
後，イスティオっていう名前は謎の愛着を持ちました
もう一ついうと，今日手に入れた情報は多く，どれから実践するか悩みどころですね・・・