模型版本 | 参数规模 | 适用场景 |
---|---|---|
bloom-560m | 5.6 亿 | 边缘设备、轻量文本生成(如短句) |
bloom-1b1/~1b7 | 11 亿 /~17 亿 | 中小规模文本生成、简单分类任务 |
bloom-3b | 30 亿 | 多语言文本处理、代码辅助 |
bloom-7b1 | 71 亿 | 复杂文本生成、精准分类 / 问答 |
bloom | 1760 亿 | 高性能多语言生成、深度语义理解 |
BloomConfig
是 BLOOM 模型的 “架构蓝图”,用于定义模型核心参数,文档明确其关键参数与默认值,支持开发者自定义模型结构:
参数名 | 默认值 | 作用说明 |
---|---|---|
vocab_size |
250880 | 词汇表大小,决定模型可识别的 token 数量 |
hidden_size |
64 | 隐藏层维度,影响模型语义表征能力 |
n_layer /n_head |
2/8 | Transformer 层数 / 注意力头数,决定模型深度与并行能力 |
use_cache |
True | 是否启用 key/value 缓存,加速文本生成解码 |
pretraining_tp |
1 | 预训练时的张量并行 rank,用于复现训练结果 |
slow_but_exact |
False | 是否启用 “慢但精确” 的注意力计算,提升推理精度 |
BloomConfig
自定义模型,如调整隐藏层维度与层数:
from transformers import BloomConfig
# 定义10层、12注意力头的BLOOM配置
config = BloomConfig(n_layer=10, n_head=12, hidden_size=1024)
BloomTokenizerFast
基于字节级 BPE(Byte-Pair-Encoding),适配 BLOOM 的多语言与代码处理需求,文档强调其关键特性与使用注意事项:
add_prefix_space=True
统一处理;from transformers import BloomTokenizerFast
tokenizer = BloomTokenizerFast.from_pretrained("bigscience/bloom-560m")
# 编码多语言文本(英语+法语)
inputs = tokenizer("Hello! Bonjour!(你好!)", return_tensors="pt")
print(inputs["input_ids"]) # 输出token ID序列
模型类 | 核心任务 | 关键能力与使用场景 |
---|---|---|
BloomModel |
基础语义表征 | 输出原始隐藏状态,用于自定义下游任务(如特征提取) |
BloomForCausalLM |
文本生成(核心类) | 带语言建模头,支持多语言文本 / 代码生成(如写文章、补全代码) |
BloomForSequenceClassification |
序列分类 | 带分类头,适配情感分析、文本标签(如 “正面 / 负面评价”) |
BloomForTokenClassification |
Token 分类 | 带 Token 级分类头,适配命名实体识别(NER)、词性标注 |
BloomForQuestionAnswering |
抽取式问答 | 带跨度分类头,适配 SQuAD 类任务(从文本中提取答案) |
BloomForCausalLM
实现多语言文本生成:
from transformers import AutoTokenizer, BloomForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("bigscience/bloom-560m")
model = BloomForCausalLM.from_pretrained("bigscience/bloom-560m")
# 生成英语+西班牙语文本
prompt = "Write a short poem in English, then translate it to Spanish:\nEnglish: "
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=100, temperature=0.7)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
forward
方法参数说明(如past_key_values
加速解码、attention_mask
处理 padding);FlaxBloomModel
/FlaxBloomForCausalLM
,适配 TPU 算力与 JAX 的 JIT 编译、自动微分特性,适合大规模训练与推理;past_key_values
:缓存前序 token 的注意力 key/value,加速多轮对话等序列生成场景,减少重复计算;use_cache
:启用缓存时,推理速度提升 30%+(文档建议生成任务开启);pretraining_tp
:实验性参数,用于复现 Megatron 预训练结果,需配合slow_but_exact=True
使用。