日本はAI開発で後れを取っているという記事に無性に腹が立った話

スキルアップ

日本はAI開発で後れを取っているという記事に無性に腹が立った話

日本はAI開発で後れを取っている、周回遅れという記事を読みました。
コメント欄もそれに追随するようなものが並んでいました。

「アメリカ、中国には到底かなわないし、勢いがないよね」
「人口も減る一方。日本はこのままどんどん置いていかれるだろう」

何を他人事のように言っているんだ!とめちゃくちゃ腹が立ちました。
しかし、それ以上に悔しくてたまらなかった。
というのも私も漠然と同じ気持ちを抱いていたから。

私もITエンジニアとして働いており、少なくともChatGPTの動向は追い続けており、
開発・調査にフルで活用しています。

SlackとAPI連携させて気軽に質問できるようにしたり、LangChainというAIのための機能拡張ライブラリで実験したりしています。
しかし、もっとできることがあるのではないか、戦略が必要ではと考え始めました。
AI自体を作るより先に、まずはAIを活用できる人間になっていくことが必要ではないでしょうか。

そこで、AIとの付き合い方について、この記事でまとめることにしました。

AIを活用したWEBサービスを作る

AIができること、得意分野は何かをまずは考えてみます。
一般的には以下が挙げられています。

  • 画像認識: 写真アップロードサービスや画像ベースの検索エンジン
  • 自然言語処理: チャットボット、文章生成、感情分析
  • 推薦アルゴリズム: オンラインショッピングの商品推薦や動画・音楽の再生リスト自動生成

一般的にこれらができますと言われているということは、既にライブラリやAPIが公開されている可能性が高いです。

実際、ChatGPTは画像処理を行うことができるし、自然言語処理分野は余裕でできます。
推薦アルゴリズムもプロファイルを事前に入力することで、ある程度実現もできます。

しかし、ChatGPTって何?という層もまだまだ多いので、こういった人に向けたAIサービスは需要がありそうですね。

例)高齢者向けのAIコンシェルジェ : 音声認識でしゃべった内容について、質問に答えたり、会話ができるサービス

AIのカスタマイズに手を出す

特定の業務領域に特化したものを作ると、よりサービスとして使い勝手がよくなります。
そのためには、カスタマイズが必要です。

例えば、問い合わせ業務の自動応答を進めていきたい場合は、こんなステップが考えられます。

  • 過去の問い合わせ履歴やFAQをまとめ、どのような質問が多いかを分析する。
  • ChatGPTのトレーニングやカスタマイズのためのデータセットを準備する。
  • OpenAIのAPIを使用して、既存のサポートシステムやWEBページに組み込む。
  • 必要に応じて、特定の業界や会社固有の情報に合わせてカスタマイズする。
  • 顧客がチャットボットを使いやすいように、インターフェースを工夫する。
  • 質問の種類や頻度に応じて、予めボタン選択肢を用意するなどの工夫。

さらにAIでは対応できない場合に、人間が回答できるようにスムーズな連携ができるとよりよいですね。

AIを使ったカスタマイズのための技術構成例

上記開発をするための技術構成について、ChatGPTに問い合わせ結果は以下の通り。
実際に私が企業で実験した構成にかなり似ています!

フロントエンド:
Webフレームワーク: React
ステート管理: Redux, MobX, ZustandまたはReact Context
ルーティング: React Router
UIライブラリ: Material-UI, Ant Design, Chakra UI
API通信: Axios, Fetch API

バックエンド:
サーバフレームワーク: FlaskまたはDjango (Django REST frameworkを使用してAPIを構築)
非同期処理: Celery (特にバックグラウンドタスクに適しています)
認証: JWT, OAuth, Djangoの認証システム

データベース:
RDBMS: PostgreSQL, MySQL (Django ORMまたはSQLAlchemyとの組み合わせ)
キャッシング: Redis (セッション管理やCeleryのバックエンドとして)

AI & データ処理:
OpenAI API: ChatGPTの活用
データ処理: Pandas

クラウド & インフラ:
ホスティング: AWS EC2, Heroku
ストレージ: AWS S3
データベース: Amazon RDS, Google Cloud SQL
コンテナ: Docker
CI/CD: GitHub Actions, Travis CI, Jenkins

モニタリング & ロギング:
ログ管理: Pythonのloggingモジュール、Sentry (エラートラッキング)
監視: New Relic, Datadog

連携ツール:
CRM連携: 既存のCRMとのAPI連携
通知: SlackのWebhooksを使用した通知システム

バージョン管理 & 開発環境:
コードリポジトリ: GitHub, GitLab
開発環境: Visual Studio Code, PyCharm
パッケージ管理: npm/yarn (React), pip (Python)

そもそもAIが必要かちゃんと考える

会社によっては、技術ドリブンでAIを使って何かをやろうと号令がかかることもあります。
でも、それは正直AIに踊らされている感があります。

大事なことは、自社の仕組みに合った形で価値を提供することで、AIを使うことではないです。
この視点は、この先どんな新規の技術が出てきても、必要な視点ではないかと思います。

無性に腹が立って、AIをいかに活用するか考えていましたが、少し冷静になってきました。

やるべきことは価値提供なので、そのための手段は適切に選ぶことこそがITエンジニアには求められています。

手段を適切に選べる人間になるためには、広く浅く技術のことを知っておくことが大事。
そのためにはAIを使った仕組みで遊んでみてはいかがでしょうか。

-スキルアップ