ChatGPT のチャットの引き継ぎメモを作ってみたい ~ LM Studio Qwen 3.5-9b 試行錯誤メモ(1)

LocalLLM

LM Studio で動かしている Qwen で何かできないかなぁといろいろ考えてたんですが、ひとつ思いついたのが、ChatGPT でコンテキストをオーバーしそうなチャットをログから引き継ぎプロンプトを作らせることができたらおもしろいかなと。

ただ、Qwen 3.5-9b はちょっと使っているのですが、性能的には高いとは決して言えず、さまざまなパラメータを試しながらよさそうな結果が出る組み合わせがないかを見ているところです。(要するに嘘ついたり大事なところ落としたりします)

なので表題の目的はあくまで「夢」のようなものです。実現のために何やってるかのログがここには記されています。ひたすらうまくいかない展開になると思われますので、ストレス溜まる方はここでおかえりください(笑)


まずは簡単なメモから引き継ぎメモを作らせることからはじめてみようということで、そのための Qwen 3.5-9b の設定をもう少し詰めてメモの内容を検証してみることにしました。

@donpy
では Qwen 3.5 9b をもうちょっとチューニングしていきたいですね

今回使ったのはQwen3.5 9B Q6_K。Context Lengthは16384、GPU Offloadは32です。

相談相手はChatGPT。ここからの「AI」はChatGPTのことで、LM Studio上のQwenが出した回答や設定画面を見せながら進めています。

目標は、回答までの待ち時間を短くしつつ、引き継ぎに必要な情報を正しく残すこと。まずは長い会話ログを丸ごと渡す前に、短い作業記録で比較することになりました。

まずはTemperature 0.1と1.0を1回ずつ

設定画面を見せると、Temperatureは0.1、Top Kは40になっていました。

AIは比較対象としてTemperature 1.0を提案。ただ、いきなり変更するのではなく、まず現在の0.1で基準を作ります。

渡したのは、用途の決定、生成速度、要約で起きた取り違え、設定変更の実施状況などを箇条書きにした短い記録。それを「決定事項」「確認できた結果」「未確認事項」の3項目にまとめてもらいます。

ここで見たいのは、見送った案を最終決定に混ぜないか、確認できていない操作を勝手に実施済み・未実施と決めないか、というところです。

0.1で出た回答を見せると、AIはこう評価しました。

AI: 今回の回答は、指定した3項目を正しく整理できています。 「未確認」も断定に変えていません。

次にTemperatureだけを1.0へ変更し、新しいチャットで同じ入力を試しました。画面をAIが読み取った結果は、こうです。

1回目の比較Temperature 0.1Temperature 1.0
思考時間14.41秒23.89秒
生成トークン数1,3862,211
生成速度87.04 tok/s87.04 tok/s
要約の正確さ問題なし問題なし

どちらも正しくまとめられている。でも、1.0の方が長く考えています。

AI: 今回は「未確認」を正しく残し、用途も引き継ぎメモ作成に絞れています。ただ、生成速度は同じで、出力するトークンが増えたぶん待ち時間が長くなっています。

1回だけでは優劣は決められないので、次は設定を変えず、新規チャットで同じテストをもう1回しましょう。今回の長さが偶然か、繰り返す傾向かを確認できます。

なるほど。同じ速さで生成していても、生成する量が増えれば待ち時間は長くなる。ただ、各1回では、その違いがたまたま出ただけかもしれない。

「もう一度」は、両方をもう1回ずつ

ただ、AIの「設定を変えず、もう1回」という説明では、1.0だけを繰り返すのか、両方なのかが少し曖昧でした。

@donpy
Temparature 0.1 と 1.0 をもう一度やるんですかね?

AI: はい、0.1と1.0をそれぞれもう1回ずつ試しましょう。先ほどの説明が曖昧でしたね。

ほかの設定と入力文はそろえたまま、別々の新規チャットで試します。これで、それぞれ計2回です。

0.1の2回目は20.75秒。1回目の14.41秒より長くなりました。同じ設定でも、思考時間には差が出るんですね。

続いて1.0の2回目を試すと25.07秒でした。

設定1回目2回目平均思考時間
Temperature 0.114.41秒20.75秒17.58秒
Temperature 1.023.89秒25.07秒24.48秒

AIの評価では、要約は4回とも正確でした。

