ogochan
Freshmeat再起動計画の話です。
ソフトウェアの要約を書くために、
を使ってみました。今回は雑な比較というか、感想を書いてみます。定量的なものは何もないので、単なるフィーリングです。
総評
あくまで「お気持ち」に過ぎないので、感じたことをだらだら書きます。
この3つの雑な感想は、現段階では
- 元のエントリがちゃんと書かれているものであればGoogle翻訳するのが一番品質が良い
- 元のエントリが雑であれば、Geminiで生成した方が安定
- ChatGPTはハルシネーションは少ないが、手抜きを感じる
- LLMはいくらプロンプトを工夫しても時々大嘘をつくので要検証
という感じです。
Google翻訳
単なる翻訳エンジンです。また、無理やり無料で使おうとAPIじゃないことをしているので、HTMLの処理に難があります。使うのはそこそこ面倒臭いです。
とは言え、元々の(原語の)説明文がちゃんと書けていれば、それを翻訳すれば良いだけです。雑にしておくならそのまま、ちゃんとしたいのであればそれを下訳として手を入れれば、元著者の意向に沿ったエントリとなりますから、これで出来ればこれが一番です。アピールしたい点とか、元のエントリにちゃんと書いてあればそれがそのまま出て来ます。
ただし、当然ながらそこに書いてある以上のことはできません。文章を直してもくれません。元の文章のおかしなところはそのままです。また、タグの処理は入れようがないので何もしてくれません。
そういった意味だと、これが使えるのは「元のエントリがしっかりしている」という条件がつきます。
「しっかりしている」というのも、そのエントリ単位だけではなくて、全体の景色としての一致とかもあります。
そういった意味では、これを採用するハードルは高いのですが、「AI馬鹿だな」と思った時には威力があります。
ChatGPT
4oを使っています。
さすがはAIです。うまく当たればいろいろちゃんとしてくれます。元の説明文が不足でも、参考URLがあればその情報を元に書いてくれます。プロンプトを頑張れば品質も揃います。Geminiもそうですが、元エントリが雑であってもどうにしてくれるのは、本当に心強いです。
ただし、元エントリの内容や構成はほぼ無視です。重視しろと書いても、頑なに自分のスタイルでやろうとします。元エントリにアピールポイントがずらーっとあっても、かなり厳しく個数を制限します。この辺、プロンプトで緩めにしてるのですが、それでもなかなかうまくやってくれません。
また、ChatGPTの特性だと思うのですが、RAGとゆーか「リンク先」についての処理をサボろうとします。また、リンク先に広告がいっぱいあると、広告の情報に引っぱられてしまいます。「広告は無視しろ」と指示してもどうもダメで、しょうがないのでスクレイピングを自分でやって、それを食わせるということをしなければならなかったりします。そうしてやってもURLを与えていたら、そこのリンク先の広告を見たりします。
文章の品質や安定性は悪くないです。でも、「リンク先」の処理を手抜きしようとして、そのせいで破綻することが少なくありません。
「結果はJSONでちょうだいね」と指示した時にJSONがおかしい時があるのは御愛嬌です。そんな時は再処理です。
そんなに酷いというわけではないのですが、二軍扱いになっています。一番困るのは、
トークン単位の課金
だということです。気持ちはわかるのですが、トークンの数なんて意識して処理させてるわけではないので、費用が不透明になります。いくら単価が低くてもちょっと使い辛いです。
RAGというかURLを指定した時に広告の情報に騙されるのは困ったものです。
ちなみに、プロンプトはGeminiと同じです。共通化したいということもありますし、片方にある問題は顕在化するかどうかは別にしても同じものがあるだろうと思って、「パッチ」的なものも含めて同じにしてあります。
Gemini
Flashを使っています。
AIであるという意味でChatGPTとメリットは同じです。自分のスタイルを押しつげがちになるところも同じです。この辺、いろいろプロンプトを工夫しても、Temperatureを小さ目にしても、あまり良い方向の変化はありません。
リンク先の処理についてはChatGPTよりはマシですが、広告に惑わされる点は大差ないです。「○○と書いてあるブロックは広告だから無視しろ」と言ってもダメです。この点もChatGPTと同じです。
「JSONで結果をよこせ」は、そもそも「返し方」の指定でJSONが指定できるのは良いんですが、おかしいJSONを返して来るという点ではChatGPTに「JSONでちょうだい」と言った時と大差ありません。文章(のHTML)を返す時に'\n'
を入れるべきところに'\\n
'を入れて来るのも、まぁ御愛嬌でしょう。これについてはreplaceAll('\\n','\n')
です。まぁ機械的に対処できるので問題ないです。
課金がトランザクション単位であるのは嬉しいです。そもそも、処理ペースやら量の関係で無料の範囲で納まってしまっているというのはありますが、課金されても見積りしやすいのは良いです。
Proを使っても無料の範囲でできるのですが、あえてFlashにしています。と言うか、Proを使うメリットを感じられなかったからです。
より高度なタスクをさせたらどうなるかはわかりませんが、今回やっているタスクの範囲だとFlashもProも大差ない結果ですし、当然ながらProは遅いです。プロンプトの無視し具合も大差ないです。広告に騙されるところも同じです。
結論
他の条件だとどうなるかはわかりませんが、今やっている「ソフトウェアの説明の文章やURLを渡して要約を書かせる」というタスクに関して言えば、Gemini Flashを使うのが一番妥当で、それで足りなければGoogle翻訳を使うというのが、一番品質が担保しやすいなというのが個人的な感想です。
と同時に、「言いたいことがあるなら自分でちゃんとした文章を書いておけ」という、ごく当たり前のことの必要性も感じました。
今後NotebookLMのような「AIを使って文章理解の手伝いをしてくれる」というものは、いろんな場面で使われると思うのですが、「そもそもそんなものなくても伝わる文章」というのは大事だなと。
GeminiもChatGPTも、容赦なく要約してくれます。そこが嬉しいのは事実なんですが、「作者はここがアピールしたかったんだよな」という感じの情報が結構欠落します。なんとゆーか
人の心がない
要約をしてくれます。客観的には「冗長だしね」という納得ができる情報ですが、「思い」みたいなものは消えてしまいます。AIが文章を読んで要約してくれる時代だからこそ、人間の書いた文章をちゃんとするのは大事なのだなぁという感想です。