サービス指向AIモデルの開発 EP.4 AIモデル開発のための効率的なAIチーミング
2022/03/04
⏱ 10分
EP.4 開始
안녕하세요. 드디어 총 4편의 걸친 <서비스 향 AI 모델 개발하기>의 마지막 에피소드까지 오셨습니다. 이번 마지막 에피소드에서는 앞서 소개한 하나의 AI 모델 개발을 하기 위한 수많은 개별 테스크를 담당하는 인력은 어떻게 구성되어 있는지 알아보고자 합니다. 💡성공적인 AI 모델 개발을 위해 효율적인 시너지를 낼 수 있는 팀 구성은 무엇인지, 그리고 테스크 분담은 어떻게 이뤄지는지까지 자세히 살펴보겠습니다.
効率的な組織構成:AIモデルチーム
AIモデルチームは、前回の3話で多く触れたチームに精通しているようです。AIモデルチーム の主な役割は、サービス企画チームから顧客のサービス要件と制約を伝え、それらを満たすAIモデルを開発することです。では、AI モデル チームの背後にいるのは誰でしょうか。
AI モデルチームを、モデラー、データキュレーター、IDE 開発者、モデル品質マネージャーの計 4 つの主要な役割に分けてみましょう。異なる会社の異なるチームは異なる構成を持っていることに注意してください。
1. モデラー
モデラーは、サービスの要件を満たす AI モデルの開発を担当します。お客様のサービス要件に合ったAIモデル構造を提案・開発します。その結果、データとモデルを分析するグループのメンバーになり、モデルのパフォーマンスを最適化するさまざまな方法について常に心配しています。
2. データキュレーター
データキュレーターは、チーム内のさまざまなタスクを担当します。3つの主要なタスクを実行すると考えてください。
✔️まず、モデルのトレーニングと評価に必要なデータセットを準備します。
トレーニング データセットの準備は、前述のように、非常に時間がかかり、リソースを大量に消費する手順であり、慎重に決定する必要があります。(EP.2 参照) そのため、このタスクにはコミュニケーション スキルとかなりのノウハウが必要なため、データ キュレーターなどのデータセット準備スタッフを別個に配置することは、チームの効率とパフォーマンスにとって適切な選択です。データキュレーターは、サービス計画チームおよびモデラーと通信し、データセットのタイプ、数量、および正解を定義し、データセットが正しいものであることを確認します。
✔️2 番目: データ注釈ガイドラインを作成する
トレーニングデータセットを定義した後、私は多くの企業が下請け業者を通じてデータの作成を委託していることを説明しました。(EP.2参照)その場合、データキュレーターは、データの作成方法に関するガイドラインの作成、下請け業者との進捗状況の伝達、Q&Aへの対応などを担当します。
✔️第3に、モデルとサービス評価の計画と実装
データキュレーターは、AIモデルの開発において、データを最も多く見てきた人でしょう。サービス計画チームとの継続的なコミュニケーションを担当し、サービスの全体的な理解が最も高い人物の1人です。そのため、AIモデル候補の中からサービスリリース版を選択する オフラインテスト(定量+定性)の企画・実行を担当します。オフラインテストに加えて、サービス開始後のAIモデルのパフォーマンスに関するフィードバックを継続的に追跡する責任もあります。これらのオンラインおよびオフラインテストの結果に基づいて、メンバーと協力して、AIモデルとトレーニングおよび評価データセットの改善を導き出し、反映します。(EP.3参照)
3. IDE開発者(統合開発環境開発者)
IDE開発者という言葉は馴染みがないかもしれませんが、簡単に言えば、 モデルの開発とデータの作成に必要なさまざまなツールを開発するのはあなたです。開発プロセスには無数の反復的なタスクがあり、これらのタスクを迅速かつ便利に処理および管理することが非常に重要です。IDE 開発者が作成したツールを活用して、チーム内のパフォーマンスと効率を向上させることができます。では、どのようなツールを開発しているのでしょうか。
✔️注釈ツール
モデルのパフォーマンスを向上させる方法の 1 つは、モデル出力の定義を変更することです。モデル出力の定義が変更されている場合は、それに応じて注釈を変更する必要があります。そのため、アノテーションツールの変更は避けられず、この状況に効果的に対応するためには独自のアノテーションツールを開発する必要があります。
✔️モデルおよびデータ分析ツール
モデルのパフォーマンスは、モデル構造、トレーニング データ、およびトレーニング方法によって決まります。したがって、モデルのパフォーマンスを向上させるためには、データ分析ツールが必要です。これは、より良いデータを強制するために多層データ分析が必要なためです。
さらに、モデルでトレーニングされた重み、トレーニング プロセスで残ったログ、およびデータ サンプルによる応答を分析することは、モデルのパフォーマンスを向上させる方法の一部です。したがって、この反復分析に役立つ関連ツールの開発も、効率の向上に大きく貢献します。複数のモデルが同時に使用されていると仮定すると、コンソールウィンドウとJupyterノートブックだけでは詳細な分析とデバッグが困難な場合があります。別の分析ツールを開発し、 効率的なモデル分析とデバッグに適切に利用することをお勧めします。
✔️モデル開発自動化パイプライン
モデル間のリンクや展開前の準備など、モデル開発以外では、複数のバックエンド タスクが必要です。これらのタスクは繰り返し行われることが多く、関連するパイプラインの自動化により、モデルの実験からサービスの適用までの時間を短縮できます。
4. モデル品質マネージャー
AI モデル チームが実行するタスクの目的は何ですか。それはあなたのニーズを満たす優れたパフォーマンスのAIモデルを開発することです。この目標を達成するには、このプロジェクトを管理する人が常に必要です。その人が「モデル品質マネージャー」です。組織内のさまざまなタスクの進捗状況に遅れずについていき、調整し、最終目的地「成功するAIモデルの開発」への航海を成功させるための鍵を握る責任があります。
効率的な組織構築:AIモデルサービングチーム
場合によっては、お客様のサービス要件の一部がAIモデルの開発だけでなく、 モデルの提供も委託されています。この時点で、AI モデル サービング チームは、 AI モデル チームによって作成されたモデルを受け取り、サービング デバイスに対して個別のタスクを実行します。これらの役割を担う 2 つの役割 (モデル エンジニアとアプリ開発者) を見てみましょう。
1. モデルエンジニア
モデルエンジニアは、AIモデルが提供されるデバイスに従ってモデルの最適化を実行します。
駆動環境がモバイルのAIサービス用である場合、PyTorchで動作するモデルをTensorFlowに変換し、TFLiteに変換する一連の操作が必要になります。モデルが TFLite に変換できない操作を使用している場合、モデルの構造を変更したり、再トレーニングしたり、その操作のカスタム レイヤーを実装したりすることがあります。また、GPU 高速処理のための蒸留、量子化、CUDA プログラミングなど、モデルの軽量化に取り組むこともできます。
2. アプリケーション開発者およびBEエンジニア
開発フェーズでは、サービングターゲットの最適化モデルが出てくると、 実際のモデルを提供するには別のエンジニアリング作業が必要になります。モバイル サービスの場合、必要な作業は、Android-IOS などのモバイル デバイス環境によって異なります。一方、APIサービングには、CPUサービング - GPUサービング、パブリッククラウド - プライベートクラウドなど、サービング環境に応じてバックエンド操作など、多くの条件が伴います。この責任者は、アプリ開発者または BE エンジニアです。
EP.4 外出
지금까지 <서비스 향 AI 모델 개발>의 마지막 에피소드인 효율적인 AI 팀 구성법을 살펴보았습니다. 하나의 AI 모델을 개발하기 위해서는 위와 같은 많은 구성원의 노력이 들어가고 있습니다. 업스테이지의 모델 개발팀도 최고의 AI 기술력과 뛰어난 커뮤니케이션 능력으로 멋진 AI 모델(AI Pack)을 만들어 가고 있답니다 😊
合計で、これはサービス指向のAIモデルを開発する方法を紹介する4つの章で役立ちましたか?将来的には、より有益で楽しい技術知識を見つけることを楽しみにしています。ここまでお読みいただきありがとうございます。