FUJILOG

見た、聴いた、触れたこと。 動かしたもの、書いたもの。 ウェブとリアルの備忘録です。

クラウドエンジニアがChatGPTに最近のAIアプリ開発事情を聴いてみた(2023年7月時点)

ChatGPTにふわっとした質問を投げながらAIアプリ開発の情報収集してみた。

進歩が早くて、どのクラウドサービスで構築するのが良いか見通しがつけづらかったため。

使用したツールは「ChatGPT May 24 Version」「Link Reader Plugin」。

早速本題↓

Q: あなたはプロフェッショナルなAIエンジニアです。LangChainとMicrosoft Guidanceの違いについて、Webエンジニアにわかるように解説してください。

A: もちろんです。以下に、LangChainとMicrosoft Guidanceの主な特徴と優位性を表形式でまとめてみました。

特徴 LangChain Microsoft Guidance
推論 LLMをガイドして文脈に基づいた推論や決定を行う能力があります。 条件文を使用してモデルの推論プロセスをガイドすることができ、selectコマンドを提供して一連のオプションから選択する能力を持っています。
自己批判と自己改善 モデルが自身のレスポンスを評価し、改善する機能はあるものの、実装が複雑でストレージアダプタが必要です。 モデルが自身のレスポンスを評価し、改善する能力があり、プロンプトキャッシングをサポートしています。これにより、モデルが過去のプロンプトとレスポンスから学習することが可能です。
思考の連鎖 言語チェーンモデルを使用して会話の文脈を追跡し、一貫した思考の連鎖を維持します。 一貫した思考の連鎖を維持する能力がありますが、LangChainの構文を実装するのはそれほど簡単ではないかもしれません。
マルチターン対話の管理 マルチターン対話の管理は可能ですが、より複雑なプログラムの作成には苦労するかもしれません。 マルチターン対話を管理できるより複雑なプログラムの作成をサポートしており、一貫した推論を維持する能力が強化されます。

これらの特徴を考慮に入れて、あなたのプロジェクトやニーズに最適なツールを選択してください。

Q: Azure OpenAIでWebアプリを開発する場合はどちらのが優位でしょうか?

A: 
Azure OpenAIでWebアプリを開発する場合、どちらが優れているかは、具体的な要件や目標によります。しかし、以下の観点から考えると、Microsoft Guidanceが優位な点がいくつかあります。

1. **統合性**: Microsoft GuidanceはMicrosoftが開発したものであり、Azureとの統合がスムーズである可能性が高いです。これにより、開発プロセスが簡素化され、問題が発生した場合のサポートも容易になるでしょう。
2. **自己改善と自己批判**: Microsoft Guidanceはプロンプトキャッシングをサポートしており、モデルが過去のプロンプトとレスポンスから学習することが可能です。これは、モデルが自身のレスポンスを評価し、改善する能力を強化します。
3. **複雑な対話の管理**: Microsoft Guidanceはマルチターン対話を管理できるより複雑なプログラムの作成をサポートしています。これにより、一貫した推論を維持する能力が強化され、ユーザーとの対話がより自然で一貫したものになります。

それでも、LangChainも一部のユースケースでは優れている可能性があります。例えば、LangChainは言語チェーンモデルを使用して会話の文脈を追跡し、一貫した思考の連鎖を維持します。これは、特にマルチターンの対話で有用です。
したがって、具体的な要件や目標に基づいて最適なツールを選択することが重要です。

Q: アプリ開発において、OpenAI APIを使用しない場合はどうすればいいですか?

A: OpenAI APIを使用しない場合でも、自分自身のAIモデルを訓練し、それをWebアプリケーションに統合することは可能です。ただし、これはかなりの時間とリソースを必要とします。以下に、その大まかな手順を示します。

1. データセットの準備: AIモデルを訓練するためには、大量のデータが必要です。このデータは、モデルが学習するための「教科書」のようなものです。ChatGPTのようなモデルを訓練するためには、大量のテキストデータが必要です。
2. モデルの訓練: 次に、選択したAIフレームワーク(TensorFlow、PyTorchなど)を使用してモデルを訓練します。これは、モデルにデータセットを「読ませ」、それから学習させるプロセスです。
3. モデルの評価と調整: モデルが訓練されたら、そのパフォーマンスを評価します。これは通常、訓練データセットの一部を「テストセット」として保持し、そのテストセットを使用して行います。モデルのパフォーマンスが不十分な場合、パラメータを調整して再度訓練を行います。
4. Webアプリケーションの開発: 一方で、Webアプリケーションを開発します。ユーザーの入力を受け取り、それをモデルに送信し、モデルの出力をユーザーに表示する機能が必要です。
5. モデルの統合: WebアプリケーションとAIモデルを統合します。これは、Webアプリケーションがモデルの予測をリクエストし、結果を受け取るためのAPIを作成することを含む可能性があります。
6. アプリケーションのデプロイ: 最後に、WebアプリケーションをWebサーバーにデプロイします。

このプロセスは、OpenAI APIを使用する場合と比較して、はるかに時間とリソースを必要とします。また、自分自身でモデルを訓練する場合、そのモデルが適切に動作するようにする責任があることを忘れないでください。これには、モデルが不適切な出力を生成しないようにするための適切なセーフガードの実装が含まれます。

Q: AzureでChatGPTと同等機能のアプリケーションを作成する方法を教えてください。 ただし、OpenAIのAPIは使わないものとしてください。

