pipeline_tag: 文本生成
base_model: ibm-granite/granite-8b-code-base-4k
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-8b-code-instruct-4k
results:
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalSynthesis(Python)
metrics:
- name: pass@1
type: pass@1
value: 57.9
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalSynthesis(JavaScript)
metrics:
- name: pass@1
type: pass@1
value: 52.4
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalSynthesis(Java)
metrics:
- name: pass@1
type: pass@1
value: 58.5
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalSynthesis(Go)
metrics:
- name: pass@1
type: pass@1
value: 43.3
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalSynthesis(C++)
metrics:
- name: pass@1
type: pass@1
value: 48.2
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalSynthesis(Rust)
metrics:
- name: pass@1
type: pass@1
value: 37.2
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalExplain(Python)
metrics:
- name: pass@1
type: pass@1
value: 53.0
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalExplain(JavaScript)
metrics:
- name: pass@1
type: pass@1
value: 42.7
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalExplain(Java)
metrics:
- name: pass@1
type: pass@1
value: 52.4
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalExplain(Go)
metrics:
- name: pass@1
type: pass@1
value: 36.6
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalExplain(C++)
metrics:
- name: pass@1
type: pass@1
value: 43.9
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalExplain(Rust)
metrics:
- name: pass@1
type: pass@1
value: 16.5
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalFix(Python)
metrics:
- name: pass@1
type: pass@1
value: 39.6
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalFix(JavaScript)
metrics:
- name: pass@1
type: pass@1
value: 40.9
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalFix(Java)
metrics:
- name: pass@1
type: pass@1
value: 48.2
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalFix(Go)
metrics:
- name: pass@1
type: pass@1
value: 41.5
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalFix(C++)
metrics:
- name: pass@1
type: pass@1
value: 39.0
veriefied: false
- task:
type: 文本生成
dataset:
type: bigcode/humanevalpack
name: HumanEvalFix(Rust)
metrics:
- name: pass@1
type: pass@1
value: 32.9
veriefied: false

Granite-8B-Code-Instruct-4K
模型概述
Granite-8B-Code-Instruct-4K 是一个80亿参数的模型,基于Granite-8B-Code-Base-4K在多种允许许可的指令数据上进行微调,以增强其遵循指令的能力,包括逻辑推理和问题解决技能。
使用方式
预期用途
该模型设计用于响应与编码相关的指令,可用于构建编码助手。
生成示例
以下是使用Granite-8B-Code-Instruct-4K模型的简单示例。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "cuda"
model_path = "ibm-granite/granite-8b-code-instruct-4k"
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-8B-Code-Base-4K*模型卡片。