HN 日本語サマリー

← 一覧へ戻る
AI・機械学習

LLM 分類は特徴量エンジニアリングである

LLM Classification Is Feature Engineering (minimallysufficient.com)

24 pointsby minsufficient7 コメント

要約

LLM を直接分類器として使用することは、キャリブレーション、情報統合、解釈可能性の問題から扱いにくいと論じられています。代わりに、LLM の出力を特徴量として、ロジスティック回帰などの標準的な機械学習アルゴリズムと組み合わせることで、これらの問題を解決し、より堅牢で解釈可能な分類モデルを構築できると提案しています。

全文翻訳

LLM を分類器として使用し、プロンプトをコンテキストに適用してラベルを返す方法は、特にそれらがかなりうまく機能する場合、非常に扱いにくいです。しかし、分類器に求められるいくつかのことを検討し、LLM を分類器として使用した場合の比較を見てみましょう。キャリブレーション / しきい値制御LLM の判定はしばしばハードラベルであり、トークンの対数確率を取得できますが、それらが適切にキャリブレーションされていると信じるためのメカニズムはありません。LLM にその信頼度を尋ねることもできますが、それも適切にキャリブレーションされていると疑う理由はありません。関連する問題として、これらのラベルで精度と再現率を原則的な方法でトレードオフすることは非常に困難です。利用可能なすべての情報の統合LLM は非構造化データでうまく機能しますが、多くの場合、構造化されたデータも持っています。これをプロンプトに貼り付けることができますが、LLM は実際にはそれを使用する必要はありません。プロンプトの散文部分でさえ、LLM が実際にそれを使用したかどうかわかりません1。少なくともイライラするだけで、おそらく一部の信号を失っています。LLM には、私たちの分布に合わない可能性のある事前情報が組み込まれています。たとえば、LLM は、陽性クラスがまれな母集団でテストしているのか、陽性クラスが比較的普及している強化された母集団でテストしているのかを知りません。そして、そのコンテキストを与えることができると思いますが、今度は新しい母集団ごとにそれを変更する必要があり、また、最初のポイントのように、それが LLM の判断に適切に組み込まれるかどうかは明らかではありません。解釈可能性ある意味では、LLM プロンプトは非常に解釈可能です。結局のところ、それは散文で書かれています。残念ながら、LLM 内で何が起こっているのか、プロンプトのどの部分が正しく(またはまったく)従われているのかを正確に知っているかどうかは明らかではありません。これらの失敗は LLM のせいではありません。分類器として設計されておらず、実際にはこれらのことの一部を plausibly に行うメカニズムがありません。しかし、それは私たちが物事を誤って考えているだけです…LLM 分類は特徴量エンジニアリングです適切なフレームワークがあれば、LLM のパワーを標準的な ML アルゴリズムの利便性と組み合わせて活用できます。何が可能かの味として、LLM の判定を単純なロジスティック回帰でラップすることを検討してください。p(y = 1 | x) = σ(α + β ⋅ LLM(x))ここで、β → ∞ の特殊なケースでは、これは基本的に LLM 分類器を回復します!しかし、それは愚かなパラメータ選択ポリシーです。代わりに、トレーニングデータを使用してパラメータを推定するという通常の一般的なアプローチを行うべきです。これは 2 つのケースに崩壊し、経験的推定値を取得するだけです。p(y = k | LLM(x) = 1) = Σᵢ I(yᵢ = k かつ LLM(xᵢ) = 1) / Σᵢ I(LLM(xᵢ) = 1)さて、私たちの要求事項を再確認しましょう。キャリブレーション / しきい値制御前述のように、LLM 予測を特徴量として使用するだけで、経験的割合(したがって期待値でキャリブレーションされている)で 2 つの予測が得られます。さらに多くの特徴量(次を参照)を追加すると、明らかにユニークなポイントがさらに増え、モデルが十分に柔軟であると仮定すると、これらは近似的に適切にキャリブレーションされるはずです(そして、それを改善する方法があります)。そして、実際の確率が出力されるため、必要に応じて精度と再現率をトレードオフするために、動作しきい値を選択できます。利用可能なすべての情報の統合これは単なるロジスティック回帰なので、明らかに他の共変量を追加できます。異なるベースラインに適応するために、ロジスティック回帰はトレーニングデータセットに適合され、そのベースラインと共変量構造に適応します。関心のある他の分布をターゲットにするために、例を再重み付けすることさえできます。解釈可能性LLM の判定自体の解釈という問題はまだありますが、その判定が最終的な決定にどのように貢献しているか(特に他の共変量が追加されている場合)については、より良い感覚が得られます。基本的に、モデルに望んでいたすべての良い特性を回復しました!さらに進むことはできますか?LLM 分類は本当に優れた特徴量エンジニアリングです分類器のパフォーマンスに満足していない場合はどうすればよいでしょうか?LLM を分類器として使用する場合、唯一の選択肢はプロンプトをいじってみることです。これは、インターネット上でアドバイスが豊富にありますが、知恵は乏しい、神秘的な作業です。幸運を祈ります。ML の観点から、モデルを改善する方法は次のとおりです。より多くのデータの収集これは確かにクールではありません。LLM を分類器として使用する魅力は、トレーニング不要の方法論があることです。したがって、この特徴量エンジニアリングパラダイムではトレーニング目的でデータが必要になることは残念です。しかし、これは考えているよりも不便ではないと主張します。モデルのパフォーマンスをテストするためにテストセットが必要になることを考えると、トレーニングのためにもう少し必要になるのはどうでしょうか?特徴量の改善プロセスの編集では特徴量を改善することが複雑です。少なくとも特徴量をスクリーニングできます。特徴量が常に陽性につながると信じている場合、経験的にそれをチェックして適切にデバッグできます。特徴量自体を評価することもできます。それらを二次的なターゲットとして扱い、その分類器を改善することに再帰します。より多くの特徴量の作成モデルの残差を使用して、単語の編集ではなく、より広範な特徴量を考慮することによってプロンプトを改善する方法を理解しようとすることができます。判別トークンの対数確率をすぐに検討できます。あるいは、分類器を複数回実行することもできます(判定の前に推論がある場合、それらの対数確率は 0 または 1 になる可能性があります)。サブ判定やその他の特徴量を要求することによって、LLM 自体からさらに多くの特徴量を取得することもできます。モデルアーキテクチャの改善最終的に、モデルアーキテクチャは完全にプラグアンドプレイです。ロジスティック回帰が気に入らない場合は、xgboost やニューラルネットワークを検討してください。私が気にするのは、LLM によって実装されたルールベースシステムです。すべてが公平なゲームです。テストケース:皮肉検出これを例で具体的にしましょう。SemEval 2018 Task 3 データセット2、専門家アノテーターによって皮肉のラベルが付けられた 4618 ツイート(3834 トレーニング / 784 テスト)のコレクションを使用します。皮肉はこの投稿に自然に適合します。LLM が明らかに実際の信号を持っている NLP タスクであり、LLM に暗黙的に埋め込まれた世界の知識から恩恵を受けます。プロンプトは、モデルに二項皮肉判定を行うように求め、バッチジョブとしてすべてのツイートを一度に実行します。from typing import Literal from pydantic import BaseModel, Field MODEL = "gemini-3.1-flash-lite" PROMPT_TEMPLATE = """ 皮肉とは、人が何かを言ったが、しばしばユーモラスまたは批判的な効果のために、別のことを意味することです。それは微妙な場合があります。ツイートは一見すると誠実に読めるかもしれませんが、言葉の選択、文脈、または対比を通して皮肉なトーンを帯びています。次のツイートを検討し、「皮肉」または「そうでない」とラベル付けしてください。 {tweet} """ class Verdict(BaseModel): reasoning: str = Field( description="Brief reasoning: what language or context suggests irony or sincerity." ) verdict: Literal["Ironic", "Not"] = Field( description='Whether the tweet is ironic ("Ironic") or not ("Not").' ) def build_request(row_id: int, tweet: str) -> dict: return { "contents": [ {"role": "user", "parts": [{"text": PROMPT_TEMPLATE.format(tweet=tweet)}]} ], "metadata": {"id": str(row_id)}, "config": { "response_mime_type": "application/json", "response_schema": Verdict, "temperature": 0, }, } パフォーマンスこのプロンプトから得られるパフォーマンスは次のとおりです。TPR FNR Brier Score F1 (@0.5) 0.965 0.035 0.259 0.747 ワンショットでこれほどうまくいくのは実際に驚くべきことです。学習なしでこれが可能になるとは期待しないでしょう。それが LLM のクールなところです。もちろん、まだかなり平凡です。Brier スコアは非常に悪いです。キャリブレーションがないためです(実際、ランダムな推測でも Brier スコアは 0.25 になります)。要求事項# キャリブレーション# ロジスティック回帰を使用すると、キャリブレーションが得られます(ただし、t には影響しないことに注意してください。