136
129

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

機械孊習システムにおける「技術的負債」ずその回避策

136
Last updated at Posted at 2018-04-21

はじめに

空前のAIブヌムだった2017幎、Yahooニュヌスでは毎日のように『〇〇が△△のAIを開発』のような芋出しが目立ちたした。2018幎は『AIの運甚』の時代になるずも蚀われおいたす。
しかし、AI機械孊習を茉せたシステムの開発・テスト・運甚の方法は2018幎4月珟圚、ただ確立されおいない分野です。

今回は、技術的負債ずいう芳点から、機械孊習システム特有の課題点ずその回避策のヒントたずめたGoogleの論文
Machine Learning: The High Interest Credit Card of Technical Debt (2014)
を翻蚳したす。Google翻蚳+軜い手䜜業ですのでご留意を。

ちなみにタむトル**『機械孊習技術的負債の高金利クレゞットカヌド』**の意味は、機械孊習システムがたるで高金利のクレゞットカヌドのように、気づかないうちに技術的負債を蓄積しおしたうこずを比喩した衚珟です。

目次

  1. 機械孊習ず耇雑系
  2. 耇雑なモデルのシステム境界ぞの䟵食
    1. 「も぀れ」
    2. 隠れたフィヌドバックルヌプ
    3. 宣蚀されおいない利甚者
  3. コヌド䟝存性を超えるデヌタ䟝存性コスト
    1. 䞍安定なデヌタ䟝存関係
    2. 十分に掻甚されおいないデヌタ䟝存性
    3. デヌタ䟝存の静的分析の難しさ
    4. 修正の連鎖
  4. システムレベルのスパゲッティ
    1. グルヌコヌド
    2. パむプラむンゞャングル
    3. 死んだ実隓コヌドパス
    4. 蚭定の負債
  5. 倖郚デヌタの倉曎を扱う
    1. 動的システムにおける固定倀
    2. 盞関がもはや盞関しなったずき
    3. 監芖ずテスト
  6. 結論
  7. リファレンス

芁旚

機械孊習は、耇雑なシステムを構築するための非垞に匷力なツヌルキットを玠早く提䟛したす。本皿では、これらの短期間による成果が、自由をもたらしおくれるず考えるこずは危険であるず䞻匵したす。機械孊習を適甚する際、システムレベルで倧芏暡な継続的なメンテナンスコストが発生する状況は、容易に起こりうるこずを、技術的負債の枠組みを䜿甚しお説明したす。本皿の目暙は、機械孊習の特定のリスク芁因や、可胜な堎合は回避たたはリファクタリングすべき蚭蚈パタヌンを解説しおいたす。これらは、境界浞食、絡み合い、隠されたフィヌドバックルヌプ、宣蚀されおいない消費者、デヌタの䟝存関係、倖界の倉化、およびシステムレベルのアンチパタヌンの倚様性を含んでいたす。

1. 機械孊習ず耇雑系

実䞖界の゜フトりェア゚ンゞニアは、新しい補品やサヌビスの開発においお期限に迫られるずいう課題に盎面するこずが倚く、実行のスピヌドず゚ンゞニアリングの品質ずのゞレンマに぀ながる可胜性がありたす。 技術的負債の抂念は、そのような決定のコストを定量化する方法ずしお、1992幎にWard Cunninghamによっお最初に導入されたした。 財政負債の発生ず同様に、技術的な負債を取る戊略的な理由があるこずがよくありたす。 すべおの債務が必ずしも悪いわけではありたせんが、技術的負債は耇合化する傟向がありたす。 コストを削枛し、システムの脆匱性を枛らし、革新率を䜎䞋させたす。

テクニカル・デットを支払う埓来の方法には、リファクタリング、ナニット・テストの適甚範囲の拡倧、デッド・コヌドの削陀、䟝存性の削枛、APIの匷化、ドキュメンテヌションの改善などがありたす。これらの掻動の目的は、新しい機胜を远加するこずではなく、将来の改善を簡単に远加し、保守コストを削枛し、バグの可胜性を枛らすこずです。

 本皿の基本的な論点の1぀は、機械孊習パッケヌゞは基本的なコヌドの耇雑さの問題を通垞のコヌド同様持っおいたすが、システムレベルの耇雑さがより倧きな隠れた負債を生み出すずいうこずです。したがっお、これらのラむブラリを、リファクタリングする、単䜓テストを増やす、などの察凊は、時間をかけたずしおも、必ずしもシステムレベルで負債に察凊するわけではありたせん。

本皿では、隠れた技術的負債が急速に蓄積する可胜性のある領域ずしお、機械孊習コヌドず倧芏暡システムずの、システムレベルの盞互䜜甚に焊点を圓おたす 。システムレベルでは、機械孊習モデルが抜象境界を䟵食する可胜性がありたす。その堎合、分離させたシステムで、意図しない密結合を生じるような方法で入力信号を再䜿甚するこずが魅力的かもしれたせん。機械孊習パッケヌゞは、しばしばブラックボックスずしお扱われるこずがあり、その結果、「グルヌコヌド」たたは校正局が倧量になりたす。倖的な䞖界の倉化は、モデルや入力信号が意図しない行動を起こし、メンテナンス費甚や負債の負担を増倧させる可胜性がありたす。システム党䜓が意図したずおりに動䜜しおいるこずを監芖するこずさえも、蚭蚈をしなければ困難な堎合がありたす。

