オフショア開発とAI開発の今後の可能性

バックエンド技術

OpenAIの人工知能チャットボット「ChatGPT」は、2022年11月30日の発表以来、注目を集めています。短期間で社会インフラに不可欠な存在となったと感じています。

私自身、このブログを立ち上げる際の提案書をChatGPTに書いてもらい、上司からの承認を得ました。ブログ記事のアイデア出し、執筆、添削など、いつも手伝ってくれます。システム開発においても、ペアプログラミングやバグ調査、アーキテクチャの選定など、幅広い領域で活躍してくれる良きアシスタントです。家族よりも会話しているのでは…w

企業からの注目も高く、ガートナージャパンの最近の発表によると、

2026年までに、80%以上の企業が生成AIのAPIやモデルを使用して、生成AIに対応したアプリケーションを本稼働環境に展開するようになるとの見解

Gartner プレスリリース

「AI」は現代のビジネスモデルを劇的に変化させていると言っても過言ではありません。一方で、弊社が得意とする「オフショア開発」は、日本と比べて低価格で開発リソースを確保する重要な手段となっています。

「AI」と「オフショア開発」の要素を組み合わせると、どのような可能性があるのでしょうか?
本記事では、オフショア開発を活用したAI開発の可能性について探ります。
具体的には、AIや生成AIの概要、オフショア開発の活用例、AI開発の流れにおけるオフショア開発のメリットについて詳しく解説します。

オフショア開発を活用したAI開発をご検討中の方に、参考になれば幸いです。

AIとは

AI、すなわちArtificial Intelligence(人工知能)は、人間が行う知能的な活動を機械で再現する技術のことを指し、学習、推論、認識、理解、問題解決などの能力が含まれます。

AIの活用例

AIは様々な形で私たちの生活に影響を与えています。以下にいくつかの具体的な例を挙げます。

レコメンド:AIでユーザーの過去の行動や好みに基づいてパーソナライズされた商品やサービスを推奨する機能です。オンラインショッピングサイトや音楽ストリーミングサービスなどに使用される技術で、弊社でもインターネット広告ビジネスに活用しております。

音声認識 / 音声解析: AIを使って、音声をテキストに変換したり、感情や意図を解析できます。音声アシスタントやコールセンターの分析などに使用されます。

画像認識 / 画像処理:AIを使って、画像から特定のオブジェクトを識別したり、テキストを抽出したりします。OCR(Optical Character Recognition)技術などによる文字認識ですね。

テキスト分類:AIを使って、テキストを特定のカテゴリに分類する事ができます。データから学習し、予測を行う機械学習(ML)や深層学習(ディープラーニング)などの技術がよく使われます

生成AI

生成AIはAIの一部で、特定の入力に基づいて新しい情報やコンテンツを生成するAIの一種です。テキスト、画像、動画、音声など、様々な用途に生成AIが開発されています。

大規模言語モデル(LLM)

ChatGPTに代表される自然言語(話し言葉)による対話は、大規模言語モデル(LLM:Large Language Model)という技術が使われています。大量のテキストデータから機械学習し、ユーザーからの入力に対して適切な応答を生成します。

ChatGPTは、後ろ盾にMicrosoftが構えており、OpenAIによって開発された生成AIモデルで、自然な会話を生成することができます。他の有名なLLMとしては、GoogleのGemini、AnthropicのClaude 2、Metaの Llama 2などがあります。

更なる生成AIの進化

テキストが主体のLLMだけではなく、画像生成AIのstable diffusion、Midjourney、DALL·E 2や、OpenAIのSoraという動画生成AIなど他にも用途が拡大しています。

生成AIのアプリ開発インフラも整って来ています。
AmazonのBedrock、GoogleのVertex AI、MicrosoftのAzure AI Studioなどですね。

ビッグ・テック( Google, Apple, Meta, Amazon, Microsoft)などが競うようにして生成AIを動かす為のnVidiaのGPUを買い求めており、熾烈な生成AIの開発競争が繰り広げられており、今後も生成AIの進化から目を離せません!

LangChain (LLMアプリ開発用ライブラリ)

ChatGPT APIの使用例:Slackチャットボット

