🚀 Granite-3B-Code-Instruct-2K
Granite-3B-Code-Instruct-2K は、Granite-3B-Code-Base-2K から微調整された30億パラメータのモデルです。許容可能なライセンスの命令データを組み合わせて学習し、論理的な推論や問題解決能力を含む命令追従能力を強化しています。

🚀 クイックスタート
このモデルはコーディング関連の命令に応答するように設計されており、コーディングアシスタントを構築するために使用できます。
✨ 主な機能
- コーディング関連の命令に応答し、コーディングアシスタントの構築に利用可能。
- 論理的な推論や問題解決能力を含む命令追従能力が強化されている。
📦 インストール
インストールに関する具体的な手順は提供されていません。
💻 使用例
基本的な使用法
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda"
model_path = "ibm-granite/granite-3b-code-instruct-2k"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map=device)
model.eval()
chat = [
{ "role": "user", "content": "Write a code to find the maximum value in a list of numbers." },
]
chat = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
input_tokens = tokenizer(chat, return_tensors="pt")
for i in input_tokens:
input_tokens[i] = input_tokens[i].to(device)
output = model.generate(**input_tokens, max_new_tokens=100)
output = tokenizer.batch_decode(output)
for i in output:
print(i)
📚 ドキュメント
モデル概要
学習データ
Granite Code Instructモデルは以下の種類のデータで学習されています。
- コードコミットデータセット:CommitPackFT データセットからコードコミットデータを取得しています。これはFull CommitPackデータセットのフィルタリングされたバージョンです。CommitPackFTデータセットからは、92のプログラミング言語のデータのみを考慮しています。選択基準は、CommitPackFTとコードベースモデル (Granite-3B-Code-Base) の事前学習に使用した116の言語の両方に共通するプログラミング言語を選択することです。
- 数学データセット:MathInstruct と MetaMathQA という2つの高品質の数学データセットを考慮しています。ライセンスの問題から、MathInstructデータセットからGSM8K-RFTとCamel-Mathを除外しています。
- コード命令データセット:Glaive-Code-Assistant-v3、Glaive-Function-Calling-v2、NL2SQL11 および合成API呼び出しデータセットの小規模なコレクションを使用しています。
- 言語命令データセット:HelpSteer などの高品質のデータセットと、Platypus のオープンライセンスでフィルタリングされたバージョンを含めています。また、モデルの名前や開発者に関する問い合わせに対して正しい出力を生成するために、ハードコードされたプロンプトのコレクションも含めています。
インフラストラクチャ
Granite Codeモデルは、IBMの2つのスーパーコンピューティングクラスターであるVelaとBlue Velaを使用して学習されています。どちらもそれぞれNVIDIA A100とH100 GPUを備えています。これらのクラスターは、数千のGPUでモデルを学習するための拡張可能で効率的なインフラストラクチャを提供します。
倫理的な考慮事項と制限
Graniteコード命令モデルは、主に特定のプログラミング言語の命令応答ペアを使用して微調整されています。したがって、ドメイン外のプログラミング言語では性能が制限される可能性があります。このような場合、少数の例を提供すると、モデルの出力を導くのに役立ちます。さらに、開発者は、これらのモデルを重要なアプリケーションにデプロイする前に、安全性テストとターゲット固有の調整を行う必要があります。このモデルはまた、ベースモデルからの倫理的な考慮事項と制限も引き継いでいます。詳細については、Granite-3B-Code-Base-2K モデルカードを参照してください。
📄 ライセンス
このモデルは Apache 2.0 ライセンスの下で提供されています。