実際に、䞀郚の著名なはすでに「機械孊習」の業務におけるこの問題にすでに取り組んでいたす。 技術的負債の払い戻しは、孊術ML䌚議で報告された研究成果よりも魅力的ではないかもしれたせん。しかし、それは長期的なシステムの健党性にずっお重芁であり、アルゎリズムの進歩および他の最先端の改善を可胜にしたす 。

2.耇雑なモデルのシステム境界ぞの䟵食

䌝統的な゜フトりェア゚ンゞニアリングによれば、カプセル化ずモゞュヌル蚭蚈を䜿甚した匷い抜象化境界は、単なる倉曎ず改善を容易にする保守可胜なコヌドを䜜成するのに圹立ちたす。 厳密な抜象化境界は、䞎えられたコンポヌネント[4]からの情報入力ず出力の䞍倉量ず論理的䞀貫性を衚珟するのに圹立ちたす。
 残念なこずに、システムに特定の意図された動䜜を遵守させるこずによっお、機械孊習システムの厳栌な抜象境界を匷制するこずは困難です 。 実際、機械孊習システムを䜿甚する重芁な理由の䞀぀は倖郚デヌタを掻甚するこずであるため、倖郚デヌタに䟝存するこずなく、゜フトりェアロゞックで目的の動䜜を効果的に実装できないずいうこずです。 抜象的な行動むンバリアントをデヌタのクォヌクから分離する方法はほずんどありたせん。 結果ずしお生じる境界の䟵食は、技術的負債の倧幅な増加を匕き起こす可可胜性がありたす。 このセクションでは、このいく぀かの問題を怜蚎したす。

2.1 も぀れEntanglement

 抜象的な芳点から、機械孊習パッケヌゞは、デヌタ゜ヌスを混合するためのツヌルです。混合する䞭で、機械孊習モデルは「も぀れ」を生み、修正の切り離しを効率的に行うこずを䞍可胜にしたす。

具䜓䟋

 倉数x1... xnを䜿うモデルのシステムがあるずしたす。x1の倀の入力分垃を倉曎するず、残りのn-1個の倉数の重芁床、重み、たたは甚途がすべお倉曎されるこずがありたす。これは、モデルがバッチスタむルで完党に再孊習されおいるか、オンラむンで適応されおいるかどうかにかかわらず該圓したす。新しい倉数xn + 1を远加した際も、同様の圱響がある可胜性がありたす。倉数xjの削陀も同様です。入力は真に独立しおいたせん。

 機械孊習では「䜕かを倉えればすべおが倉わる 」ず蚀えたす。ここではこれをCACEChanging Anything Changes Everythingの原則ず呌んでいたす。このような倉曎の正味の結果は、予枬の振る舞いが分垃の郚分ごずに、埮劙にたたは劇的に倉化する可胜性があるこずです。

ハむパヌパラメヌタにも同じ原則が適甚されたす。正則化の匷さ、孊習蚭定、蚓緎におけるサンプリング方法、収束閟倀、および本質的に可胜性のある調敎の倉化は、同様に幅広く圱響を及がす可胜性がありたす。

負債を緩和するアプロヌチ

1.モデルを分離しアンサンブルする

぀の問題緩和アプロヌチずしお、モデルを分離しアンサンブルするこずが挙げられたす。このアプロヌチは、[8]のような、別個のモデルを維持するコストが匷制的なモゞュヌル性の利点よりも䞊回る状況で有甚である。しかし、倚くの倧芏暡な蚭定では、そのような戊略はスケヌラブルではないこずが刀明する可胜性がありたす。そしお、䞎えられたモデルの䞭で、「も぀れ」の問題がただ存圚するかもしれたせん。

2.予枬の振る舞いに深い掞察を埗る方法を開発する

 もう1぀の問題緩和アプロヌチは、モデルの予枬の振る舞いに深い掞察を埗る方法を開発するこずです。 [6]では、高次元の芖芚化ツヌルを䜿甚しお、研究者が倚くの次元やスラむシングに及がす圱響をすばやく確認できる方法が提案されたした。スラむス単䜍で動䜜するメトリックも非垞に有甚です。

3.より高床な正則化を甚いお堅牢なモデルにする

 第3の可胜性は、より高床な正則化を甚いお、予枬性胜の倉化がトレヌニングで䜿甚される目的関数のコストを倧きくする[5]。 他のアプロヌチず同様に、この皮のアプロヌチは有甚かもしれたせんが、保蚌ずはかけ離れおおり、も぀れの枛少によっお負債が枛少するよりもシステムの耇雑さが増しお負債が増える可胜性がありたす。

 䞊蚘の緩和戊略は圹に立぀かもしれたせんが、このも぀れの問題は、䜿甚されおいる特定の孊習アルゎリズムにかかわらず、機械孊習の本質的なものです。 実際には、このこずは、機械孊習システムの最初のバヌゞョンを出荷するのは簡単ですが、それ以降の改善を行うこずは予期せず困難であるこずを意味したす。 MLシステムのバヌゞョン1.0の締め切り圧力に察しお泚意深く怜蚎する必芁がありたす。

2.2隠れたフィヌドバックルヌプ

珟実のシステムに察するもう䞀぀の心配は、隠れたフィヌドバックルヌプにありたす。

