架空のコンペ『LLM Prompt Reverse』を考えたのでトイプロブレムに使ってください！

![logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2627015/0d4dc147-f210-c4a0-c7c2-6ee727393556.png)

*架空のコンペ『LLM Prompt Reverse』のロゴ*
*Image generated by OpenAI's DALL·E-3.*

# 元ネタ

『LLM Prompt Reverse』の元ネタは、Kaggleで過去に開催された『LLM Prompt Recovery』です。
`オリジナルテキスト`と`書き換え後テキスト`が与えられ、`書き換えに用いたプロンプト`を復元することを目指すコンペでした。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2627015/2e44e65d-f959-91b7-1a18-bd457785809d.png)

https://www.kaggle.com/competitions/llm-prompt-recovery/overview/timeline

# 架空のコンペ『LLM Prompt Reverse』の紹介
データセット、サンプルコードはKaggleにアップロードしました！
以下はコンペのOverviewです。後に日本語訳が続きます。


# LLM Prompt Reverse

## Overview  
The **LLM Prompt Reverse** competition pushes the boundaries of Large Language Models (LLMs) by presenting a deceptively simple yet highly challenging task: reversing a 10-character string of lowercase English letters. While the task might appear straightforward, it proves to be a significant challenge for LLMs, making this competition a unique opportunity to explore prompt engineering and model optimization.

---

## Task  
Your goal is to reverse a given 10-character string (e.g., `abcdefghij` should become `jihgfedcba`) using an LLM. This task will test your ability to design effective prompts and leverage LLM capabilities to produce accurate predictions.

---

## Dataset  
Two CSV files are provided for the competition:

- **`train.csv`**: Training dataset  
- **`test.csv`**: Test dataset for submission  

Each file contains the following columns:
- **`original`**: The original input string  
- **`reverse`**: The target reversed string  

### Submission Format  
Your submission should include predictions for the `test.csv` file in the following format:
- **`original`** (as provided)
- **`pred`** (your model's predictions)

You can download the dataset [here](https://www.kaggle.com/datasets/isakatsuyoshi/llm-prompt-reverse).

---

## Evaluation Metric  
Submissions will be evaluated using the Levenshtein (edit) distance. The closer your predictions are to the ground truth, the better your score. For local evaluation, you can use the provided evaluation script:  
[Levenshtein Evaluation Script](https://www.kaggle.com/code/isakatsuyoshi/levenshtein-evaluation)

---

## Sample Code  
Need inspiration to get started? Check out this example for prompt optimization:  
[Prompt Optimization Code](https://www.kaggle.com/code/isakatsuyoshi/optimize-prompt)

---

## Source Code  
Find all related source code for this competition on GitHub:  
[GitHub Repository](https://github.com/Isaka-code/llm-prompt-reverse)

---

# 日本語訳

# LLM Prompt Reverse 

## 概要  
「LLM Prompt Reverse」コンペティションは、大規模言語モデル（LLM）に対する極限のチャレンジです。10文字の英小文字で構成された文字列を入力として与え、LLMを用いてその文字列を反転するタスクを解決してください。シンプルな問題に見えますが、LLMにとっては非常に困難な課題です。

このコンペは、LLMの制約と可能性を探りながら、プロンプト設計やモデル最適化のスキルを向上させる絶好の機会です。

---

## タスク  
与えられる入力は、ランダムな10文字の英小文字からなる文字列（例：`abcdefghij`）です。この文字列を反転させ（例：`jihgfedcba`）、真値と一致するような予測を行ってください。LLMのプロンプトを工夫することで、正確な結果を得られるか挑戦してください。

---

## データ  
データは以下の2つのCSVファイルで提供されます：

- **`train.csv`**：学習用データセット  
- **`test.csv`**：評価用データセット  

各データには以下のカラムが含まれます：
- **`original`**：元の文字列  
- **`reverse`**：期待される反転後の文字列  

**提出要件**：  
予測結果を`test.csv`に記録し、以下の形式で提出してください：
- **`original`**（提供済み）
- **`pred`**（予測結果）

データは[こちら](https://www.kaggle.com/datasets/isakatsuyoshi/llm-prompt-reverse)からダウンロード可能です。

---

## 指標  
モデルの評価は編集距離（Levenshtein距離）を用いて行います。真値と予測結果の編集距離が小さいほど高スコアとなります。以下の評価スクリプトを参考にして、ローカルでスコアを計算することが可能です：  
[評価スクリプト](https://www.kaggle.com/code/isakatsuyoshi/levenshtein-evaluation)

---

## サンプルコード  
プロンプト最適化のアイデアが必要な場合、以下のサンプルコードを参照してください：  
[サンプルコード](https://www.kaggle.com/code/isakatsuyoshi/optimize-prompt)

---

## ソースコード  
このコンペに関連するソースコードはGitHubで公開されています。詳細はこちらをご覧ください：  
[GitHub リポジトリ](https://github.com/Isaka-code/llm-prompt-reverse)

---