项目介绍:Dart v1 SFT
概述
Dart v1 SFT 是一款经过精细调整的 Danbooru 标签转换模型,旨在为图像生成 Danbooru 标签。该模型的基础版本是 p1atdev/dart-v1-base,经过进一步的优化和训练,能够更好地识别和生成 Danbooru 标签。Dart v1 SFT 使用 Apache-2.0 许可证进行发布。
使用方法
使用 AutoModel
要使用 Dart v1 SFT 模型,首先需要安装 Hugging Face 的 Transformers 库:
pip install -U transformers
接着,在 Python 中导入所需的库并载入模型:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig
MODEL_NAME = "p1atdev/dart-v1-sft"
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(MODEL_NAME, torch_dtype=torch.bfloat16)
prompt = "<|bos|><rating>rating:sfw, rating:general</rating><copyright>original</copyright><character></character><general><|long|>1girl<|input_end|>"
inputs = tokenizer(prompt, return_tensors="pt").input_ids
with torch.no_grad():
outputs = model.generate(inputs, generation_config=model.generation_config)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
这一过程将生成用于描述图像内容的 Danbooru 标签。这些标签由模型在特定输入格式下预测并自动排序。
提示格式指南
由于模型训练时使用了特殊的输入格式模板,用户在使用时需要按照固定格式进行输入。完整的输入格式如下:
<|bos|>
: 开始标记- 各类标签和排序方式包括评分、版权、角色及一般性标签
<|input_end|>
标记表示输入结束
例如:
<|bos|><rating>rating:sfw, rating:general</rating><copyright>vocaloid</copyright><character>hatsune miku</character><general><|long|>solo, 1girl, very long hair<|input_end|>blue hair, cowboy shot, ...</general><|eos|>
技术细节
模型架构
Dart v1 SFT 模型基于OPT(Open Pretrained Transformer)架构,但位置嵌入没有经过训练。该模型由 Plat 开发,专注于生成 Danbooru 标签。
训练与优化
模型训练使用了 isek-ai/danbooru-tags-2023 数据集,并采用 🤗 transformers 的训练器进行训练。重要的训练步骤包括:
- 预处理数据,移除不必要的或不常用的标签。
- 确保输入顺序的严格性,优化标签生成质量。
硬件与软件
训练在 RTX 3070 Ti 硬件上完成,使用了多种开源软件库进行数据处理和模型优化,如 🤗 Datasets, Transformers 和 Optimum。
评估与局限
目前,Dart v1 SFT 尚未经过正式评估,因此可能存在一定的偏差或局限。在使用该模型时,需注意其无法支持自然语言输入,并且仅适用于特定格式的提示。
如需了解更多信息,可以访问 Hugging Face 上的 demo,体验其功能与表现。