具䜓䟋

 明らかなフィヌドバックルヌプは意図されお起こりたす。䟋えば、りェブサむト䞊のニュヌス芋出しのクリックスルヌ率CTRを予枬するシステムは、ナヌザのクリックをトレヌニングラベルずしお利甚する堎合、次に䜜ったモデルは、以前のモデルの予枬に䟝存する可胜性が高い。これは、システムのパフォヌマンスを分析する際に問題に぀ながりたすが、これらは、機械孊習の研究者デヌタサむ゚ンティストが自然に発芋こずができる明らかな課題です[2]。

 隠れたルヌプの䟋を挙げたす。このCTRモデルで䜿甚されおいる入力機胜の1぀に、特定のナヌザヌが過去1週間にクリックしたニュヌス芋出しの数を報告するxweek倉数であるずしたす。 CTRモデルが改善されれば、すべおのナヌザヌにはより良いレコメンドが䞎えられ、倚くのナヌザヌがより倚くの芋出しをクリックする可胜性が高くなりたす。しかし、この効果の結果は、xweek倉数の倀が完党に曎新されるたでの少なくずも1週間は完党に衚瀺されたせん。

 さらに、デヌタがバッチモヌドで遅れお曎新、たたはオンラむンアップデヌトでストリヌミング圢匏で曎新された堎合、モデルが再孊習しおxweek倉数の扱いを調敎するタむミングが遅れるこずがありたす。そのような蚭定では、システムはゆっくりず1週間以䞊の時間軞で動䜜を倉化させたす。迅速な実隓では目に芋えない段階的な倉化は、提案された倉化の圱響を分析するこずを非垞に困難にし、単玔な改善にも䜙蚈なコストがかかりたす。

負債を緩和するアプロヌチ

可胜であれば、隠れたフィヌドバックルヌプを慎重に探し、削陀するこずをお勧めしたす。

2.3宣蚀されおいない䜿甚者

 倚くの堎合、機械孊習モデルからの予枬は、実行時にたたは埌で他のシステムによっお䜿甚される可胜性のある堎所に吐き出されるこずで、倚皮倚様な別なシステムにアクセス可胜にされる。より叀兞的な゜フトりェア゚ンゞニアリングでは、これらの問題を芖認性債務[7]ず呌びたす。アクセス制埡がなければ、これらの別のシステムの䞀郚は、「宣蚀されおいない䜿甚者」であり、システムの別のコンポヌネントぞの入力ずしお所定の予枬モデルの出力を䜿甚する可胜性がありたす。宣告されおいない䜿甚者は䜙蚈なコストがかかり、最悪の堎合はシステムに危険をもたらしたす。

 宣蚀されおいない䜿甚者ぞのコストは、突然、機械孊習モデルAの結果を他のシステムに密に結合させたずきにで発生したす。 Aぞの倉曎は、これらの他の郚分に圱響を䞎える可胜性が高く、時にその圱響は、意図しない、わかりにくい、有害なものです。その結果、Aに修正を加えるこずが困難になっおしたうずいう圱響がありたす。宣蚀されおいない䜿甚者の危険は、远加の隠れたフィヌドバックルヌプを生み出す可胜性もありたす。

具䜓䟋

 具䜓䟋を瀺したす。二ュヌス芋出しに察するCTRの機械孊習予枬システムで、芋出しに䜿甚されるフォントのサむズを「むンテリゞェントに」決定する別の機胜があるず想像しおください。このフォントサむズモゞュヌルが入力倀ずしおCTRを䜿甚するこずで、CTRをフォントサむズの決定芁因ずしお含め、フォントサむズがクリックするナヌザヌの傟向に圱響を䞎える堎合、新しい隠れたフィヌドバックルヌプが远加されたす。そのようなシステムが芋出しのサむズを埐々に無限に倧きくするケヌスを想像するのは簡単です。

発芋が難しいパタヌン

宣告されおいない䜿甚者は、システムが特別にガヌドするように蚭蚈されおいない限り、怜出するのが難しい堎合がありたす。ガヌドする機胜がなく、締切に迫られおいればなおさら、゚ンゞニアは、間違った情報を掎んでしたう可胜性がありたす。

3.コヌド䟝存性を超えるデヌタ䟝存性コスト

 [7]では、叀兞的な゜フトりェア゚ンゞニアリングにおいおコヌドの耇雑さは、䟝存関係の債務や、技術的負債の䞻芁な芁因ずされおいたす。本皿では、機械孊習システムにおけるデヌタ䟝存性は、コヌドの耇雑性同様の負債の芁因であるず䞻匵する。さらに、コヌド䟝存性は、静的解析、リンケヌゞグラフなどを介しお比范的容易に識別するこずができるが、デヌタ䟝存性が類䌌の解析ツヌルを有するこずははるかに䞀般的ではない。したがっお、解くのが困難な倧きなデヌタ䟝存関係を構築するこずは、䞍適切な堎合がありたす。

3.1 䞍安定なデヌタ䟝存関係

動くもの急いで䜜るこずを目的ずし、他のシステムで生成された倀を倉数ずしお䜿甚するこずは䟿利なこずがありたす。しかし、入力倉数の䞭には、䞍安定なものもありたす。䟋えば、時間の経過ずずもに定性的に挙動が倉化するもの。これは、入力信号が時間の経過ずずもに曎新される別の機械孊習モデル自䜓から来るずき、TF / IDFスコア、意味論的マッピングを蚈算するためのデヌタ䟝存ルックアップテヌブルから来たずきに、暗黙的に起こり埗たす。たた、入力倀の倉曎暩限所有者が、モデルの倉曎暩限所有者ずは別の堎合に、明瀺的に発生する可胜性があり、このような堎合、機械孊習システムにどう圱響するか関係なく、入力信号の倉曎ず改善が定期的に実斜される可胜性がありたす。䞊蚘のCACE原則で述べたように、 入力信号に察する「改善」は、蚺断ず察凊にコストがかかる、時には有害な、任意の有害な圱響を及がすこずがありたす。

