テックブログ2023-09-13

GPT の出力文章と人の書いた文章の比較

R&Dチーム

はじめに

R&D チームの森元と田嶋です。ChatGPT を利用しているとどうしても出力される文章に「GPT っぽさ」を感じてしまうことがあります。本記事では GPT が出力する文章の何が「GPT っぽさ」の原因となっているのか、人の書いた文章と比較した結果について記載します。

比較の目的

2023 年の 8 月に、LAPRAS SCOUT に「求人自動生成」機能をリリースしました1。「求人自動生成」機能は名前の通り求人票を自動生成する機能で、職種と公開済みの求人や会社ホームページ、テックブログなどの URL、フリーテキスト情報を入力すると、求人票が自動的に生成されます。裏側では URL の先の情報を取得した上で、これを元にプロンプトを構築して OpenAI 社の GPT モデルに入力し、求人票を生成しています。R&D チームはプロンプトなどの検証結果を元に作成した Python のライブラリを開発チームと共有しています。さらに、開発チームがこのライブラリをサーバー側にインストールして利用することでこの機能を実現しています。

リリースに先立ち、普段求人票に多く触れている社内の CSM チームの方などに本機能を触ってもらい、感想を募りました。その結果、「やはり AI が作りました感は強めの文章のため、そのまま求人票として出すのは厳しそう」という感想をもらいました。これを受けて R&D チームでは、リリース直前の一週間でなんとかこの GPT っぽさを消すことが出来ないか検証してみました。 GPT っぽさを消すためには、何がこれをもたらしているのか原因を知る必要があったため、GPT で生成した求人票と人が手で書いた求人票を比較するところから始めました。

※ 今回利用したモデルは gpt-3.5-turbo-0613 です、他のモデルでは異なる結果になるかもしれません
※ 今回は日本語で記述した求人票を対象としています、別の言語や別の種類の文章の場合は異なる結果になるかもしれません

比較の方法とその結果

日本語の文章として見たときに明らかにおかしい場合もありますが、文章として正しいのに GPT っぽさを感じてしまう場合があります。今回は後者についてその理由を探ってみました。

GPT などの大規模言語モデル (LLM) の出力文章と、人の書いた文章の比較などはこれまでやったことが無く、そういった内容の先行研究も思いつかなかったため、時間の許す限り思いついた方法で探索的に比較を行いました。

文章に含まれる品詞の比較

まず、GPT で生成した求人票と、人が手で書いた求人票の文章に含まれる品詞の出現頻度を比較してみました。

両者の求人票の絶対数に違いがあったため、図では各々について足して 1 となるよう変換を施しています。大きな違いは見受けられませんでしたが、GPT の方が少し句読点の出現頻度が高く、また空白はの出現頻度は低くなっていました。

係り受け関係の比較

GPT はより英語に近い日本語を出力する傾向にあると考え、GPT の方が主語を多用していないか確認するために、GPT と人が手で書いた文章の係り受け関係についても比較してみました。

こちらでは GPT の方が、名詞修飾語、格表示、句読点の出現頻度が高く、逆に複合名詞の頻度は低くなっていました。

また、格表示において何が具体的に GPT で多く出現しているのか確認してみました。

こちらでは「や」や「は」、「の」で GPT の方が出現頻度が高く、逆に「を」や「に」では頻度は低くなっていました。

GPT で求人票を生成すると、「バックエンドエンジニアは」や「バックエンドエンジニアの」のような職種に関する言及が比較的多くなり、その結果として名詞修飾語、格表示の出現頻度が高くなったと考えています。
また、句読点に関しては実際に生成された文章を目で見ても GPT の方がより多く用いる傾向にありました。
複合名詞の出現頻度が GPT の求人票で低いのは、プロンプトにその求人に関わるサービスやプロダクトの情報を十分に含めることが出来ていないことが理由として考えられたため、後のプロンプトの改修時に修正しました。

1 求人あたりのユニークな単語数

GPT の方が人が手で書いた場合と比べて冗長な表現になっていないか確認するために、一つの求人の文章に含まれる、ユニークな単語の割合を比較してみました。

やはり GPT の方がユニークな単語の割合は小さく、より冗長な (同じ表現を繰り返す) 文章となっていました。

1 文章あたりの単語数

GPT の方が人と比べて短かい文章を出力する傾向にあると考え、これを確認するために、一つの文章に含まれる単語の数を比較してみました。

こちらはやはり GPT による出力の方が一つの文章に含まれる単語の数は少なく、より短い文章を出力していることが分かりました。また、もう一つ面白い発見として、GPT の方がこの分布における分散が顕著に小さくなっていました (標準偏差で人は 65.64、GPT は 34.42)。つまり、GPT の方が比較的短か目の、同じような長さの文章を淡々紡ぐようです。

まとめ

以上から GPT の出力した文章と、人の書いた文章を比較すると以下のような違いがありました:

  • GPT は、誰が読んでも同じ解釈をできるように、主語を明示したりなどなるべくローコンテキストな出力を好む
  • GPT は、読みやすい適切な長さの文章を淡々と紡ぐことを好む

ただしこれは求人票という少し特殊な文章との比較を行った結果であり、例えば Wikipedia の記事との比較を行うとまた違った結果が得られるかもしれません。

今回の比較結果の考察に基づき、求人自動生成機能には少しでも GPT っぽさを軽減できるよう改修を加えました。ただし、GPT っぽさを完全に払拭できたという実感は全くありません。今後も GPT っぽさを軽減するために、今回のような分析や、プロンプトの工夫を模索していきたいと思います。特に分析については、今回は探索的にしか進めることが出来なかったため、次回は今回の経験を踏まえてもう少し体系的に取り組みたいと考えています。

注釈1: https://prtimes.jp/main/html/rd/p/000000061.000024729.html

このエントリーをはてなブックマークに追加