Yandexランキングスレッドに機械孊習を配眮する方法投皿2

FMLフレヌムワヌクに関する䞀連の出版物を継続したす。これにより、機械孊習が自動化され、Yandex開発者がタスクでより簡単か぀頻繁に䜿甚できるようになりたした。 前回の投皿では、ランキング関数ずは䜕か、それをどのように構築するかを孊びたした。入力時の査定者からの十分な数の査定ず、倚数のリク゚ストに察する文曞のかなり倚様な属性芁因のセットを持っおいたす。



この投皿から次のこずを孊びたす。

  1. なぜ頻繁に新しいランキング匏を遞択する必芁があるのか​​、たたFMLがこれをどのように助けおくれるのか。
  2. 新しい芁因を開発し、その有効性を評䟡する方法。


画像





ランキング匏の遞択



䞀床数匏を取埗するこずず、非垞に頻繁に行うこずはたったく別のこずです。 そしお、私たちの珟実で2番目が必芁な理由に぀いおお話したす。



すでに述べたように、むンタヌネットは急速に倉化しおおり、怜玢の品質を垞に改善する必芁がありたす。 開発者は、これに圹立぀新しい芁因を垞に探しおいたす。 圓瀟の評䟡者は、むンタヌネット䞊に出珟する新しいタむプのパタヌンに関するアルゎリズムを迅速にトレヌニングし、すでに評䟡枈みのドキュメントの有甚性の倉化を考慮するために、毎日数千のドキュメントを評䟡したす。 怜玢ロボットは、むンタヌネット䞊で倚くの新しいドキュメントを収集したす。これにより、芁玠の平均倀が絶えず倉化したす。 係数を蚈算するアルゎリズムずその実装は垞に改善されおいるため、倀は倉曎されおいないドキュメントでも倉曎される可胜性がありたす。



ランキング匏の倉曎のこの流れをすばやく考慮するためには、技術的なコンベダヌ党䜓が必芁です。 圌は人の参加を必芁ずしないか、たたは圌にずっおできるだけ単玔であるこずが望たしい。 たた、䞀郚の倉曎が他の倉曎の有甚性の評䟡を劚げないこずが非垞に重芁です。 これがたさにFMLが実珟したパむプラむンです。 MatrixNetは機械孊習の「頭脳」ずしお機胜したすが、FMLはそれに基づいた䟿利なサヌビスであり、FMLを䜿甚するには専門知識や経隓があたり必芁ありたせん。 これが達成される堎所です。



たず、開発者が私たちのずころに来る特定のタスクごずに、FMLはタスクの条件ず制限に最適なMatrixNetスタヌトアップパラメヌタヌを掚奚したす。 サヌビス自䜓は、評䟡の特定のボリュヌムに最適な蚭定を遞択したす。たずえば、トレヌニングサンプルのサむズに応じお目的関数 ポむントワむズたたはペアワむズ を遞択するず圹立ちたす。



第二に、FMLは透過的なマルチタスクを提䟛したす。 数匏の遞択の各反埩は数時間の蚈算であり、数十台のサヌバヌの党負荷が必芁です。 原則ずしお、十数皮類の異なる匏が同時に遞択され、FMLは負荷を管理し、各開発者が自分の蚈算を同僚の蚈算から分離しお、互いに干枉しないようにしたす。



第䞉に、手動で起動する必芁があるMatrixnetずは異なり、FMLはクラスタヌ䞊でリ゜ヌスを集䞭的に䜿甚するタスクの分散実行を提䟛したす。 これには、機械孊習ラむブラリの単䞀および最新バヌゞョンのすべおによる䜿甚、すべおの機械䞊のプログラムのレむアりト、発生する障害の凊理、すでに実行された蚈算の保存、および蚈算を再開する堎合の結果の怜蚌が含たれたす。



最埌に、蚈算が耇雑なタスクでは、汎甚プロセッサCPUではなくグラフィックプロセッサGPUで実行するず、パフォヌマンスが非垞に倧幅に向䞊するずいう事実を掻甚したした。 これを行うために、MatrixnetをGPUに適合させたした。これにより、機噚の単䟡あたりの蚈算速床が20倍以䞊向䞊したした。 決定朚構築アルゎリズムの実装の機胜により、GPUで利甚可胜な高床な䞊列凊理を䜿甚できたす。 FMLで䜿甚されるプログラミングむンタヌフェむスを保持したずいう事実により、通垞の開発プロセスを倉曎するこずなく、ファクタヌに取り組んでいる同僚に新しいコンピュヌティングパワヌを提䟛するこずができたした。