上記画像は、ChatGPT APIの利用例で、弊社のSlackチャンネル内で使えるChatGPT Botです。ChatGPTとのやり取りを他のメンバーとも共有しながら、ChatGPTを含めてグループチャットのように使えるので、重宝しています。一通り議論が終わったら、要点を翻訳してもらって、オフショア側に伝えるなども簡単にできますよ。新人の教育でも教育チャンネル上でChatGPTを使ってもらい、どうやってChatGPTを使うべきか(プロンプトエンジニアリング)の指導に活用しています。

弊社CTO室 室長の 西山 が作成したアプリで以下を参考にぜひ御社でも導入してみて下さい。

ChatGPTのSlackボットをGoogle App Scriptで作ってみた - Qiita
ChatGPT Slackボット on Google App Script ChatGPTとSlack上でやりとりができるBotを開発してみました。 以下のようにボットにメンションするとスレッドでChatGPTボットが返信してくれます。 Slack上でChatGPT使い...

なお、このアプリは、単にChatGPTにAPIコールしているだけで、LangChainというLLMアプリ開発用ライブラリは使用していません。

LangChainのメリット

上記のチャットボットでは、ChatGPTにAPIコールするだけでした。
では、LangChainを使う必要性はどこにあるのでしょうか?

LangChainはLLMを活用してアプリを開発する為のライブラリです。LLMはChatGPT以外にもあり、得手不得手があります。他のLLMを扱う際に、また別のLLM仕様に合せてAPIを呼ぶのは面倒です。その点、LangChainは汎用化されており、簡単にLLMを切り替える事ができるのです。
他にも以下のように様々なメリットがあります。

  • 複数のLLMを組み合わせられる。
  • LLMの結果をグラフ生成や他の処理に渡せる。
  • LLMの文字数規制に対し、予め入力データを要約して長文を扱える。
  • プロンプトエンジニアリングといって、LLMとの会話形式を最適化できる。
  • Google検索結果や企業の持つ外部データをインプットとして利用できる。
  • ChatGPTの学習データが古い(2021年9月)のに対し、アプリ側でデータ補填する事で最新情報に対応できる。
  • LLMが学んでいない外部データをファインチューニング(追加学習)させ、外部データを有効活用する。
  • 一連の処理の途中、別のLLM以外のAPIを挟んだり、複数のLLM処理を組み合わせる。
  • LLMの回答結果を記憶したり再活用できる。

イメージとしては、Mashup(複数のウェブサービスやコンテンツを組み合わせる事で、新しいウェブサービスを提供する事)のようにLLMを扱えるのです。

AI開発の流れ

出典:coe.gsa.gov(米国政府の組織) の定義した AI Lifecycle

米国政府のAI開発ガイドをベースにAI開発の流れをご説明します。AIを開発する流れは「設計→開発→デプロイ」となっており、”iterative process” (反復型開発プロセス)で何度もPDCAを回す事がポイントです。ラボ型開発や新サービスの立上げで用いるアジャイル開発に似ていますね。

設計

1. ビジネス上の課題を理解する

「システム開発で要件定義が大切ですよ」というのは、AI開発にも当てはまります。

  • このシステムで何を解決したいのか?
  • 要件は何なのか?
  • 求める成果は何なのか?
  • どのAIモデルで解決するのか?

要件によって、AIのどの技術やアルゴリズムを使うかが決まってくるのです。既存のサービスをAPI叩くだけなのか、LLMをLangChainでつなげてサクッと聞くだけなのか、はたまた、AIモデルをゴリゴリと構築するのか大きく変わってきます。

2. データ集めと分析

AIソリューションを作る為のデータを集めて評価します。どのようなデータが利用できて、データの品質に課題はないか、どうようにデータを扱うのか検討します。

3 データラングリングと準備

データラングリングとは、データセットを整理することで、データの品質を向上させ、扱いやすいデータに変換するプロセスの事です。

例えば、日付のフォーマットをとっても、YYYY/MM/DD形式だったり、YYYY年MM月DD日と言うように、複数のデータセットでフォーマットが違う事はよくありますよね。データセット間で扱い易いように、整理するのです。

結構泥臭い作業となりますが、AIがデータを扱えるようにする為にはとても大切なステップなのです。

