人間中心の使いやすい機械学習フレームワークの設計(2/2)

人間中心の使いやすい機械学習フレームワークの設計(2/2)

1.人間中心の使いやすい機械学習フレームワークの設計(2/2)まとめ

・共通の欲求は新しいテンプレートを最初から作成するのではなく既存のテンプレートを変更する事
・モデルを設計またはデバッグするときに使用できる実用的なヒント提供される事も望んでいる
・ソフトウェア開発者は実践的な学習を手軽に行う手段としてフレームワークを扱っている

2.開発者が機械学習フレームワークに求めてるもの

以下、ai.googleblog.comより「Toward Human-Centered Design for ML Frameworks」の意訳です。元記事の投稿は2020年3月3日、Carrie J. CaiさんとPhilip J. Guoさんによる投稿です。アイキャッチ画像のクレジットはPhoto by Robson Hatsukami Morgan on Unsplash。

開発者はMLフレームワークに何を求めていますか?
調査に回答した開発者は、MLフレームワークにAPIの使用方法だけでなく、フレームワークを自分の問題に効果的に適用するのに役立つような、「暗黙のお約束(unspoken idioms)」を望んでいました。

・変更される事を前提にした既製モデル
共通の欲求は、標準のMLモデルのライブラリにアクセスして、新しいテンプレートを最初から作成するのではなく、既存のテンプレートを変更できるようにすることでした。

現在、事前学習済みのモデルは、TensorFlow.jsを含む多くのMLプラットフォームでより広く利用可能になっています。ただし、現在の形式では、これらのモデルは初心者による利用を明示的にサポートしていません。例えば、私達の調査では、開発者は既存のモデルサンプルを独自のユースケースに移行および変更する際に大きなハードルがある事を報告しました。従って、事前作成されたMLモデルは、モデルの変更に対する明示的なサポートと共に提供される必要があります。

・必要な時にMLのベストプラクティスを示すヒントツール
開発者は、フレームワークがMLのベストプラクティス、つまりモデルを設計またはデバッグするときに使用できる実用的なヒントやトリックが提供される事も望んでいました。

MLの専門家は長年の熱心な試行錯誤を通じて経験則(heuristics)や土台となる知識の習得方法(go-to strategies)を見に付けている場合がありますが、MLの専門家ではない開発者にとっては「どのパラメーターを最初に調整するべきか?」という単純な決定であっても大変な作業です。

多すぎる選択肢を絞り込む事を助けるために、MLフレームワークはプログラミングワークフローにベストプラクティスに関するヒントを直接埋め込むことができます。現在、TensorBoardやtfjs-visなどの視覚化により、モデルの内部で何が起こっているかを確認することができます。

これらを「事前トレーニング済みのモデルを変更するべきか?」、「ゼロから構築するかべきか?」などを必要な時にヒントとして示す戦略的ツールと結合する事ができます。

もしくは、モデルが収束しない場合に「learning rateを下げる」などの実用的なヒントを示す診断ツールは、ユーザーが実用的な戦略を獲得して利用するのに役立つでしょう。これらのヒントは、MLの基礎となる数学理論を、開発者に分かりやすく説明する際に役立つ中間の足場として機能します。

・実践的な学習のサポート
最後に、MLフレームワークは学習のためのプラットフォームではありませんが、ソフトウェア開発者は実際に、実践的な学習(learn-by-doing)を手軽に行う手段としてそれらを扱っています。

例えば、ある調査回答者は、個別のリソースではなく、コンセプトを理解しやすくするためのコードがフレームワークに緊密に織り込まれていることを高く評価しました。「…編集してすぐに実行できる小さなコードデモ。 基本的な理解に本当に役立ちます。」

別の回答者は、「やりながら学ぶことを好むので、もっとチュートリアルや例を見てみたい」とMLフレームワークにサンプルコードがある事を望みました。

時間的な制約で正式なオンラインコースを受講する事が難しいと感じている人は、実際に自分で短い時間で試せる形で学習する事を望んでいました。「忙しいので、学習を5~15分の小さな単位に収める必要があります。」

これらの実践的な学習への欲求を考えると、MLフレームワークは様々なレベルのリソースを、どの程度の専門知識を持つ人を対象としているか明確に区別する必要があるかもしれません。

多くのフレームワークにはすでに「hello world」チュートリアルがありますが、期待を適切に設定するために、これらのフレームワークは
・API(固有の構文)を丁寧に説明
・ML(概念)を丁寧に説明
と、より明確に区別する事ができます。

楽しみな未来
最終的には、MLのフロンティアはまだ進化しているため、ソフトウェア開発者に実用的で概念的なヒントを提供し、コミュニティでまとめられたベストプラクティスを蓄える知識の湖を作成することは、MLの専門家にも初心者にも役立ちます。うまくいけば、これらの研究結果が将来のMLフレームワークのよりユーザー中心の設計への道を開くことを願っています。

謝辞
この作業は、Yannick Assogba, Sandeep Gupta, Lauren Hannah-Murphy, Michael Terry, Ann Yuan, Nikhil Thorat, Daniel Smilkov, Martin Wattenberg, Fernanda Viegas、およびPAIRとTensorFlow.jsのメンバーなしでは不可能でした。

3.人間中心の使いやすい機械学習フレームワークの設計(2/2)関連リンク

1)ai.googleblog.com
Toward Human-Centered Design for ML Frameworks

2)drive.google.com
Software Developers Learning Machine Learning:Motivations, Hurdles, and Desires(PDF)

3)whimsysoul.com
Mammoth Lakes Hot Springs (Complete Guide + Map!)