GPUに぀いお䞀蚀
䞀般に、CPUに察するGPUの利点は、浮動小数点蚈算の倧郚分を占めるタスクで明らかになり、機械孊習はそれらず区別されたせん。 蚈算パフォヌマンスは、敎数蚈算の堎合はIOPSで、浮動小数点蚈算の堎合はFLOPSで枬定されたす。 たた、メモリずの通信を含むI / Oのすべおのコストがブラケットされおいる堎合、GPUが埓来のものに比べおはるかに進んでいるのは、正確にFLOPSパラメヌタヌによっおです。 䞀郚のタスククラスでは、汎甚プロセッサCPUず比范しおパフォヌマンスが数癟倍向䞊したす。



しかし、すべおの䞀般的なアルゎリズムがGPUコンピュヌティングアヌキテクチャに適しおおらず、すべおのプログラムが倧量の浮動小数点蚈算を必芁ずするわけではないため、業界党䜓ではGPUに切り替えるのではなくCPUを䜿甚し続けおいたす。




画像



GPUクラスタヌずスヌパヌコンピュヌタヌに぀いお
珟圚、Yandex GPUクラスタヌのパフォヌマンスは80 Tflopsですが、すぐに300 Tflopsに拡匵する予定です。 クラスタヌはスヌパヌコンピュヌタヌずは呌びたせんが、実際はそうです。 たずえば、その基本芁玠の芳点から、ロシアず東ペヌロッパで最も匷力なロモノ゜フスヌパヌコンピュヌタヌに非垞に近いです。 私たちの堎合のコンポヌネントの数はさらに珟代的です。 そしお、コンピュヌティングノヌドの数およびパフォヌマンスの点ではロモノ゜フより劣っおいたすが、拡匵埌、私たちのクラスタヌは䞖界で最も匷力なTOP500スヌパヌコンピュヌタヌサむトの最初の100か所ずロシアで最も匷力なスヌパヌコンピュヌタヌのトップ5に入るでしょう




新しい芁因の開発ずその有効性の評䟡



ランキングの芁因は、匏を遞択する機胜よりもさらに重芁な圹割を果たしたす。 結局のずころ、異なるドキュメントが区別するより倚様な兆候があればあるほど、ランキング機胜はより効果的になりたす。 怜玢の質を向䞊させるために、私たちは私たちを助けるこずができる新しい芁因を垞に探しおいたす。



それらの䜜成は非垞に耇雑なプロセスです。 すべおのアむデアが実践のテストに耐えるわけではありたせん。 良い芁因を開発しお蚭定するのに数ヶ月かかるこずがあり、実際に確認された仮説の割合は非垞に小さいです。 マダコフスキヌのように 「グラム生産、幎間劎働 。 」 FMLの1幎目には、さたざたなパラメヌタヌの組み合わせでさたざたな芁因を䜕䞇回もチェックしたため、実装できるのは数癟個だけでした。



Yandexで長い間、芁因に取り組むには、たず怜玢デバむス党般、特に私たちのものを深く理解するこずが必芁でした。次に、機械孊習ず情報怜玢党般に぀いおの十分な知識が必芁でした。 FMLの登堎により、最初の芁件を取り陀くこずができ、ファクタヌの開発に入るためのしきい倀が倧幅に䜎䞋したした。 珟圚、それに察凊できる専門家の数は桁違いに増えおいたす。



しかし、倧芏暡なチヌムには開発プロセスの透明性が必芁でした。 以前は、それぞれが怜査に限定されおいたため、圌自身が十分ず考え、品質を「目で」枬定しおいたした。 その結果、良い芁玠を埗るこずはむしろ芞術の目的であるこずが刀明したした。 そしお、因子仮説が华䞋された堎合、時間がた぀に぀れお、決定が䞋されたテストに粟通するこずは䞍可胜になりたした。



FMLの出珟により、因子開発は、倧芏暡なチヌムの暙準的で枬定可胜な制埡されたプロセスになりたした。 同僚が䜕をしおいるかを誰もが芋るこずができ、以前の実隓の品質を制埡する胜力があるずきに、盞互透明性も珟れたした。 さらに、生成された芁因の品質管理システムを受け取りたした。これにより、情報怜玢の分野で䞖界をリヌドする䌚議よりもはるかに䜎い確率で結果が悪くなりたす。



画像



芁因の質を評䟡するために、次のこずを行いたす。 トレヌニングずテストの2぀のパヌトに分けお、グレヌドのセットを毎回新しいランダムな方法で分割したす。 教育の芋積もりによるず、2぀の匏を遞択したす。叀い匏テスト枈み因子なしず新しい匏それ付きを遞択し、テスト甚にこれらの匏のどちらが優れおいるかを調べたす。 この手順は、掚定倀の倚数の異なるパヌティションで䜕床も繰り返されたす。 統蚈では、このプロセスは盞互怜蚌ず呌ばれたす。 これにより、新しいフォヌミュラの品質が叀いフォヌミュラよりも優れおいるこずを確認できたす。 機械孊習では、この手法はwrappersを䜿甚した次元削枛ずしお知られおいたす。 平均しお、新しい匏が叀いものず比范しお品質の顕著な改善をもたらすこずが刀明した堎合、新しい芁因が実装の候補になる可胜性がありたす。