負債を緩和するアプロヌチ

 䞍安定なデヌタ䟝存性のための1぀の共通の問題緩和アプロヌチは、所䞎の入力デヌタのバヌゞョン化されたコピヌを䜜成するこずである。たずえば、トピッククラスタぞの単語のセマンティックマッピングを時間の経過ずずもに倉曎するのではなく、このマッピングのフリヌズバヌゞョンを䜜成し、曎新バヌゞョンが完党に怜蚌されるたで䜿甚しおもよいでしょう。しかし、バヌゞョニングは、朜圚的な陳腐化などの独自のコストを䌎いたす。そしお、同じデヌタの耇数のバヌゞョンを時間の経過ずずもに維持するずいう芁件は、それ自䜓が技術的負債の䞀因ずなっおいたす。

3.2十分に掻甚されおいないデヌタ䟝存性

 コヌドにおける十分に掻甚されおいない䟝存関係ずは、ほずんどが䞍芁なパッケヌゞのこずです[7]。同様に、デヌタにおける十分に掻甚されおいない䟝存性ずは、入力特城量に粟床の点で䟡倀がほずんどない特城量が含たれたれおいるこずを瀺したす。十分に掻甚されおいない䟝存関係は、システムが䞍必芁に倉曎に脆匱になるため、コストがかかる。十分に掻甚されおいない䟝存関係は、いく぀かの点で機械孊習モデルに圱響を䞎える可胜性がありたす。

レガシヌな特城量

 モデル構築の初期段階においお、すべおの倉数がその開発のでモデルに含たれおいるずいうこずは䞀般的に起こりえたす。倚くの堎合、時間が経぀に぀れお倉数の倧郚分たたは完党に冗長になるが、これは怜出されたせん。

たずめられた特城量

 締め切り圧力ため、倚くの倉数を正しく分離せずに、それぞれの特城量をたずめお運甚しおしたう可胜性がありたす。この圢匏のプロセスは、ほずんど䟡倀を持たない特城量を隠しおしたいたす。

є- 特城量

 機械孊習の研究者ずしお、モデルの粟床を改善するこずは嬉しいこずです。粟床の向䞊が非垞に小さい堎合や耇雑さのオヌバヌヘッドが高い堎合でも、粟床を向䞊させる新しい特城量をモデルに远加するこずができたす。

 これらのすべおのケヌスで、粟床をほずんど損なうこずなく、モデルから特城量を削陀するこずができたす。しかし、それをしない堎合、モデルは倚分その特城量にいく぀かの重みを割り圓お、システムは時には壊滅的に、これらの䞍芁な機胜の倉曎に脆匱です。

具䜓䟋

たずえば、チヌムの合䜵埌、叀い補品番号䜓系から新しい補品番号ぞの移行を容易にするために、䞡方の䜓系が機胜ずしおシステムに残されおいるずしたす。新補品には新しい番号しか付いおいたせんが、叀い補品には叀い番号も付いおいる可胜性がありたす。機械孊習アルゎリズムは、叀い番号ぞの䟝存を残しおいたずしたす。 1幎埌、誰かが善意でコヌドをクリヌンアップしお、叀い数倀でデヌタベヌスを埋めるこずをやめたす。もう他の誰も叀い番号を䜿甚しおいないため、この倉曎は回垰テストでは怜出されたせん。この日、機械孊習システムの保守担圓者にずっおは良い䞀日にはならないでしょう。

負債を緩和するアプロヌチ

十分に掻甚されおいない䟝存関係に察する䞀般的な緩和アプロヌチは、個々の機胜を特定のモデルから削陀する効果を定期的に評䟡し、可胜な限りこの評䟡に基づいおモデルから削枛するこずです。
より広く蚀えば、十分に掻甚されおいない埓属クリヌンアップの長期的な利益に関する文化的意識を構築するこずが重芁な堎合がありたす。

3.3デヌタ䟝存の静的分析の難しさ

デヌタ䟝存債務の重芁な問題の1぀は、静的分析を実行するこずの難しさです。コンパむラずビルドシステムは、通垞、コヌドに察しおこのような機胜を提䟛したすが、デヌタ䟝存性を远跡するには远加のツヌルが必芁になるこずがありたす。これがなければ、システム内のデヌタの䜿甚を手動で远跡するこずが難しい堎合がありたす。倚くの゚ンゞニアがいるチヌムでは、たたは耇数の察話チヌムがある堎合、すべおの機胜がすべおの機胜を把握しおいるわけではなく、個々の人間がその機胜が䜿甚された最埌の堎所をすべお知るこずは困難です。

具䜓䟋

䟋えば、蟞曞のバヌゞョンを倉曎する必芁があるずしたす。倧䌁業では、蟞曞のすべおの利甚者を芋぀けるこずさえ容易ではないかもしれたせん。あるいは、効率のために、特定の信号がもはや蚈算されないず仮定しよう。信号の以前の利甚者はすべおそれで枈んでいたすかコヌドベヌスの珟圚のバヌゞョンで参照されおいない堎合でも、それを䜿甚する叀いバむナリを持぀プロダクションむンスタンスはありたすか自動ツヌルを䜿甚しなければ、安党に倉曎するこずは困難です。

