イノベーションの風に吹かれて

Katsushi Yamashita, IBM Distinguished Engineer, Member of TEC-J - IBM Academy of Technology

「仕事や知識を得たりする上でどうやって時間を使っていますか?」

中央大学実積先生の研究室での特別講義後、時間の使い方について小泉勇太さんに質問された時、ちゃんとお答えできていなかったのでここに書いてみます。
 時間をどのように使うか考えるときに、時間における仕事率を考えます。時間仕事率は仕事の量を時間で割った効率であると定義します。例えば普通の人月単価の仕事があるとして、どうしたら二桁違う成果を得られるのかと考えてみます。人間はどうやってもひと時に10個の仕事をしたり、一つの仕事を10倍早くすることはできません。仕事の量が同じなら時間を短くするしかありませんが、人間である以上時間は早くも遅くもできない上に、みんなに等しく常に足りないくらいしかありません。ならば一つの時間で得られる結果が複数ある方がよいという考え方はどうでしょうか。それを時間レバレッジといいましょう。ある一つの仕事をした時に、その仕事の成果が同じようなシーンで使えたらどうでしょうか?それがチームの資産とになって10人で使えたりしたらどうでしょうか?そういう仕事には通常の仕事の倍以上の時間を使っても10倍以上に帰ってきます。さらに普遍的な法則を見つけることは、より広くレバレッジが効いてきますので、普遍的な方法論やSREとかLEANのような先行するベストプラクティスを研究することは広く仕事の質を向上させるし、インフルエンシングする価値もあるのでより多くの時間を費やしても時間の価値が損なわれません。90年代はじめの頃トランザクション処理の仕事でサンプルのソースコードを引っ張ってきて直すところを直して納品するのも良かったのでしょう。しかしその時先輩のコードに疑問を持ち、トランザクション処理の原則やデータベース設計、その集合論的基礎などを学んでおくと、ブロックチェーンのような全く新しいトランザクションシステムが出てきた時にその古い知識が役立ちます。このように対象ドメインが広い領域でレバレッジを考えると、それは長期的な基礎知識になります。工学的、科学的事実の探求は仕事の成果に対してより汎用的な基礎を成してくれます。また、学問分野を問わずリベラルアーツの世界は究極の汎用知識を与えてくれます。こうした汎用知識は仕事率だけではなく自分の存在にも大きな影響を与えてくれるので、人生の大半の時間を使ってもその価値が損なわれることはありません。
 こういうことは個人ごとに違う考え方があり、直接的な効果を考えて優先度を考えるというアプローチもあるでしょう。それもいいです。私はチームやコミュニティにレバレッジできるアプローチが好きなのです。
 

When I think about how to use time, think about the work efficienfy in time. Time work efficiency is defined as the work divided by time. For example, supposing that there is a regular monthly hourly priced work, how can I get two digit more results than the regular work? No one can perform 10 times jobs at a same time or work 10 times faster than a regular job anyway. If the result of work done is the same, we only have to shorten the time, but we can not make time goes be earlier or late as long as we are human beings, and it is equally consistent for everyone. Then, how about the idea that it is better to have more than one result obtained in one process? I call It as "leveraging a time".

What if I could use the result of the work in the same scene when I did a job? How about using it as a team's asset and using it by 10 person? Even if I spend more time than normal work on such work I will get return more than 10 times. Finding more universal theories will be more widely leveraged, so researching universal methodology and leading practices such as SRE or LEAN will broadly improve the quality of work and influence. It is also worth doing so spending more time will not spoil the value of time.

In the early 1990's, it was good approach to fix the sample source code of the existing transaction processing. However, at that time having questionier to given code, learning the principles of transaction processing, database design, theory of set foundation etc, these old knowledge are useful when a completely new transaction system like block chain comes out . In this way, considering leverage in a wide domain of target, it becomes long-term fundamental knowledge. Exploration of engineering and scientific facts forms a more generic foundation for work results. Also, regardless of discipline, the world of liberal arts gives us the ultimate general knowledge. Such generic knowledge gives great influence not only to the work rate but also to our existence so that even if I spend most of the time of life the value will not be compromised.

