pipeline_tag: 文本生成
base_model: ibm-granite/granite-3b-code-base-2k
inference: false
license: apache-2.0
datasets:
- bigcode/commitpackft
- TIGER-Lab/MathInstruct
- meta-math/MetaMathQA
- glaiveai/glaive-code-assistant-v3
- glaive-function-calling-v2
- bugdaryan/sql-create-context-instruction
- garage-bAInd/Open-Platypus
- nvidia/HelpSteer
metrics:
- code_eval
library_name: transformers
tags:
- 代码
- granite
model-index:
- name: granite-3b-code-instruct
results:
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalSynthesis(Python)
metrics:
- name: pass@1
type: pass@1
value: 51.2
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalSynthesis(JavaScript)
metrics:
- name: pass@1
type: pass@1
value: 43.9
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalSynthesis(Java)
metrics:
- name: pass@1
type: pass@1
value: 41.5
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalSynthesis(Go)
metrics:
- name: pass@1
type: pass@1
value: 31.7
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalSynthesis(C++)
metrics:
- name: pass@1
type: pass@1
value: 40.2
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalSynthesis(Rust)
metrics:
- name: pass@1
type: pass@1
value: 29.3
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalExplain(Python)
metrics:
- name: pass@1
type: pass@1
value: 39.6
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalExplain(JavaScript)
metrics:
- name: pass@1
type: pass@1
value: 26.8
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalExplain(Java)
metrics:
- name: pass@1
type: pass@1
value: 39.0
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalExplain(Go)
metrics:
- name: pass@1
type: pass@1
value: 14.0
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalExplain(C++)
metrics:
- name: pass@1
type: pass@1
value: 23.8
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalExplain(Rust)
metrics:
- name: pass@1
type: pass@1
value: 12.8
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalFix(Python)
metrics:
- name: pass@1
type: pass@1
value: 26.8
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalFix(JavaScript)
metrics:
- name: pass@1
type: pass@1
value: 28.0
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalFix(Java)
metrics:
- name: pass@1
type: pass@1
value: 33.5
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalFix(Go)
metrics:
- name: pass@1
type: pass@1
value: 27.4
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalFix(C++)
metrics:
- name: pass@1
type: pass@1
value: 31.7
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalFix(Rust)
metrics:
- name: pass@1
type: pass@1
value: 16.5
veriefied: false

Granite-3B-Code-Instruct-2K
模型概述
Granite-3B-Code-Instruct-2K 是一个基于 Granite-3B-Code-Base-2K 进行微调的30亿参数模型,通过结合宽松许可的指令数据增强其遵循指令的能力,包括逻辑推理和问题解决技能。
使用方式
预期用途
该模型设计用于响应与编码相关的指令,可用于构建编码助手。
生成示例
以下是使用 Granite-3B-Code-Instruct-2K 模型的简单示例。
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": "编写一个查找数字列表中最大值的代码。" },
]
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代码指令模型基于以下类型的数据进行训练:
基础设施
我们使用IBM的两个超级计算集群Vela和Blue Vela训练Granite代码模型,这两个集群分别配备了NVIDIA A100和H100 GPU,为模型在数千个GPU上的训练提供了可扩展且高效的基础设施。
伦理考量与限制
Granite代码指令模型主要通过特定编程语言的指令-响应对进行微调,因此在非目标编程语言上的表现可能受限。这种情况下,提供少量示例有助于引导模型输出。此外,开发者在关键应用场景部署前应进行安全测试和针对性调优。该模型还继承了基础模型的伦理考量和限制。更多信息请参阅*Granite-3B-Code-Base-2K*模型卡片。