怜玢で他にできるこずは䜕ですか Yandexレポヌト

Yandexには、MapReduceに怜玢ベヌスを構築する怜玢コンポヌネント開発サヌビスがあり、レンダリング甚の組版デヌタを提䟛し、アルゎリズムずデヌタ構造を生成し、品質向䞊のML問題を解決したす。 このサヌビス内のグルヌプの1぀の責任者であるAlexey Shlyunkinは、怜玢ランタむムの構成芁玠ずその管理方法に぀いお説明したす。





MLで突砎したい-突砎したす。 MapReduceのみが必芁です-わかりたした。 ランタむムが欲しい-ラン​​タむム。


-今日の怜玢ずは䜕ですか Yandexは、怜玢を実行しお開発を開始したした。 20幎が経ちたした。 数千億のドキュメントの怜玢ベヌスがありたす。



ドキュメントをむンタヌネット䞊の任意のペヌゞず呌びたすが、実際にはそれだけではありたせん。 それでも-その内容、どのナヌザヌが圌女に行きたいかに぀いおのさたざたな統蚈、それらの数。 さらに、蚈算したデヌタ。



たた、各リク゚ストに応じおデヌタを凊理し、䜕かを怜玢し、怜玢レスポンスを充実させる䜕䞇ものむンスタンスがありたす。 写真を探しおいるむンスタンス、通垞のテキスト文曞を探しおいるむンスタンス、ビデオを探しおいるむンスタンスなどがありたす。぀たり、リク゚ストごずに䜕䞇台ものマシンが起動されたす。 圌らは皆、䜕かを芋぀け、あなたに瀺される結果を改善しようずしたす。 したがっお、䜕䞇台ものマシンが1秒あたり䜕千ものリク゚ストを凊理したす。 これらの数䞇のむンスタンスは、問題を解決するために蚭蚈された数癟のサヌビスに結合されたす。







コア怜玢がありたす-りェブ怜玢サヌビス。 たた、ビデオ怜玢サヌビスなどがありたす。したがっお、さたざたな怜玢の回答を組み合わせお、ナヌザヌに衚瀺するのに適したものず順序を遞択しようずするものがありたす。 これが音楜に関する䜕らかのリク゚ストである堎合は、Yandex.Musicを最初に衚瀺し、次にこの音楜グルヌプに関するペヌゞを衚瀺する方がおそらく良いでしょう。 これはブレンダヌず呌ばれたす。 そのようなサヌビスはすでに䜕癟もあり、リク゚ストごずに䜕かをしお、䜕らかの圢でナヌザヌを助けようずしたす。 そしおもちろん、これはすべお、単玔な統蚈、線圢モデル、募配ブヌスティング、ニュヌラルネットワヌクなど、あらゆる皮類の機械孊習を䜿甚したす。



むンフラストラクチャずMLに぀いお今すぐお話したす。



私のグルヌプは新しいランタむム開発グルヌプず呌ばれ、怜玢コンポヌネント開発サヌビスの䞀郚です。 あなたがアむデアを持っおいるために、私たちのサヌビスが䜕をするかを少しお話ししたす。







実際、みんなに。 怜玢を送信するず、怜玢ベヌスの構築から始めお、ほがすべおのものに手を出したした。 ぀たり、MapReduceがあり、そこにあるドキュメントに関するすべおのデヌタを収集し、それを沞隰させ、あらゆる皮類のデヌタ構造を構築したす。 したがっお、私たちは、ドキュメントが最初に到達したずきの䞀番䞋から、最初の段階で、これらのドキュメントが䜕かを埗おランク付けするずき、そしおレむアりトが条件付きJSONを受け取り、すべおの写真や矎しいもので描画する䞀番䞊から䜜業したす。 䞋から䞊に、スタック党䜓で䜕かを開発しおいたす。



しかし、私たちはコヌドを曞いおいるだけではなく、したがっお、むンフラストラクチャでこれらすべおを行っおいたす。 実際にニュヌラルネットワヌク、CatBoostをトレヌニングしおいたす。 そしお、あなたが想像しお燃やすこずができる他のMLの事柄も教えたす。 それでも、私たちは倧きな負荷ず倧きなデヌタを持っおいるので、もちろん、アルゎリズム、デヌタ構造を調べ、どこかにそれらを導入するこずを決しお制限したせん。 たずえば、いく぀かの堎所でセグメントツリヌを䜿甚したす。 ホり玠を構築するむンデックスの独自の圧瞮があり、それに応じお蟞曞を構築する最適な方法のダむナミクスを考慮したす。



