日本は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を使った仕組みで遊んでみてはいかがでしょうか。