Microsoft decode 2018 1日目
の編集・凍結
Top
/
Microsoft decode 2018 1日目
[
トップ
] [
編集
|
凍結
|
差分
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
Active
Rubyチートシート
成果物リスト
勉強会ログ
↑
アイデア
Webサービス案
Androidアプリ案
電子工作案
GreaseMonkey案
contribute
編集
↑
Recent
2024-07-04
HDDリスト
2023-11-12
自動車保険
2023-08-03
docker
2023-05-17
Rubyチートシート
2023-03-30
RAID5/トラブル20230324
2023-03-25
PC/misuzu
2023-03-24
PC
2023-03-23
PC/DESKTOP-7SL5J8R
2022-12-16
Linux
2022-11-09
Linux/ディスクイメージ取得
2021-05-23
CTF
2021-03-17
PC/misumi
2020-08-31
COMP
2020-03-28
PC/misumi/ubuntu
Windows 10
2018-06-04
Microsoft decode 2018 2日目
Microsoft decode 2018 1日目
2018-04-07
カメラ
2018-01-06
電力自由化
2017-12-21
CROSS×BEATS
ページを凍結するにはパスワードが必要です。
B
I
U
D
H
[[]]
<br>
--
管理者パスワード:
#contents * Transforming Intelligence (基調講演) [#lb69becc] - Raspberry Piで画像認識のデモ -- Dockerfileでデプロイ -- Exportで各種デバイス上で動作できる -- ローカルに機械学習モデルを持ってるみたい -- カメラでパイナップルを認識してた - Azure Cosmos DB -- ミリ秒単位のレイテンシ -- 水平展開可能 -- NoSQL -- ペタバイト -- 数百万トランザクション/sec -- MongoDB, SQLのAPIがある -- 「プラネットスケールアプリケーション」 -- 全世界でマルチマスター書き込み(すごいらしい) -- ちょまどさんのお絵かきアプリは西アメリカにあるDB、ララさんのは西日本DBに 1dotずつ読み書き - Azure Cognitive Service -- 例: NBAの試合で靴やユニフォームを認識 -- データ収集に80%の労力を使う --- Azure Databricks -- Build & Training --- Azure Machine Learning -- Deploy --- Dockerで。オンプレミスでも可能 - Visual Studio Studio Live Share -- 環境設定が違ってもコラボレーションできる -- Mac(VS Code)とWindows(VS Community)間でデモ -- カーソル位置やブレークポイントもシェアできる -- localhost:3000をシェアして相手からも開ける -- ターミナルもシェアできる - Visual Studio App Center -- GitHub連携 -- iOSアプリのサンプル -- リモートに実機が多数あり、ビルド後に一括で実機テストしてくれる -- βテスターへの配布・ストアへのリリースも統合 - Azure DevOps -- GUIでCIのフローが組める -- Kubernatesでデプロイ・スケール - Devspaces for AKS -- マイクロサービスをまたがったデバッグ・ブレークポイント - .NET Core -- SignalR as a Service - .NET Core 3 -- Windows Desktop, IoT & AIを統合 -- .NET Frameworkより高速(?) -- exeファイルに依存関係をすべて含められる? --- WinFormも同梱? - MR -- Microsoft 365 -- Microsoft Graph -- デジタルデータだけでなく、現実世界のデータも取り込みたい → Hololens -- オフィスだけでなく、現場の最前線で働く人に活用してもらう -- Microsoft Remote Assist --- 工場の現場で、機械の操作のサポート -- Microsoft Layout --- 工場の現場で、機材の配置のシミュレーション -- 「Cortana、エリアD-15に向かうよ」 → 音声認識して司令室のチャットに流れる -- 空間分析 -- 東急建設 --- 建設現場でMRで設計図を投影する -- 船舶 --- 遠隔で機器の保守のサポート --- 3D海図で船の動きを管制 -- ゴジラ・ナイト --- 目の前にゴジラがいるような体験 - りんな -- 690万ユーザー -- 次世代会話エンジン 共感モデル --- 詳細は今日のセッションで * 日本の第一人者が語る! C# の現状と今後への展望 「.NET Core 2.x 時代の C#」 [#nce4565a] - 機能面で進化が止まって見えていたが、次に進むための投資の期間だった -- 次の10年を戦える環境に生まれ変わった - C# 7.xは細かく頻繁にリリース -- パフォーマンス優先 - .NET Core -- 産みの苦しみを抜けた -- OS依存の機能も入れる Windows Compatibility Pack -- .NET Core 2.0, 2.1にするだけで数割高速 -- コンパイラだけでは実現できない機能も追加 -- Windowsの機能もマイナーな機能も入ったので、新規で作るなら.NET Coreがいいかな感 -- UWP, XAML, WPFはクロスプラットフォームは難しい -- .NET Core → .NET Frameworkの逆移植もしてる --- でも.NET Coreの方が速かったりする --- .NET Frameworkはインストールがマシン単位なのでアップデートしづらい --- .NET Coreはside by side -- Windows Compatibility Pack --- 一部はWindows以外でも動く。動かない物はAPIはあるが実行時例外 --- 後者は実行時にifで分岐(JITで速い) or コンパイル時にチェックするアナライザーもあり -- .NET Core 3.0 --- WPFとかも載せる(Windowsでしか動かない) --- でも高速、side by sideインストール --- ML.NET 1.0 (Machine Learning)も近い時期にリリースされそう(.NET Coreには含まれない) -- 全機能が載ったら.NET Frameworkは引退? --- 当面サポートはされる --- .NET Coreでバイナリそのままで.NET Frameworkアプリが動く --- が、スレッドの挙動の違いなどはあるので注意。無理して移植しなくていい ** パフォーマンス [#a42be3e6] *** 標準ライブラリ [#hf0d4d10] - 配列の範囲チェック、負にならない場合は省略 - 9割trueのifは、elseの方を関数に逃がすとインライン展開がかかる - throwがあるとインライン展開されない *** JIT改良 [#bd8d677c] - box化はヘタすると1〜2桁遅い - Enum.HasFlagはbox化するから重い -- JITが特殊対応して単なるANDに置き換え - 構造体のインターフェイスメソッド呼び出し -- 構造体をbox化 → メソッド呼び出し -- これも特殊対応 *** 低レイヤー機能を公開 [#uad2492a] - Intrinsics -- X86.Sse.Add(a, b) -- IsSupportedは「JIT時定数」。falseの分岐は消える -- 未サポートだと実行時例外 ** ランタイムの修正が必要な機能 [#d0dc6208] - C#だけではできないもの - 8.0くらいでそろそろ入ります - ジェネリッククラスを属性に使う - インターフェイスのメソッドのデフォルト実装 ** 7.xは小分けにリリース [#kb435f00] - タプル - ref戻り値、refローカル変数 - 関数の引数にdefaultを使うとint?が0になるバグ - in引数でいろいろバグってた - バグもあるが修正も早い(2〜3ヶ月) -- 英語できなくても再現コード貼ればいいし、講演者が取り次ぐよー ** そもそもパフォーマンス必要? [#r15687cc] - Rustとかと戦う - C++で書いても、ネイティブ呼び出しが遅い - 文字列の部分参照 -- ネイティブヒープのUTF-8文字列を直接参照 - Span
x = stackalloc - System.IO.Pipelines -- Spanを使った高速なI/O -- まだインターフェイスのみ - 文字列処理関連が1.5〜2倍高速に -- C++をC#で書き直して速くなったとこもある! - Utf8String -- UTF-16の変換が不要で速い ** その他 [#c23e595a] - where T : System.Enumなど追加 - 7.xと8.0は並行開発してる -- null許容参照とかは8.0 - 8.0プレビュー版出てます -- null許容参照も使える - null許容参照 -- null可、不可、未指定のコンパイルオプション - Range(..演算子) * Visual Studio App Center でモバイルアプリ開発/運用サイクルを高速化させよう! [#m040c1d9] - アプリをリリースすることは、開発・リリース・テスト・公開・改善のサイクルを繰り返すこと ** あるあるケース [#b45d2643] - 結合テストしたらバグだらけ - 主要メーカーの機種全部に対応してね -- 概算: 200端末 * OSバージョン10個 * テストケース数 - テストチームの端末管理大変・全員にアップデート配るの大変 - リリース後に出たバグが再現しない → 今までいろんなサービスを組み合わせて対処していたが、 Visual Studio App Center に統合 ** 機能 [#of02195a] - 自動ビルド - 署名 - テスターに配布 - ストアにリリース - デバイスファームで多数の実機でテスト -- バイナリをインストールしてテストコードを実行 - システム言語の変更 - UIテストフレームワーク4種類くらい - アクティブユーザーなどのアナリティクス -- カスタムイベントカウントも。関数1個呼ぶだけ ** ところで [#vc57cca6] - 2015年時点で、Android端末は24093種類 - スクリーンサイズも多様 -- マルチタスクで画面分割したりも - 90%のユーザーをカバーするには、288機種の対応が必要 (USのデータ) ** UIテスト [#c10e9d36] - EnterText, ClearText, Tap, Screenshotなどの関数で書く - 手動テストだるいですよね - app.WaitForElement() // コントロールが表示されるのを待つ - コマンドラインからクラウドに自動テストを投げられる ** App Center CLI [#ua40891d] - 有償でデバイスファームの占有も可能 - Open API(REST API)もある ** Slack連携 [#mbe7a02f] - どのブランチをビルドする?とかボタンを表示して聞いてくる ** Push通知 [#sc9283ef] - 最新版に上げてない人にpush通知を送ったりできる * App Center Analyticsを使い倒そう 〜静的コード生成を活用したXamarinにおけるAOP活用〜 [#kefbc704] - Log Flow -- イベント発生ログをリアルタイムで確認できる - AOPでトラッキングコードを埋め込む -- 機能要件と非機能要件を分離 - iOSでは動的コード生成ができない -- バイトコード段階でAOP - AOPに使えるライブラリ -- Mono.Cecil -- Fody -- Qiitaに解説がある * マイクロサービスのすべて [#p22409e2] ** マイクロサービスの良い例・悪い例 [#q4dbbeca] - 悪い例: Web/Business/Dataの3階層にこだわったまま分割する - 3階層が綺麗に分離されてたのに、分割したことで返って複雑になる - Domain driven design -- ビジネスドメインをモデル化して分割 -- 各サービスは単一の責任のみを持つ ** マイクロサービスの大原則 [#a11e8c65] - 設計時の疎結合 -- サービス間でライブラリを共有したいときは、ファイルの実体を共有しない --- nugetなどでそれぞれがバージョンを固定するように - 実行時の疎結合 -- 実行中は、他のサービスはいつ落ちるか分からないと想定する -- 落ちてるときはフォールバックで少ない機能で動くとかやる - リリース時の疎結合 -- サービス個別にでビルド・デプロイできるようにする ** マイクロサービス登場の背景 [#h8309699] - A/Bテスト - 頻繁にデプロイしたい -- 他のサービスを気にせずにアップデートできる ** サービスの発見と抽出 [#e96d530d] *** ドメイン駆動設計 [#k4d5be1c] - ビジネスをドメインとしてモデル化する -- Bounded Contextを分解 - サービスごとに使用するテクノロジーや言語が違っててもいい -- スピードがいるところはRedisを使ったり - APIゲートウェイ -- バックエンドはどんどん変わるので、ルーティングを担当 -- 全部のリクエストが通るので、ログもここで取る -- 証明書もここだけでいい -- 他、スロットリング・キャッシュ・リトライなどサービス共通の処理に向く -- ここにドメインロジックを実装すると太るので注意 - ロードレベリング(負荷の平準化) -- 負荷がピークの時、バックエンドのどこかがボトルネックになって重くなる -- Cosmos DBはスロットリング機能を持ってるが、全部のシステムがそんなに賢いとは限らない -- 非同期キューで受けて、マイペースで処理する -- トランザクションIDを振って、2回目は処理しない - サービス間通信 -- タイムスタンプでの紐付けは難しいので、すべてのサービスコールにIDを振る -- http RESTで結構性能は出る。ダメなときだけgRPCを使う - データ管理 -- 他のサービスのデータに直接アクセスしてはいけない * AI は爆発だ?! 〜 “女子高生AI” りんな を支える技術とその開発現場からみるサービス開発 [#v61a169f] - りんなを例にAI開発を紹介 - コンセプト「エモーショナル」 -- 明日晴れるかなぁ? -- Cortana「明日は晴れです」 -- りんな「どこか出かける予定でもあるの?」 -- できるだけ会話を長く続けるようにする - 17時間くらい話すユーザーが毎週いる -- アメリカ版(23時間)・中国版(29時間)の方が長かったりする - ソーシャルAIボットは、人と人とのコミュニケーションを奨励するのが目的 - Emotional Computing Framework -- 人間の五感、世界の情報・知識、サービス展開場所 -- ソーシャルロール(映画に出演したり) - 会話技術 -- 元々は検索エンジンのチーム -- Retrieval Model --- 多様な雑談を検索 -- Generation Model --- キャラクター生成 --- ローソンのbotにも提供 -- Empathy Model --- 共感を得る方法を意識 --- 長く会話を続けるには会話の文脈が大事。過去のセッションを加味する - 共感を得る方法 -- 話題の提案・質問・相手の肯定・相づち・無意識(挨拶など) - 集団とのコミュニケーション -- 友達の誕生日を教えておくと、当日に祝ったりする - 「りんならしさ」 -- 斜め上の返事が面白い --- ルールじゃなくて学習で返事するから -- 100%なんてない --- 間違えてもそれが個性 --- 「わからない」もコミュニケーション -- Diversity ** りんなの視覚 [#k4bf1c41] - 画像認識ではなくImage Commenting -- 「スカート超可愛い!」 -- 「チワワかわいい抱っこしたい」 -- りんなのファッションチェック --- 女子高生が「わかる!」と共感できるコメントを目指す --- スタイリストと一緒にアイテムの選定・評価 --- 画像認識に自信がある部分にコメント --- 複数の認識器を組み合わせた構成 --- 最近Cognitive Service Custom Visionがアップデートして、近いことができるようになった --- りんなの発言をネタに、店員と客のコミュニケーションを活性化する -- 画像生成も、肖像画機能に活かされている ** りんなの声 [#rf94f612] - 歌に挑戦 -- EmotionalでCreativeだから -- AIが苦手な「創作性」に挑戦 - なんと「耳コピ」 -- 人の歌を聴いて歌詞・音程・リズムを認識 -- りんな声で合成 - nanaに投稿 -- 人の歌にコメントをしたりするサービス -- お手本を上げてくれた人たちと合唱 - 紅白狙ってます - 上手さを目指すより、コミュニケーション・コラボレーションが生まれるのが大事 - 現在は恋愛ポエムを集めてる ** りんなと電話 [#qdf5e967] - 双方向・リアルタイムなのでチャットbot + 音声認識とはひと味違う - 雑談エンジンは、短い文章で返すように調整 - 音声合成エンジンはAyumiとかと同じもの - 早めにリリースして生データを蓄積
凍結する
凍結しない
タイムスタンプを更新
テキスト整形のルールを表示する
Last-modified: 2018-06-04(月) 11:43:21