Slide 1

Slide 1 text

AI 2024.05.23 立松 郁也 GO株式会社 AI搭載エディタCursorの紹介と 機械学習コンペでの使用レビュー

Slide 2

Slide 2 text

AI 2 ❏ AI搭載エディタCursorについて話します ❏ 基本的な機能の紹介と機械学習コンペでの使用レビューの共有です 注意事項 ❏ 特に後半は私個人の感想が多めです ❏ 自分はFreeプラン+OpenAI api登録で利用中であり、それ前提での使 用感になります 本日の内容

Slide 3

Slide 3 text

AI 3 ❏ 自己紹介 ❏ Cursorの機能紹介 ❏ 機械学習コンペでの使用レビュー ❏ まとめ・感想 目次

Slide 4

Slide 4 text

AI 4 自己紹介 ● 氏名 ○ 立松 郁也 ● 経歴 ○ 2017年4月 大学院入学 ■ ナーススケジューリング問題の研究 ○ 2019年4月 電機メーカー入社 ■ 需要予測モデル開発 ■ 最適在庫の分析 ○ 2021年3月 GO株式会社入社(旧:株式会社Mobility Technologies) ■ 次世代AIドラレコサービス『DRIVE CHART』の分析業務 ● SNS ○ X: https://twitter.com/monnu0621 ○ Kaggle : https://www.kaggle.com/fuumin621

Slide 5

Slide 5 text

AI 5 01 Cursorの機能紹介

Slide 6

Slide 6 text

AI 6 ❏ AIによる支援機能を搭載したコードエディタ ❏ コードの自動生成、自動デバックや質疑応答等が可能 ❏ VScodeからフォーク ❏ VScodeと似たインターフェース ❏ 基本的にVScodeの拡張機能は全てCursorでも使用可能 ❏ remote sshやdev container等ももちろん対応 ❏ モデル選択の自由度は高め ❏ apiを利用してOpenAI,Claude等のモデルが利用可能 ❏ 例えば最近リリースされたgpt-4oも利用可能 Cursorとは?

Slide 7

Slide 7 text

AI 7 料金プランは3パターン。自分はFreeプラン+OpenAI apiで利用中。 FreeプランでもOpenAI等のapi登録すれば一部機能除き無制限で利用可。 Cursor料金プラン Freeプラン Proプラン ($20/month) Businessプラン ($40/user/month) ● Proの2週間トライアル ● Slow GPT-4 50回 ● GPT-3.5 200回 ● Copilot ++ 2000回 ● OpenAI or Anthropicの apiキー登録すれば一部 機能除き無制限で利用可 ● Freeの全ての内容 ● Fast GPT-4 500回 ● Slow GPT-4 無制限 ● GPT-3.5 無制限 ● Copilot ++無制限 ● Proの全ての内容 ● 管理者用ダッシュボード ● 一括請求 ● 強制プライバシーモード ● OpenAIデータ保持なし ※ 2024/05時点の情報です。詳細は公式サイトを参照 https://cursor.sh/pricing

Slide 8

Slide 8 text

AI 8 AIを利用したコードの自動生成、編集が可能。 1-50行程度の編集におすすめ。 コード選択してCommand +Kを押し、指示を与えるだけ。 Cursorの機能:Command K (自動編集) 自動でコード編集が提案 差分がハイライト 受入or拒否はユーザ判断 範囲選択して 指示を与える

Slide 9

Slide 9 text

AI 9 LLMとチャットしながら開発が可能。ChatGPT等と類似しているが、 手元のコードを理解した上で質疑応答できる点が魅力。 Cursorの機能:Chat 作業中のファイル を自動で理解 Command+L で チャットウィンドウ インストール方法 や変更箇所を教 えてくれる

Slide 10

Slide 10 text

AI 10 Cursorの機能:Chat 指定ブロックのみ 読ませることも可 LLMとチャットしながら開発が可能。ChatGPT等と類似しているが、 手元のコードを理解した上で質疑応答できる点が魅力。

Slide 11

Slide 11 text