There is a way of thinking differently for each individuals, and there are approaches to consider priority on the basis of direct effects. That is also nice. I like approaches that help teams and communities.

インターネットバックボーンの独占

Google Amazon Facebook Appleというようなインターネットジャイアント達はインターネットをオーバーレイするプライベートなコンテンツデリバリーネットワークを自前で構築し、インターネットトラヒックを独占している。Googleは容量60Tbpsの日米間海底ケーブル「FASTER」*1KDDIなど6社と協力して建設し2016年に運用を開始している。また、FacebookMicrosoftが大西洋に敷設する「Marea 」海底ケーブル*2のキャパシティは160Tbpsであり、大西洋を横断する海底ケーブルとしては、これまでで最大級のものになる。CISCO社の調べ*3によるとCDN トラフィックの多くは、第三者機関の CDN ではなくプライベート CDN が占め、大規模なプライベート CDN 事業者としては、GoogleAmazonFacebookMicrosoftなどがある。2021 年には、CDNト ラフィックの68 %をプライベート CDN が占めると予測されています。

f:id:mash-kyam:20180404144120p:plain

 インターネットオーバーレイの仕組みについて解説した記事が、IBM Provisionに掲載されています。ご参考までにリンクを貼っておきます。

https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ST&infotype=SA&htmlfid=CO112527JPJA&attachment=CO112527JPJA.PDF

3GPP 5G標準化動向について学んだこと

(5Gについて表面的にわかることは割愛していますので、あらかじめ5Gについて基礎的なことは調査してからお読みください)

5Gというのは新しい無線方式(new RAT)と従来のLTE無線を含んだハイブリッドな構成で段階的に進化することが決められている。new RATに求められているのは次の三つの性能。

(1)高速大容量

(2)超高信頼性低遅延

(3)大量IoT端末

現在の方向性としてはLTE網を維持しながら地域的にnew RATを順次導入しnew RATエリア内で高速大容量と、それに伴って副次的に実現できる低遅延を目指す。広帯域化に伴い副次的に実現される低遅延というのは伝送速度が上がると必然的に伝送時間が短くなる事を示しています。つまり輻輳時の待ち行列時間は制御できていないため、低遅延通信の保証にはならない事に注意が必要です。遠隔医療やコネクテッドカーのようにレスポンスの保証が必要な場合には遅延QoSあるいは優先帯域保証が有効です。

当初の段階では制御チャンネルもLTEを利用するので、技術的にはLTEエリアとnew RATエリアはシームレスに接続維持できる。また、多端末対応となるIoTにはLTE IoTにて対応し[Rel15 2020年]、将来的にはnew RATによる対応に拡張[Rel16 202x年]する方向。LoRAやSigfoxなどLPWAなどとLTE IoTは対抗する軸になる。日本はnew RATで高速大容量化の方向だが欧州中国などでは広帯域だけではビジネス的に成り立たないのでIoT端末(通信量は少ないが契約数が多い)サポートを急ぎたいという事情もある。Verizonの5Gネットワークは基地局間のバックホール側で利用される技術でユーザープレーンには5Gがサービスされるわけではない。

f:id:mash-kyam:20180404143124j:plain f:id:mash-kyam:20180404143132j:plain

 

技術的にはLTEでは20MHzだった周波数帯域は400MHzまで拡大する。電波との関係で当初(Rel15)は52GHz以下の帯域で運用を開始する。高周波帯では主としてTDD、低周波帯では主としてFDDが利用されると推察される。サブキャリア間隔を数百MHzから数GHzという低周波数帯では狭く、数十GHz帯では広く取るScalable Numerologyを採用することで帯域とサブキャリア間隔の組み合わせが増えて無線のパラメーターが10倍以上複雑化することになり、端末テストなど製品化には負担が多い。OFDM変調方式でUプレーンはWiFiと同じLDPC符号、CプレーンはPolar符号が採用される。Polar符号化は中国主導で提案ー採用され中国では大喜びだったらしい。高速化によって遅延目標(10ms→4ms)は副次的に実現できるが。周波数の利用効率をLTEの3倍以上という仕様は非常に実現が厳しい。高信頼性通信は10回以上の再送(Repitation)によって実装する方向だ。

 

