2022年の中頃からじわじわと話題になってきて、今では毎日のようにニュースになっているAIチャット。最近ではChatGTPが話題になったり、マイクロソフトの検索エンジンであるBingにAIチャットが導入されるとかで話題になったり、ついにGoogleもBardというAIチャットを発表したりと、まさに今年2023年は対話型AIの黎明期となりそうだ。
自分も流行りに乗ってCatchyとChatGTPを実際に触ってみたけど、噂通りしっかりこちらの問い合わせに対して回答してくれるし、文章もそこそこ違和感ない状態だし、かなり可能性を感じている。
で、この辺はどれもある程度無料で触れるので、実際に試してみた人も多いだろうし、自分と同じようにスゲーって思った人も多いと思う。
だけど、これを今の時点で有効活用できている人って果たしてどれだけいるのだろう。
あくまで自分の感覚でしかないけれど、正直なところ面白がって触る人は多いものの、本当にツールとして使いこなしている人は少ないように思う。少なくともエンジニアとして仕事をしている自分の周りですら誰ひとりいない。
今回は対話型AIチャットは業務利用できるのか?できないのなら、どこを改善すれば有効活用できるのかを考えていきたいと思う。
現在のできること
こういうのは本人に聞いたほうが良いような気がしたので、ChatGTPに「ChatGTPで何ができるか教えて」と質問を投げてみた。
回答のテキストは以下だ。
こんにちは!私はOpenAIがトレーニングした大規模な言語モデルのChatGPTです。私は様々なタスクを実行することができます:
ChatGTPの回答をそのまま記載
質問への回答: 私は多くのトピックについての知識を持っています。天気、歴史、数学などに関する質問に対して答えられるかもしれません。
文書生成: 私に特定のトピックに関するテキストを生成させることもできます。例えば、新聞記事やエッセイなどを生成することができます。
文書のサマリー生成: 私は長い文書を短くまとめることもできます。
文章の補完: 私はあなたが入力したテキストの最後の部分を推測して補完することもできます。
これらは私ができる一部のタスクです。何か特定の要件がありますか?お手伝いできることがありますか?
意外と自信がなさそうに見えるのがちょっと可愛いものの、結構前向きにこちらの質問に向き合ってくれている感じがして好印象ではある。いいヤツっぽい。
文章作成について
自分が使っている感じだと、Googleでウィキペディアを検索して要約するくらいのことは全然できるし、質問の投げ方を工夫すれば文章作成も結構しっかりやってくれる印象だ。
商品レビューのテンプレートを聞いてみたら、以下のようにちゃんと要点を教えてくれた。ちょっといじればそのままセクションタイトルと本文に書くべきことが見えてくると思う。
さらに質問を重ねれば、より小さいセクション構成も導き出せるので、文章を書く際の構成を考える際は役に立つと思う。
質問の仕方によっては本文の校正もしてくれ、以下のような使い方もできる。
プログラムの作成について
一番最初の紹介画像では言及されていなかったものの、実はプログラムの作成なんかも出来てしまうのがすごいところ。
試しに「Javaでjson形式のデータをpostする方法を教えて」と聞いてみると、プログラムの簡単な設計と、実コードを教えてくれた。
文字数制限なのか途中で切れてしまったので、「HttpURLConnectionを利用した方法を教えて」と追加質問をしたら、しっかりコードが返ってきた。
import java.io.BufferedReader;
ChatGTPで生成したソースコード
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) throws Exception {
URL url = new URL(“http://example.com/api/post”);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
// Request method
con.setRequestMethod(“POST”);
// Request headers
con.setRequestProperty(“Content-Type”, “application/json; utf-8”);
con.setRequestProperty(“Accept”, “application/json”);
// Request body
String jsonInputString = “{\”name\”:\”John\”,\”age\”:30,\”city\”:\”New York\”}”;
// Enable write to the connection
con.setDoOutput(true);
try (DataOutputStream out = new DataOutputStream(con.getOutputStream())) {
out.writeBytes(jsonInputString);
out.flush();
}
int status = con.getResponseCode();
if (status != 200) {
throw new RuntimeException(“Failed : HTTP error code : ” + con.getResponseCode());
}
// Read response
StringBuilder response = new StringBuilder();
try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()))) {
String line;
while ((line = in.readLine()) != null) {
response.append(line);
}
}
System.out.println(response.toString());
}
}
ステータスコードの判定が入っているのがポイント高い。その他のエラーハンドリングが甘い部分はあるものの、このあたりはシステムによって考え方が違ったりするし、ちょっと足してあげれば充分に使えると思う。すげえ。
個人的には文章作成よりプログラム作成の方が感動した。日本はプログラマーよりSEの方が給料が高い傾向があり、プログラマー軽視だしあんまり良い傾向ではないよなと常々思っていたが、ここまでくると中途半端にプログラマーやるのはおすすめできないのかも。今後どうなっちゃうんだろう。
そのうち、今はSE→プログラマーに流れていた設計書が、SE→AIに設計書が流れるのが当たり前になるかも知れない。SEにはAIに正しく指示をするという新しい能力が求められる時代がくるのだろうか?
文章作成の部分においてもウェブライター業界は震撼してるだろうけれど、エンジニア界隈もそこそこ震えとるぞ。本当に。
業務利用について
文章作成、プログラム作成についてはなかなかのレベルにあることは前述したが、業務利用となるとまた別だ。
少なくとも訓練なく使いこなすのは無理だし、現状はAIに対して過度な期待を持っている人が多いような気がするのもあり、まだ実用的に使える段階ではないと思う。
もちろん、中には有効活用している人もいるとは思うが、万人がGoogle検索のように当たり前に使うツールになるのはもう少し先の未来なんじゃないかという印象だ。
これはAIを使う側の人間がまだAIの業務利用に対しての見識がなく、多くの人がAI活用する術を見いだせていないからだろう。
ただ、これから先は徐々にAIを業務利用する例が増えてくるだろうし、ノウハウも現在より豊富になってくるだろう。
そうなったらAIの業務利用は当たり前の時代になる。恐らく、そう遠くない未来に。
日本は新しい技術より確立された安定した技術を好む風潮があるので、大手ベンダーにくっついて仕事している自分のようなエンジニアが業務でAIを触るのは世間の波より遅くはなりそうだが、今より効率よく仕事ができる環境が今後整備されることに期待したい。
AIはすごいけど、それを作った人間はもっとすごい。人間はAIの普及にビビらず、こき使ってやったらいい。
現状、業務利用はまだ速い。が、必ず当たり前になる時代が来るはずだ。
最後に
AIの業務利用についてと言うテーマで、実際にAIで生成した文章を用いて持論を述べた。稚拙ではあるが、少しでもAIの利用について前向きになる人が増えればいいと思っている。
因みにこの文章はAIではない。たぶん。
今のところ、まだまだ日本語の文章を違和感なく生成することはできない。逆に完璧に生成できたとしても、その誤字脱字のない文章に人間らしさは宿るだろうか。それがない文章でコミュニケーションが上手くいくのだろうか。
我々日本人は日本語という世界でも稀に見る繊細な言語を用いている。自分はこの部分に関しては誇りを持ちたいし、AIにはまだ早いであろう感情を乗せていきたいと思っている。
負けねえぞ、AI。