ContextCiteを試す
context_citeは、LLMによって生成されたステートメントを、コンテキストの特定の部分に帰着させるためのツールである。
デモがある
要はこういうことか
- RAGのコンテキストからLLMが回答を生成する
- ContextCiteがその回答から元のコンテキストのどの部分に該当するかの引用・脚注を付与して、回答を返す
Command-RのDocumentモードとかCitationもセットで返ってきて、とても便利なのだけど、あれを違うやり方で実装してる感じっぽい。なので特定のモデルに依存せずにどんなLLMでも使えるってのがメリット
Xのスレも見てみる
ContextCiteは、(logprobsにアクセスできると仮定すれば)どのような*LLMの上でも、わずかな数の推論コールを追加するだけで、適用することができる。
ContextCiteは次のような用途に使えるかもしれない:(1)誤った解釈や幻覚を表面化させる。
文脈に基づき、Llama-3-8Bは日食を見るためにメイン州に行くことを正しく提案しているが、日食がポートランドを通過しないにもかかわらず、メイン州のポートランドに行くべきだと幻覚を見ている!
...そして、(2)文脈の中に隠れている潜在的な毒を発見する。 ここで、Mistral-7Bの論文 "Attention Is All You Need "の要約は、少し示唆に富んでいるようだ。
しかし、ContextCiteは実際にどのように機能するのだろうか?データモデリング(https://arxiv.org/abs/2202.00622)の精神に則り、線形モデルを使用して、LLMがどのようにコンテキストのさまざまな部分を使用して応答を生成するかを推定する。
ブログ記事も
ちょっと以下のnotebookを試してみた。
- どうも日本語がうまくいかない
- 元はTinyLlamaを使っているので当然
- というこことで、TinyLlamaベースの日本語モデル「lightblue/karasu-1.1B」に置き換えてみた
- プロンプトなどもそのままだと動かないので試行錯誤で直してみた
- が、ContextCiterクラスをインスタンス化して問い合せると支離滅裂な回答になってしまう。。。
って感じ。
ちょっと深く追いかける暇もないので、今回はパス。
アイデアは良きだと思うので、全部OpenAIでやってもいいんじゃないかという気はしている。
Cohereだと普通にできるわけだし。