余談ですが、私もプレゼン資料や評価の為に、データのお掃除をする事がありますが、ChatGPTに聞けばPythonでサクッとデータ整形してくれるようになりました。最近ではCode Interpreterといって、Open AIの環境上でPythonを動かす事もできるようになりましたね。

開発

4. モデリング

モデリングとは、データをAIモデルに与え、訓練、テスト、評価といったプロセスを経て、どのモデルを使っていくのか検討するプロセスの事です。複数のAIモデルを試し、最適なモデルを選択します。

開発といっても、PoC(概念実証)やプロトタイピングに近いですよね。また、モデルが決まっても、何度も反復プロセスで調整をしていく事になります。

生成AIを扱った開発では、どのLLMを使うのか、プロンプトエンジニアリングで結果最適化できないか、ファインチューニング(追加学習)の必要性はないか、など検討するフェーズとなります。

5. 評価

AIモデルが決まれば、ビジネス上の課題を解決できるのか、評価基準を設け、モデルをテストします。様々なデータで動くか試してみます。

デプロイ

6. 本番移行

いよいよ本番稼働です。トレーニングで使ったデータではなく、本番データを使って動く事になります。

7. モデル結果の監視

本番データで思っていた結果が出せているのか、モデルを監視します。モデルが思わぬ方向に変わっていってしまうこともあります。引き続きモデルを監視し、更新・改善し続ける必要があります。

オフショア開発におけるAI活用とAI開発

ここまで、AIについて深堀ってきましたが、やっと本題です。

記事タイトル「オフショア開発とAI開発の今後の可能性」という事で、まずは「弊社でのAIの活用事例」をご紹介させて頂き、「オフショア開発でAI開発するメリット」をご提案します。

弊社でのAIの活用事例

コーディング支援

Cursorという「AI支援機能を搭載したコードエディタ」をご存知でしょうか。
Microsoftが開発した「VS Code」というオープンソースエディタをもとに作られた「Cursor」を使って、ChatGPTのAPIキーを登録して利用しています。

他にもGitHub Copilotというコーディング支援ツールがあります。CursorはGitHub Copilotと違い、コード自動補完機能はありませんが、開発業務を効率化する事ができています。

流石に、LLMやCopilotに書いてもらって、オフショアメンバーは微調整だけといった完成度では現時点ないですが、今後は精度も増していく事は容易に想像できます。

引き続き、オフショアのエンジニアも、日本側のブリッジSE(と言っても開発もするので)も含め組織一丸となって、ChatGPTやAIコーディングツールを積極的に導入して、ノウハウを共有し合っていきます。

Cursor
Built to make you extraordinarily productive, Cursor is the best way to code with AI.

コードレビュー

オフショアの開発者がコーディングを終えると、AIがレビューしてくれます。専門的に言うと、ChatGPT APIを使って、Pull Request(PR)を解析するGitHub Actionです。
客観的にどんな修正なのか、改善点はあるのかがわかるので、レビュワーと開発者間のコミュニケーション観点が増えて、コード品質の改善につながっています。

GitHub - qodo-ai/pr-agent: 🚀 PR Agent - The Original Open-Source PR Reviewer, This repo is not the Qodo free tier! Try the free version on our website.
🚀 PR Agent - The Original Open-Source PR Reviewer, This repo is not the Qodo free tier! Try the free version on our website. - GitHub - qodo-ai/pr-agent: 🚀 PR ...

自社プロダクトでの活用

日本とオフショアで開発運用を行う自社プロダクトでの活用例です。

1.広告配信システム「ADMATRIX DSP」では、月間3,000億リクエストのビッグデータを処理しております。また、広告運用指標の改善の為に機械学習を活用しています。

国内最大クラスの配信先メディア数を誇るRTB型ディスプレイ広告ツール | ADMATRIX DSP
ADMATRIX DSPは日本最大級のネットワークを誇る広告配信ツールです。独自ターゲティング、業界初の3PAS連携、豊富な配信在庫によって、「人」に対し最適な広告を配信いただけます。

2.広告案件をまとめるASP「DeepTrack」では、広告画像の文字認識や顔認識などAI 関連技術を用いて、広告主の虚偽表示や著作権違反のリスクを抑えるブランドセーフティ機能を提供しています。