アジャイル開発をコストやスピードで語るのではなく、不確実性の管理という視点で論じる

gihyo.jp

アジャイル開発をコストやスピードだけで語るのではなく、不確実性の管理という視点で論じるのは重要だ。アジャイル開発で安く早くプロダクトをリリースとか言う人がいるが、ソフトウェア開発はそんなに甘くない。魔法じゃないのだから早く安く作れたのは機能を限定して非機能を無視したりしてリリースするからだ。その後に重要な必要機能に気付いたり障害でデータを失ったり、サービスが停止したり、そんな問題を発見した都度直していくことで必要な手間だけをかけていくことになる。結果としてコスト効率は良いと思うが完成までの時間や総額コストが劇的に下がるわけじゃない。改善の文化なくアジャイルという手法に頼ると、安く作れたなら次も安くという粗製乱造の連鎖が始まり、開発コストの下振れと品質の低下に足をすくわれることになる。ついでに、コストだけで判断する経営陣にかっこうの餌を与えることにもなる。

 

チームを小さくして継続的にサービスを担当してもらうことでサービスのコンテクストを継続的に維持することができる。しかし、小さく始めたサービスがたくさんの要求を組み込んで大きく成長すると、ある時点からアーキテクチャが必要になる。そこで一旦全面作り直しになるわけだが、細切れなアジャイル成果物の粗製乱造を避けてサービスコンテクストを維持するには、そんな判断も必要だ。また、優先的に手をつける非機能要件を判断するのはステージによって違う。MVPでは機能設計しかしない傾向もあるが、少し成長したらSREを取り入れた方がよくなる。そこの判断をチームにどのように権限移譲するかも課題だ。いづれにしてもこれまでのような可用性SLAやセキュリティ対策のような固定的な非機能要件をあげつらっても効果的とは限らない。analytics.jsみたいなサービス品質の計測手段を確立してどの非機能要件を次のリリースで改善するか決めるのがよい。例えば、サイトのコンバージェンスとかのサイトそのもののビジネス品質に相関のある傾向を掴む必要がある。表示速度とバウンス傾向とか単位時間当たりの機会損失とか。


アジャイルは適切なコストをかけていれば不確実性に適切に対応したものができるが、ウォーターフォールでは設計時に多くの非機能要件を決めてしまう。そうすると不確実性を広めにカバーせざるを得ず、無駄なコストやコンテンジェンシーが発生し、的外れなことも多い。大規模なプロジェクトにもなりやすく管理コストものしかかって来る。それでも事前に投資額を確定しないとプロジェクトがスタートできないのは、意思決定者が投資回収の保障を求めるからだ。事前に回収できるとわかった投資しかできないのは意思決定者の決定的な能力の不足なのだが。

プレゼンテーションツールを使ってリモート配信する

リモート配信のセミナーでPowerpointのプレゼンテーションツールを使いたい。時間の調整や次ページへのつなぎなどプレゼンテーションツールはとても便利だ。これが使えないとなんだか闇夜を歩いているみたいになる。

 

リモート配信ツールを使うとプレゼンテーションツールが使えない。CISCO WebExなどのリモート配信ツールを使い、会場でスライドショーをサブスクリーンに投影している画面を配信し、手元のPCのメインスクリーンではプレゼンテーションツールを使いたい。通常だと手元のPC画面がメインスクリーンなので、配信ツールで画面シェアを選択すると手元のメインスクリーンのプレゼンテーションツールが配信されてしまう。プレゼンテーションツールの左上コントロールで「スライドショーの利用」を選択するとスライドショーが配信できるが、手元のメインスクリーンもスライドショーになってしまって、プレゼンテーションツールが使えない。

f:id:mash-kyam:20170926085423p:plain<プレゼンテーションツール>

これでは困るので対処を調査したので、記録しておく。これは、リモート配信ツールがメインスクリーンを認識していて、サブスクリーンを配信することができないことが原因だ。原因が判明すれば対処は簡単、サブスクリーンをメインスクリーンにすればいい。

