IBM watsonx Code Assistantの超基本を調査

watsonx Code Assistantシリーズに、Github CopilotのようにIDEの拡張機能として動作するサービスが加わっていたので、気になる点を調査しました。  
詳細は製品ガイドをご参照ください。  
[Product guide, IBM watson Code Assistant](https://cloud.ibm.com/docs/watsonx-code-assistant?topic=watsonx-code-assistant-getting-started)

# 目次
- [watsonx Code Assistantはどんな機能を持つ？](#watsonx-code-assistantはどんな機能を持つ)
- [watsonx Code Assistantがサポートするプログラミング言語は？](#watsonx-code-assistantがサポートするプログラミング言語は)
- [watsonx Code Assistantが対応しているIDEは？](#watsonx-code-assistantが対応しているideは)
- [watsonx Code Assistantのモデルには何が使われている？選択できる？](#watsonx-code-assistantのモデルには何が使われている選択できる)
- [watsonx Code Assistantのモデルをチューニングできる？](#watsonx-code-assistantのモデルをチューニングできる)
- [watsonx Code Assistantのコードモデルはコードリポジトリを理解しているのか？参照できるのか？](#watsonx-code-assistantのコードモデルはコードリポジトリを理解しているのか参照できるのか)
- [watsonx Code Assistantでどれくらいコーディングが効率化される？](#watsonx-code-assistantでどれくらいコーディングが効率化される)

## watsonx Code Assistantはどんな機能を持つ？
* watsonx Code Assistantは以下のコーディング支援機能を持ち、IDEの拡張機能として動作する。
> コード生成  
> コード説明  
> 単体テストコード生成  
> コードドキュメント生成  

* watsonx Code Assistantシリーズには、この他に下記の２つのサービスがある。
> 1) watsonx Code Assistant for Red Hat Ansible Lightspeed  
https://www.ibm.com/jp-ja/products/watsonx-code-assistant-ansible-lightspeed  
  生成AIを活用したコンテンツ推奨を通じて、Ansibleプレイブックの作成プロセスをわかりやすく手引きします。IT自動化の加速を目的として設計されたこの製品は、自動コンテンツ推奨を提供することでAnsibleエクスペリエンスを向上させるように設計されています。
> 2. watsonx Code Assistant for Z  
https://www.ibm.com/jp-ja/products/watsonx-code-assistant-z  
  メインフレーム・アプリケーションのモダナイゼーションを、従来の製品よりも低コスト、低リスクで加速できるように構築された、生成AIを活用した製品です。

## watsonx Code Assistantがサポートするプログラミング言語は？

  C  C++  Go  Java  JavaScript  Python  TypeScript  

[Product guide > Completing code in the editor](https://cloud.ibm.com/docs/watsonx-code-assistant?topic=watsonx-code-assistant-wca-generate-code#wca-generate-code-completion)


## watsonx Code Assistantが対応しているIDEは？

Visual Studio Code  Eclipse IDE

[Product guide > Overview: Installing the IDE extension or plug-in](https://cloud.ibm.com/docs/watsonx-code-assistant?topic=watsonx-code-assistant-cloud-setup-wca-extensions)

## watsonx Code Assistantのモデルには何が使われている？選択できる？
* IBM Graniteコードモデルが使用されている。  
* IBM Graniteコードモデルの学習にはGitHubやJakarta EE、Stack Exchangeなどのプログラミング・自然言語・数学関連の公開データが活用されている。
* クラウドサービスとしてはモデルを選択・変更することはできないが、ローカルのOllamaを通じてローカルモデルを使用することはできる。

<クラウドサービス利用のイメージ図>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100414/24710a04-4522-49d1-af90-68359896d3ed.png)

<ローカルのLLM利用のイメージ図>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100414/fc38842f-e04e-4c36-9188-e4ec4dfe7f5d.png)


[Product guide > IBM watsonx Code Assistant model details](https://cloud.ibm.com/docs/watsonx-code-assistant?topic=watsonx-code-assistant-wca-model-details)

[Product guide > What data sources are used to train the watsonx Code Assistant models?](https://cloud.ibm.com/docs/watsonx-code-assistant?topic=watsonx-code-assistant-my-service-faqs#faq-data-sources)

[Product guide > Using watsonx Code Assistant Individual with a local IBM Granite model](https://cloud.ibm.com/docs/watsonx-code-assistant?topic=watsonx-code-assistant-cloud-setup-wca-individual&locale=en)
>For individual users, watsonx Code Assistant can access a local model through Ollama, which is a widely used local inferencing engine for large language models. Ollama wraps the underlying model-serving project llama.cpp.

[watsonx Code Assistantをハックする](https://qiita.com/yanagih/items/9c96172f2dc9da1672ed#watsonx-code-assistant%E3%82%92%E3%83%8F%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B)

## watsonx Code Assistantのモデルをチューニングできる？
* 現時点（2025/3/23）、watsonx Code Assistantはチューニングできない。
* IBM watsonx Code Assistant for Red Hat Ansible はチューニングできる。

[Product guide > Can I train or tune the model?](https://cloud.ibm.com/docs/watsonx-code-assistant?topic=watsonx-code-assistant-my-service-faqs#faq-train-model)

## watsonx Code Assistantのコードモデルはコードリポジトリを理解しているのか？参照できるのか？
* コードモデルはコードリポジトリを学習していないし、直接アクセスすることもない。  
* ただし、watsonx Code Assistantが、エディタから自動的にコードの情報をコンテキストとして、コードモデルに送信し、コード生成に活用する。 また、チャット内で、ファイル、クラス、関数をメンションすることで、コンテキストにコードリポジトリの情報を含めて、コードモデルに伝えることもできる。  

[Product guide > Best practices for generating code suggestions](https://cloud.ibm.com/docs/watsonx-code-assistant?topic=watsonx-code-assistant-wca-generate-code#wca-generate-code-best-practices)

> Context used for in-editor code generation
The key ingredient for code generation is context, that is, the surrounding code that you pass to the model. For in-editor code generation, watsonx Code Assistant uses:
>
> 1. The 20 lines of code before the line where the generation is triggered.
> 2. The 20 lines of code after the line where the generation is triggered.
> 3. Up to 200 lines from the beginning of the current file where generation is triggered.
> 4. Up to 5 code snippets that are similar to the code that surrounds the line where generation was triggered. These snippets are taken from the last 10 files that you opened in the same programming language as the current file.

[Product guide > Referencing code in your workspace](https://cloud.ibm.com/docs/watsonx-code-assistant?topic=watsonx-code-assistant-wca-generate-code#wca-generate-code-reference-code)

> When you open a local workspace folder, watsonx Code Assistant creates an index of these items in memory so you can reference these files and functions in the chat. Your editor also indexes files that you add or change during your session. The index contains up to 1,000 of the most recent files in these programming languages:

## watsonx Code Assistantでどれくらいコーディングが効率化される？

[IBM > お客様事例 > IBMソフトウェア・チーム > 生成AIでソフトウェア開発を加速](https://www.ibm.com/jp-ja/case-studies/ibm-software-team)

>成功を収めたのは、1つのチームだけではありませんでした。このチャレンジに参加した他のチームの多くは、watsonx Code Assistantを使用することで有望な結果を報告しました。
>
>    107チームが、コード説明に費やす時間を平均56%削減できたと報告**  
>    153チームが、コード文書化にかかる時間を平均59%削減できたと報告**  
>    112チームがコード生成時間を平均38%短縮したと報告**  
>    34チームが、テスト・ケースの生成時間を平均で38％短縮したと報告**  
>
> **IBM watsonx Challengeは、IBM社内の企業主催イベントです。記載された結果は、参加チームからの自己報告データに基づいています。