https://growthseed.jp/service/affiliate-consulting

オフショア開発でAI開発をするメリット

AI人材不足→オフショア開発で解決?

AI人材とは、AIに関する専門知識を持つ人材の事です。しかし、日本はAI人材不足が深刻ですね。経済産業省が平成31年4月に発表した「IT人材需給に関する調査」では、2030年にAI人材が約12.4万人不足すると予想されています。

日本国内のAI人材不足には、フィリピン人エンジニアのリソースで解決できないでしょうか?

弊社のフィリピン人エンジニアは全員IT/CS学部を卒業しており、AI開発に用いられるPythonというプログラミング言語を大学で履修したメンバーが多いです。趣味でAIや最新技術を貪欲に学ぶメンバーが多く、また自社プロダクトでのAI開発経験のあるメンバーもおります。皆でAI開発プロジェクトをお待ちしておりますw

AI開発でコスト削減

AI開発を担える高度人材は、国内では希少で単価も高い状況です。厚生労働省の職業情報提供サイト「job tag」を確認すると、日本国内のAIエンジニアの年収は534.6万円です。

それに比べ、フィリピンのAI開発者は安く、平均年収275.4万円です(1P2.7円で計算)

希少なAI開発エンジニアのリソース確保とコスト削減に、オフショア開発はマッチしています。

ラボ型開発がAI開発にマッチ

AI開発の流れでもご説明した通り、AI開発は”iterative process” (反復型開発プロセス)を行います。まさにアジャイル開発がマッチしており、ラボ型開発で継続的にPDCAを回す事ができます。

AI開発にオフショア開発を選択される場合は、ラボ型開発を選ばれるとよいのではないでしょうか。

AI開発の情報ソースが英語

私もITの情報を調べる時は英語で調べます。日本語で調べるよりも英語で調べる方が、圧倒的に情報量が多い為です。

AI開発では、様々なAIモデルを調査し、実装する必要がありますので、英語での文献調査が重要になってきます。フィリピン人はアジア2位の英語力があり、エンジニアは普段から英語で調べており、AI開発における英語のハードルが低いです。

余談ですが、実は私の経験上、フィリピンなどの英語でのオフショア開発は、日本語で情報の少ない分野での開発に向いていると常々思っています。AI開発だけではなく、Web3、世界規格のAPI、最新のフレームワーク(ドキュメントが未翻訳)などといった技術を扱う時に、オフショア開発は特におすすめです。

まとめ

「AIや生成AIの概要」「弊社でのAIの活用事例」「オフショア開発でAI開発するメリット」と言った切り口でオフショア開発を活用したAI開発の可能性を記載しました。

とても長い記事でしたが、ここまでお読み頂き、ありがとうございます。

つい熱くなってしまいましたが、
オフショア開発でAI開発をするイメージが伝わり、お役に立てたのであれば幸いです。

ぜひお気軽に弊社のオフショアでAI開発をご検討下さい。
また、ブリッジSEには私、吉村をご用命頂きますと飛んで喜びますw



オフショア開発ならCRAID!

オフショア開発とは、システム開発業務などを海外の開発会社や海外子会社に委託することです。

CRAIDは東証プライム上場のフリービット株式会社の子会社です。CRAIDのオフショア開発拠点「フルスピードテクノロジーズ」は、当初は月間3000億ものリクエスト処理にも対応できる自社システム開発を行うためのオフショア開発部門として始まりました。各グループ会社の開発やクライアント様の受託開発やラボ型開発も多く手掛けております。

CRAIDやオフショア開発に関して、お気軽にお問い合わせください。

この記事を書いた人

米国の大学を卒業。インド財閥系IT企業でブリッジSEとして3年間勤務後、
半導体メーカーの社内SEとして、6年間システムの海外展開や運用を担当。
子供の英語教育を念頭にフィリピン移住を目指し、2022年CRAIDに入社。
現在セブ島でオフショア開発子会社の開発組織マネージャーとして勤務中。

Yoshimuraをフォローする
バックエンド技術事例紹介
CRAID オフショア開発ブログ
タイトルとURLをコピーしました