一言で言うと?
この記事を一言で言うと、kaggleのあらゆる情報をマークダウン形式にしてまとめて(約50万トークン)、Geminiのプロンプトに入れたらいい感じだった!という内容です。
はじめに
こんにちは!yukky_maruです。先日、KaggleのLLM 20 Questionsのwinner callが無事終わって賞金もいただき、一段落ついたので、今回自分が使った方法をシェアしたいと思います。
なお、この金メダルは半分くらいはGeminiのおかげです! Gemini を活用しまくりました。ChatGPTやClaudeではない理由は二点あります。
- APIをかなり使うので無料枠が多いGeminiでないとお金がかかる
- 約50万トークン程をプロンプトに入力するので現状のコンテキスト長だとGeminiでしか処理できない。
特に2番目の理由により、Geminiしか使えなかったというのは大きいです。
また、本記事はよくある「もともと頭は良かったけど、あまり本気を出してなかったから成績が振るわなかった系(TOEIC系の記事にありがち、、)」とか、「Kaggleは初心者だけど普段から仕事でAIに触れている偽初心者が本気を出したら上位に入った系」のストーリーではありません。まず、自分は頭が良くないです(笑)。MARCHのどこかにいる普通レベルの人間です("頭の良さ"を偏差値とかいう高々5次元程度の基底で射影して評価するのもどうかと思いますけど😢)。学部は物理系なので情報系ではありません。
自分のスペックと対象読者
まず、僕のスペックをシェアしておきます。英語と深層学習のレベルは以下の通りです。
- 英語: 苦手です。極力読みたくないので、この記事ではKaggleを英語なしで乗り切る方法をお伝えします!(同じく英語に自信がない人、安心してください!)
- 深層学習: そこそこ知識はあります。ただ、情報系の学部ではないので、「ベンチマークでSoTAを狙ってます!」みたいな研究者ではなく、趣味レベルで追っかけてるだけなので、広く浅く(浅くないと思いたいですが笑😢)といった感じです。
僕のレベル感がわかったところで、この記事の対象読者を挙げておきます。
- Kaggle初心者: まだKaggleに参加したことがない、もしくは始めたばかりの人。英語が苦手で、英語なしでKaggleを攻略したいと思っている方には特に参考になるはずです!
- 深層学習に興味がある人: 深層学習に触れているけど、Kaggleで本気で競うのは初めてという人。僕と同じように、「そこそこ知識はあるけど超プロってわけではない」人が共感できる内容になっていると思います。
- 効率よく短期間で結果を出したい人:限られた時間の中で効率よく結果を出したい方(ESとかね、、)。3ヶ月間のコンペをラスト10日間の参加で結果を出せたので、運もありますが、短期間で成果を上げるための具体的な方法やヒントを得たい方にも役立つ内容だと思います。
1. 英語対策
まず最初に取り組んだのが英語対策です。英語を逐一日本語に訳して考えていると、どうしても本来の思考力を発揮できないと思ったので、まずコンペに参加した時に、 コンペの概要、データ、ルール、ディスカッション、ノートブックをすべてGemini APIで自動翻訳して表示するアプリを作成 しました。ここで kaggleが日本語で完結するようになった のが英語弱者の自分としては大きかったです。
最初は自分用でしたが、AWSの練習がてら公開してみたので、興味があればぜひ使ってみてください。なお、AWS暦は学業の合間に2週間程度、と首も座っていないレベルなので、色々大目に見てください。( AWSやAPIの利用にお金がかかるので、現状ではコンペは1つしか登録していません。 追加してほしいコンペがあれば、コメント欄にリクエストをいただけると、追加するかもしれません!)
以下、使い方の簡単な説明です。なお、CSSはそのうちあてます。。
1.1 メールアドレスの登録
1.2 コンペを選ぶ
見たいコンペを選びます。
現在は1つのコンペしか登録していません。 AWSの料金やAPIの費用を様子見しつつ、今後追加予定です。(特にAWSの料金がよくわかっていなくて少し怖いところもあります😇)
1.3 見たいページを選ぶ
コンペの概要、データ、ルール、ディスカッション、ノートブックなどから、見たいページを選びます。 「プロンプトの生成」が目玉機能 ではありますが、これについては後述します。例えばjane-street-real-time-market-data-forecastingをクリックすると以下のページに飛びます。
ここで、例えば「概要を表示」を押すと、以下のようなページが表示されます。
これは、元リンク:に表示されているURLを和訳し、さらに要約と用語解説を付けたものになります。
概要、データ、ルール、ディスカッション、ノートブック(カーネル)はマークダウン形式になっており、コピーボタンで簡単にコピーできます。これをChatGPTのプロンプトに貼り付ければ、質問もできるようになっています。
このようにして、kaggleのあらゆる情報を日本語で処理しました。またマークダウン形式にすることでLLMに聞きやすい形にする工夫をしています。
コンペの進め方
コンペの日数配分は大体以下のような3つのフェーズに分けました。kaggleが初めてだったこともあり、環境構築や提出の仕方等々で手後ずってます。
- コンペの概要の理解開発環境の用意(kaggleの公式dockerイメージを使用)、何でもいいのでとりあえずsubmitをする(2日)
- 主要なディスカッションを読む。主要なnotebookを理解する。その後、心中する既存の手法を決める。(2日)
- 選んだ手法に+αして提出(6日)
1~3のフェーズ全てで、先程一瞬触れたプロンプト生成機能を使いました。まずは、プロンプト生成機能を紹介します。
プロンプト生成機能
通常、コンペに関する質問をしてもLLMはコンペの情報(ルールやデータ、行われたディスカッションや共有されたノートブック)がないため、適切に答えられません。 そこで、この「コンペの情報」を出力する機能がプロンプト生成機能です。
使ってみたほうが早いと思うので、まずは使ってみます。プロンプト生成をクリックすると以下の画面に飛びます。
ここで、LLMに与えたい情報にチェックを入れてください。今回は、概要とルールだけ入れてみます。
そしたら一番下までスクロールすると、プロンプト生成というボタンがあるので、クリックしてください。するとテキストファイルがダウンロードされます。中身は以下のようになっています。
以下にコンペティションに関する情報を記述するので、参照して答えてください。なお、ドキュメントの区切りは@@@ ドキュメント名 @@@とします。
@@@ コンペティションの概要 @@@
Jane Street Real-Time Market Data Forecasting:リアルタイム市場データ予測コンペティション
金融市場のレスポンスを予測する機械学習モデルを構築し、実世界のデータに挑戦しましょう!
以下略…(クリックすると展開されます)
## 概要このコンペティションはJane Street社が主催し、実際の取引システムから得られたデータを使用します。そのため、日々のトレーディングで成功を収めるための課題を垣間見ることができます。ファットテール分布、非定常時系列、市場行動の突然の変化など、金融市場モデリングの難しさに焦点を当てています。
詳細
現代金融市場のモデリングに取り組む際、解決しようとしている問題は不可能だと考える理由は数多くあります。金融商品の価格は利用可能なすべての情報を合理的に反映しているという信念を脇に置いたとしても、他のモデリング問題では遭遇しない特性を持つ時系列や分布に対処しなければなりません。分布はファットテールとして知られており、時系列は非定常であり、データは一般的に、非常に成功している統計的手法が依拠する多くの基礎となる仮定を満たしていない可能性があります。
これらのすべてに加えて、金融市場は最終的には人間の営みであり、多数の個人や機関が関与し、技術の進歩や社会の変化に伴って常に変化し、経済的および地政学的問題が発生するたびに反応しているという事実を踏まえると、その難しさを理解し始めることができます。
このコンペティションでは、実際の取引システムから得られたデータを使用してモデルを構築することを課題としています。このデータは、現代の金融市場で取引を成功させるために私たちが日々行っていることのいくつかを非常によく表しています。私たちは、自動取引戦略を実行し、優れた基礎モデルを持つことに関心を持っている市場に関連する一連の特徴量とレスポンス変数をまとめました。
取引の独自性と競争の激しい性質を尊重しつつ、私たちのビジネスに関連するやりがいのある問題を作成するために、データに提示する特徴量とレスポンス変数のいくつかを匿名化し、軽く難読化していることに気づくでしょう。これらの変更は目の前の問題の本質を変えるものではありませんが、Jane Streetで行っている作業を有意義に示す難しいタスクを皆さんに提供することができます。
Jane Streetは数十年にわたり、取引のあらゆる側面でたゆまぬ革新を続け、意思決定を支援するための機械学習モデルを構築してきました。これらのモデルは、世界中の200以上の取引会場で毎日数千の金融商品を積極的に取引するのに役立っています。このコンペティションは、Jane Streeterが日々取り組んでいる量的問題のほんの一部しか提示していませんが、Kaggleコミュニティがこのコンペティションにどのように取り組むか、そして問題に対する皆さんの解決策について皆さんと交流することに非常に興味を持っています。
評価指標
提出物は、responder_6のサンプル加重ゼロ平均R二乗スコア($R^2$)で評価されます。式は次のとおりです。
$$
R^2 = 1 - \frac{\sum w_{i}(y_{i} - \hat{y_{i}})^{2}}{\sum w_{i}y_{i}^{2}}
$$ここで、$y$と$\hat{y}$はそれぞれresponder_6の真値と予測値のベクトル、$w$はサンプルの重みベクトルです。
提出ファイル
モデルが未来のデータを参照しないように、提供された評価APIを使用してこのコンペティションに提出する必要があります。詳細は、サンプルノートブックを参照してください。
タイムライン
このコンペティションは、アクティブなトレーニングフェーズと、モデルが実際の市場リターンに対して実行される2番目の期間を持つ予測コンペティションです。
トレーニングフェーズのタイムライン:
- 2024年10月14日:開始日
- 2025年1月6日:参加締め切り日。この日付までにコンペティションルールに同意する必要があります。
- 2025年1月6日:チーム統合締め切り日。この日を過ぎると、チームへの参加や統合はできなくなります。
- 2025年1月13日:最終提出締め切り日
すべての締め切りは、特に明記されていない限り、該当日のUTC午後11時59分です。コンペティション主催者は、必要に応じてコンテストのタイムラインを更新する権利を留保します。
予測フェーズのタイムライン:
最終提出締め切り後、選択されたノートブックに対して市場データの更新が定期的に実行され、リーダーボードが更新されます。
- 2025年7月12日:コンペティション終了日
賞金
- 1位:50,000ドル
- 2位:25,000ドル
- 3位:10,000ドル
- 4~10位:5,000ドル
コード要件
これはコードコンペティションです。提出はKaggle Notebooksを通して行う必要があります。このコンペティションでは、Kaggle Notebooksでのトレーニングは必須ではありません。提出資格を得るには、以下の条件を満たす必要があります。
トレーニングフェーズ:
- ノートブックは時系列モジュールを使用して予測を行う必要があります。
- CPUノートブック:実行時間8時間以内
- GPUノートブック:実行時間8時間以内
- TPUノートブックはサポートされていません。
- 事前学習済みモデルを含む、自由に公開されている外部データの使用が許可されています。
予測フェーズ:
予測フェーズでは、CPUとGPUの両方のノートブックの実行時間制限が9時間に延長されます。提出物がその時間内に完了することを確認する必要があります。
追加の1時間は、テストセットのサイズが大きくなったことによるタイムアウトエラーを防ぐためのものです。ただし、提出物が9時間以内に完了する責任は依然としてあなたにあります。予測フェーズ中の拡張テストセットの詳細は、データページを参照してください。
提出方法の詳細については、コードコンペティションFAQを参照してください。
引用
Maanit Desai, Yirun Zhang, Ryan Holbrook, Kait O'Neil, Maggie Demkin. (2024). Jane Street Real-Time Market Data Forecasting. Kaggle. https://kaggle.com/competitions/jane-street-real-time-market-data-forecasting
主催
Jane Street Group
賞金とアワード
賞金総額:120,000ドル
アワードポイントとメダルも授与されます。
参加状況
- 参加者:5,768人
- チーム数:234チーム
- 提出数:665件
タグ
金融、回帰、表形式データ、カスタム指標
@@@ コンペティションのルール @@@
Jane Street Real-Time Market Data Forecasting コンペティションルール
コンペティションルール
参加者1人につき1アカウント
複数のアカウントでKaggleに登録することはできません。したがって、複数のアカウントから提出することもできません。
チーム外での非公開共有の禁止
チーム外でコードやデータを非公開で共有することは禁止されています。すべての参加者がフォーラムで利用できる場合は、コードを共有することは問題ありません。
チーム統合
チームの統合は許可されており、チームリーダーが行うことができます。統合するには、統合後のチームの合計提出数が、チーム統合期限時点での最大許容提出数以下である必要があります。最大許容提出数は、1日あたりの提出数にコンペティションの実施日数を掛けた数です。
チームの人数制限
チームの最大人数は5人です。
提出回数制限
1日に最大5件まで提出できます。
審査のために最大2件の最終提出を選択できます。
コンペティションのタイムライン
コンペティションのタイムラインの日付(参加期限、最終提出期限、開始日、チーム統合期限など)は、コンペティションの概要 > タイムラインページに反映されています。
コンペティション固有の条件
コンペティション名:Jane Street Real-time Market Data Forecasting
コンペティションスポンサー:Jane Street
コンペティションスポンサーの住所:2 ½ Devonshire Square, London, UK
コンペティションウェブサイト:https://www.kaggle.com/competitions/jane-street-real-time-market-data-forecasting
賞金総額:120,000ドル
- 1等賞:50,000ドル
- 2等賞:25,000ドル
- 3等賞:10,000ドル
- 4~10等賞:5,000ドル
受賞者ライセンスの種類:非独占的ライセンス
データへのアクセスと使用:提供されたデータは、コンペティションでの使用に限定されます。詳細は、以下の「コンペティションデータ」を参照してください。
コンペティションは、米国および世界中の居住者に開かれています。ただし、クリミア、いわゆるドネツク人民共和国(DNR)またはルハンスク人民共和国(LNR)、キューバ、イラン、シリア、北朝鮮の居住者、または米国の輸出規制または制裁の対象となっている場合は、コンペティションに参加することはできません。その他の現地法規が適用される場合があるため、スキルベースのコンペティションへの参加資格があることを確認するために、現地の法律を確認してください。コンペティション主催者は、現地法を遵守するために必要な場合、賞を放棄または代替賞を授与する権利を留保します。受賞者が賞を授与できない国に所在する場合、賞を受け取る資格はありません。
このコンペティションへの参加は、これらの公式コンペティションルールへの同意を構成します。
上記のコンペティションは、データサイエンス分野を促進および発展させるためのスキルベースのコンペティションです。参加するには、コンペティションウェブサイトから登録する必要があります。コンペティションへの提出物(「提出物」)は、コンペティションウェブサイトに記載されている要件に準拠している必要があります。提出物は、コンペティションウェブサイトに記載されている評価指標に基づいて採点されます。コンペティションルールに従い、賞がある場合は、提出されたデータサイエンスモデルのメリットに基づいて、最高のスコアを獲得した参加者に授与されます。完全なコンペティションルールについては、以下を参照してください。
A. コンペティション固有のルール
以下の一般コンペティションルールに加えて、コンペティションスポンサーが要求するこれらのコンペティション固有のルールを理解し、同意するものとします。
このコンペティションに参加することにより、あなたは、拘束力のある契約を締結する法定年齢に達していることを表明し、保証します。賞金支払いに関する現地の規制と制限の対象となることを理解しているものとします。管轄区域の法的または規制上の制限により賞金を送金できない場合でも、名前で表彰され、受賞者の称号を公に受け取ります。
コンペティション主催者の現在および過去の従業員、インターン、請負業者、役員、および取締役は、コンペティションに参加することはできず、賞を獲得する資格もありません。「コンペティション主催者」とは、コンペティションスポンサー、子会社、および関連会社を意味します。コンペティション主催者のそのような参加者である場合、参加に関して、雇用主のすべての適用される内部ポリシーの対象となります。Kaggle Inc.の従業員、およびそれぞれの親会社は参加できず、賞を獲得する資格もありません。
1. 受賞者ライセンス
以下の一般ルールのセクション11(受賞者の義務)に基づき、コンペティションの受賞者である場合、提出物に関して、コンペティションスポンサーに次のライセンスを付与するものとします。
非独占的:あなたは、現在知られている、または将来開発されるあらゆるメディアにおいて、商業的またはその他の目的で、さらなる承認または支払いなしに、受賞した提出物および提出物を生成するために使用されたソースコードを使用、複製、配布、派生物の作成、公に実行、公に表示、デジタル実行、作成、販売、販売の申し出、および輸入する、世界的、非独占的、サブライセンス可能、譲渡可能、全額支払い済み、ロイヤリティフリー、永続的、取消不能の権利を、コンペティションスポンサーおよびその指定者に付与するものとします。提出物が、あなたが所有していないが、コンペティションスポンサーが過度の費用をかけずに調達できる、一般に市販されているソフトウェアを使用して提出物を生成している範囲において、あなたは前述の文章のライセンスをそのソフトウェアに付与しません。
2. 自動機械学習ツール(AMLT)
個々の参加者とチームは、提出物を作成するために自動機械学習ツール(「AMLT」)(例:Google AutoML、H2O Driverless AIなど)を使用できます。ただし、参加者またはチームは、コンペティションルールを遵守できるように、AMLTに対する適切なライセンスを持っていることを確認する必要があります。
以下の条項が、以下の一般コンペティションルールのセクション11の最後に追加されます。「AMLTを使用して提出物を作成した個々の参加者とチームは、賞を獲得できます。ただし、明確にするために、受賞の可能性のある提出物は、セクションA.1(受賞者ライセンス)、セクションB.11(受賞者の義務)、およびセクションB.17(保証、補償、および免責)を含むがこれらに限定されない、これらのルールの要件を引き続き満たす必要があります。」
B. 一般コンペティションルール
1. 拘束力のある契約
コンペティションに参加するには、コンペティションウェブサイトの条項とコンテンツ、および上記の特定のコンペティションルール(まとめて「ルール」)を参考として組み込んだ、これらの公式コンペティションルールに同意する必要があります。理解し、同意していることを確認するために、参加前にこれらのルールをよく読んでください。さらに、コンペティションへの参加の提出は、これらのルールへの同意を構成することに同意するものとします。これらのルールに同意しない限り、コンペティションにエントリを提出することはできず、このコンペティションに関連する賞(「賞」)を受け取る資格もありません。これらのルールは、コンペティションに関して、あなたとコンペティションスポンサーの間の拘束力のある法的契約を形成します。
2. 資格
A. コンペティションに参加するには、次の条件を満たす必要があります。
(i) Kaggle.comの登録アカウント所有者であること。
(ii) 18歳以上または居住地の管轄区域での成年の年齢のいずれか大きい方であること(コンペティションスポンサーが別途同意し、コンペティションスポンサーが適切な親/保護者の同意を得ている場合を除く)。
(iii) クリミア、いわゆるドネツク人民共和国(DNR)またはルハンスク人民共和国(LNR)、キューバ、イラン、シリア、または北朝鮮の居住者ではないこと。そして
(iv) 米国の輸出規制または制裁の対象となる人物または事業体の代表者ではないこと(https://www.treasury.gov/resource-center/sanctions/Programs/Pages/Programs.aspxを参照)。会社、教育機関、またはその他の法人の代表者として、または雇用主の代理として参加する場合、これらのルールは、あなた個人、およびあなたが代表する、または従業員である事業体に拘束力があります。別の当事者の従業員、請負業者、または代理人として雇用の範囲内で行動している場合、あなたは、そのような当事者があなたの行動を完全に認識しており、賞の受領の可能性を含め、それに同意していることを保証します。さらに、あなたの行動が雇用主または事業体のポリシーおよび手順に違反していないことを保証します。
コンペティションスポンサーは、いつでも資格を確認し、紛争を裁定する権利を留保します。身元、居住地、郵送先住所、電話番号、メールアドレス、権利の所有権、またはコンペティションへの参加に必要な情報に関して、コンペティションに関連する虚偽の情報を提供した場合、コンペティションから直ちに失格となる場合があります。
B. コンペティション主催者の現在および過去の従業員、インターン、請負業者、役員、および取締役は、コンペティションに参加することはできず、賞を獲得する資格もありません。「コンペティション主催者」とは、コンペティションスポンサー、およびそれぞれの親会社、子会社、および関連会社を意味します。コンペティション主催者のそのような参加者である場合、参加に関して、雇用主のすべての適用される内部ポリシーの対象となります。Kaggle Inc.の従業員、およびそれぞれの親会社は参加できず、賞を獲得する資格もありません。
3. スポンサーとホスティングプラットフォーム
コンペティションは、上記のコンペティションスポンサーが後援しています。コンペティションは、Kaggle Inc.(「Kaggle」)がコンペティションスポンサーに代わってホストしています。Kaggleは、コンペティションスポンサーの独立した請負業者であり、あなたとコンペティションスポンサーの間のこの契約またはその他の契約の当事者ではありません。Kaggleは、受賞の可能性のあるコンペティション受賞者を選出したり、賞を授与したりすることに関して責任を負わないことを理解しているものとします。Kaggleは、コンペティションのホスティングに関連する特定の管理機能を実行し、あなたはこれらのルールに基づいてKaggleに関連する条項を遵守することに同意するものとします。Kaggle.comのアカウント所有者およびKaggleコンペティションプラットフォームのユーザーとして、これらのルールに加えて、www.kaggle.com/termsのKaggleサービス利用規約に同意し、それに従うことを忘れないでください。
4. コンペティション期間
賞の目的で、コンペティションは開始日時から最終提出期限まで実行されます(そのような期間は「コンペティション期間」)。コンペティションのタイムラインは変更される可能性があり、コンペティションスポンサーはコンペティション期間中に追加のハードル期限を導入する場合があります。更新された期限または追加の期限は、コンペティションウェブサイトで公開されます。期限の変更について常に最新の情報を入手するために、コンペティションウェブサイトを定期的に確認するのはあなたの責任です。あなたの所在地に対応するタイムゾーンを決定するのはあなたの責任です。
5. コンペティションへの参加
参加または受賞に購入は必要ありません。コンペティションに参加するには、参加期限前にコンペティションウェブサイトに登録し、コンペティションウェブサイトを通じて提出物を開発および入力するための手順に従う必要があります。提出物は、コンペティションウェブサイトに記載されている方法と形式で、およびその他すべての要件(「要件」)に準拠して行う必要があります。提出物は、コンペティションウェブサイトに記載されている提出期限前に入力する必要があります。記載された期限までに届かない提出物は、賞を受け取る資格がありません。
提出物は、検証データセットまたはテストデータレコードの手動ラベル付けまたは人間の予測からの情報を使用または組み込むことはできません。
コンペティションが時間的に分離されたトレーニングデータまたはテストデータ、あるいはその両方を持つ複数段階のコンペティションである場合、提出物が賞の対象となるためには、コンペティションウェブサイトに記載されている方法で、各コンペティション段階で1つ以上の有効な提出物が必要となる場合があります。
提出物が全体的または部分的に判読できない、不完全な、破損した、変更された、偽造された、詐欺によって取得された、または期限を過ぎている場合、無効となります。コンペティションスポンサーは、要件を満たさない提出物を提出するなど、これらのルールに従わない参加者を失格とする権利を留保します。
6. 個人とチーム
A. 個人アカウント。提出物は、1つの固有のKaggle.comアカウントでのみ行うことができます。複数のKaggleアカウントを通じて提出したり、プロキシとして機能するようにアカウントを偽造しようとすると、失格となります。コンペティションウェブサイトで指定されているように、1日あたり最大数の提出物を提出できます。
B. チーム。コンペティションウェブサイトのガイドラインで許可されている場合、複数の人がチーム(「チーム」)として共同作業できます。ただし、参加または結成できるチームは1つだけです。各チームメンバーは、個別のKaggleアカウントを持つ個人である必要があります。チームに参加する前に、コンペティションに個別に登録する必要があります。Kaggleアカウントに送信されたチーム通知メッセージに応答して、チームメンバーシップを確認し、正式なものにする必要があります。チームメンバーシップは、コンペティションウェブサイトに記載されている最大チームサイズを超えることはできません。
C. チーム統合。チームは、コンペティションウェブサイトを通じて統合をリクエストできます。チームの統合は、次の条件を満たしている場合に許可される場合があります。(i)統合されたチームが最大チームサイズを超えない。(ii)統合するチームによって行われた提出物の数が、統合リクエストの日付に1つのチームに許可される提出物の数を超えない。(iii)統合が、統合期限またはコンペティション期限のいずれか早い方の前に完了している。そして(iv)提案された統合チームが、これらのルールのすべての要件を満たしている。
7. コンペティションデータ
「コンペティションデータ」とは、コンペティションで使用するためにコンペティションウェブサイトから入手できるデータまたはデータセットを意味し、コンペティションウェブサイトで提供されるプロトタイプまたは実行可能コードを含みます。コンペティションデータには、非公開および公開のテストセットが含まれます。どのデータがどのセットに属するかは、参加者には公開されません。
A. データへのアクセスと使用。
コンペティションでの使用のみ:コンペティションデータにアクセスして使用できるのは、コンペティションへの参加およびKaggle.comフォーラムでのみです。コンペティションスポンサーは、コンペティションウェブサイトおよびこれらのルールで許可されている以外の方法でコンペティションデータを使用する参加者を失格とする権利を留保します。コンペティションデータは、コンペティションデータの使用をコンペティションへの使用のみに制限する第三者からのライセンスに基づいて、あなたに提供されます。その他の目的での使用は許可されておらず、このライセンスに違反した結果としてコンペティションスポンサーが被る可能性のある責任について、あなたは責任を負います。コンペティション終了後、所有しているコンペティションデータはすべて削除します。
コンペティションデータは、コンペティション終了後、コンペティションウェブサイトから削除されます。B. データセキュリティ。あなたは、これらのルールに正式に同意していない人がコンペティションデータにアクセスすることを防ぐために、合理的かつ適切な手段を使用することに同意するものとします。コンペティションに参加していない当事者に、コンペティションデータを転送、複製、公開、再配布、またはその他の方法で提供または利用可能にしないことに同意するものとします。コンペティションデータの不正な送信または不正アクセスの可能性を知った場合は、直ちにKaggleに通知することに同意し、不正な送信またはアクセスを修正するためにKaggleと協力することに同意するものとします。
C. 外部データ。提出物の開発とテストに、コンペティションデータ以外のデータ(「外部データ」)を使用できます。ただし、外部データは、コンペティションのすべての参加者がコンペティションの目的で無料で使用できる、公に入手可能なデータであることを確認します。このセクション7.C(外部データ)に基づいて外部データを使用できることは、セクション11(受賞者の義務)を含むがこれらに限定されない、これらのコンペティションルールに基づくその他の義務を制限するものではありません。
8. 提出コードの要件
A. 非公開コード共有。コンペティションウェブサイトまたは上記のコンペティション固有のルールで特に許可されていない限り、コンペティション期間中、コンペティションデータに関連して、またはそれに基づいて開発されたソースコードまたは実行可能コード、またはコンペティションに関連するその他のソースコードまたは実行可能コード(「コンペティションコード」)を非公開で共有することはできません。この禁止事項には、チームの統合が発生しない限り、個別のチーム間でのコンペティションコードの共有が含まれます。このようなコンペティションコードの共有は、これらのコンペティションルールの違反であり、失格となる場合があります。
B. 公開コード共有。そのような公開共有が第三者の知的財産権に違反しない限り、コンペティションコードを公開で共有することは許可されています。コンペティションコードまたはその他のそのようなコードを共有することを選択した場合は、すべての競合他社の利益のために、コンペティションに特に関連付けられたディスカッションフォーラムまたはノートブックでKaggle.comで共有する必要があります。このように共有することにより、あなたは、そのようなコンペティションコードまたはそのようなコンペティションコードを含む、または依存するモデルの商業的使用を制限しない、オープンソースイニシアチブ承認ライセンス(www.opensource.orgを参照)に基づいて、共有コードのライセンスを付与したものとみなされます。
C. オープンソースの使用。上記の特定のコンペティションルールで特に明記されていない限り、提出物を生成するモデルでオープンソースコードが使用されている場合、そのようなコードまたはそのようなコードを含む、または依存するモデルの商業的使用を制限しない、オープンソースイニシアチブ承認ライセンス(www.opensource.orgを参照)に基づいてライセンスされているオープンソースコードのみを使用する必要があります。
そのようなコードの共有時に、そのようなコンペティションコードがライセンスされているオープンソースライセンスを明確かつ目立つように識別します。
9. 受賞者の決定
各提出物は、コンペティションウェブサイトに記載されている評価指標によって採点およびランク付けされます。コンペティション期間中、現在のランキングは、コンペティションウェブサイトの公開リーダーボードに表示されます。受賞の可能性のある受賞者は、これらのルールへの準拠を条件として、非公開リーダーボードのリーダーボードランキングによってのみ決定されます。公開リーダーボードは公開テストセットに基づいており、非公開リーダーボードは非公開テストセットに基づいています。
同点の場合、コンペティションに最初に参加した提出物が受賞者となります。受賞の可能性のある受賞者が何らかの理由で失格となった場合、次に高いスコアラングを受け取った提出物が受賞の可能性のある受賞者として選択されます。
最終的なリーダーボードリストはKaggle.comで公開され、参加者は、提出物がリーダーボードへの掲載に値する場合、公開リーダーボードに掲載されることに同意するものとします。コンペティションスポンサーの決定は最終的なものであり、拘束力があります。
10. 受賞者への通知と失格
受賞の可能性のある受賞者には、電子メールで通知されます。
受賞の可能性のある受賞者が、(i)最初の通知試行から1週間以内に通知試行に応答しない場合、または(ii)最終提出期限後1週間以内に、受賞の可能性のある受賞者が受賞者として指名されたくない、または賞を受け取りたくないことをKaggleに通知した場合、それぞれの場合(i)および(ii)において、そのような受賞の可能性のある受賞者は賞を受け取らず、コンペティションの審査基準に基づいて、受け取ったすべての適格なエントリの中から別の受賞の可能性のある受賞者が選択されます。
上記のケース(i)と(ii)の場合、Kaggleは参加者を失格させることがあります。ただし、上記のセクション10 (ii)の場合、Kaggleから要求があれば、受賞の可能性のある参加者は、これらのルールへの準拠を確認するためのコードとドキュメントを提供できます。受賞の可能性のある参加者がKaggleの承認を得られるコードとドキュメントを提供した場合、この段落に基づいて失格とはなりません。
コンペティションスポンサーは、参加者が不正行為、詐欺、またはその他の不正なプレー方法や乱用によってコンペティションの正当な運営を損なおうとした、他の参加者、コンペティションスポンサー、またはKaggleを脅迫または嫌がらせしたと合理的に信じる場合、コンペティションから参加者を失格させる権利を留保します。
失格となった参加者は、Kaggleの独自の裁量により、コンペティションのリーダーボードから削除される場合があります。参加者がコンペティションのリーダーボードから削除された場合、Kaggleコンペティションプラットフォームに関連付けられた追加の受賞機能(Kaggleポイントやメダルなど)も授与されない場合があります。
最終的なリーダーボードリストは、Kaggle.comで公開されます。コンペティションスポンサーの決定は最終的なものであり、拘束力があります。
11. 受賞者の義務
賞を授与される条件として、受賞者は以下の義務を果たす必要があります。
(a) 受賞した提出物を生成するために使用された最終モデルのソフトウェアコードと関連ドキュメントをコンペティションスポンサーに提供する。提供されたソフトウェアコードは、これらのドキュメントガイドラインに従う必要があり、受賞した提出物を生成でき、実行可能コードを正常にビルドまたは実行するために必要なリソースの説明を含む必要があります。疑義を避けるために、提供されたソフトウェアコードには、トレーニングコード、推論コード、および必要な計算環境の説明を含める必要があります。最終モデルのソフトウェアコードに、あなたが所有していないが、コンペティションスポンサーが過度の費用をかけずに調達できる、一般に市販されているソフトウェアが含まれている場合、そのソフトウェアのコードをコンペティションスポンサーに提供する代わりに、そのソフトウェア、調達方法、および受賞した提出物を複製するために必要なパラメーターまたはその他の情報を識別する必要があります。
(b) 上記のコンペティション固有のルールに記載されている、受賞した提出物に対するライセンスをコンペティションスポンサーに付与し、そのライセンスを付与する無制限の権利を有することを表明する。
(c) コンペティションスポンサーまたはKaggleが要求する可能性のあるすべての賞受諾書類に署名して返送する。これには、(i) 資格証明書、(ii) ルールで要求されるライセンス、リリース、およびその他の契約、(iii) 米国税務フォーム(米国居住者の場合はIRSフォームW-9、外国人居住者の場合はIRSフォームW-8BEN、または将来の同等のもの)が含まれますが、これらに限定されません。12. 賞
賞はコンペティションウェブサイトに記載されているとおりであり、コンペティションウェブサイトに記載されている期間中にのみ受賞可能です。
すべての賞は、コンペティションスポンサーによる参加者の資格とこれらのルールへの準拠、および受賞した提出物が提出要件に準拠していることの審査と検証の対象となります。提出物がこれらのコンペティションルールに準拠していないことが判明した場合、コンペティションスポンサーは、独自の裁量で、次のいずれかの措置を講じることができます。(i) 提出物を失格させる。または (ii) 受賞の可能性のある受賞者に、通知後1週間以内に、提出物で特定されたすべての問題(ライセンスの競合の解決、ソフトウェアライセンスで要求されるすべての義務の履行、およびソフトウェアの制限に違反するソフトウェアの削除を含むがこれらに限定されない)を修正することを要求する。ただし、上記のセクション12 (ii)の場合、Kaggleは、受賞の可能性のある受賞者から、これらのルールへの参加者の準拠を確認するためのコードまたはドキュメント、あるいはその両方を要求する権利を留保します。受賞の可能性のある受賞者がスポンサーの承認を得られるコードまたはドキュメント、あるいはその両方を提供した場合、この段落に基づいて参加者は失格とはなりません。
受賞の可能性のある受賞者は、セクション10に従って、コンペティションの受賞者として指名されることを辞退できます。
受賞の可能性のある受賞者は、そのような書類が必要であることの通知後2週間以内に、必要なすべての賞受諾書類を返送する必要があります。そうしないと、賞を放棄したものとみなされ、別の受賞の可能性のある受賞者が選出されます。賞は、コンペティションスポンサーまたはKaggleが必要な賞受諾書類を受け取ってから約30日以内に授与されます。賞の譲渡または割り当ては許可されていません。
上記のセクション2の資格要件を満たしていない場合、賞を受け取る資格はありません。
チームが賞金を受賞した場合、賞金は、チームが全会一致で異なる賞の分割を選択し、賞が発行される前にKaggleに通知しない限り、適格なチームメンバー間で均等に配分されます。
13. 税金
賞金に課されるすべての税金は、受賞者の単独の責任です。受賞の可能性のある受賞者への支払いは、適用される州、連邦、地方、および外国(州を含む)の税務報告および源泉徴収要件への準拠のために、コンペティションスポンサーまたはKaggleが要求するすべての書類を提出するという明示的な要件の対象となります。賞金は、コンペティションスポンサーが法律で源泉徴収を義務付けられている税金を差し引いた金額となります。受賞の可能性のある受賞者が必要な書類を提供しなかった場合、または適用法を遵守しなかった場合、賞は没収され、コンペティションスポンサーは別の受賞の可能性のある受賞者を選出できます。米国居住者である受賞者は、賞金の金額でIRSフォーム1099を受け取ります。
14. 一般条件
すべての連邦、州、地方、および現地の法律および規制が適用されます。
15. パブリシティ
法律で禁止されている場合を除き、コンペティションスポンサー、Kaggle、およびその関連会社が、追加の報酬なしに、広告および宣伝の目的であなたの名前と肖像を使用することに同意するものとします。
16. プライバシー
コンペティションスポンサーとKaggleが、Kaggleアカウント登録プロセスとコンペティション中にあなたが提供した個人識別情報(氏名、郵送先住所、電話番号、メールアドレス(「個人情報」)を含むがこれらに限定されない)を収集、保存、共有、およびその他の方法で使用できることを認め、同意するものとします。Kaggleは、この個人情報の収集、保存、共有、およびその他の使用に関して独立した管理者として行動し、コンペティションの管理を含め、プライバシーポリシーwww.kaggle.com/privacyに従ってこの個人情報を使用します。Kaggle.comアカウント所有者として、あなたは、アカウントにログインし、www.kaggle.com/contactでKaggleサポートに連絡することにより、Kaggleが保有するあなたの個人データへのアクセス、レビュー、修正、移植性、または削除をリクエストする権利を有します。
あなたとコンペティションスポンサーの間のこの契約をコンペティションスポンサーが履行する一環として、Kaggleはあなたの個人情報をコンペティションスポンサーに転送します。コンペティションスポンサーはこの個人情報に関して独立した管理者として行動します。そのような個人情報の管理者として、コンペティションスポンサーは、あなたの個人情報に関して、すべての米国および外国のデータ保護義務を遵守することに同意します。Kaggleは、上記のコンペティションスポンサーの住所に指定されている国にあなたの個人情報を転送します。これはあなたの居住国以外の場合があります。そのような国には、あなたの居住国と同様のプライバシーに関する法律や規制がない場合があります。
コンペティションスポンサーのプライバシーポリシーは、https://www.janestreet.com/privacy-policyにあります。
17. 保証、補償、および免責
提出物があなた自身のオリジナル作品であり、したがって、あなたが提出物の唯一かつ排他的な所有者および権利所有者であり、提出物を提出して必要なすべてのライセンスを付与する権利を有することを保証するものとします。次のいずれかの提出物を行わないことに同意するものとします。(i) 第三者の所有権、知的財産権、工業財産権、個人的または道徳的権利、またはその他の権利(著作権、商標、特許、営業秘密、プライバシー、パブリシティまたは守秘義務を含むがこれらに限定されない)を侵害する、または他人を中傷する。(ii) 適用される米国または外国の州または連邦法に違反する。(iii) コンピューターネットワークのセキュリティに違反する、またはパスワードまたはセキュリティ暗号化コードをクラックする。提出物が上記のいずれも行わないことを表明し、保証するものとします。
法律で認められる最大限の範囲で、あなたは、あなたの行為、不履行または不作為、および/または本契約に定められた保証の違反に起因する責任、請求、要求、損失、損害、費用、および経費から、コンペティション主催者を常に補償し、補償し続けることに同意するものとします。法律で認められる最大限の範囲で、あなたは、次のいずれかに起因または発生する、あらゆる請求、訴訟、訴訟、または手続き、ならびにあらゆる損失、責任、損害、費用、および経費(合理的な弁護士費用を含む)から、コンペティション主催者を防御し、補償し、免責することに同意するものとします。(a) あなたがアップロードまたはその他の方法で提供した提出物またはその他の資料が、第三者の所有権、知的財産権、工業財産権、個人的または道徳的権利、またはその他の権利(著作権、商標、特許、営業秘密、プライバシー、パブリシティまたは守秘義務を含むがこれらに限定されない)を侵害する、または他人を中傷する。(b) コンペティションに関連してあなたが行った虚偽の表示。(c) これらのルールまたは適用される米国または外国の州または連邦法へのあなたの不遵守。(d) コンペティションへのあなたの関与に起因または関連する、これらのルールの当事者以外の個人または事業体によって提起された請求。(e) 賞の受諾、所有、誤用、または使用、またはコンペティションおよびコンペティション関連活動への参加。
あなたは、ここに、(a) コンペティションウェブサイトの誤動作またはその他の問題、(b) 提出物の収集、処理、または保持におけるエラー、または (c) 賞または受賞者の印刷、提供、または発表における誤植またはその他のエラーに関連する責任から、コンペティション主催者を免責するものとします。
適用法で認められる最大限の範囲で、いかなる状況においても、いかなる法的理論(不法行為、契約、過失、厳責任などを含む)においても、コンペティションスポンサーは、(A) 間接的、特別、または付随的な損害(逸失利益、営業権の喪失、業務停止、結果の正確性、またはコンピューターの故障または誤動作の損害を含む)、またはコンペティションスポンサーによる故意の不正行為以外の損害、(B) 受賞者に授与される賞を超える金額、または (C) 当社の合理的な支配を超える事項について、あなたまたは他の人に対して責任を負いません。上記の制限と除外は、適用法で許可されていない場合、あなたに適用されない場合があります。
18. インターネット
コンペティション主催者は、システムエラー、コンピューターまたはその他の電気通信伝送の誤動作、あらゆる種類のハードウェアまたはソフトウェアの障害、ネットワーク接続の喪失または利用不能、誤植またはシステム/人為的エラーおよび障害、電話ネットワークまたは回線、ケーブル接続、衛星送信、サーバーまたはプロバイダー、またはコンピューター機器の技術的誤動作、インターネットまたはコンペティションウェブサイトの輻輳、またはそれらの組み合わせに起因する、コンペティションウェブサイトの誤動作、または提出物または参加資料の遅延、紛失、破損、誤送、不完全、判読不能、配信不能、または破壊について責任を負いません。これらは、参加者の参加能力を制限する可能性があります。
19. キャンセル、変更、または失格の権利
何らかの理由で、コンペティションが計画どおりに実行できない場合(コンピューターウイルス、バグ、改ざん、不正介入、詐欺、技術的障害、またはコンペティションの管理、セキュリティ、公平性、整合性、または適切な実施を損なう、または影響を与えるその他の原因を含む)、コンペティションスポンサーは、コンペティションをキャンセル、終了、変更、または一時停止する権利を留保します。コンペティションスポンサーはさらに、提出プロセスまたはコンペティションまたはコンペティションウェブサイトの他の部分を改ざんする参加者を失格とする権利を留保します。参加者による、コンペティションウェブサイトを含むウェブサイトを故意に損害したり、コンペティションの正当な運営を損なおうとする試みは、刑法および民法に違反します。そのような試みが行われた場合、コンペティションスポンサーとKaggleはそれぞれ、適用法の最大限の範囲で、そのような参加者からの損害賠償を求める権利を留保します。
20. 雇用の申し出または契約ではない
いかなる状況においても、提出物の提出、賞の授与、またはこれらのルールのいかなるものも、コンペティションスポンサーまたはコンペティション主催者との雇用の申し出または契約とは解釈されません。提出物を自主的に、かつ秘密または信頼関係なしに提出したことを認めるものとします。これらのルールの受諾または提出物の提出によって、あなたとコンペティションスポンサーまたはコンペティション主催者の間に、秘密保持、信託、代理店、雇用、またはその他の同様の関係が作成されないことを認めるものとします。
21. 準拠法
上記のコンペティション固抵のルールで別途規定されていない限り、これらのルールに起因または関連するすべての請求は、抵触法のルールを除き、ニューヨーク州法に準拠し、米国ニューヨーク州ニューヨーク郡の連邦裁判所または州裁判所で独占的に訴訟されます。当事者は、これらの裁判所の人的管轄権に同意します。これらのルールのいずれかの条項が無効または執行不能であると判断された場合、ルールの残りのすべての条項は完全に効力を持ち続けます。
ルール chevron_rightコンペティションルール参加者1人につき1アカウントチーム外での非公開共有の禁止チーム統合チームの人数制限提出回数制限コンペティションのタイムラインコンペティション固有の条件コンペティション名:Jane Street Real-time Market Data Forecastingコンペティションスポンサー:Jane Streetコンペティションスポンサーの住所:2 ½ Devonshire Square, London, UKコンペティションウェブサイト:https://www.kaggle.com/competitions/jane-street-real-time-market-data-forecasting賞金総額:120,000ドル受賞者ライセンスの種類:非独占的ライセンスデータへのアクセスと使用:提供されたデータは、コンペティションでの使用に限定されます。詳細は、以下の「コンペティションデータ」を参照してください。このコンペティションへの参加は、これらの公式コンペティションルールへの同意を構成します。A. コンペティション固有のルール1. 受賞者ライセンス2. 自動機械学習ツール(AMLT)B. 一般コンペティションルール1. 拘束力のある契約2. 資格3. スポンサーとホスティングプラットフォーム4. コンペティション期間5. コンペティションへの参加6. 個人とチーム7. コンペティションデータ8. 提出コードの要件9. 受賞者の決定10. 受賞者への通知と失格11. 受賞者の義務12. 賞13. 税金14. 一般条件15. パブリシティ16. プライバシー17. 保証、補償、および免責18. インターネット19. キャンセル、変更、または失格の権利20. 雇用の申し出または契約ではない21. 準拠法
コンペティションの利用規約を表示して同意するには、「コンペティションに参加」をクリックしてください。
コンペティションに参加
ここでダウンロードしたプロンプトを、自分のしたい質問の下に張り付けるだけでコンペの情報を参照しながら答えてくれるようになります。
プロンプト生成機能の活用方法
実際私はフェーズ1、2、3全てでこの機能を使ったのでその方法を伝えます。
フェーズ1
プロンプト生成機能ですべてのチェックボックスにチェックを入れてプロンプトを作成して下さい。その後、Google ai studioを開いてください。すると以下のような画面が開きます。
なお、ModelはGemini 1.5 Proにしてください。そしたら、プロンプトに以下のように入力します。
このコンペを理解するために必要なディスカッションやnotebookを教えてください。
{プロンプト生成機能で作成したプロンプト}
こうして出力されたディスカッションやNotebookを調べます。さらに、 出力されたのNotebookやディスカッションが分からなければすでにプロンプトにこれらの情報は入っているので質問や対話的に理解することもできます し、新しくそのディスカッション(とコンペの概要やルールに)にチェックを入れてプロンプトを作って聞くこともできます。私の参加したコンペだとすべてのチェックボックスにチェックを入れたプロンプトだと約50万トークンとなりGeminiしか使えませんでしたが、 チェックボックスをコンペの概要とデータ説明、ディスカッションやノートブック数個であればお好きなLLMで使えますのでみんな大好きChatGPTやClaude等も使えますし、天秤AI等で天秤機能も使えます。
フェーズ2
フェーズの時と同様にすべてのチェックボックスにチェックを入れて作成したプロンプトを使用します。
このコンペで上位に行くために必要な技術をディスカッションの内容等を交えて教えてください。また良い成果を上げているNotebookについても教えてください。
{プロンプト生成機能で作成したプロンプト}
そしたら 何個かディスカッションやNote bookが出力されるので後はひたすら対話をして理解を深めます。 気になることは全部このフェーズでしらみつぶしに聞いていって、対話を通して、このコンペで勝つための本質は何なのかを自分なりに考えます。Jupyter Notebookに関しても分からない部分のコードを聞くと詳細に教えてくれます。 そして自分なりに心中する既存の手法を選びます。
フェーズ3
フェーズ2の時と同様にすべてのチェックボックスにチェックを入れて作成したプロンプトを使用します。もしくは、このフェーズではフェーズ2に関連するディスカッションやノートブックのみにチェックを入れて作成したプロンプトでもいいと思います。また、ここからは質問に内容も臨機応変に変えていってください。下記は一例です。
〇〇の手法をさらに精度改善させるにはどのように改良したらいいと思いますか?ほかのディスカッションやJupyter Notebookから洞察を得て改良方法を考えたり、〇〇の手法の良さをさらに伸ばすような全く新しい観点からの改良方法を考えてください。
{プロンプト生成機能で作成したプロンプト}
後はひたすら、対話して心中すると決めた既存の手法を深めるのみです。 Geminiを見てみたら大体自分は対話だけで7万トークンほど使っていました。もちろんGeminiからのプログラムの出力等も入ったトークン数なので、対話だけでという言葉は少々語弊があるかもしれませんが、まあ大体そんな感じです。
まとめ
以上が私が実際にこのコンペでやったこと全てです。意思決定はほとんどGeminiとの対話で進めたのが分かると思います。もちろん運もありますが、少なくとも銀メダルであれば私のようなkaggle初心者でも上記の手法を用いることで目指せると思っています。そしてこの方法は、参加者の活発な議論・共有が前提で成り立つ手法です(感謝です。。)。なのでこの手法はディスカッションやノートブックが煮詰まるコンペ終盤程、良い結果をもたらします。
最後に、もしサイトにアクセスしてくれた方は、ゴミみたいなレイアウトのサイトでほんとすみません!まだAWS(というかwebアプリケーション)は練習中なので大目に見てもらえると嬉しいです。もしサイトに追加して欲しい現在開催中のコンペがあればコメント等で教えてください!。お金等の面も見て大丈夫そうなら、現在activeのコンペすべてを登録すると思いますがしばらくは様子を見させてください。
最後までお付き合いいただき、ありがとうございました!