この記事を読んでわかること
- IBM が開発した 116 種類のプログラミング言語で訓練された Granite Code Models について
- エンタープライズソフトウェア開発におけるコード生成、バグ修正、コード説明などの幅広いタスクで高性能
- モデルは3Bから34Bのサイズがあり、Apache 2.0ライセンスで公開
想定読者
-
ソフトウェア開発者やエンジニア: 特に、コード生成やバグ修正、コードのドキュメント化などのタスクに関心がある開発者。
-
研究者や学術関係者: 自然言語処理や機械学習の分野でコードインテリジェンスに関する研究を行っている人々。
-
エンタープライズITマネージャーや技術リーダー: 自社のソフトウェア開発プロセスの効率化や生産性向上を目指している企業の技術責任者。
-
AI倫理やデータプライバシーに関心がある専門家: AIモデルの信頼性やデータ処理方法に興味を持つ人々。
Granite Code Models について
Granite Code Models とは?
Granite Code Modelsは、IBMが開発した116種類のプログラミング言語で訓練された LLM で、コード生成、バグ修正、コード説明、ドキュメント化などの幅広いタスクに対応できるように設計されています。これらのモデルは、エンタープライズソフトウェア開発の生産性向上を目指しており、3Bから 34B までのモデルサイズがあります。
Granite Code Models のアーキテクチャ
Granite Code Modelsは、トランスフォーマーデコーダーアーキテクチャに基づいており、RoPE 埋め込みや Multi-Head Attention (MHA)、Multi-Query Attention (MQA)、Grouped-Query Attention (GQA) などの技術を採用しています。モデルサイズに応じて、異なるコンテキスト長やバッチサイズで訓練されており、複数のトークン化手法や損失関数を使用して高い性能を実現しています。
RoPE
RoPE(Rotary Position Embedding)は、トランスフォーマーモデルにおける位置エンコーディング手法の一つです。トークンの位置情報をエンコーディングするために、回転行列を使用して相対位置情報をトークンの埋め込みベクトルに組み込みます。RoPEは、長い文脈でのトークン間の相対的な位置関係を保持するのに優れており、モデルが長いシーケンスを効果的に処理できるようにします。
RoPE やその他手法については、以下でもまとめています。
Multi-Head Attention / Multi-Query Attention / Grouped-Query Attention
この 3 つに関しては、以下で違いについてまとめています。
Granite Code Models の特徴的なタスク
Fill-In-the-Middle (FIM)
Fill-In-the-Middle (FIM) は、テキスト生成タスクにおいて、テキストの一部が欠落している状態でその部分を補完するようにモデルを訓練する手法です。具体的には、与えられたプレフィックス(前文)とサフィックス(後文)の間に挿入されるべきテキストを予測するタスクです。これにより、コードや自然言語のテキスト補完能力が向上し、コードのインフィリング(中間補完)や部分的な修正タスクに強みを持つモデルが構築されます。FIMタスクは、モデルが文脈を理解し、適切にテキストを生成する能力を強化するため、コード補完や自動生成のシナリオで有用です。
Granite Code Models の性能
Granite Code Modelsは、多くのベンチマークで最先端の性能を示しており、他のオープンソースのコードLLMをしのぐ結果を出しています。HumanEvalPackやMBPP、RepoBench、ReCodeなどのベンチマークにおいて、高いコード生成能力やコード修正、説明能力を証明しています。特に、Granite-8B-Code-Baseモデルは、他の大規模モデルと比較しても優れた性能を発揮しており、コストと性能のバランスが取れたモデルです。