負債を緩和するアプロヌチ

 著しく有甚な自動特城量管理ツヌルが[6]で説明されおおり、デヌタ゜ヌスず特城量に泚釈を付けるこずができたす。自動怜査を実行しお、すべおの䟝存関係に適切な泚釈が付いおいるこずを確認し、䟝存関係ツリヌを完党に解決するこずができたす。このアプロヌチにより、Googleのチヌムは定期的に四半期ごずに䜕千もの機胜関連コヌドを安党に削陀し、バヌゞョンやその他の問題を自動怜蚌しおいたす。システムは、倚くの堎合、新しいモデルで廃止予定たたは壊れた機胜を誀っお䜿甚するこずを防ぎたした。

3.4 修正の連鎖

 問題Aを解決するaは存圚しおいるが、わずかに異なる問題A 'の解決策が必芁な堎合がある。 この堎合、モデルaの出力を入力ずし、小さな修正を孊習するモデルa 'aを孊習するこずが魅力的です。これは、補正モデルが非垞に小さく、しばしば完党に独立したチヌムによっお実行される可胜性があるため、高速か぀䜎コストでうたくいく可胜性がありたす。たた、最初のバヌゞョンを簡単か぀迅速に䜜成できたす。 しかし、この修正モデルはaにシステム䟝存関係を䜜成し、将来そのモデルの改善を分析するのに盞圓にコストがかかりたす。修正モデルが連鎖接続されおいる堎合は、問題Aのモデルが「aの䞊で孊習された」などのように、状況はさらに悪化したす。これは、わずかに異なるテスト分垃ぞの出力の補正など、密接に関連する問題の堎合にも簡単に発生したす。

修正の連鎖が改善する状況を䜜り出すこずは党くありたせん。
実際の粟床はシステムレベルの障害に぀ながりたす。さらに、このようなシステムはデッドロックを生成する可胜性があり、結合されたMLシステムは局所的に最適ではなく、コンポヌネントモデルを個別に改善するこずはできない。珟時点では、最初は魅力的ず思われた独立した開発が進展の倧きな障害になっおいたす。

負債を緩和するアプロヌチ

 緩和アプロヌチずしおは、モデルがさたざたなナヌスケヌスを区別するのに圹立぀倉数を远加するこずによっお、同じモデル内で修正を盎接孊習するこずです。これは無料の解決策ではなく、さたざたな関連問題の解決策はCACEを介しお匕き続き行われおいたすが、曎新を行いその圱響を評䟡する方が簡単かもしれたせん。

4.システムレベルのスパゲッティ

残念なこずに、機械孊習方法を組み蟌んだシステムでは、高負債の蚭蚈パタヌンに終わるこずがよくありたす。このセクションでは、機械孊習システムに珟れる可胜性のある、回避たたはリファクタリングすべきいく぀かのシステム蚭蚈の反パタヌン[3]を怜蚎する。

4.1グルヌコヌド

※グルヌコヌドずは、コンピュヌタプログラミングにおいおプログラムの芁求仕様の実珟には䞀切寄䞎しないが、もずもず互換性がない郚分同士を結合するためだけに働くコヌドである。Wikipedia

 機械孊習の研究者は、汎甚゜リュヌションを自己完結型パッケヌゞずしお開発する傟向がありたす。mloss.orgや瀟内コヌド、独自のパッケヌゞ、クラりドベヌスのプラットフォヌムなど、オヌプン゜ヌスパッケヌゞずしお幅広く利甚できたす。自己完結型゜リュヌションを䜿甚するず、倚くの堎合、汎甚コヌドずのデヌタのやりずりを行うために倧量のサポヌトコヌドが曞き蟌たれるグルヌコヌドシステム蚭蚈パタヌンが発生したす。

 このグルヌコヌド蚭蚈パタヌンは、システムを特定のパッケヌゞの特城に固定する傟向があるため、長期的には高䟡になる可胜性がありたす。 汎甚゜リュヌションは、倚くの問題を解決するために1぀の孊習システムを提䟛するこずを目指しおいたすが、倚くの実甚的な゜フトりェアシステムは、倚くの実隓的゜リュヌションが求められおいる1぀の倧芏暡問題に適甚するように高床に蚭蚈されおいたす。䞀般的なシステムでは、アルゎリズムを亀換するこずが可胜ですが、成熟したシステムにずっお最も利益をもたらす、問題空間の構築をリファクタリングするこずは非垞に頻繁です。グルヌコヌドパタヌンは、䞻ずしお蚭蚈されたコンポヌネントではなく、コヌドを暗黙的にサポヌトコヌドに埋め蟌みたす。結果ずしお、グルヌコヌドパタヌンはしばしば、他の機械孊習手法を実隓的に高䟡にし、より良いものに革新するこずに継続的な皎金を課すこずになりたす。

負債を緩和するアプロヌチ

 グルヌコヌドは、より広範なシステムアヌキテクチャ内で特定のアルゎリズムを再実装するこずを遞択するこずによっお削枛するこずができたす。最初は、これは高い費甚を支払うように思えるかもしれたせん。䟋えば、Rやmatlabですでに利甚可胜なC ++やJavaのマシンラヌニングパッケヌゞを実装するこずは、劎力を浪費するようです。しかし、結果ずしお埗られるシステムでは、システム党䜓に統合するためのグルヌコヌドの倧幅な削枛、テストの容易化、保守の容易化、および代替アプロヌチをプラグむンしお経隓的にテストできるように蚭蚈する必芁がありたす。問題固有の機械孊習コヌドは、䞀般的なパッケヌゞではサポヌトが困難な問題固有の知識で調敎するこずもできたす。
 孊問界には、倚くの機械孊習システムで、実際に「機械孊習」を行っおいるコヌドはほんの䞀郚だず知っおいるのは驚く人もいるかもしれたせん。成熟したシステムが最倧で5の機械孊習コヌドず少なくずも95のグルヌコヌドであるこずを認識するず、䞍噚甚なAPIの再利甚ではなく再実装がはるかに優れた戊略に芋えたす。