AI: 今回は0.1の方が平均で約7秒短く、1.0による品質改善は見られませんでした。これは今回の入力・ほかの設定を固定した範囲での判断です。

この短い入力では、0.1を仮採用することになりました。

次はTemperatureを0.1に固定し、Top Kだけ40から20へ変更。同じ入力を試したところ、正確さは保たれ、思考時間は15.63秒でした。

Top-k(トップケー)とは、生成AI(LLM)が次に続く言葉(トークン)を予測する際、確率が高い順に並べた候補の中から「上位K個の選択肢だけを残し、それ以外を排除する」というサンプリングパラメータ(設定値)のことです。40から20に変更したので、より高確率(上位20個)の言葉が絞り込まれることで高速化を期待しています。

ただ、Top K 40でも14.41秒と20.75秒が出ています。15.63秒はその範囲内なので、「20に変えたから速くなった」とまでは言えません。

短い入力の比較はいったんここまで。Temperature 0.1/Top K 20を仮設定にして、本来やりたかった会話ログの引き継ぎへ進みます。

短い記録はまとめられた。では、会話ログは?

@donpy
引継ぎメモのやつですかね?

AI: はい、以前試した「実際の会話ログから引き継ぎメモを作る」やつです。

完成した引き継ぎメモではなく、元の会話ログを渡します。Temperature 0.1/Top K 20のまま、新規チャットで次の指示を添えてください。

ここからは、すでに整理された箇条書きではなく、やり取りが続く会話ログが材料です。

最終的な用途、環境・設定、実施済みの操作と結果、未確認事項、次の操作を拾ってもらう。途中の候補と最終決定を区別し、提案だけの操作を実施済みにしない、という指示も添えました。

ところが、Qwenが作ったメモでは、用途が変わっていました。

やりたいのは「会話ログからの引き継ぎメモ作成」なのに、Qwenは作業内容を独自に解釈して「環境設定の検証および性能確認」が主目的だとまとめています。

うそこけっ!(と思いました)

さらに、「適用した記録がないため、未実施とみなす」という断定もありました。

記録がないことと、やっていないことは違うんですよね。これでは引継ぎメモとしては使えません。

根拠を抜き出せても、修正しきれない

ここでAIが提案したのは、設定をさらに変えることではなく、まず根拠の抽出だけをさせることでした。

元の会話から、最終用途や設定変更の実施を確認できる発言を、そのまま抜き出してもらいます。Qwen自身が作ったメモを根拠に使わない、という指定も入ります。

AI: これで、根拠の抽出から間違うのか、抽出できても要約で変えてしまうのかを切り分けられます。

試すと、用途は正しく拾えました。設定変更についても「記載を確認できない」と答え、未実施とは断定していません。

では、その根拠を使って先ほどのメモを直せばどうなるか。もう一度 Qwen に投げてみますと・・・

用途は直りました。しかし、設定の欄では「変更は未確認」と書きながら、結果の欄には「未実施とみなす」が残っています。同じメモの中で矛盾してしまいました。

AI: つまり、根拠を拾えても、メモ全体へ一貫して反映できない例が確認できました。私の「抽出してから修正する」提案も、今回は十分ではありませんでした。

根拠さえ拾わせれば解決、とはいかないようです。長いログの修正を繰り返すのはいったん止めて、短い区間なら扱えるかを試すことになりました。

要約をやめて、試行の数値だけを表にしてみる

次の材料は、先ほど行ったTemperature比較のやり取りです。設定、各試行の結果、仮採用した理由を短い引き継ぎメモにしてもらいました。

AIの評価では、大筋は合っているものの、数値の取りこぼしと同じ試行の重複掲載が残っていました。

ここで、さらに仕事を絞ります。「引き継ぎメモにまとめる」のをやめて、まず試行を1行ずつ表にしてもらうことにしました。

AI: 次は修正を繰り返すより、入力の数値だけを抽出するテストに絞りましょう。新規チャットで同じログに、次の指示を添えてください。

内容ですが、Temperature、Top K、何回目、思考時間、生成トークン数を並べる。同じ試行の再掲はまとめ、平均値を別の試行として数えない。記載のない値は補わない、という指示です。

比較の途中で同じ結果を何度も振り返っているので、会話には同じ数値が繰り返し登場します。それを別々の試行と数えずに整理できるか、というテストですね。

