Moonshot AIによるKimi大規模モデルを基盤とした大規模データ前処理の実践

> 本記事は[こちらのブログ](https://www.alibabacloud.com/blog/kimi-large-model-based-massive-data-preprocessing-practice-of-moonshot-ai_602119?spm=a2c65.11461433.0.0.4ee35355MBfxl3)を参考にしています。
> 翻訳にはアリババクラウドの[ModelStudio](https://www.alibabacloud.com/en/product/modelstudio)([Qwen](https://www.alibabacloud.com/en/solutions/generative-ai/qwen))を使用しております。

# 1. はじめに
Moonshot AIは、人工知能技術の研究、開発、応用に特化した革新的な企業です。その中核製品であるKimiは、自社開発の大規模言語モデルを基盤とし、ユーザーに対して効率的かつ正確なAIインテリジェントアシスタントサービスを提供します。多段階の対話、長文理解、クロスドメイン推論などの機能を持つKimiは、AI検索、データ分析、コンテンツ生成などのシナリオで広く利用されています。また、多くのプロフェッショナルユーザーおよび企業に支持されています。基礎モデルに特化したスタートアップ企業として、大規模モデルのトレーニングやイテレーションを加速するために、Moonshot AIはコスト効率が高く、柔軟性のあるCPUおよびGPUのコンピューティングパワーを必要としており、特にモデルデータの前処理におけるビジネス要件に対応するためのものです。

# 2. ニーズの背景と課題
大規模モデルのトレーニングプロセスにおいて重要な要素であるデータは、モデルのパフォーマンス向上やモデル効果の最適化において重要な役割を果たします。Moonshot AIのような大規模モデル企業にとって、高品質なデータは非常に重要です。モデルデータの前処理は、大量のテキストやマルチモーダルデータ（テキスト、画像、音声、ビデオ形式など）をクリーニングする必要があります。ユーザーの元々のアーキテクチャでは、RayやSparkフレームワークを独自に管理してデータ前処理タスクを行っていましたが、一定期間の検証と運用を通じて以下の課題と挑戦に直面しました。
1. **大規模クラスターの安定性の課題**: 大規模なSpark/Rayクラスターは安定性が低いため、TBレベルのデータ前処理タスクを安定して実行することが困難です。
2. **リソースの弾力性効率の低下**: 予期せぬタスクやデータ量の変動に対応するための計算リソースを迅速に拡張できないため、計算リソースの無駄遣いやタスクの遅延が生じます。例えば、小規模なデータを処理する際にはクラスターリソースが過剰に割り当てられることがありますが、大規模なタスクが発生すると、クラスターリソースをタイムリーに拡張できず、タスク処理の即時性に深刻な影響を与えます。このため、Moonshot AIチームは短期間のタスクに対する極端な弾力性を提供することを目指しています。
3. **観測可能性システムと柔軟なスケジューリングメカニズムの欠如**: データを利用する業務関係者は、異なる方向性のチームやグループに関わり、高優先度のタスクが安定して動作するようにリソースを割り当てたり、タスクの優先順位を設定したりする必要があります。しかし、タスクレベルの監視能力が不足しているため、タスクの進捗状況やリソース使用状況をリアルタイムで観察することが難しく、スケジューリング戦略をタイムリーに調整できず、クラスター全体の運用効率にもさらなる影響を与えています。

# 3. アリババクラウドRay/Spark on ACK総合ソリューション
Moonshot AIの大規模クラスター安定性、リソース弾力性効率、観測可能性、柔軟なスケジューリングに関する課題に対応するために、アリババクラウドは<a href=https://www.alibabacloud.com/product/kubernetes target=_blank>Alibaba Cloud Container Service for Kubernetes</a> (ACK) を中心とするソリューションを提案し、RayおよびSparkタスクを深く最適化します。ACKはフルマネージドであり、大規模クラスターの安定性問題を解決するためのメンテナンスフリーです。さらに、ACKは極端な弾力性と多様なコンピューティングパワーという主要な機能をフルに活用し、タスクのオンデマンドでの極端な自動スケーリングを実現します。加えて、ACKに統合された観測可能性ツールや柔軟なスケジューリングメカニズムにより、Moonshot AIはタスクを監視し、リソースを動的に割り当てることができます。これにより、異なるビジネスチームによるタスク優先順位に基づく柔軟なスケジューリング要件を満たします。このソリューションはMoonshot AIに大幅な効率改善をもたらし、コスト投資を大きく最適化しました。

## 安定かつメンテナンスフリーのRay/Spark on ACK
### KubeRayホスティングソリューション
ACKはオープンソースコミュニティ版に基づいて安定性を最適化したマネージドKubeRayコンポーネントを提供します。ユーザーはオープンソースのKubeRayを自分でインストールおよび保守する必要はありません。ユーザーがすべきことは、自身のビジネスやワークフローエンジンにRayClusterやRayJobなどのCRDをどのように組み合わせるかに集中することだけです。これにより、保守作業が大幅に簡素化されます。KubeRayはACKクラスターに迅速に展開でき、データサイエンティスト、MLエンジニア、プラットフォームエンジニア、開発者によって広く利用されています。

### Spark-Operatorホスティングソリューション
Kubernetesの一般的なオペレーターパターンに基づき、Spark Operatorは2つのCRD（SparkApplicationおよびSchedulerSparkApplication）を定義します。ユーザーはspark-submitコマンドを手動で構築する代わりに、YAMLリソースリストを記述してSparkジョブを送信できます。そのため、Spark Operatorはさまざまなデータ前処理タスクで広く使用されています。
![1](https://yqintl.alicdn.com/ed0c740729ba9df883879fbb6fa433e3185cd486.png)

アリババクラウドコンテナーサービスfor Kubernetes (ACK) は、コンテナクラスター上でのSparkニーズを満たすためにack-spark-operatorコンポーネントを提供します。これにより、Sparkコンピューティングクラスターを簡単に構築でき、Spark Operatorの維持は不要です。また、ack-spark-operatorコンポーネントはオープンソースのspark-operatorと比べて以下の利点があります：
● Alibaba Cloudの他のコンポーネント（例：ack-kube-queueジョブキューイング機能）との統合。
● Webhookを使用して、ネイティブSparkではサポートされていないKubernetesの機能（driver/executor tolerations、nodeSelector、ボリュームマウントなど）を補完。
● AirflowやArgoなどのワークフロー編成フレームワークとの統合。
● Gitなどのバージョン管理システムを使用してSparkジョブのYAMLファイルのバージョンを管理。

### Zeppelinを使用したインタラクティブなSparkジョブ開発
データ開発が進むにつれて、データ処理の範囲やチームメンバー数も急速に増加しています。データ探索効率の悪さや開発操作におけるインタラクティブ性の欠如といった問題が次々と浮かび上がってきました。これらの問題に対処するために、アリババクラウドはMoonshot AIが継続的かつ効率的なデータ処理を行うために、ACK上でZeppelinをデプロイする機能を提供します。Apache Zeppelinはビッグデータのインタラクティブ分析および可視化のためのNotebookツールです。データへのアクセス、発見、変換、分析、可視化に使用できます。フロントエンドには豊富なビジュアルグラフィックライブラリが提供され、バックエンドにはSpark、Flink、JDBC、Markdown、Shellなどの一般的なインタープリターがプラグイン構造で統合されています。これにより、データアナリストはSQLステートメントを使用してZeppelin Notebookでデータを開発できます。
![2](https://yqintl.alicdn.com/c906318ab9e7df822cf817fa132562e75a63dca4.png)

# 大規模スケーラビリティのベストプラクティス
### ACS Elastic ResourcesおよびBestEff
# RayClusterのパフォーマンス監視とACKソリューションによる利便性向上

このプロセスにおいて、RayClusterのパフォーマンス監視は非常に重要です。ネイティブのRayClusterはメトリクスを表示するためのダッシュボードを提供していますが、オープンソースのPrometheusとGrafanaを手動でデプロイする必要があります。この方法では、コンポーネントの安定性を確保することが難しく、専門的な運用保守（O&M）担当者のサポートも不足しています。Ray on ACKソリューションは、Managed Service for Prometheusの監視機能と深く統合され、RayCluster専用の監視ダッシュボードをカスタマイズしています。ユーザーは、`ack-prometheus`コンポーネントと対応するACK Pod MonitorおよびService Monitorリソースをインストールするだけで、RayClusterのメトリックデータを迅速に収集し、専用のRayCluster監視ダッシュボードを通じて視覚的に表示できます。
![3](https://yqintl.alicdn.com/d2580c4762facd161b0530e708b8326ab9e9fdae.png)

クラウド製品の緊密な統合により、Ray on ACKソリューションはユーザーに高可用性のRayCluster監視機能を提供し、O&Mプロセスを大幅に簡素化し、本番環境の安定性と信頼性を向上させます。

## ACK Spark/Ray History Serverに組み込まれたジョブ監視機能

SparkとRayの両方が、ジョブの実行状況を監視および表示するための機能豊富なWeb UIを提供しています。ユーザーはWeb UIを通じてジョブの実行状況を簡単に確認でき、実行中および完了したジョブ、送信時間、実行時間、各ジョブの進行状況などの重要な情報を含みます。ACKマーケットプレイスは、HDFS、OSS、およびOSS-HDFSをログ保存バックエンドとしてサポートする`ack-spark`および`ray-history-server`コンポーネントを提供します。Moonshot AIチームは、さまざまなジョブのイベントログをObject Storage Service (OSS)に書き込みます。その後、チームはHistory Serverで同じOSSパスを設定してログを解析し、それをWeb UIで表示します。
![4](https://yqintl.alicdn.com/5e3d972956f6c0b3c79d7160448496eda0949eac.png)

## Simple Log Service (SLS)によるECSおよびACSポッドからの統一ログ収集

ACKクラスターでSparkジョブを実行すると、大量のログが生成され、異なるポッドに分散されます。これにより、ログ管理が複雑になります。Moonshot AIチームは、Alibaba Cloud Simple Log Service (SLS)を利用して、一元的なログ収集、処理、クエリ、および分析機能をフル活用し、Sparkログを効率的に管理しています。Sparkのビジネスログには、イベントログ、エンジンログ、およびビジネスログが含まれます。イベントログは、Spark History Serverが解析およびレンダリングするために特定のSDKを使用してOSSに書き込まれます。エンジンログとビジネスログは同時にコンソールと指定されたファイルに出力され、後続のクエリおよび分析に使用されます。Sparkジョブでは、ECSとACSの両方のリソースが使用されますが、ログ収集方法は異なります。Simple Log Serviceが提供するAliyunConfigリソースを作成することで、ECSおよびACSポッドのログ収集設定を統一し、さらにログ管理の便利さと効率を向上させることができます。この一連のソリューションを通じて、Moonshot AIはログ収集と分析プロセスを大幅に簡素化し、開発者がログ管理に多くの時間を費やすことなくビジネスロジックの最適化に集中できるようになります。統一されたログ収集設定はMoonshot AIのシステムの安定性と信頼性を向上させ、大量のデータの前処理のための堅固な基盤を提供します。

## 4. ビジネス上のメリットと展望

Alibaba Cloudのフルマネージドコンテナ化ソリューションを通じて、Moonshot AIはデータ処理能力、リソース利用効率、およびO&M管理のすべての面でアップグレードされました。

- **安定性の向上**: ACKクラスターによってフルマネージドされるRayおよびSparkコンポーネントに基づき、単一タスクでのテラバイト単位のデータ処理の安定性が99.95％に達しました。障害特定の時間効率が60％向上し、モデルトレーニングのためのデータ供給の継続性が確保されています。
  
- **弾力性効率の大幅な向上**: ECSとACSのハイブリッドアーキテクチャにより、短期間タスクのリソース供給時間が秒単位に短縮され、予期しないタスクに対するリソース利用率が3倍に増加し、全体的な計算コストが45％削減されました。

- **洗練されたリソース管理**: OSSのリソースプール調整機能と優先度ベースのスケジューリングポリシーに基づいて、高優先度タスクのSLA適合率が99％以上に向上し、リソース競合率が95％減少しました。

- **エンドツーエンドの可観測性**: PrometheusとSLSのクラウドネイティブ監視システムにより、エンドツーエンドのメトリクスを視覚化できます。異常検出の応答速度が50％向上し、ログ分析効率が40％向上しました。

## 5. 顧客フィードバック

Alibaba Cloud ACK + ACSのコンテナソリューションは、私たちの大規模モデル向けのデータ前処理に質的飛躍をもたらしました。安定性が大幅に向上し、リソースの弾力性が効率化され、コストが大幅に削減され、O&M管理が非常に簡単になりました。私たちは、Alibaba Cloudとのさらなる協力を楽しみにしており、より効率的で低コストのデータ処理ソリューションを探求し、大規模モデル技術の継続的な進歩を促進することを目指しています。

-- James Wang, Moonshot AIの技術専門家