A: 
OpenAIのAPIを使用せずに、AzureでChatGPTと同等の機能を持つアプリケーションを作成するには、Microsoft AzureのAIサービスを使用することができます。具体的には、Azure Bot ServiceとAzure Cognitive ServicesのLanguage Understanding (LUIS)を使用することで、自然言語理解と対話管理の能力を持つチャットボットを作成することができます。

以下に、その大まかな手順を示します。

1. **Azureアカウントの作成**: まず、Azureアカウントを作成します。すでにアカウントを持っている場合は、このステップをスキップできます。
2. **Azure Bot Serviceの設定**: Azureポータルで新しいBot Serviceリソースを作成します。これにより、ユーザーとの対話を管理するためのボットが作成されます。
3. **LUISアプリの作成**: 次に、LUISポータルで新しいアプリを作成します。このアプリは、ユーザーの入力を理解し、意図とエンティティを抽出するために使用されます。
4. **意図とエンティティの設定**: LUISアプリで、ボットが理解する必要がある各種の意図とエンティティを設定します。例えば、"greeting"という意図には、"hello", "hi", "good morning"などのフレーズを追加します。
5. **LUISアプリの訓練と発行**: 意図とエンティティを設定したら、LUISアプリを訓練し、発行します。これにより、ボットがユーザーの入力を理解するためのモデルが作成されます。
6. **ボットとLUISアプリの統合**: Azure Bot Serviceで作成したボットと、LUISアプリを統合します。これにより、ボットはユーザーの入力をLUISアプリに送信し、返された意図に基づいて適切な応答を生成することができます。
7. **Webアプリケーションの開発**: ボットとLUISアプリが準備できたら、これらを統合するWebアプリケーションを開発します。ユーザーの入力をボットに送信し、ボットの応答を表示する機能が必要です。
8. **アプリケーションのデプロイ**: 最後に、WebアプリケーションをWebサーバーにデプロイします。Azure App ServiceなどのAzureのホスティングサービスを使用することができます。

このプロセスは、ボットがユーザーの入力を理解し、適切な応答を生成する能力を持つWebアプリケーションを作成するための基本的な手順です。しかし、ChatGPTのような高度な自然言語生成能力を持つボットを作成するには、追加の訓練とチューニングが必要になる可能性があります。

Q: Microsoft AzureのAIサービスでも、PowerPoint資料を生成するアプリケーションは作成できますか?

A: 
はい、Microsoft AzureのAIサービスを使用して、PowerPoint資料を生成するアプリケーションを作成することは可能です。具体的には、AzureのCognitive Servicesの一部であるText Analytics APIやLanguage Understanding (LUIS)を使用して、ユーザーの指示を理解し、それに基づいて資料の内容を生成することができます。
しかし、PowerPoint資料自体の生成、つまりPowerPointファイル(.pptx)の作成や編集は、AzureのAIサービスだけでは実現できません。これには、Microsoft Officeのオートメーションを行うためのライブラリ(例えば、Pythonの`python-pptx`など)や、Microsoft Graph APIのようなツールを使用する必要があります。
したがって、PowerPoint資料を生成するアプリケーションを作成するには、以下のようなステップが必要になります:

1. ユーザーの入力を受け取ります(例えば、「3ページのPowerPoint資料を作成してください。内容はAIの未来についてでお願いします」)。
2. AzureのCognitive Services(Text Analytics APIやLUIS)を使用して、この入力を解析し、ユーザーの要求(資料のページ数、内容のテーマなど)を理解します。
3. この解析結果に基づいて、資料の内容を生成します。これには、AIモデルを使用してテキストを生成することも含まれます。
4. 最後に、生成した内容を元に、PowerPointファイルを作成または編集します。これには、Microsoft Officeのオートメーションを行うためのライブラリやMicrosoft Graph APIを使用します。

このように、AzureのAIサービスと他のツールを組み合わせることで、PowerPoint資料を生成するアプリケーションを作成することが可能です。ただし、これには相応のプログラミングスキルと知識が必要です。

Q: GoogleCloudのAIサービスで、"CHatGTP Code Interpreter"のようなスライド資料を生成するアプリケーションを作成できますか?

A: 
Google CloudのAIサービスを使用して、"ChatGPT Code Interpreter"のようなスライド資料を生成するアプリケーションを作成することは可能です。具体的には、Google CloudのNatural Language APIやDialogflowを使用して、ユーザーの指示を理解し、それに基づいて資料の内容を生成することができます。
しかし、スライド資料自体の生成、つまりPowerPointファイル(.pptx)やGoogle Slidesの作成や編集は、Google CloudのAIサービスだけでは実現できません。これには、Google Slides APIのようなツールを使用する必要があります。
したがって、スライド資料を生成するアプリケーションを作成するには、以下のようなステップが必要になります:

1. ユーザーの入力を受け取ります(例えば、「3ページのスライド資料を作成してください。内容はAIの未来についてでお願いします」)。
2. Google CloudのNatural Language APIやDialogflowを使用して、この入力を解析し、ユーザーの要求(資料のページ数、内容のテーマなど)を理解します。
3. この解析結果に基づいて、資料の内容を生成します。これには、AIモデルを使用してテキストを生成することも含まれます。
4. 最後に、生成した内容を元に、Google Slidesを作成または編集します。これには、Google Slides APIを使用します。

このように、Google CloudのAIサービスと他のツールを組み合わせることで、スライド資料を生成するアプリケーションを作成することが可能です。ただし、これには相応のプログラミングスキルと知識が必要です。

ここまで所要時間は30分ほど。

作るまでには別途調査が必要としても、それぞれのクラウドAPIのキーワードを教えてもらえただけでも収穫だった。