䞀般に、怜玢などの巚倧な巚像を扱うず、このような単玔なタスクで飜和状態になりたした。 したがっお、私たちはもちろん、耇雑で新しいもの、私たちに挑戊するものを厇拝したす。 そしお、い぀ものように10行のコヌドを䜜成するだけではありたせん。 いく぀かの実隓に぀いお考える必芁がありたす。 䞀般に、私たちが自分で蚭定するタスクは、しばしばフィクションの危機にonしおいたす。 時々あなたは思うそれはおそらく䞍可胜です。 しかし、その埌、おそらく、䜕らかの圢で実隓されたした-実隓には1幎かかるこずがありたす-しかし、最終的には䜕かが刀明したす。 その埌、私たちは䜕かを導入し、改造し始めたす。



そしお、プロゞェクト、スキルなどに加えお、䞀般的に、私たちはYandexで最も野心的で急速に成長しおいるチヌムの1぀です。 たずえば、私は2幎前に来お、私たちのサヌビスの9番目の人でした。 珟圚、玄60人のサヌビスを提䟛しおいたす。 実際、これは研修生によるものですが、䞀般的には、2幎で4倍になりたした。 これは、圓瀟のサヌビスが䜕をしおいるのかを知るためのものです。



ここで、私たちのタスクのトップず、私には思えるように、近い将来、私たちはたすたす関連性を増す方向に぀いおお話したいず思いたす。 ただし、このためには、最初に最も基本的な怜玢レむダヌがどのように機胜するかを簡単に説明する必芁がありたす。







䞀般的に、すべおが非垞に簡単に機胜したす。 怜玢ベヌスずすべおのドキュメントがあり、これらすべおのドキュメントをほが均等にN個に分割したす。 それらは砎片ず呌ばれたす。 そしお、「基本怜玢」ず呌ばれるプログラムがシャヌド䞊で起動されたす。 圌女の仕事は、むンタヌネットのこの郚分でそれぞれ怜玢を実行するこずです。 ぀たり、圌女はそれを怜玢する方法を知っおいお、他のむンタヌネットに぀いおこれ以䞊䜕も知りたせん。 そしお、そのようなN個のシャヌドがありたす。 基本怜玢がそれらの䞊に起動され、それに応じおメタ怜玢がありたす。 ナヌザヌのリク゚ストはそれに該圓し、それに応じお、すべおのシャヌドに移動し、各シャヌドが怜玢を実行し、それぞれが結果を返し、䜕らかのマヌゞを実行しお回答を返したす。



これが、ほが20幎間すべおの怜玢が行われた方法であり、䞀般的に、圌らは長い間、これはそのたたであり、これ以䞊䜕もできないず考えおいたした。 しかし、すべおが倉化しおおり、新しいテクノロゞヌが出珟しおおり、機械孊習により品質が向䞊するだけでなく、䜕らかのむンフラストラクチャの問題を解決できるようになりたした。 最近、私たちの怜玢では、むンフラストラクチャず機械孊習の接点でプロゞェクトが非垞に倚く撮圱されたした。 このようなマストドンが2぀合䜓するず、非垞に興味深い結果が埗られたす。







最近、ニュヌラルネットワヌクが登堎したした。 リク゚ストのテキストがあり、ドキュメントのテキストがありたす。 リク゚ストから数倀のベクトルを取埗し、ドキュメントから数倀のベクトルを取埗しお、スカラヌ積が必芁な倀を予枬するようにしたす。 たずえば、スカラヌ積をトレヌニングしお、ナヌザヌがこのドキュメントをクリックする確率を予枬したす。 かなり理解できるこずです。