システム環境設定のディスプレイを開き配置タブを選択すると、画面構成が表示される。白いメニューバーがついている画面がメインスクリーンだ。

f:id:mash-kyam:20170926091027p:plain<ディスプレイ設定ー配置>

この白いメニューバーをポインターで掴んで動かすと、サブディスプレイ側に持っていくことができる。

f:id:mash-kyam:20170926091247p:plain<メイン画面が移動した>

この状態で会場に投影しているサブスクリーンがリモート配信できる。プレゼンテーションツールがプロジェクター側に映ってしまう場合には左上のコントロールで「ディスプレイの切り替え」を選択するとメインとサブの画面が切り替わる。会場のプロジェクターにメインスクリーンが映ってしまうので、Powerpointの起動やスライドショーの開始などは振向いて操作しなくてはいけないが、手元でプレゼンテーションツールが見えるので無事にプレゼンテーションを行うことができる。ディスプレイの設定は元に戻さなくてもケーブルを抜線するとメインスクリーンが戻ってくるが、設定を覚えているのでプロジェクターを再接続するとメインスクリーンがプロジェクターに映ってしまうので設定は元に戻しておいた方が(突然恥を書かなくて済むので)よい。

解決してよかった。

Microsoft®️ Powerpoint for Mac 15.21.1 on MacOS Sierra 10.12.6

 

 

 

Infrastructure as Code

Infrastructure as CodeはOpenStack Heatなどのクラウドオーケストレーションの環境より柔軟に変化に対応できるコードベースの環境を提供します。2010年頃からクラウド上で複数のサーバーから成るアプリケーションシステム全体を一つのシステムとしてプロビジョニングする技術として登場したのがOpenStack Heatなどのクラウドオーケストレーション技術です。OASIS TOSCA (Topology and Orchestration Specification for Cloud Applications)はクラウドオーケストレーションの仮想アプリケーションパターン標準定義機能です。TOSCAではアーティファクトというサーバーやOSなどの実体定義とアプリケーションサービスのモデルを定義するアプリケーション・アーキテクトをサービステンプレート上で統合します。HeatテンプレートやTOSCAテンプレートの開発には企業レベルでの標準化活動が必要でとても困難な努力が必要でした。また、高速に変化するオープンソースの取り込みや外部のインターフェースを呼び出すというような処理トポロジーの変化に追従するたびに新しいテンプレートを開発していたのでは、結局標準化が進まないという面もありました。こうした課題を軽量化したスクリプトで解決したのがInfrastructure as Codeです。ハードウェア、OS、ミドルウェア、DB等のバックエンドサービス、ライブラリ、処理トポロジー、アプリケーションテンプレートなど多岐にわたる標準化項目を軽量化し、最低限のOS、ミドルウェア、システム管理モジュールを共通のプロビジョニングライブラリとして準備し、その上にアプリケーション毎にスタックされるライブラリ、アプリケーション、処理トポロジーを導入構成管理スクリプトでひとまとめにしてアプリケーションと同様にgitやchefの構成管理レポジトリーで管理する考え方です。一つの実行環境が依存関係を含めてパッケージングされ、スクリプトとして管理される環境になります。内部的に接続関係などの管理にHeatテンプレートも活用できます。Infrastructure as CodeではOSの導入からブートまでをブートストラップといいます。その後、ミドルウェアやライブラリの導入と設定、運用やセキュリティツールの設定などがプログラムのように管理されます。こうすることでアプリケーションのリリースごとに必要なモジュール、トポロジーがソフトウェアとして管理することができるようになります。さらにパッケージは環境への依存性を極力少なく設計されるため、複数のクラウド環境で実行することができます。

一旦Infrastructure as Codeでインスタンス化されたサーバーは、その後管理者による手作業の変更作業を受け付けません。冪等性を持っているパッケージは変更部分だけを実行できるので変更作業はパッケージに対して行って走らせるだけで目的とした状態に変更されます。また、こうしてメンテナンスされたパッケージはサーバーを他のクラウドに一時的に退避したり、突然のトランザクションの増加に対応したりする場合に常に最新の状態のサーバーの複製を作ることができるという利点をもたらします。クラウドサービスでありがちなメンテナンスのための突然の停止や共有インフラのパッチ修正作業などでサービスを停止しない工夫が可能になります。