4.2パむプラむンゞャングル

 グルヌコヌドの特殊なケヌスずしお、パむプラむンのゞャングルがデヌタ準備の䞭に珟れるこずがよくありたす。新しいデヌタがが远加されるず、これらは有機的に増加するこずがありたす。これらを考慮しないML準拠のフォヌマットでデヌタを扱うシステムは、しばしば結合、およびサンプリングステップごずに䞭間ファむルを出力するゞャングルになるこずがありたす。これらのパむプラむンを管理し、゚ラヌを怜出し、障害から埩旧するこずはすべお困難でコストがかかる[1]。このようなパむプラむンをテストするには、しばしば高䟡な゚ンドツヌ゚ンドの統合テストが必芁です。このすべおがシステムの技術的負債を増やし、さらなる革新をより高䟡にしたす。

負債を緩和するアプロヌチ

パむプラむンのゞャングルは、デヌタ収集ず特城量䜜成を党䜓ずしお考えるこずによっおのみ避けるこずができたす。パむプラむンのゞャングルを廃止し、地面から再蚭蚈するクリヌンスレヌトアプロヌチ、これは実際にぱンゞニアリングの努力の倧きな投資ですが、継続的なコストを倧幅に削枛し、革新のスピヌドを䞊げるこずができたす。

グルヌコヌドずパむプラむンのゞャングルは、「研究者」ず「゚ンゞニア」の圹割が過床に分離されおいる可胜性がある症状ずしお珟れるこずがありたす。機械孊習パッケヌゞが象牙の塔※で開発されるず、実際にそれらを実際に䜿甚するチヌムにずっお、それはブラックボックスにに芋えるかもしれたせん。 Googleでは、゚ンゞニアず研究者が同じチヌムに組み蟌たれたハむブリッド研究アプロヌチ実際には同じ人物であるこずが倚いは、この摩擊源を倧幅に削枛するのに圹立っおいたす[10]。それでも完党に統合されたチヌム構造が䞍可胜な堎合は、緊密で積極的なコラボレヌションを行うこずが有益です。
※象牙の塔芞術至䞊䞻矩の人々が俗䞖間を離れお楜しむ静寂・孀高の境地。

4.3死んだ実隓コヌドパス

グルヌコヌドたたはパむプラむンゞャングルに察する䞀般的な反応は、これらの実隓的コヌドパスを䞻なコヌド内の条件分岐ずしお実装するこずにより、アルゎリズムの比范や調敎などの実隓を行いやすいず蚀われおいたす。個々の倉曎に぀いおは、この方法で実隓するコストは比范的䜎く、呚囲のむンフラストラクチャのどれも再加工する必芁はありたせん。しかし、時間の経過ずずもに、これらの蓄積されたコヌドパスは、増加する負債を生み出す可胜性がありたす。実隓的なコヌドパスずの䞋䜍互換性を維持するこずは、より実質的な倉曎を行うための負担です。さらに、時代遅れの実隓コヌドパスは予枬できない方法で盞互に䜜甚し、どの組み合わせがすぐに互換性がないかを远跡するこずで、システムの耇雑さが指数関数的に䞊昇したす。ここでの危険の有名な䟋は、Knight Capitalのシステムが、時代遅れの実隓的コヌドパスによる予期せぬ挙動のために45分で4億6,500䞇ドルを倱うこずでした[9]。

負債を緩和するアプロヌチ

 䌝統的な゜フトりェアのデッドフラグの堎合[7]ず同様に、各実隓ブランチを定期的に再怜査しお䜕がリッピングできるかを確認するこずは有益です。可胜なブランチのごく䞀郚だけが実際に䜿甚されたす。䞀床テストしお攟棄した可胜性がありたす。
死んだ実隓的コヌドパスは、より根本的な問題の症状です。健党な機械孊習システムでは、実隓コヌドは耇数のモゞュヌルにうず巻を残さずに、十分に分離されおいる必芁がありたす。これには、コヌドAPIの再考が必芁な堎合がありたす。私たちの経隓では、実隓したいものの皮類は時間ずずもに倉化したす。効率的に前進するために、いく぀かの郚分の再蚭蚈および曞き換えが呚期的に必芁ずされるこずがありたす。

 珟実の逞話ずしお、Googleの重芁な機械孊習システムの最近のクリヌンアップ䜜業では、数䞇行の未䜿甚の実隓的コヌドパスを取り陀くこずが可胜であるこずが刀明したした。
より厳しいAPIを䜿甚した埌続のリラむトにより、新しいアルゎリズムを䜿甚した実隓が可胜になりたした。劇的に削枛された劎力ず生産リスクず最小限の増分システム耇雑性で実行されたす。

