私はQwen 3.6 35B A3Bのサンプリングパラメータを最適化しようとしているのですが、どういう良いベンチマークでそれを行えばよいのかがなかなか分かりません。
なぜ推奨設定が最適ではないのではと考えているのかというと、理由の1つは、彼らがQwen 3.5と3.6で同じ設定を推奨しているのに、3.5から3.6へアップグレードした際に、それ以外をすべて同一(同じ量子化ですら同一)にしたにもかかわらず、3.6は一部のプログラム化された日次タスクでツール呼び出しのループに詰まってしまい、3.5ではそうならなかったという点です。そして解決策は温度を上げることでした。もう1つは、彼らの数値が丸められていて典型的な値であるため、おそらく大規模な微調整は行われていないということです。
また、min_p=0.0の推奨が実際に最適とは思えないのにもかなり疑っています。小さなmin_p値は、他のサンプラーを緩めて、もっともらしいトークンに対しては制限を緩める一方で、現在のコンフィグよりも「もっと可能性が低い」側のトークンに対してより影響することになるはずです。
私はGSM8Kと、GSM8Kのmetabenchサブセット、IFEval、GPQA diamondを試しました。
GSM8KとIFEvalは飽和しすぎています。
GSM8Kのmetabenchサブセットは飽和していませんが、少なくとも実行間で20%のばらつきがあります。
GPQA Diamondはより挙動が安定していますが、少なくとも2.5%のばらつきがあり、私の3090での各実行はほぼ3時間かかります。したがって、きれいなシグナルを得るには各設定あたり10回の実行が必要になるでしょう。
私の計画は、min_pは0.0と推奨されているので例外として、Qwenの推奨レンジの平均を中心にした10点の単変量探索を行うことでした。
それを使って、各パラメータ3値ずつ(単変量の最適値と、それが全レンジにわたって落としうる量のうち50%まで落ちてしまう点)によるグリッドサーチのレンジを決めます。
そして最適なセルでOptunaを実行し、最後の一絞りを試します。
問題は、温度、top_p、top_k、min_pだけだと、第1フェーズが40点(最適値が中心からずれている場合は、追加の実行が必要になるのでそれ以上)で、第2フェーズが81、第3フェーズは誰にも分からないということですかね?
つまり、最初の2フェーズだけでも私のGPUでは計算に5か月分のしっかりした計算量がかかり、次のQwenはその時点ではおそらくリリースされているでしょう。
以前の3.5スレッドもありましたが、主に「どの設定が良いか」についての雰囲気(vibes)でしかありませんでした:https://old.reddit.com/r/LocalLLaMA/comments/1ryb028/qwen35_best_parameters_collection/
そもそも、設定の違いを見分けられるような、うまくて素早く低分散なベンチマークは存在しないのかもしれません。サンプリングの違いを実際にベンチマークしたいなら、logprobsベンチマークは使えません(または、そういう方法を私は知りません)し、ジェネレーティブなベンチマークを使う必要があります。それらは種類が少なく、さらにずっと遅いです。
また、サンプリング自体が分散を生みます。サンプリングが関与する場合は、それを打ち消すために大量の質問を平均する必要があるのは十分あり得ます。
そこで、3090で合理的な時間内に終わって、しかも誰かが使えるようなベンチマークのより良い組み合わせを知っている人、あるいは評価のより良い方法を知っている人、あるいは計算資源に恵まれていてQwenから最後の一滴を絞り出したい人がいたら役に立つかもしれないので、ここに置いておきます。
[link] [comments]