AI 11 エラーが発生した際、AIが自動で原因調査をしてくれる Cursorの機能:Auto Debug エラー発生すると Debug with AI ボタンが出現 自動で原因調査

Slide 12

Slide 12 text

AI 12 任意のパッケージの公式ドキュメントを参照した上で回答が可能 有名なパッケージは既に登録済み。URL指定して追加も可能。 Cursorの機能:ドキュメント参照 例えばPyTorch 公式docsはすで に登録済み URLで任意のドキュメントの 追加も可 (例はPyTorchLightning)

Slide 13

Slide 13 text

AI 13 Github Copilotのようなコード補完機能。ただしfreeプランでは制限あり。 Cursor独自モデルが使われているためOpenAI等のapi登録利用では使えない。 Cursorの機能:Copilot++

Slide 14

Slide 14 text

AI 14 1ファイルだけでなくコードベース全体についても質問が可能 Cursorの機能:Codebase Answer 「元に戻す」ロジッ クはどこにあるか 質問 コードベース全体 を読んで調査

Slide 15

Slide 15 text

AI 15 ❏ privacy mode ❏ オンにすればCursorサーバーにコードが保存されない ❏ Freeプランでも有効化できるため、とりあえずON推奨 ❏ api登録 ❏ OpenAI等のapiキーが登録可能 ❏ Freeプランの場合はまともに使おうと思うと必須 ❏ これを使えばFreeプランでもgpt-4o等がフルに使える ❏ 当然だがOpenAI等のapi利用料はかかるため注意 ❏ 利用モデルの指定 ❏ 設定でapi利用するモデルを指定できる ❏ デフォルトはgpt-4だが、gpt-4o,gpt-4-turboなども有 効化しておくのがオススメ。 設定まわりの話 利用モデルの設定例

Slide 16

Slide 16 text

AI 16 02 機械学習コンペでの使用レビュー

Slide 17

Slide 17 text

AI 17 ❏ ベースラインモデルを爆速で開発 ❏ ChatやCommand Kで効率的に開発可能 ❏ Wandb等の実験管理ツールの導入も一瞬でできる ❏ 実験サイクルを高速化 ❏ 思いついたアイデアを実装に素早く落とし込める ❏ 学習時のテクニックの追加、モデルアーキテクチャの変更等が楽 ❏ 他の参加者のコード(Public Notebook等)の理解、改良 ❏ TensorFlow→PyTorch等、フレームワークの移植 ❏ 複雑なロジックの解説(間違う場合もあるので注意は必要) 機械学習コンペでの使用レビュー 個人的にコンペでCursorが役に立つポイントは以下の3つ 特に実装効率の改善がコンペ参加にあたり大きく寄与した

Slide 18

Slide 18 text

AI 18 機械学習コンペでの使用レビュー Solafune Finding Mining Sites https://solafune.com/competitions/58406cd6-c3bb-4f7a-85c7-c5a1ad67ca03 ❏ 鉱山採掘場を検知するコンペ ❏ 衛星画像から鉱山採掘場があるか否かを分類 Kaggle Stanford Ribonanza RNA Folding https://www.kaggle.com/competitions/stanford-ribonanza-rna-folding ❏ RNAの系列データに関するコンペ ❏ RNA配列から各塩基の薬品との反応性を予測 以降では下記のコンペを題材に、具体的に役立った例をコードを交えて紹介します

Slide 19

Slide 19 text

AI 19 コンペで役立った点 : ベースラインモデルを爆速で開発 例 : 衛星画像の分類コンペの場合 Command KやChatを駆使すると爆速でベースラインが開発できる 基本的にはAIに実装してもらい、適宜手動で修正する 実装中のコードを参照した上で対話できるので話が早い データの読み込み 部だけ実装 Chatで方針 を指示

Slide 20

Slide 20 text

AI 20 コンペで役立った点 : ベースラインモデルを爆速で開発 例 : 衛星画像の分類コンペの場合 Chatで実装コー ドが提供される

Slide 21

Slide 21 text