ほがこのように配眮されたす。 非垞に倱瀌な堎合、最䞋局にいく぀かの単語があり、ネットワヌクのいく぀かの局がありたす。 実際、各レむダヌはベクタヌを入力ずしお受け取りたす。 ぀たり、最䞋局はそのような疎ベクトルであり、各単語はリク゚ストです。 それを行列で乗算し、ある皮のベクトルを取埗しおから、それに応じお各コンポヌネントに非線圢性を適甚し、これを数回行いたす。 そしお最埌のレむダヌ、これはリク゚ストを受け取ったばかりのベクタヌず呌ばれ、そのようなレむダヌを適甚したした。ここで最埌のレむダヌはたさにリク゚ストベクタヌです。



したがっお、これらのニュヌラルネットワヌクはここ数幎、怜玢に積極的に導入されおおり、品質に倚くの利点をもたらしたした。 しかし、予枬したいすべおの倀が良奜であるずいう1぀の問題がありたすが、そのようなニュヌラルネットワヌクをトレヌニングするために最䞋局は非垞に倧きいため、すべおの単語は数千䞇の単語であるため、曞く必芁がありたす圌女は数十億のデヌタを入力したした。



たずえば、䞀郚のナヌザヌクリックに぀いおトレヌニングするこずができたす。 しかし、私たちの怜玢で最も重芁ず考えられる䞻な信号は、特別な人による手動マヌキングです。 圌らはリク゚ストを受け取り、ドキュメントを取り、それを読み、それがどれほど良いかを理解し、マヌク、぀たり、このドキュメントがこのリク゚ストにどれだけ適合するかをマヌクしたす。 地球党䜓を絶えずマヌクアップするために雇うのは非垞に費甚がかかるので、長い間、ニュヌラルネットワヌクでそのような芏暡を予枬するこずはできたせんでした。 そのため、ハッキングを行いたした。







ニュヌラルネットワヌクのニュヌラルネットワヌク。 過去数幎にわたっお、私たちは良い信号を予枬するいく぀かのニュヌラルネットワヌクをかなり蓄積しおきたしたが、特別な人の評䟡よりも少しラフです。 したがっお、これらのネットワヌクの既補のベクトルを䞋䜍局に送信し、ニュヌラルネットワヌクをトレヌニングしお、より小さなデヌタネットワヌクでのみ怜玢の関連性を予枬するこずにしたした。



結果は非垞に良いモデルでした。 圌女はドキュメントのリク゚ストをベクトルに導き、そのスカラヌ積は、私たちが長幎予枬しおきた本圓の関連性を盎接予枬したす。



さらに、怜玢を少しやり盎す方法も考えたした。 このプロゞェクトは、KNNベヌス英語のk最近傍法、k最近傍法ず呌ばれたす。







基本的な考え方はこれです。 ク゚リベクトルずドキュメントベクトルがありたす。 最も近いものを芋぀ける必芁がありたす。 各ドキュメントはベクトルで衚されたす。 ドキュメントのスペヌス党䜓を特城付けるN個のクラスタヌを匷調衚瀺したしょう。 倧たかに蚀っお。 ドキュメントの数よりも非垞に少ないですが、たずえば、トピックを特城付けたす。 簡単に蚀えば、猫のクラスタヌ、食料品のクラスタヌ、プログラミングのクラスタヌなどがありたす。



したがっお、以前のようにドキュメントをシャヌドにランダムに分散させるこずはありたせんが、ドキュメントをそのシャヌド、぀たり重心がドキュメントに最も近い堎所に配眮したす。 したがっお、シャヌド内のトピックごずにグルヌプ化されたそのようなドキュメントがありたす。



そしお、リク゚ストを求めるだけで、すべおのシャヌドに移動するこずはできたせんが、このリク゚ストに最も近い䞀郚のサブセットにのみ移動できたす。







したがっお、このようなスキヌムがあり、メタ怜玢はすべおのシャヌドに含たれおいたす。 そしお今、圌はもっず少ない数に行く必芁がありたすが、同時に最も近い文曞を探したす。



このデザむンから実際に埗られるものは䜕ですか クラスタヌの数が少ないため、コンピュヌティングリ゜ヌスの消費が倧幅に削枛されたす。 これは、すでに述べたように、私たちのサヌビスのハむラむトの1぀です。これは、これたで誰も考えられなかった結果をもたらすむンフラストラクチャず機械孊習の合金です。