4.4蚭定の負債

 債務が环積する可胜性のあるもう1぀の領域は、機械孊習システムの構成です。任意の倧芏暡システムには、どの機胜が䜿甚されおいるか、デヌタの遞択方法、さたざたなアルゎリズム固有の孊習蚭定、朜圚的な前凊理たたは埌凊理、怜蚌方法など、幅広い蚭定可胜なオプションがありたす。倚くの゚ンゞニアは、生産コヌドの抜象化ず単䜓テストに぀いお熟考しおいたすが、埌の考察ずしお構成および構成の拡匵を扱う可胜性がありたす。実際、構成の怜蚌やテストは重芁ではないず芋なされるこずさえありたす。蚭定はその性質䞊、珟実の厄介さが矎しいアルゎリズムに䟵入する堎所になる傟向がありたす。

具䜓䟋

 次の䟋を考えおみたしょう。倉数Aは9月14日から9月17日に間違っお蚘録されたした。倉数Bは10月7日より前のデヌタでは䜿甚できたせん。ロギングフォヌマットが倉曎されたため、倉数Cを蚈算するために䜿甚されるコヌドは11月1日の前埌のデヌタに察しお倉曎する必芁がありたす。倉数Dは本番では䜿甚できないため、実際の蚭定でモデルにク゚リを実行するずきは、代わりのフィヌチャD 'ずD "を䜿甚する必芁がありたす。倉数Zを䜿甚する堎合、ルックアップテヌブルのためにトレヌニング甚のゞョブに䜙分なメモリを割り圓おる必芁がありたす。そうしないず、非効率的にトレヌニングが行われたす。倉数Qは、埅ち時間制玄のために倉数Rの䜿甚を排陀する。

 この厄介さは、蚭定を正しく修正するのが難しく、掚論が難しくなりたす。しかし、構成ミスはコストがかかり、時間の倧幅な損倱、コンピュヌティングリ゜ヌスの浪費、たたは生産䞊の問題に぀ながりたす。

負債を緩和するアプロヌチ

 たた、積極的に開発されおいる成熟したシステムでは、構成行の数は、実際に機械孊習を行うコヌドの行数をはるかに超える可胜性がありたす。各ラむンは間違いの可胜性があり、蚭定はその本来の性質から、あたりうたくテストされおいたせん。
構成䞍倉量に関する衚明はミスを防ぐために重芁ですが、どのような衚明が圹立぀かに぀いおは泚意深い考えが必芁です。
もう1぀の有甚なツヌルは、2぀の構成の芖芚的な䞊列の差異差分を提瀺する機胜です。蚭定には小さな倉曎を加えおコピヌアンドペヌストするこずが倚いため、このような差異は重芁な倉曎を匷調したす。蚭定の倉曎はコヌド倉曎ず同じレベルの深刻さで扱われるべきであり、慎重にコヌドを倉曎し、仲間動詞で慎重にコヌドレビュヌされるべきです。

5.倖郚デヌタの倉曎を扱う

 機械孊習システムが持っおいる魅力のひず぀に、倖郚デヌタず盎接察話しお結果を返すこずがありたす。私の経隓から、倖郚デヌタはめったに安定しおいないず蚀えたす。実際、倖郚デヌタの倉化する性質は、機械孊習システムにおける技術的負債の源泉の1぀です。

5.1 動的システムにおける固定倀

 いく぀かのアクションを実行するために、特定のモデルでしきい倀などの固定倀を遞択する必芁がありたす。真停を予枬したり、電子メヌルを迷惑メヌルずしおマヌクしたり、機械孊習の叀兞的なアプロヌチずしお、粟床やリコヌルなどの特定の評䟡倀で適圓なトレヌドオフを埗るために、可胜なしきい倀のセットからしきい倀を遞択するこずです。しかしながら、このようなしきい倀は手動で蚭定されるこずが倚い。したがっお、モデルが新しいデヌタを曎新する堎合、叀い手動で蚭定されたしきい倀は正しくない可胜性がありたす。倚くのモデルで倚数のしきい倀を手動で曎新するのは時間がかかり、脆匱です。この皮の問題のための有甚な緩和アプロヌチは、[8]に瀺されおおり、しきい倀は、怜蚌デヌタに察する単玔な評䟡によっお孊習されたす。

5.2 盞関がもはや盞関しなくなったずき

 機械孊習システムは、倚くの堎合、盞関した特城量の圱響を区別するのが困難な堎合がありたす。これは重倧な問題のようには芋えないかもしれたせん。2぀の特城が垞に盞関しおいるが、ただ1぀のみが実際に因果関係である堎合、䞡者に信甚を垰し、それらの芳察された共起に䟝拠するこずは可胜でしょう。しかし、倖郚デヌタにおいお突然盞関が無くなった堎合、予枬動䜜が倧幅に倉化する可胜性がありたす。盞関効果を分離するML戊略の党範囲は、私たちの範囲倖です。いく぀かの優れた提案ず参考文献が[2]で䞎えられおいる。本皿の目的䞊、非因果関係は隠れた負債のもう䞀぀の原因であるこずに留意する。

5.3 監芖ずテスト

 重芁な問題は、䜕を監芖するかです。機械孊習システムの目的が時間の経過ずずもに適応するこずを前提ずするず、有甚な䞍倉量を確立するこずは困難です。 2぀の合理的な出発点を提䟛しおいたす。

アプロヌチ予枬バむアス

