【51CTO.comオリジナル記事】 1. 背景紹介---VODソース配信の問題点オンデマンドビデオ視聴のプロセスとソースサイトの定義オンデマンドとは、ライブストリーミングの反対語です。英語ではVOD(Video on Demand)といいます。その名の通り、視聴者が要求した時にのみ動画を視聴できるもので、視聴できる内容は動画の冒頭部分です。 生放送の場合、視聴者がいるかどうかに関係なく、映像はどんどん進んでいき、視聴者が見ているのはその瞬間の映像です。 オンデマンド動画のコンテンツは、テレビシリーズ、映画、スポーツ動画、セルフメディアで制作された動画、さらには短編動画(現在非常に人気があります)など、非常に多様です。 ビデオオンデマンドを開くたびに、その背後でどのような操作が行われているのか考えたことがありますか? 簡単に説明すると次のようになります。
実際、状況はそれほど単純ではない ビデオ ウェブサイトが提供するオンデマンド リソースまたはファイルは、購入またはレンタルできる自社のサーバーに保存されます。 これらのファイルを保存するサーバー クラスターは、オリジン サーバーと呼ばれます。 これらのビデオ ファイルは実際にはユーザーが直接アクセスすることはできませんが、CDN を通じて段階的に配布されるため、これらのストレージ クラスターは CDN への接続も担当します。 そのため、オリジンサイトは保存とCDNとの接続を担当します。ここで役割分担が行われます。動画サイトは動画の著作権を所有し、CDNは配信を得意としています。 次に、オンデマンド動画やショート動画に対応した動画サイトの処理フローを見てみましょう。 プロセスは次のとおりです。
オリジンサーバーとCDNのネットワークトポロジ私たちは以下の事実を知っています:
さらに、ビデオ Web サイトの場合、必要なビデオ ファイルのコピーは 1 つまたは 2 つだけです (もちろん、ビデオ会社はコールド バックアップやホット バックアップなどを実行するため、ディスク上の実際のストレージはそれほど小さくはありません。この詳細はストレージの高可用性のカテゴリに属するため、詳しく説明しません)。 データを異なるコンピュータ ルームに保存し、単一のデータ コピーを複数の CDN に同時に送信するには、ソース サイト内でマルチレベル キャッシュ構造を使用する必要があります。 内部配信とは、ビデオ ソース ステーション内の複数のキャッシュ間、つまり複数のコンピュータ ルーム間の配信を指します。 ビデオソースサイト(L2 クラスター)と CDN アクセスポイント間の配信を外部配信と呼びます。通常、L2 クラスタを CDN アクセス ポイントに接続すると、オペレータのコンピュータ ルームでも高品質の回線が選択されます。 したがって、私たちの紹介の焦点は、N 個のストレージ クラスターから K 個の L1 クラスターを介して M 個の L2 クラスターにビデオ ファイルを配布する方法にあります。 オンデマンドビデオソースステーションの配信プロセスにおける問題
オンデマンド動画配信局の配信リンク最適化の意義 上記の問題をどのように解決するのでしょうか? 当然ながら、各ファイルの配布プロセスで、固定構成のソース ツリーではなく、最適なリンクを自動的に選択できれば、配布プロセスには次のような利点がもたらされると考えられます。
2. ノード間のデータ配信品質の評価なぜ最初に 2 つのサーバー ノード間の配信品質を評価するのでしょうか? 先ほども述べたように、最適化の方法は良い配信リンクを選択することです。では、良いリンクとはどのような配信リンクでしょうか?まず、次の事実を見てみましょう。
したがって、まず 2 つのサーバー ノード間の伝送品質を調べます。 2つのサーバーノード間の伝送品質の評価 では、2 つのサーバー ノード間の伝送品質を評価するには何を使用できるでしょうか。当然、定量的なデータが必要です。簡単なアイデアは「ファイルのダウンロード時間」です。 2 つのサーバー ノード間の伝送品質 (ダウンロード時間) に影響を与える要因は次のとおりです。
これらの要因がダウンロードにどのように影響するかを簡単に分析します。 ファイルサイズ: ファイルが大きいほど、ダウンロードに時間がかかり、遅くなります。 サーバー間のネットワーク回線: 2つのサーバー間のネットワーク状態、これらのインジケーターを含む
送信サーバー(受信サーバー)の現在の負荷
この図はtopコマンドで表示される現在のマシン負荷を示しています。 現在の時刻: 上記のデータはいずれも時間とともに変動します。たとえば、帯域幅データでは、動画サイトを視聴する人は午前中は少なく、夕方は多くなります。平日と週末の視聴者数は一致しません。休日には新しい特徴があります。インターネットの利用は全体的に増加傾向にあるため、長期的に見ると、帯域幅データも増加傾向にあるはずです。 ここで疑問が生じます。同じサイズで同じリンクのダウンロード速度は、異なる時点で大きく異なるため、動的な推定メカニズムを導入する必要があります。 たとえば、ファイルのサイズが 2G だとします。ダウンロードを開始する前は、リンク A が最適だと考えています。しかし、300M をダウンロードした後、リンク A の品質はもはや良くありません。リンク B の方が良いかもしれません。ここで達成したいのは、2G ファイルをダウンロードするのにどのリンクが最も時間がかかるかを計算することです。 2つのノード間のデータ伝送の品質モデルを確立する概念 2 つのノード間の配信品質を測定するには、ダウンロード時間 (DT) という数値を使用できます。このデータは、時間の経過とともに特定のパターンを示す多くの特定の要因 (変数) の影響を受けます。そのため、モデルまたは関数を使用して、これらの要因と DT の関係を説明するという素晴らしいアイデアがあります。新しいファイルをダウンロードするときは、このモデルを使用して、現在の変数を入力し、ファイルのダウンロードにかかる時間を予測します。 関数が次のようになっていると仮定します。 DT = Func(ファイルサイズ、現在の時刻、遅延、CPU負荷、メモリ負荷、IO負荷、…) ファイル サイズが 100 MB であること、現在の時刻がわかっていること、ノード間のこれらの変数がわかっていることがわかっています。この関数に基づいて期間を計算できます。 3. 機械学習アルゴリズムの設計と実装機械学習の導入 先ほど、DTを予測するためのモデル(関数)を確立するというアイデアを提案しました。このモデルをどのように確立するのでしょうか? まず、数学でどのように行われるかを見てみましょう。数学では、既知の独立変数と従属変数のセットの関数を見つけるプロセスをフィッティングと呼びます。 2 次元空間では、1 つの独立変数と 1 つの従属変数が単純な曲線フィッティングになります。 3 次元空間、2 つの独立変数と 1 つの従属変数は、サーフェス フィッティングです。 N 次元空間では、N-1 個の独立変数と 1 個の従属変数を当てはめることもできます。 最小二乗法などの特定のアルゴリズムは数学の本に記載されています。興味のある学生は自分で調べることができます。 コンピュータサイエンスの分野では、AI 研究の先駆者たちがこの問題に対処するために機械学習にニューラルネットワークを使用することを提案しています。 機械学習とは何か?ネット上には多くの説明があります。ここでは簡単に説明しましょう。 マシン(コンピュータ上のプログラム)に既知の入力と出力を与え、パターンを見つけるように要求します(知識発見)。次に、新しい入力を使用して、見つかったパターンに基づいて新しい出力を計算するように要求し、出力結果を評価します。結果が適切であれば、肯定的な奨励を与えます。結果が適切でない場合は、マシンにそれが間違っていることを伝え、パターンを再度見つけるように要求します。 実際、このプロセスは、新しい知識やスキルを習得し、既存の知識構造を再編成してパフォーマンスを継続的に向上させるための人間の学習行動をシミュレートまたは実現します。 機械学習の本質は、機械が既存のデータを分析し、データの背後に隠されたルール(機能)を表すモデルを考案できるようにすることです。 このパターンを見つけるプロセスをどのように実現するのでしょうか? まず、関数を数学的に確立する方法(適合させる方法)について説明します。プロセスは次のとおりです。
図のこの一連の点については、これらの点の配置が正弦関数に適合していると思われるため、三角関数の正弦関数を使用してフィッティングし、関数の周期、振幅、位相などのパラメータを設定します。 x > 5 以降でも一定の誤差があることがわかったので、誤差が許容できるかどうかを判断する必要があります。許容できない場合は、再度フィッティングする必要があります。 上の図の点を当てはめると、これらの点の分布は放物線になることがわかります。中学校の数学の知識によれば、放物線はべき乗関数の2次べき乗関数のイメージなので、2次べき乗関数を使用して当てはめ、最終的に方程式を取得します。 数学の分野と同じように、AIの分野でも入力はモデル(関数)を通じて出力に変換されます。このモデル(関数)はどうやって決まるのでしょうか?それは推測です! 推測することが問題なのではなく、より正確に推測する方法が問題なのです。 AIの先駆者たちは、モデルを推測する方法の問題を解決するために、人間の脳のニューロンをシミュレートするというアイデアを提案した。 ニューラルネットワークと人工ニューラルネットワーク 脳内のニューロンは次のようになります。 脳の神経ネットワークは次のようになります。
脳のニューロンの特徴は、各ニューロンが特定の入力を処理し、特定の出力を生成し、それを下位のノードに渡す役割のみを担っていることです。これらが一緒になって、人間の脳内のニューラル ネットワークを形成し、これが動物の思考プロセスとなります。 人工ニューラル ネットワークは、人工的に構築された処理ノード (脳のニューロンをシミュレート) のネットワークです。各ノードには機能があり、複数の入力を処理し、複数の出力を生成します。各ノードは他のノードと組み合わされてモデル (機能) を形成します。 左から右に、出力層、隠れ層、出力層です。 入力層は入力の受信、出力層は結果の出力、隠れ層は中間計算プロセスを担当します。 隠れ層の各ノードは処理関数です。隠れ層の構造、つまり層の数、ノードの数、あるいは各ノードの機能によって、ニューラル ネットワーク全体の処理結果が決まります。 Tensorflow 入門 Tensorflow の紹介はインターネット上にたくさんあります (検索して閲覧できます)。この記事の文脈に沿って、簡単に紹介すると次のようになります。 Tensorflow は、ニューラル ネットワークを通じてディープラーニングを実装するプラットフォームです。入力と出力を与え、いくつかの (推測モデル) ルールに同意することで、特定のモデルを推測できるようになります。 TensorFlow を使用する手順は、トレーニング データの収集、トレーニング、比較、反復… と簡単にまとめることができます。 トレーニングデータの収集 2 つのノード間の伝送品質をモデル化するためのトレーニング データを収集する方法について説明します。 前述したように、データは入力データと出力データに分けられます。 入力データは次の 4 つのカテゴリに分類されます。
出力データはファイルのダウンロードの時間記録であり、離散化する必要があります(離散化の理由は後で説明します)。 Zabbix の紹介:
Zabbix の anget は送信ノード上に展開され、マシンの負荷や帯域幅の使用状況データを定期的に収集し、センター (zabbix サーバー) にまとめます。 次の図は、Zabbix の現在の帯域幅の統計を示しています。 次のグラフは、3 か月間の帯域幅負荷を示しています。 次の図は、3 か月間の CPU 負荷を示しています。 IPERF ツールを使用してネットワーク データを収集する IPERF ツールは次のデータを収集できます。
次の図は、iperf の使用状況のスクリーンショットです。 Ping ツールはレイテンシを収集し、ノードの接続性をテストします。 Tractrouteツールはノード間のホップ数に関する情報を収集します (Windows cmdでは、コマンドはtracertです) トレーニングの準備 データの組み合わせとフォーマット: ネットワーク データ、ロード データ、ファイル サイズ、時間を結合し、JSON にフォーマットします。 ダウンロードした時間のかかるデータをセグメントに分割し、離散化します。結果(出力)を離散化する必要がある理由を説明します。TensorFlow は分類処理の学習が得意です。分類結果セットが連続セットの場合、考えられる結果は無限にあり、トレーニングの難易度が大幅に上がり、トレーニングの速度が低下します。結果をうまく離散化して、時間に近い時間を 1 つの値として扱い、一定の閾値を超えた時間を 1 つの値として扱います。これにより、結果の範囲が制限され、トレーニングの難易度が大幅に軽減されます。 トレーニング モデル パラメータのプリセット: 先ほど数学の分野でフィッティングについてお話ししたとき、まずフィッティングの基礎として、私たち自身の経験に基づいて、べき乗関数、三角関数、指数関数、対数関数の 1 つ以上の組み合わせを選択しました。 ニューラル ネットワークの場合、すべてを無視してランダムに推測させることはできません。代わりに、既知の経験に基づいてモデルとパラメーターを設定する必要があります。 前述のように、各ノードは関数です。では、どの関数を選択すればよいでしょうか。まず、最も単純なケースである線形関数を考えてみましょう。一連の線形関数を組み合わせてネットワークを作成します。このネットワークによって記述されるモデルは、間違いなく線形モデルであり、世界のほとんどの法則を記述するには不十分です。 次の図は一般的な線形関数です。 次に、各関数を再び非線形にすることを考えてみましょう。つまり、線形関数に非線形関数 (活性化関数と呼ばれる) を追加し、それらをネットワークに組み合わせます。このネットワークによって記述されるモデルは、基本的に世界のほとんどの法則をカバーできます (理由は聞かないでください。私も理解していません...)。 以下に、よく使用される非線形関数をいくつか示します。 ネットワークは以下から構成されます: まず各ノードの機能タイプを推測しましたが、ネットワークの構造はどうでしょうか? いくつのレイヤーを使用し、各レイヤーにいくつのノードを使用すればよいでしょうか? 異なる分野でニューラル ネットワークに取り組む場合、選択肢は本当に異なります。 ノード間の伝送品質を評価する際には、まず経験に基づいてレイヤー数を 15 に設定し、各レイヤーに 50 ノードを配置し、ノード機能も基本的な経験に基づいて設定します。 次のパラメータは TensorFlow のトレーニング結果に影響します。
その中で、隠れ層ノードの数、反復回数、バッチトレーニング回数、線形関数、活性化関数の設定はより大きな影響を与えます。それらの設定方法は前に説明しましたが、残りのパラメータの影響はやや小さくなります。興味のある学生は自分で検索することができます。 TensorFlow 処理 単一ノードの処理は次のとおりです。 1 つのノードが ReLU (Wx+b) を実行し、他のノードと組み合わせて最終的に出力結果を生成します。 全体的なプロセスは次のステップに分かれています。
Tensorflowの結果から***伝送経路を計算する 多くのトレーニングとチューニングを経て、2 つの (必要な) サーバー ノード間のトレーニング モデルを取得しました。このモデルでは、現在のファイル サイズ、時間、サーバーおよびネットワーク テストの状態を入力することで、予想されるダウンロード転送時間を計算できます。 ノード間のペアワイズ計算の結果をネットワークトポロジー図に代入する。 最短経路アルゴリズムを使用して、最適な(および最適ではない)伝送経路を計算する ダイクストラのアルゴリズムのアルゴリズムは次のとおりです(ダイクストラのアルゴリズムと翻訳)。 これは非常に古典的な最短経路アルゴリズムなので、ここではあまりスペースを割いて紹介しません。興味のある学生は自分で検索してください。 全体的な処理フローの確認
IV. 今後の展望*** ストリーム アルゴリズムを使用してファイルをセグメントでダウンロードします 現在のアルゴリズムは、ファイル全体のダウンロードを目的としています。実際、ストリーミング メディア サーバーはすでに仮想ファイル分割を実装しており、HTTP プロトコルにも範囲要求があります。これに基づいて、ファイルを分割し、複数のリンクを介して同時にダウンロードすると、ダウンロード速度が向上し、ネットワークの使用率がさらに向上します。 詳細については、EKアルゴリズム、Dinicアルゴリズムなどを参照してください。 最小コストの***フローを使用して***フローアルゴリズムを改善する 各コンピューター室と各ラインの構築コストが異なることを考慮すると。 *** フローに複数のソリューションがある場合、各エッジに単位コストが添付され、*** フローが満たされた場合の最小コストが計算されます。これにより、コストの使用状況をより正確に把握でき、コンピュータ ルームを拡張する必要がある場合のガイダンスが得られます。 ライブ放送での応用 現在、上記のデータは、オンデマンドソースステーションの内部配信におけるモデルトレーニングの入力データとして使用されており、ダウンロードに時間がかかるという結果が出ています。ライブブロードキャストの場合、ライブブロードキャストに関連するデータを組み合わせてトレーニングすることができ、その結果、QoSが得られます。ライブブロードキャストをソースに戻すための内部スケジュールに最適なリンクを予測する新しいモデルが生成されます。 【著者紹介】 PP Cloud Technology の副ディレクターである Zeng Xiaowei 氏は、画像コーディングと高性能コンピューティングのバックグラウンドを持ち、AI (NLP) を副専攻としています。ストリーミング メディア サーバーの開発とアーキテクチャ設計で 12 年以上の経験があります。 [51CTO オリジナル記事、パートナーサイトに転載する場合は、元の著者とソースを 51CTO.com として明記してください] |
<<: 初の高校向けAI基礎教科書が出版:唐暁氏が編集、重点中学校40校が導入
人工知能ブームが始まって以来、人材不足が業界の「主要テーマ」となっている。これを踏まえ、大手テクノロ...
[[203619]] 「もし私が諜報員だったら、生体認証機能をオンにすることは絶対にありません。」...
「人間がテクノロジーを生み出すペースは加速しており、テクノロジーの力は指数関数的に成長しています。指...
ここ数カ月、国内外のテクノロジー大手は大規模モデルをめぐって動きを見せているが、OpenAIを所有す...
[[229403]]現在の人工知能の発展は「実用的な」段階に入っています。 2018年の初め、国家...
普遍的なグラフモデルはありますか?分子構造に基づいて毒性を予測するだけでなく、ソーシャル ネットワー...
言語モデル (LM) は、不快な言葉を生成する可能性がしばしばあり、モデルの展開にも影響を及ぼします...
信じられますか?人工知能は最近、あなたの声からわずか6秒で性別、年齢、人種を判別し、さらにはあなたの...
[[321121]]インターネットを頻繁に利用する人のほとんどは、お気に入りの翻訳ツールを持っていま...
[[222058]]無人運転車、ドローン、無人倉庫、無人駅、配達ロボットなどの「無人技術」が、電子...
[51CTO.com クイック翻訳] 前回の記事「人工ニューラルネットワークをゼロから構築する(パー...
この世界では、AI チャットボットを扱ったことがある人は、いつかは自分の言葉によって大人としての尊厳...