🤖

AI コードアシスタントツール Continue を Amazon Bedrock で使う

に公開

こんにちは!BABY JOB 開発部です!
私たちは現在、AI コードアシスタント Continue を Amazon Bedrock のモデルで試験運用しています。
この記事では、Continue の導入背景や実際に使用してみて分かったことについて、Bedrock での利用に焦点を当ててご紹介します。

背景

弊社では AI ツール導入の第一歩として、AI コードレビューツールを試験導入しました。[1]
AI からの指摘を取り込むことでコード品質が向上する場面もあった一方で、指摘が採用されないケースも少なくありませんでした。
メンバーへヒアリングしてみた結果、「プルリクエストが開発サイクルの終盤に位置していること」が、次のような問題を生んでいると分かりました。

  • 手戻りを避けたい心理が働き、指摘を積極的に採用しづらい
  • 軌道修正までに時間がかかり、サイクル全体のペースが低下してしまう

これらは AI に限らず、人間が行うコードレビューでも同様に発生する問題です。
ペアプログラミングや設計段階でのレビューなど、早いフェーズでフィードバックを得る仕組みが有効です。
AI についても同様で、「設計・実装フェーズからフィードバックを受け取れる手段が必要」と判断し、AI コードアシスタントに注目することになりました。

ツール選定

AI コードアシスタントツールを選定するにあたり、次の要件を重視しました。

要件

  1. Bedrock 上のモデルを利用できること

    • 用途に応じてモデルを柔軟に切り替えることが可能
    • 既に予算化されている AWS 費用内で利用でき、導入・切り替えの敷居が低い
    • 利用者数ではなくモデル使用量ベースの従量課金なので初期費用を抑えられる
    • 意図せずプロンプトや生成物が記録・学習に利用されない
  2. チームで主に利用されている IntelliJ IDEA で動作すること

    • Visual Studio Code を利用しているメンバーもいるため、両方に対応していると尚良い

AI コードアシスタントは進化のスピードが非常に速い領域です。
選定を慎重に進めているうちに前提条件が変わってしまう懸念がありました。
そのため、あらかじめ要件を満たすことを確認できていた Continue を、まず試してみることにしました。

Continue の特徴

  • IDE 連携 — IntelliJ IDEA と Visual Studio Code 向け拡張を提供
  • 多様なモデルプロバイダーをサポート — OpenAI / Anthropic / Gemini など[2]
  • 共有プラットフォーム Continue Hub[3] — 設定テンプレートの公開・共有が可能
  • 主要機能 — チャット / コード補完 / コード編集 / エージェント[4]

詳細な使い方や画面イメージは公式ドキュメントをご覧ください。

実際に使用してみて分かったこと

アプリケーション推論プロファイルをサポートしている

Bedrock では、モデルの呼び出し元ごとに利用料を追跡するため、アプリケーション推論プロファイル[5]という仕組みが用意されています。
LLM を活用するクライアントツールの中にはアプリケーション推論プロファイルに未対応のものもありますが、Continue は対応しているため、コスト管理の面でメリットがあます。
具体的には、次のような形で Continue の設定ファイルにアプリケーション推論プロファイルの ARN を指定することで利用が可能です。

models:
  - name: Model Name
    provider: bedrock
    model: arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/XXX # ここに指定(通常はモデル ID を指定する場所)
    env:
      region: ap-northeast-1
      profile: XXX-profile
    roles:
      - chat
      - edit
      - apply

Continue が推奨するコード補完用モデルが Bedrock で未サポート

Continue の公式ドキュメントによると、現時点で Bedrock はコード補完専用モデルを提供していません。[6]
AWS にはプロバイダーごとにモデルの紹介ページがあるため、ユースケース例にコード補完が挙がっているモデルをいくつか試してみました。
しかし、コードではなく自然言語の文章が返ってくるものもあり、正常に補完が動作するモデルの選定には時間を要しました。[7][8]

自然言語が補完されてしまう様子

コード補完ではアプリケーション推論プロファイルをうまく利用できない

チャットやコード編集機能ではアプリケーション推論プロファイルを使用できるものの、コード補完ではうまく利用できませんでした。
モデル ID を直接指定すると正常に機能しますが、同じモデルをアプリケーション推論プロファイル経由で呼び出すと自然言語の回答が返る事象が発生しました。
そのため、現状はコード補完機能でのアプリケーション推論プロファイルの使用を断念しています。

IntelliJ IDEA のインライン補完が無効化される

Bedrock でコード補完専用モデルが未サポートであったり、自然言語が補完されたりする事象を踏まえ、IntelliJ IDEA の補完機能との併用を検討しました。
しかし、Continue のプラグインを有効化した時点で IntelliJ IDEA のインライン補完が強制的に無効になるため、併用は不可能なようです。

このように、実際に使用してみなければ分からないことが多くありました。
コード補完まわりの課題については、Ollama でのローカルモデル構築や他の AI アシスタントツールへの乗り換えも選択肢に入れつつ、まずは Continue と Bedrock の改善動向を見守っていきたいと考えています。

最後に

AI コードアシスタント Continue を導入した経緯や、実際に使用してみて分かったことについて Bedrock に焦点を当ててご紹介しました。
導入を検討されている方の参考になれば幸いです。最後までお読みいただき、ありがとうございました!

脚注
  1. AI コードレビューツール Qodo Merge を試験導入してみた ↩︎

  2. Continue 公式ドキュメント - Model providers ↩︎

  3. Continue Hub ↩︎

  4. 現在、エージェント機能は一部のモデルやプロバイダーでのみ利用可能です。 ↩︎

  5. AWS 公式ドキュメント - アプリケーション推論プロファイルを作成する ↩︎

  6. 「Bedrock currently does not offer any autocomplete models. However, Codestral from Mistral and Point from Poolside will be supported in the near future.」 ↩︎

  7. Continue の推奨は fill-in-the-middle (FIM) 形式で学習されたモデルです。「Bedrock にはコード補完専用モデルが提供されていない」と記載されていることもあり、ユースケースに「コード補完」とあっても FIM でトレーニングされたモデルではないのだろうと推測しています。 ↩︎

  8. Ollama を用いて、コード補完用のモデルをローカルにセットアップする方法も推奨されています。 ↩︎

BABY JOB  テックブログ

Discussion