Infrastructure as Codeが構成管理ツールであって自動化ツールでは無いと言われるのはこのような特性によるものです。インスタンスの作成の省力化だけではなく、スケールしたサーバーのメンテナンス、構成管理という運用全体の問題として捉える必要があります。また、Infrastructure as Codeは基本的にブートストラップ(OSインスタンスを作るプロビジョニングの第一段階)からクラウドによるソフトウェア制御が前提と考えるべきです。オンプレミスのサーバー環境やプライベートクラウド環境ではよほど大規模でサイト分散ができていない限り本格的なメリットは得られません。さらに、インスタンス作成の省力化効果で費用対効果を算出するのはナンセンスです。構成管理のミスを減らし、運用品質をあげることがサービスの継続性を高めるということや、アプリケーションと歩調を合わせて非機能要件を改善したリリースを継続できるという費用算定できないメリットを手に入れます。こうしたことは運用管理の現場を理解していない上層部には肌感覚で理解できないため、費用対効果を求められ導入が進まないという面があります。運用の現場にツール採用の判断が委譲されていることがDevOpsを推進していく鍵となります。

言語(CODE)と認知(Cognitive)

f:id:mash-kyam:20170628173035j:plain

テッド・チャン原作「あなたの人生の物語」の映画 メッセージ(原題ARRIVAL)をみてきました。映画を見てから原作を読み直してみたりして、なかなかいい映画だったなと思いました。映画だからドラマにしなくちゃいけないところも、上手に見せてくれました。原作で面白かったのは「光は空気中から水中に進む間に屈折して進むが、光にとってその屈折した経路が最短時間で目的に到達できる経路である。光は進み始めた時にはすでに到達すべき点と経路を知っている=未来がわかってる」という話です。実際は光は波動だから曲がってしまうのであって未来がわかってるわけじゃないんですけど、そんな物理的な現象と時制を扱う言語をからめてお話を作り出せるって本当に天才なんですね。

この言語を題材にした映画を見て、Future Society 22でSYGMAXYZの柴沼さんとの対談や東大の江崎先生と話してきた「コード化する未来」について、言語と認知いう側面から考えることができたので書いてみます。

Future Society 22でのブログ記事はここ↓

http://www.future-society22.org/blog/d5c9b7b159a

 

まず、考えたのは言語は思考を支配できるのかということです。物語は言語をめぐる謎解きが中心なのですが、時制を超越した言語が未来を予想する認知能力をもたらします。この映画では言語が認知をもたらしている世界を描いています。

 

私たちにとって言葉と認知はどういう関係にあるのでしょうか。ユヴァル・ノア・ハラリのサピエンス全史では人類の発展過程を1.認知革命→2.農業革命→3.科学革命と考えて、そもそも人類は認知革命によってものを考えてそれを伝える技術によって生物の進化をはるかに超える進化の速度を獲得したのだと言います。知恵や行動を言葉にして表し、伝達する能力です。旧世代の大型動物が進化によって獲得できる能力よりも狩をする側の知恵の伝搬速度があまりに大きすぎることが、大型生物の殺戮につながりました。江崎先生のインターネット・バイ・デザインではジャレドダイヤモンドの銃・病原菌・鉄に触れられていますが、そこでは文明の発展過程を1.農耕・家畜→2.工場・物流→3.インターネット・コンピューターというように考え「物」という物理財産からその設計や制御を行う「コード」という知的財産へ価値が劇的に移行する、と言いました。インターネットによる開放型システムへの改革によってコードの重要性を見ることができます。このことから、人類文明は認知した知見を言語=コードとして拡散することで発展したということがわかります。インターネットが広く平等に拡散する能力をもたらしたことで、ソフトウェアが爆発的な発展を遂げたのも納得できると思います。

 