今度は5試行を重複なく並べられました。

AI: 今回は5試行を重複なく並べられています。 前回抜けた「1.0の2回目・25.07秒」も拾えました。

「記載なし」の箇所は、投入した文章に値がなければ正しい対応です。スクショだけにある数値と、コピーした文章にある数値は分けて評価する必要がありますね。

ここは大事で、画面には見えていても、Qwenへ渡した文章に入っていなければ拾えません。欠落をすべてモデルの間違いとは数えられないわけです。

ただ、表を作るために思考1分39秒、8,849トークン。生成速度は86.54 tok/sでした。

表はできた。でも、これだけ待つのはなかなか重い。そこで次は、Thinkingを切ったら待ち時間と正確さがどう変わるか、という比較へ進みます。

Thinkの切り替えが見つからない

AIの案内に沿って設定画面を探したのですが、Thinkingの切り替えが見当たりません。

右側の設定、モデルの一覧、読み込み設定、詳細設定と確認していきます。それでも出てこない。

AI: ここにもThinkingの切替はありませんね。 読み込み設定まで案内したのは遠回りでした。

そこで、LM Studioを0.4.13から0.4.26へ更新し、モデルを読み込み直しました。するとモデル一覧の表示が変わり、チャット画面で切り替えボタンを確認できました。ただ、バージョンアップしてなかっただけの話でした。

AI: 出ました! 左下の青い「Think」が切替ボタンです。

これで、ようやく同じ表作成をThink OFFで試せます。

Think OFFは速い。でも、5試行が7行になる

Temperature 0.1/Top K 20はそのまま。新しいチャットでThink OFFを確認し、先ほどと同じ指示と作業記録を渡しました。

今度は257トークン、87.62 tok/s。AIの見積もりでは、本文の生成部分は約3秒でした。thinking が99秒で 今回3秒ですから劇的な高速化です。長い思考表示もありません。

ただ、表は5行ではなく7行になっています。

AI: 一方、Temperature 0.1の1回目・2回目が、それぞれ「Top K記載なし」と「40」で二重に載っています。 この表は修正が必要です。

Temperature比較の場面と、Top K比較で同じ結果を振り返った場面。それぞれを別の試行として拾ってしまったようです。

同じチャットで、Temperature・何回目・思考時間・生成トークン数が一致する行を統合するよう指示しました。

しかし、7行の表がそのまま再出力されました。

AI: 訂正できていませんね。7行の表をそのまま再出力しています。 速度は86.36 tok/sで、速さは維持していますが、重複を統合する指示には従えていません。

速くはなった。でも、訂正しても重複が消えない。

さらに今回は、Thinkを切る前にアプリも更新しています。更新前の結果との比較だけでは、Thinkの有無による違いを分けられません。

そこで、更新後のLM StudioでThink ONも試すことになりました。

AI: これでアプリのバージョンを揃えて、Thinkの有無で重複処理の正確さと待ち時間がどう変わるかを判断できます。今回は修正指示を重ねず、最初の回答を比較しましょう。

新しいチャットで、同じ入力をThink ONに渡します。

結果は、重複なし。ただし、別の情報が抜けました。

AI: Think ONでは重複は消えましたが、2分21秒考えたうえに、Top K「40」が抜けました。

OFFの約3秒は生成量と速度からの見積もりで、ONの2分21秒は思考時間です。測っている範囲は違いますが、待たされたうえに情報の欠落も残る、という結果でした。

この比較はいったん終了。当面はThink OFFを基本にして、元の目的である引き継ぎメモを試すことになりました。(ボロボロだなと思いながら進めてます)

短くまとめてもらうと、必要な設定まで落ちる

ここで渡す材料を、もう一度、短い整理済みの作業記録に戻しました。

今回の用途、PC構成、モデルと設定値、アプリの更新、Think ON/OFFの比較結果、まだ確認できていないこと。それらを箇条書きで渡し、「決定事項」「実施済みと結果」「未確認事項」に短くまとめてもらいます。

長い会話の重複整理を外した状態で、必要な情報を残せるかを見るテストです。

最初の回答では、用途やThink OFFの方針、未確認事項は正しく残りました。その一方、RAMやVRAM、量子化、Context Length、Temperatureなどの値が抜けています。