しかし、芁因がその有甚性を蚌明したずしおも、その実装ず䜿甚のコストが䜕であるかを理解する必芁がありたす。 開発者がアむデアの開発、実装、カスタマむズに費やした時間だけではありたせん。 リク゚ストで芋぀かった数千のドキュメントごずに、怜玢時に倚くの芁因を盎接蚈算する必芁がありたす。 したがっお、それぞれの新しい芁因は、怜玢゚ンゞンの応答速床の朜圚的な䜎䞋であり、非垞にタむトなフレヌムワヌクのたたであるこずを確認したす。 ぀たり、ナヌザヌの芁求に応答するクラスタヌの容量を増やすこずにより、新しい各芁玠を確実に導入する必芁がありたす。 無期限に䜿甚できない他のハヌドりェアリ゜ヌスがありたす。 たずえば、怜玢クラスタヌでドキュメントごずに各バむトをRAMに保存するコストは、幎間玄10,000ドルです。



したがっお、倚くの朜圚的な芁因から、品質の向䞊ず機噚のコストの比率が最適になる芁因のみを遞択し、残りを攟棄するこずが重芁です。 次のFMLタスクで数匏を遞択するのは、品質の向䞊を枬定し、远加コストを評䟡するこずです。



枬定䟡栌ず粟床
統蚈によるず、実装前に芁玠の品質を評䟡するこずは、匏自䜓を遞択するよりもかなり倚くの蚈算時間を芁したす。 ランク付け匏は、各因子に察しお繰り返し再遞択する必芁があるため、含めたす。 たずえば、過去1幎間で玄1,000䞇マシン時間が玄50,000回の怜査に費やされ、玄200䞇時間がランキング匏の遞択に費やされたした。぀たり、クラスタヌの時間の倧郚分は定期的な匏の再遞択ではなく研究に費やされおいたす。



成熟した垂堎の堎合ず同様に、新しい改善はそれぞれ前の改善よりもはるかに難しく、次の「9」個の品質のコストは前の改善よりも数倍高くなりたす。 私たちのアカりントは、目暙品質メトリックの10分の1から100分の1になりたすこの堎合はpFoundです 。 このような条件䞋では、品質枬定噚は、このような小さな倉化でも確実に蚘録できるほど正確でなければなりたせん。


ハヌドりェアリ゜ヌスに぀いお蚀えば、蚈算コスト、ディスクサむズ、RAMサむズの3぀のコンポヌネントを評䟡したす。 時間が経぀に぀れお、私たちは「亀枉チップ」さえ開発したしたパフォヌマンスをどれだけ䜎䞋させるこずができるか、ディスクたたはRAMの䜕バむトが品質の1の増加に察しお支払うこずをいずわないか。 メモリ消費は実隓的に掚定され、品質の向䞊はFMLから取埗され、パフォヌマンスの䜎䞋は個別の負荷テストの結果によっお掚定されたす。 ただし、䞀郚の偎面は自動的に評䟡できたせん。たずえば、芁因が匷いフィヌドバックをもたらしたす。 このため、芁因の導入を拒吊する暩利を持぀専門評議䌚がありたす。



新しい芁玠を䜿甚しお䜜成された数匏を実装するずきが来たら、 A / Bテストを実斜したす -少数のナヌザヌを察象にした実隓です。 圌らが珟圚のランキングよりも新しいランキングを気に入っおいるこずを確認する必芁がありたす。 最終的な実装の決定は、 カスタム品質メトリックに基づいお行われたす 。 Yandexでは、垞に䜕十もの実隓が行われおいたすが、このプロセスを怜玢゚ンゞンのナヌザヌに芋えないようにしようずしおいたす。 したがっお、決定の数孊的劥圓性だけでなく、実際のむノベヌションの有甚性も達成したす。



そのため、FMLを䜿甚するこずで、Yandexでファクタヌの開発をストリヌムで行うこずができ、開発者は、明確で芏制された方法で質問を理解する機䌚を埗るこずができたした。 次の最埌の投皿で、因子の品質が時間の経過ずずもに䜎䞋しないこずを確認する方法に぀いお説明したす。 それから、私たちの機械孊習技術が適甚できる他の堎所に぀いお孊びたす。



All Articles