未来学者のアルビン・トフラーはかつて、「人間の妄想そのものがソフトウエアの力によって広がっていく」という趣旨のことを言っていました。国家の仕組みや行政のソフトウェア化が進んでいるなかで、社会における規則や法律、普遍的な習慣である倫理もコード化できる可能性があります。江崎先生は「データは誰のものであるか」という問いに「自分のデータは病院でも医者でもなく自分のものである」と喝破しました。ローレンス・レッシグは2007年 CODE2.0でインターネットの通信網の上にアイデンティティのネットワークが構築されると予想しましたが、個人をアイデンティファイできる個人認証の仕組みこそが行政の要である戸籍であると考えて、その上で社会のソフトウェア化という仕組みを考える必要性を強く感じます。ソフトウェアが世界を覆い、CODEが社会を構成するようになった社会では明文化できるコンピューターで処理できる形になったあらゆる規範がCODEとして流通するようになります。それは今も続く認知革命の媒体の変化です。大量で高精細なCODE化された情報と言語が人工知能による認知の能力を高めていくのだと思いますが、その人工知能の認知を制御できるのもまた人工知能の助けが必要なのだと思います。

 

人間としての認知や判断は言語によるか、ということを考えさせられるのはノーベル経済学賞を受賞したダニエル・カーネマン先生のファースト&スローです。人間の判断システムは二つあり、狩猟民族時代から身についた直感的判断を行うシステム①と文明以降人が編み出した論理的思考を行うシステム②で構成されているとしています。せっかちで誤りをおこしやすいシステム①となかなか起動せず怠惰であるけど論理的なシステム②を動員して人間は判断をしているようです。システム①が反射的に下した判断を反芻し言い訳を考えて理屈を作り出すことで言語化しているという面があります。つまり、そういう時の判断は言葉によって行われないで、認知が先にあってあとから言葉というもので辻褄を合わせているのだと思われます。つまり人は考えて行動するのではなく、行動してしまってから言葉で考えているようです。そういう意味で言葉が認知を制御するということはとても難しいと感じられます。人は言葉に支配されない認知を有する以上ジェームス・バラットの言うような人工知能が人間の支配を超えて文明を破壊するということは起こらないと信じたい。

 

人間が行う判断を社会学的な外部とのインターフェースで解析したファースト&スローですが、人間の脳細胞を模写していく内部的な取り組みにも成果があることが期待されます。IBM SYNAPSやTrue Northというコンピューターチップは脳細胞の動きを模倣することで、高効率な判断システムを実装しようとする取り組みです。内部的にはNVRAMを中心としたメモリー中心型のリフレッシュクロックのないプロセッサーアーキテクチャーをとっていて極低電力動作が期待されますが、脳の全てを模倣できるわけではありません。また、畳込み層を持ったニューラルネットで構成される人工知能は、大量のデータを分類蓄積して判断を行うため内部がブラックボックス化しやすく(本当にブラックボックスなわけではなくて人間の認知限界を超えたデータ量があるということだと思うけど)、CODEによる判断が認知できないというジレンマを抱えることになっています。4K/8Kというような映像技術によってデータ化された動画からは、人間には見えない点から写っている対象物を理解することができると言います。経済産業省産業構造審議会でYahooの安宅和人氏は「シン・ニホン AI ×データ時代における日本の再生と人材育成」のなかで、これからのシステムは「これまでとはケタ違いにメッシュの細かいユーザー理解に基づいた価値を提供する」と指摘しています。

http://www.meti.go.jp/committee/sankoushin/shin_sangyoukouzou/pdf/013_06_00.pdf

 

このように考えてみると、CODE中心の流通量が爆発的に増え情報処理量が増大していくことに対してまだ情報科学は追いついていないところがあるように感じます。先に述べましたが映像解析技術は高度化するのだろうと思いますが、人間の可視光線を超えた周波数や温度などの情報をどう学習していくのか、というようなことを考えると学習にかかる労力と費用は莫大であるし、実用的な速度やスループットというような技術的な課題も山積しています。今、この分野で研究開発を行うことはこれからのCODE中心の世界に開拓をもたらすのではないかと考えています。