AI 21 コンペで役立った点 : ベースラインモデルを爆速で開発 例 : 衛星画像の分類コンペの場合 自動編集、実行、手動で修正を繰り返すだけでベースラインモデルができる Command Kも使 い自動編集 Command Kも使 い自動編集

Slide 22

Slide 22 text

AI 22 コンペで役立った点 : 実験サイクルを高速化 例 : 画像分類にmixupを入れたい ファイルを読み 込んで回答 変更箇所を教え てくれる

Slide 23

Slide 23 text

AI 23 コンペで役立った点 : 実験サイクルを高速化 例 : RNAコンペのモデルアーキテクチャを改良したい 変更点を指示 変更箇所が提案 される

Slide 24

Slide 24 text

AI 24 コンペで役立った点 : 他の参加者のコードの理解、改良 公開Notebookを 手元で開く 実装に関して 質問 例 :RNAコンペの公開Notebookの理解を深めたい コードを読み込 んで解説 https://www.kaggle.com/code/iafoss/rna-starter-0-186-lb

Slide 25

Slide 25 text

AI 25 コンペで役立った点 : 他の参加者のコードの理解、改良 例 :RNAコンペの公開Notebookの理解を深めたい https://www.kaggle.com/code/iafoss/rna-starter-0-186-lb 細かいクラスの 部分もそれなり に理解して解説

Slide 26

Slide 26 text

AI 26 コンペで役立った点 : 他の参加者のコードの理解、改良 例 :RNAコンペの公開Notebookをfastai→PyTorchLightningへ変換 https://www.kaggle.com/code/iafoss/rna-starter-0-186-lb 使い慣れたフレー ムワークへ変換

Slide 27

Slide 27 text

AI 27 コンペでの機能別利用頻度と使用感 機能名 利用頻度 使用感 Chat ◯ 1番使う。ただのChatGPTと言われればそうなのだが、手元のコードが参照さ れるだけで開発効率が大幅に変わる。ファイル全体を深く理解してくれている のがありがたい。会話の履歴が残るのも地味に嬉しい。 Command K (自動編集) ◯ 2番目に使う。簡単な編集であればChatよりこちらの方が楽。 多少複雑なことする場合は、対話しながら進めたいのでChatの方が良い。 Auto Debug △ エラー文をChatにコピーすれば同じことなので、あえてこの機能を使うことはあ まりなかった。 ドキュメント参照 △ 便利な気はするが、最新の公式ドキュメント参照が必要になる機会が意外と少 なかった。 Copilot++ ? Freeプランには制限があり十分使えず。 CodebaseAnswer △ 自分は1実験1スクリプト派だからかコードベース全体を見てほしいことはあま りなかった。 自分がコンペで使った機能はChatとCommand Kがほとんど。 簡単な編集はCommand K,多少複雑な場合はChatを使うことが多い。

Slide 28

Slide 28 text

AI 28 ❏ Cursor vs 通常のChatGPT ❏ 通常のChatGTPは手元のコードを毎回コピペする必要があり煩わしい ❏ Cursorのように手元コードを勝手に読んでくれるだけで効率が全く違う ❏ Cursor vs Github Copilot Chat ❏ 機能としては類似している ❏ ただ個人的には回答の質はCursor > Github Copilotな印象 ❏ 裏のモデルの違い?or indexロジックの違い? ❏ Cursorだとapi経由で任意のllm使えるのも嬉しい ❏ gpt-4o,gpt-4-turbo等 他のツールとの比較 ※個人の感想です

Slide 29

Slide 29 text

AI 29 ❏ Cursorの機能と機械学習コンペでの使用感を紹介した ❏ 機能は豊富にあるが、一部の機能(Chat+Command K)だけでも十分コンペで 役に立った ❏ 特に実装コストが低くなり、実験サイクルを早く回せる点が大きい ❏ 一方でたまに回答に間違いもあり、また複雑な実装は自分で行う必要がある ❏ 間違いに気づけるよう実装のチェックや検証は必要 ❏ 複雑な実装は結局自分で行うので、必要な実装力は変わらない印象 ❏ とはいえ効率化されることで、本質的な分析や難しい実装に時間を割けるのは嬉 しい 感想・まとめ