NEWS

NEWS < etc

WWDC21:Apple幹部、プライバシーは製品開発の基礎となり、それが新しい技術をもたらすと語る

The Talk Show Remote From WWDC 2021

The Talk Show Remote From WWDC 2021

Daring FireballのJohn Gruber氏が、Appleのソフトウェアエンジニアリング担当シニアヴァイスプレジデントCraig Federighi氏、AppleのiOS、iPhone/iPadマーケティング担当ヴァイスプレジデントGreg Joswiak氏をゲストに招き、WWDC21スペシャルインタビュー「The Talk Show Remote From WWDC 2021」をYouTubeにて公開しています。


Craig Federighi氏

Craig Federighi氏

Appleはこれまでずっと、プライバシーは基本的人権であると考えていて、注目されるずっと前からそれを製品に組み込み、アーキテクチャ設計として組み込んでいて、それが正しいことだったと話します。

これはAppleのシステムやアーキテクチャに深く織り込まれており、ユーザーのプライバシーがより重要なものとなっている事は素晴らしいことです。

つまり、Appleはユーザーがプライバシーを意識することを奨励していて、これはAppleにとって、注目を得ようとすることよりもはるかに大きな意味を持つことなのですと話しています。

5、6年前には、機械学習で本当に優れた機能を実現するには、クラウドでやらなければならないという考えがあったが、iPhoneやiPadに搭載されているこれらのチップや、現在ではMacのAppleのシリコンチップが驚異的なパフォーマンスを発揮し、機械学習用の驚異的なニューラルエンジンコンポーネントを搭載している。

10億台のデバイスに強力なニューラルエンジンが搭載されていれば、膨大な量のコミュニケーション能力や機械学習能力を備えていることになります。

私が基調講演のメモではっきりと丸や下線を付けて 強調したフレーズ「デバイス・インテリジェンス」です。

これは、このクールなものを手に入れるための機能と 暗黙のプライバシーの両方を強調したのだと説明しています。

Appleが提供する機能の多くは中央でで行われる機械学習で、Appleが収集した顧客データに対して中央で行われるのではなく、中央で行われ、ローカルで実行されるモデルに組み込まれます。

Siriに話しかけたり、手書きで文字を書いたり、カメラをかざしてホワイトボードに書かれた文字を解釈したりするのは、すべて推論であり、データが外に出ることのないデバイス上で実行されています。

しかし、その手書き文字を認識できるように訓練したとき、私たちは多くのデータを収集しました。私たちは多くのデータを収集し、多くの人に多くの言語で多くの異なる筆跡を書いてもらいました。そして、私たちはデータを合成するのが非常に得意になりました。

同じスタイルを使ってさらに多くのテキストを生成することで、トレーニング用のデータセットを増やすことができます。その1つが「プライベート・フェデレーテッド・ラーニング」と呼ばれるもので、ユーザーのデータがユーザーのデバイスから離れることなく、ある種の分散型学習を行って解析することができます。

また、デバイス上でのパーソナライゼーションという技術もあり、WWDCではこの技術に関するセッションが行われました。これは、モデルを出荷する際に、そのユーザーだけにパーソナライズされるように、ローカルな学習を行うというものです。

さらに、モデルの動作をより良くするために、局所的な学習も行います。しかし、重要なのは、インテリジェンスを構築するために顧客の個人情報を取得するという近道をせずに、すべてを実現できることだと思います。

Appleは、プライバシーを維持しながらそれを実現するためのあらゆる技術を探求し続けており、この分野は急速に進歩しています。この分野は急速に進歩しています。ですから、Appleは自分たちの進むべき道について、非常に自信を持っていますと説明しています。


Greg Joswiak氏

Greg Joswiak氏

WWDC21の基調講演に関して質問されると、消費者向けの基調講演と呼ばれるものは、ただの基調講演で、AppleにとってWWDCの基調講演は、消費者と開発者の両方を対象としているので、ストーリーを語らなければなりません。

多くの製品は、開発者を必要としたり、開発者がそれらを利用して、さらに発展させるために良いものをもたらすことを可能にしますが、そもそも消費者がなぜこれをやりたいのかを説明しなければなりません。もちろん、開発者が考え、興味を持つようにするためでもあります。

開発者にとっては、何が新しくなったのか、何をしたのか、どこに開発者が参加できる新しいエキサイティングなことがあるのかを知ることができ、最も興奮し、感謝しているユーザーだと思います。

そして、リリースの全体像を示し、これが何であるか、誰もが実行することになるであろうこと、そして私たち開発者が参加できることを説明します。

しかし、開発者がSharePlayを取り入れるには、まずSharePlayが利用者にとってどのようなものになるのかを示さなければなりません。

一緒にテレビを見たり、音楽を聴いたりするだけではなく、共有のホワイトボードを作ったり、共同でゲームをしたり、出来ることはたくさんありますと説明しています。


PadOS 15に搭載された新しいマルチタスクインターフェースについて、これまでのマルチタスク化の際に、システムにドラッグ&ドロップを本格的に導入した時期でもありました。

アプリにアクセスするためのドックを導入し、ドラッグ&ドロップをiPadの主要な操作方法にしようとしていたのですから、いろいろなことが重なっていました。しかし、ドラッグ&ドロップが本質的に隠れた機能であることは、確かにそのとおりで、これをここにドラッグすればこうなるというものは何もありません。

今回、Appleが重視したのは「操作のあらゆる状態でパンくずが出るようにしよう」ということで、以前のデザインでは、ある方向に向かって何かをしても、戻ってくるときには対称性が崩れているようなケースがあり、思うように戻らないこともありました。それをすべてクリアにすることができたのです。

また、「シェルフ」という新しいアイデアを導入しました。これは、何か作業をしているときに、上にウィンドウがあって、下書きをそこにドラッグして、後で戻ってこられるような場所を提供するものです。

実際に使ってみてわかったのですが、ある時、Safariの別のスペースやウィンドウをいくつか開いていました。あるいは、読みたい長いメールを別のウィンドウで開く。そうすると、それらは見えなくなり、完全に見失ってしまいます。

Safariを起動すると、最後にアクセスしたSafariのウィンドウが表示されるだけでなく、現在開いている他のウィンドウも下部に表示されます。これは視覚的なパンくずであり、そこに何があるかを把握するためのものです。

最後に、正直なところ、これは4年ほど前から実現したかったことです。マルチタスクの概要では、すべてのアプリケーションがグリッド上に表示されていますが、ペアリングを操作できるようにするだけで、目に見える形になります。これはとても強力な機能だと思いますと話しています。


関連エントリー
WWDC20:Apple Silicon MacはBoot Campをサポートしない
AppleのCraig Federighi氏、Greg Joswiak氏、Daring Fireballのポッドキャスト公開収録に出演(iPadOSはマーケティング名) #WWDC19
AppleのGreg Joswiak氏、Mike Rockwell氏、Daring Fireballのポッドキャスト公開収録に出演(WWDC2018)
AppleのPhil Schiller氏、Craig Federighi氏、Daring Fireballのポッドキャスト公開収録に出演(WWDC2017)
AppleのPhil Schiller氏、Craig Federighi氏、Daring Fireballのポッドキャスト公開収録に出演



この記事をシェアする

おすすめ記事

この記事のハッシュタグ から関連する記事を表示しています。

500 Internal Server Error.

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '41428')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '41428')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '41428')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '41428')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '41428')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '41428')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')