📝

書評:ソフトウェア開発にChatGPTは使えるのか? 設計からコーディングまでAIの限界を探る

2023/08/23に公開

こちらの本を読んだので各章のまとめと書評を書き残しておきます。

https://amzn.asia/d/hm6reIW

第1章 ChatGPTで何ができる?なぜできる?

この章では、ChatGPTの基本的な概念と仕組みについて説明しています。ChatGPTは、プロンプトと呼ばれる指示文を使って、特定のタスクに対応させることができます。例えば、「コードを書いてください」というプロンプトに対して、ChatGPTはコードを生成することができます。

今のChatGPT 技術のもとになっているAttention is all you needという有名な論文も紹介されており、そのうち時間をかけて精読したいと思いました。

https://arxiv.org/pdf/1706.03762.pdf

第2章 プログラミングでの活用

この章では、ChatGPTを使ってプログラミングを効率化する方法について紹介しています。最後に、ChatGPTがサポートするプログラミング言語やフレームワークの一覧や、それらを使ったコード生成の例題を紹介しています。

エラーハンドリングやデザインパターンの実装など実務でも使えそうなプロンプトが多く参考になりました。

第3章 リファクタリングでの活用

この章では、ChatGPTを使ってコードのリファクタリングを行う方法について紹介しています。ChatGPTは、入力されたコードからその目的や構造を理解し、それに基づいてコードの改善点を見つけます。その後、改善点に対応するようにコードを修正します。その際には、入力の言語やフォーマット、スタイルなども考慮します。

第4章 ドキュメントの自動生成

この章では、ChatGPTを使ってドキュメントを自動生成する方法について紹介しています。入力の言語やフォーマット、スタイルなども考慮します。ChatGPTがサポートするドキュメントの種類やフォーマットの一覧や、それらを使ったドキュメント生成の例題を紹介してくれています。

パワーポイントやワード、エクセルの自動生成は今後M365 にCopilot が導入されるとより効率的になるかもしれません。

diagrams というクラウドのアーキテクチャを書いてくれるPython ライブラリがあるらしく、今後利用してみたいと思いました。(Azure 版はなさそう、、)

https://diagrams.mingrammer.com/

第5章 各種開発手法の提案

この章では、ChatGPTを使って各種の開発手法を提案する方法について紹介しています。DDD (ドメイン駆動開発)による設計と実装の章では簡単なプロンプトでDDDに沿ったクラス図を作れることを示しています。本章で紹介されているPythonコードは一般に公開されています。

https://github.com/gamasenninn/gihyo-ChatGPT/tree/main/notebooks

第6章 学習プロセスでの活用

この章では、ChatGPTを使って学習プロセスを助ける方法について紹介しています。対話型ということを活かして「○○としてふるまってください」などシチュエーションを与えたプロンプトなどが紹介されています。

また、プログラミングの学習のためペアプロの相手にすることもでき、学習効率が飛躍的に上がりそうです。

第7章 ChatGPT APIを活用する

この章では、ChatGPT APIというWebサービスを使ってChatGPTの機能を呼び出す方法について紹介しています。ChatGPT APIとは、OpenAIが提供するChatGPTの機能をWeb上で利用できるようにしたサービスです。この章では、ChatGPT APIの基本的な使い方や設定方法について説明しています。

https://github.com/gamasenninn/gihyo-ChatGPT/blob/main/notebooks/7_4_query_to_DB_as_task.ipynb

第8章 ChatGPTで長文データを扱う

この章では、ChatGPTを使って長文データを生成や分析を行う方法について紹介しています。LlmaIndex というライブラリを使って長文データを手軽に検索できるようになるようです。

https://github.com/jerryjliu/llama_index

また、LangChain を使った長文データの扱い方についても詳細なコマンドと共に解説されています。

第9章 LangChain によるプロセス自動化

この章では、LangChain というフレームワークを使ってChatGPT の機能を組み合わせてプロセス自動化する方法について紹介しています。この章では、LangChain の基本的な概念と仕組みについて説明しています。

後半ではLangChain によるChatBot 作成例が書かれています。ChatPGT によって作成されたコードを Google Colab にコピペして実行していくがよくとられる手法ですが、LangChain の Agent を利用することでプログラムの自動実行が可能になるようです。

その他にも様々な自動化の例が解説されています。


以上が、本書の各章の内容と書評です。この本は、ChatGPTを使ってソフトウェア開発に役立てる方法を紹介したもので、ChatGPTの機能や応用範囲について具体的な例を挙げて解説しているので、読者はChatGPTの可能性や限界を理解できると思います。また、ChatGPTを使う際のベストプラクティスや注意点についても具体的に述べられており、実務でも活かせる内容が多かったです。

GitHubで編集を提案

Discussion