AI: 今回は「短く」という指示で、引き継ぎに必要な設定まで省いた可能性があります。設定は変えず、新規チャットで同じプロンプトに次の1文を追加しましょう。

追加する指示は、これでした。

AI: 「実施済みと結果」には、PC構成・ソフトのバージョン・モデルの量子化・設定値を、省略せず箇条書きで残してください。

すると、今度は環境と設定値が全部残りました。

ところが、Think ON/OFFを比較した結果が丸ごと省かれています。どんな環境かはわかっても、そこで何を試してどうなったのかがわからない。引き継ぎとしては、まだ足りません。

そこで、もう一文を足します。

AI: 実施したテストの結果も残してください。環境・設定と、テスト結果を別々の箇条書きにしてください。

@donpy
新しいチャットでですか?

AI: はい、新しいチャットでお願いします。

前回のプロンプト全文に、今回の「テスト結果も残す」という1文を追加して貼ってください。Think OFF、Temperature 0.1、Top K 20はそのままです。

この修正で、用途、環境・設定、比較結果、未確認事項がそろいました。

AI: 今回の短い記録では、設定を変えず、残す項目を指示することで改善しました。

設定をいじるだけでなく、「何を残してほしいか」を伝えることでも出力は変わるんですね。いかに Sol とか Astra がかゆいところに手が届くようになっていたかをひしひしと感じる場面ではありました。

逆にプロンプトを入力する場合、いかに正確に指示できるかが大事なんだということを身をもって体験できました。

実際の会話に戻すと、結果が逆になっていた

短い整理済み記録では必要な情報がそろった。では、同じ設定で、整理前の会話を渡すとどうなるか。

次は実際のやり取りを5〜10往復ほど使い、環境・設定とテスト結果を分けて残すよう指示しました。提案と実施済みを区別し、同じ内容の再掲はまとめる、という条件も付けます。さあ、Qwen!おれに完璧なメモを見せてくれ。

出てきたメモには、環境値やTemperature比較の数値がかなり細かく並んでいました。

ただ、Think OFFの結果がこうなっています。

「重複出力を抑制し、所要時間が短縮された。」

いや、さっきは速くなった代わりに、同じ試行が二重に載っていたんですよね。

AI: 実際は、「速かったが、同じ試行を重複して出力した」でした。引き継ぎで判断を誤らせるので、ここは不合格です。また、Think ONの欠落を「傾向」と呼ぶのも、今回1例からは言いすぎです。

体裁も数値もかなりそろっているのに、肝心の結果が逆。これはさすがの私もぶっとびました。このまま次の作業に渡すと、うまくいかなかった方法を、成功した方法として引き継いでしまいます。

ここで同じ入力への修正を繰り返すのはいったん終了。この誤りが出たログと指示を、次の比較の基準として残すことになりました。

AI: この結果を現在の設定の基準にして、同じ入力の修正反復はいったん終了しましょう。 次に設定やモデルを比較するときは、「この結果の逆転が直るか」を評価項目にできます。

今回はThink OFF、Temperature 0.1、Top K 20を仮設定にして一区切りです。

短い整理済み記録なら、残す項目を明示することで改善しました。一方、実際の会話では、繰り返し登場する情報の整理や、結果の意味を保つところに誤りが残っています。

速く出るようになったから、そのまま任せられるわけではない。次に見たいのは、今回逆になった結果を、正しく引き継げるようになるかです。

AI: 次回はこのログと指示を固定して比較し、速さだけでなく、誤りが減るかを見ていきましょう。

というわけで、Qwen とのお戯れはここまで。

まったくタイトル回収できていないわけですが、試行錯誤ログということで。

なかなか思うようにはいかないですが、せっかく使うのだからどれくらいの指示でどれくらいの品質のものを生成してくれるのかはよく見ておかないとですね。まあ、こういう実験も楽しいので続けていきたいと思います。

具体的な指示とか結果のスクショとか織り交ぜれば自分が後から見てもこの記事自体がログになるかなぁと思いますので、記事の構成についてはすこしずつ変えていこうと思ってます。

ではまた。

LocalLLM

Posted by donpyxxx


ディスカッション

コメント一覧

まだ、コメントがありません

コメントをどうぞ

メールアドレスが公開されることはありません。※ が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。