そしお最埌に、ここでモデルを入手しおから、怜玢党䜓をやり盎し、ペタバむトのデヌタをオフにし、怜玢が機胜するため、10分の1のリ゜ヌスしか消費しないため、非垞に楜しいこずです。 あなたは䌚瀟のために10億ドルを節玄したした、誰もが幞せです。







私たちの怜玢で発生し、䞭断された幎のすべおの実隓ず䞀緒に実装および実行されおいるプロゞェクトの1぀に぀いお話したした。 他の兞型的なタスクは、怜玢ベヌスを2倍にするこずです。これは、むンタヌネットが絶えず成長しおおり、それに远い぀き、むンタヌネット䞊のすべおのペヌゞを怜玢するためです。 そしおもちろん、これはベヌス局の加速であり、ほずんどの堎合、ほずんどの鉄がありたす。 たずえば、ベヌス怜玢を1高速化するず、玄100䞇ドルを節玄できたす。



たた、スタヌトアップむンキュベヌタヌずしお怜玢に取り組んでいたす。 説明したす。 怜玢は20幎間行われおいたす。 それはすでに倚くのこずを行っおおり、䜕床も行き止たりに立ち向かい、これ以䞊䜕もできないず考えたした。 その埌、長い䞀連の実隓がありたした。 私たちは再びこの行き止たりを突砎したした。 そしおこの間、私たちは倧きくおクヌルなこずをする方法に぀いお倚くの専門知識を蓄積しおきたした。 したがっお、Yandexの新しい方向のほずんどは、怜玢で行われたす。怜玢の人々はすでにこれをすべお行う方法を知っおいるためです。少なくずも新しいシステムを蚭蚈するように䟝頌するこずは論理的です。 そしお、最倧限に-自分で行っおください。



さお、あなたが私たちの仕事に぀いお少し知っおいただければ幞いです。 私のサヌビスのむンタヌンに぀いお、私のストヌリヌの䞻題郚分をすぐに説明したす。 ずおも気に入っおいたす。 たくさんありたすが、去幎の倏は私のグルヌプだけで20人の研修生がいたしたが、これは良いこずだず思いたす。 1〜3人のむンタヌンをずるずき、圌らは少し孀独を感じ、時には幎䞊の仲間に尋ねるこずを恐れたす。 そしお、それらの倚くがあるずき、圌らは䞍幞な同志ずしお互いに通信したす。 圌らが開発者に䜕かを尋ねるこずを恐れるなら、圌らは行くでしょう、圌らは隅でささやきたす。 このような雰囲気は、すべおを効率的に行うのに圹立ちたす。



私たちには100䞇のタスクがあり、チヌムはそれほど倧きくないので、むンタヌンは満員です。 垞にログに座っおテストを曞き、コヌドをリファクタリングするように研修生に䟝頌するのではなく、すぐに䜕らかの耇雑な制䜜タスクを䞎えたす怜玢の高速化、むンデックス圧瞮の改善。 もちろん助けたす。 私たちはこれがすべお報われるこずを知っおいるので、私たちは専門知識を喜んで共有したす。 私たちの掻動分野は非垞に広範囲であるため、私たちはそれぞれ自分の奜みに合った仕事を芋぀けるでしょう。 MLで突砎したい-突砎したす。 MapReduceのみが必芁です-わかりたした。 ランタむムが欲しい-ラン​​タむム。 䜕かありたす。



あなたは私たちに䜕を埗る必芁がありたすか 䞻にC ++ずPythonですべおを行いたす。 䞡方を知る必芁はありたせん。 アルゎリズムの知識を歓迎したす。 それはある皮の考え方を圢成し、倚くのこずを助けたす。 しかし、これも必芁ではありたせん。繰り返したすが、私たちはすべおを教える準備ができおおり、時間を投資する準備ができおいたす。 私たちのモットヌである最も重芁な芁件は、䜕も恐れず、倚くのこずを理解するこずです。 生産を萜ずすこずを恐れないでください。耇雑なこずを始めるこずを恐れないでください。 したがっお、私たちはたた、䜕も恐れず、山を曲がる準備ができおいる人々を必芁ずしたす。 どうもありがずう。



All Articles