tabnine という AI を使ったエディターの補完プラグインを neovim で試してみた.VS Code とか一般的なエディターで使えるみたいで,自分が普段利用している neovim もサポートされている.最近公開された GPT-2 という文章生成において非常に強力なモデルを利用してコーディングの補佐をしてくれる.

neovim に LSP を提供するプラグインである coc.nvim が導入されていれば,neovim を起動して CocInstall coc-tabnine 一発でインストールすることができる. 初回利用時には自動で tabnine welcome 画面 がブラウザで開くようになっている.

お試しのために official page のサンプルにある python コードを入力してみた.確かにこんな感じで,本来の補完の領域を完全に超えるお節介な補完が入るようになった.

for filename

まで入力すると,

for filename in os.listdir(directory):

まで提案してくる. 確かにこう入力することが多いよねった感じ.さらに補完のポップアップにその候補が入る確率も同時に表示される.この確率を見るのがなんの役に立つのかはわからないが,背後で機械学習モデルが動いている感じがあって面白い.

ただ問題があった.まあ予想はできたのだが,数行サンプルを入力してみたら MBA のファンがうぉんうぉん回るようになってしまった. 課金すると GPU を使う拡張ができるらしい.それくらいモデルの推論に計算資源を使うみたい.文字の入力のためだけに GPU 拡張するのは現実的でない.Tabnine Cloud が有料プランでは提供されており,推論を外部サーバー上で実行できるみたい.ただ,自分が書いているコードを随時よくわからない外部サーバーに送信することをよしとする人はいるのだろうか?

さらにある程度習得している言語であれば邪魔になってしまう補完が多そう.
入力の途中にいくつかの選択肢が確率値とともに提案されるのだが,それを吟味して選ぶくらいなら自分で入力してしまった方が早い.. 自分のエディターの使い方的に,ライブラリの関数名を覚えたられないので使う,くらいなので,これほどリッチな情報は逆に邪魔になる.

Python だと使用歴も長いのでそんな感じだが,新しく学習中のプログラミング言語だったら,tabnine による補完があると細かい文法を覚えていない場合時など捗るかもしれない.また github からモデルを作っているので,一般的に利用されている実装方法とかがみれて参考になるかも.

ただ今回は少し試した後アンインストールしてしまった.

coc から削除するには,CocUninstall coc-tabnine 実行する.