12
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LLMコンペの取り組み方

Posted at

LLMコンペとは何なのか?

Kaggle初のLLMコンペは、2023年7月に登場した「LLM Science Exam」です。当時は、「LLMコンペ」=「LLM Science Exam」でした。それ以来、LLMコンペの開催頻度は徐々に増え、今後もその数は増加することが予想されます。

誤解を恐れずに表現すると、KaggleにおけるLLMコンペとは、エンジニアリング要素が強いNLPコンペです。
LLMコンペには通常のNLPコンペの要素が多く含まれています。たとえば、「LMSYS - Chatbot Arena Human Preference Predictions」atam cup #17のようなコンペは、従来のNLPタスクに似たアプローチで進められました(ファインチューニングなど)。一方で、エンジニアリング要素が特に重要なコンペもあり、データセットの拡張やRAG(Retrieval-Augmented Generation)の実装など、通常のアプローチに加えてエンジニアリング要素が多分に含まれます。

筆者が参加したLLMコンペ一覧

以下は筆者が参加したLLMコンペの一覧と、それぞれの特徴です。

コンペ名 主流モデル データセットの拡張 主なエンジニアリング要素
LLM Science Exam Llama2, Mistral, DeBERTa-v3 Wikipedia RAGの実装、データセットのクレンジングが必要
LLM Prompt Recovery Mistral 生成AI 埋め込み表現へのadversarial attack(Magic)
AI Mathematical Olympiad - Progress Prize 1 DeepSeekMath 公開数学データセット 実行時間制約下での試行回数最大化、出力パース処理
LLM 20 Questions Llama3 外部データセット・生成AI 外部データ準備、二分探索、質問選択の統計的手法の実装

Kaggle Master振り返り記事でも少し触れているので、興味があればそちらもご覧ください。

全LLMコンペ一覧

以下にその他のLLMコンペを含めて、名前だけですが、一挙紹介します。
※抜け漏れがあれば、コメントかTwitterで教えて下さい!

【チュートリアルコンペ】

【開催中のコンペ】

【過去のコンペ】

初手は、『N=1のデータセットでLLMの出力を確認』

LLM(特にオープンソースのモデル、小さいモデル)を使う際、しばしば予想外の挙動を示すことがあります。

以下のような問題が代表例です:

  • 不要なフレーズ(例: "Sure!")が出力される
  • 指示したフォーマットを守らない
  • 突然中国語で出力される
  • 無限ループに陥る
    など

これらの挙動を早期に把握するために、まずは小さなデータセット(N=1でもOKです!)を使った、簡単なLLM出力のエラー分析を行うことをおすすめします。そして、可能であれば継続的にログ出力すると良いと思います。

具体例

以下の記事では、文字列をLLMで反転させる架空のLLMコンペについて紹介しました。とても簡単に見えますが、LLMにとっては難しいタスクです。

このタスクでは、Llama3を使用しましたが、余計な文字列("Here is")が追加されたり、正解を生成できなかったりする問題が見られました。以下はその一例です。

Here is
ydsapptfqt

上記の結果から、モデルの挙動を詳細に分析する必要性がわかります。

次の一手

簡単なLLM出力のエラー分析を終えて、次の一手の候補となるチェックリストを下記に示します。

  • ChatGPTなど高性能なクローズドモデルでタスクを試す
  • 外部データセットの拡張を試みる
  • そのコンペにおける主流のLLMモデルを把握する
  • 類似タスクのSOTAモデルを調査(Hugging FaceやPapers With Code)
  • 外部知識が必要な場合、RAGを導入する
  • プロンプトエンジニアリング(参考:Optunaを用いたプロンプトエンジニアリング
  • フローエンジニアリング(モデル推論のパイプラインやロジック)の見直し
  • インストラクションチューニング、LoRA
  • 入力データの前処理・出力データの後処理(ノイズ除去やフォーマット変換など)
  • メトリクスのハックを試みる(参考:LLM Prompt Recoveryでは、adversarial attackが可能でした
  • LB Probingを試みる
  • LLM以外の手段(機械学習モデルやルールベース手法)を検討する
    など

おわりに

この記事では、LLMコンペの取り組み方を紹介しました。特に、初めてLLMコンペに参加する方が、効率的に成果を上げるための戦略や注意点について解説しました。
LLMコンペは、他のコンペ(テーブル・画像・NLPなど)と比較して、まだ定跡が整備されていない分野です。そのため、(通常のコンペでもそうですが)タスクの深い理解が強く求められます。
また、エンジニアリングスキル(データ拡張、RAG、フロー設計、プロンプトエンジニアリング など)が要求され、実装力も身につきます。
データセットの拡張が可能なことが多いなど、実務に近しいところもあり、大変勉強になります。興味を持った方は、ぜひLLMコンペに参加してみてください!

本記事は以上です。皆様の良いKaggleライフを応援しております。

12
13
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
12
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?