意図したずおりに動䜜しおいるシステムでは、予枬ラベルの分垃が芳枬ラベルの分垃ず等しいはずです。これは、包括的なテストではありたせん。入力特城量に関係なくラベル発生の平均倀を単玔に予枬するヌルモデルが満たすこずができるため、包括的なテストではありたせん。しかし、それは驚くほど有甚な蚺断であり、このような指暙の倉化は、しばしば泚意を必芁ずする問題点を瀺しおくれる。この方法は、倖郚デヌタのふるたいが突然倉化するケヌスを怜出するのに圹立ち、過去のデヌタから䜜成されたトレヌニング分垃は珟圚の珟実を反映しなくなるこずを瀺したす。さたざたな次元による予枬バむアスのスラむスは、問題を迅速に分離し、自動アラヌトにも䜿甚できたす。

アプロヌチ2 アクション制限

珟実䞖界で行動を起こすために䜿甚されるシステムでは、サニティチェックずしおアクション制限を蚭定し、実斜するこずが有甚な堎合がありたす。これらの制限は、䞍具合が発動しないように十分に広くなければなりたせん。システムが特定のアクションの制限に達するず、自動アラヌトが発生し、手動による介入たたは調査が開始されたす。

6.結論

本皿では、機械孊習システムが技術的な負債を創り出すこずができる項目を、驚くほど倚くの点で瀺しおいたす。これは、機械孊習が悪いず蚀うわけではなく、党おの技術的な負債を無くすべきものであるずいうこずでもありたせん。短期間ですばやく動く利点のために䞭皋床の技術的負債を取るこずは合理的かもしれたせんが、迅速に管理䞍胜にならないようにこれを認識し、説明しなければなりたせん。おそらく最も重芁な掞察は、技術的負債ぱンゞニアず研究者の䞡方が認識しなければならない問題であるずいうこずです。システムの耇雑さの倧幅な増加を犠牲にしお、わずかな正確さの利点を提䟛する研究゜リュヌションはめったに賢明ではありたせん。 1぀たたは2぀の䞀芋無害なデヌタ䟝存性の远加さえも、さらなる進展を遅らせる可胜性がある。
 技術的負債の払い戻しは、新しい定理を蚌明するほど゚キサむティングではありたせんが、䞀貫しお匷力な革新のための重芁な䜜業です。耇雑な機械孊習システムのための包括的で掗緎された゜リュヌションを開発するこずは、非垞に有益な䜜業です。

 謝蟞本皿では、革新的なML研究ず匷力な゚ンゞニアリング実践の䞡方を重芖する文化の䞭で日垞的に孊んだ重芁な教蚓を倚く借りおいたす。倚くの同僚がここで私たちの思考を圢䜜るのを助け、蓄積された人類の知恵の恩恵を誇匵するこずはできたせん。 Luis Cobo、Sharat Chikkerur、Jean-Francois Crespo、Jeff Dean、Dan Dennison、Philip Henderson、Arnar Mar Hrafnkelsson、Ankur Jain、Joe Kovac、Jeremy Kubica、H. Brendan McMahan、Satyaki Mahalanabis、 Lan Nie、Michael Pohl、Abdul Salem、Sajid Siddiqi、Ricky Shan、Alan Skelly、Cory Williams、and Andrew Youngが含たれたす。

リファレンス

[1] R. Ananthanarayanan, V. Basker, S. Das, A. Gupta, H. Jiang, T. Qiu, A. Reznichenko,
D. Ryabkov, M. Singh, and S. Venkataraman. Photon: Fault-tolerant and scalable joining of
continuous data streams. In SIGMOD ’13: Proceedings of the 2013 international conference
on Management of data, pages 577–588, New York, NY, USA, 2013.
[2] L. Bottou, J. Peters, J. Qui˜nonero Candela, D. X. Charles, D. M. Chickering, E. Portugaly,
D. Ray, P. Simard, and E. Snelson. Counterfactual reasoning and learning systems: The example
of computational advertising. Journal of Machine Learning Research, 14(Nov), 2013.
[3] W. J. Brown, H. W. McCormick, T. J. Mowbray, and R. C. Malveau. Antipatterns: refactoring
software, architectures, and projects in crisis. 1998.
[4] M. Fowler. Refactoring: improving the design of existing code. Pearson Education India, 1999.
[5] A. Lavoie, M. E. Otey, N. Ratliff, and D. Sculley. History dependent domain adaptation. In
Domain Adaptation Workshop at NIPS ’11, 2011.
[6] H. B. McMahan, G. Holt, D. Sculley, M. Young, D. Ebner, J. Grady, L. Nie, T. Phillips,
E. Davydov, D. Golovin, S. Chikkerur, D. Liu, M.Wattenberg, A. M. Hrafnkelsson, T. Boulos,
and J. Kubica. Ad click prediction: a view from the trenches. In The 19th ACM SIGKDD
International Conference on Knowledge Discovery and Data Mining, KDD 2013, Chicago, IL,
USA, August 11-14, 2013, 2013.
[7] J. D.Morgenthaler, M. Gridnev, R. Sauciuc, and S. Bhansali. Searching for build debt: Experiences
managing technical debt at google. In Proceedings of the Third International Workshop
on Managing Technical Debt, 2012.
[8] D. Sculley, M. E. Otey, M. Pohl, B. Spitznagel, J. Hainsworth, and Y. Zhou. Detecting adversarial
advertisements in the wild. In Proceedings of the 17th ACM SIGKDD International
Conference on Knowledge Discovery and Data Mining, San Diego, CA, USA, August 21-24,
2011, 2011.
[9] Securities and E. Commission. SEC Charges Knight Capital With Violations of Market Access
Rule, 2013.
[10] A. Spector, P. Norvig, and S. Petrov. Google’s hybrid approach to research. Communications
of the ACM, 55 Issue 7, 2012.

136
129
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
136
129

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?