AIがコードを自動生成!プログラマーの強い味方「CodeGeeX2」を使いこなそう

タグ GitHubオープンソースzai-orgCodeGeeX2

このソフトで何ができる?

CodeGeeX2は、AIがあなたの代わりにプログラムのコードを書いてくれるツールです。Python・Java・C++・JavaScriptなど100種類以上のプログラミング言語に対応しており、コードの自動補完や翻訳、バグの修正、コメントの自動生成まで幅広くサポートしてくれます。VS CodeやJetBrainsといった人気の開発ツールにも対応しているので、普段の作業環境にそのまま組み込んで使えます。

どんな人におすすめ?

プログラミングを始めたばかりの方にとって、「書き方がわからない」「どう書けばよいか迷う」という場面でAIがヒントを出してくれるので、学習のサポートとして活用できます。

業務でコードを書いている方には、繰り返しの多いコードや定型処理を自動で補完してもらえるため、作業スピードが大幅に上がります。

複数の言語を扱うエンジニアには、ある言語で書かれたコードを別の言語に翻訳する「コード翻訳」機能が役立ちます。たとえば「PythonのコードをJavaに書き直したい」というシーンで威力を発揮します。

インストール方法

まず、リポジトリをパソコンにダウンロードします。

git clone https://github.com/zai-org/CodeGeeX2
cd CodeGeeX2

次に、必要なライブラリをインストールします。Pythonとpipが事前に入っていることを確認してください。

pip install -r requirements.txt

モデル本体はHugging Faceから自動でダウンロードされます。初回起動時にはダウンロードが走るため、安定したネット環境で実行してください。なお、GPU(グラフィックボード)を搭載したパソコンであれば快適に動作します。量化(軽量化)設定を使えば6GBのVRAMでも動かせます。

VS Codeで使いたい場合は、拡張機能マーケットプレイスで「CodeGeeX」を検索してインストールするだけで使い始められます。

VS Code拡張機能マーケットプレイス → 「CodeGeeX」で検索 → インストール

基本的な使い方

Pythonから直接モデルを呼び出す場合は、以下のコードを実行します。

from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("THUDM/codegeex2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/codegeex2-6b", trust_remote_code=True, device='cuda')
model = model.eval()

# 言語タグをつけると精度が上がります
prompt = "# language: Python\n# write a bubble sort function\n"
inputs = tokenizer.encode(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(inputs, max_length=256, top_k=1)
response = tokenizer.decode(outputs[0])
print(response)

上記を実行すると、コメントに書いた「バブルソート関数を書いて」という指示に応じて、AIが自動でコードを生成してくれます。実際の出力例はこのようになります。

# language: Python
# write a bubble sort function

def bubble_sort(lst):
    for i in range(len(lst)):
        for j in range(len(lst) - 1 - i):
            if lst[j] > lst[j + 1]:
                lst[j], lst[j + 1] = lst[j + 1], lst[j]
    return lst

コメントに「何をしたいか」を書くだけで、動くコードを返してくれます。プロンプト(指示文)は日本語でも英語でも受け付けてくれます。

活用アイデア

1. コードの自動補完で入力を時短する VS Codeプラグインを導入すると、コードを書いている途中でAIが続きを予測して補完してくれます。関数名の途中まで入力するだけで、引数や処理の内容まで提案してくれるため、タイピング量を大幅に減らせます。

2. 別の言語への自動翻訳 「このPythonコードをJavaScriptに変換して」とAIに依頼するだけで、別言語への書き直しを自動でやってくれます。新しい言語を学ぶ際に「自分が知っている言語と比べてどう書くのか」を確認する学習教材としても使えます。

3. バグの発見と修正 動かないコードをAIに渡して「このコードのどこが間違っているか教えて」と聞くと、問題点を指摘して修正案を提示してくれます。エラーメッセージの意味がわからないときも、「Ask CodeGeeX」機能を使って日本語で質問できます。

4. コメント・ドキュメントの自動生成 書いたコードに対して「このコードにコメントをつけて」と指示すると、各処理の説明を自動で追加してくれます。チームでコードを共有する際の可読性向上に役立ちます。

まとめ

CodeGeeX2は、コード生成・補完・翻訳・バグ修正・ドキュメント生成と、プログラミングにまつわる作業を幅広くAIがサポートしてくれるツールです。60億パラメータという比較的小さなモデルながら、150億パラメータの他モデルを上回る性能を持ち、6GBのVRAMで動かせるため、ハイエンドなGPUがなくても試せます。

VS CodeやJetBrainsのプラグインとして使えば、普段の開発環境をそのままに、AIアシスタントを手軽に組み込めます。プログラミング学習中の方から、日々コードを書いているエンジニアまで、作業効率を上げたいすべての方にとって試す価値のあるツールです。まずはプラグインをインストールして、いつもの作業にAI補完を取り入れてみてはいかがでしょうか。