0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Clineでちょっとしたツールを作ってみたときの感想

Posted at

Clineだけを使ってツールを書かせてみた。この過程で見えてきた、Clineの特徴や注意点をまとめます。

コンテキストにない情報は知らない

期待するコードを書いてもらうには、その条件を漏れなく指示する必要があります。不足していた場合、その部分は適当に埋められてしまいます。

例えば、利用ライブラリの情報がプロンプトに含まれていない場合、既に特定のライブラリを使って書かれたコードがあっても、別のコードを書く時どのライブラリが使われるかは運任せです。

希望通りのライブラリが使われたとしても、非推奨となっている古い関数を使われることもあります。

実装済みの関数があっても、その関数の存在や利用意図が伝わらないと、関数を再実装し始めることもあります。

また、LLMはコンテキストが切り替わると全て忘れてしまうので、何度も同じ情報を含めて指示する必要があります。

同じ内容を毎回打ち込むのは面倒なので、設計ドキュメントを用意して毎回プロンプトに含めたり.clinerulesを使ったりするのが、有効な方法となります。
ただ、この方法は次の問題とトレードオフの関係になっています。

無関係な情報を与えすぎると頭が悪くなる

Clineで何度指示を工夫しても解決しなかった問題が、Chatに必要最小限の情報だけを書いたら、一発で解決したことがありました。(全く同じモデルで)

何かのレポートにもありましたが、LLMはコンテキストが長くなるほど性能が下がる傾向にあり、特に関係のない情報が多く含まれると、それに惑わされるようです。

LLMの性能が下がるといっても、正直どのくらい下がるか分からないし、そもそもモデルの性能評価自体が難しいです。とりあえず、必要そうな情報は全て与えるのが良さそうに思えますが、このよく分からない性能が非常に重要なのでそうもいきません。

現状、問題を解決できなくて永遠にループする状態が、事実上AIの性能限界と言えます。
AIがスタックした場合、あきらめて手動で問題を解決するか、LLMが解決できるレベルにタスクを分解してあげる必要があります。

できるだけAIに独力で問題を解決させるためには、必要最小限の情報だけを与えるのが理想になりそうですが、手間をかけずにどう情報を与えるのか、このバランスを取るのが今後の課題になりそうに思います。

まとめ

  • コンテキストにない情報をAIは推測で埋めてしまうため、指示は詳細に行う必要がある
  • 頻繁に必要となる情報はドキュメント化や.clinerules利用で手間を減らせる
  • コンテキストに無関係な情報が多すぎるとAIの性能が低下する
  • 最小限かつ適切な情報を与えるバランスが今後の課題
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?