SelftokTokenizer 开源项目教程

SelftokTokenizer 开源项目教程

SelftokTokenizer Selftok: Discrete Visual Tokens of Autoregression, by Diffusion, and for Reasoning SelftokTokenizer 项目地址: https://gitcode.com/gh_mirrors/se/SelftokTokenizer

1. 项目介绍

SelftokTokenizer 是由 Selftok Team 开发的一种创新的视觉标记化工具。它摒弃了传统图像表示中的空间先验,引入了一种新颖的离散视觉标记化方法:自洽标记化(Self-Consistency Tokenization,简称 Selftok)。Selftok 通过将自回归(Autoregressive,AR)先验整合到视觉标记中,为视觉语言模型(Vision-Language Model,VLM)提供了一种优雅且简约的方法来统一扩散和 AR。Selftoktokenizer 不仅支持高质量的重建和高比特率的压缩,而且在视觉理解和生成任务上取得了最先进(SOTA)的性能。

2. 项目快速启动

要开始使用 SelftokTokenizer,请按照以下步骤操作:

首先,确保您的环境中已安装了 Python。接着,创建一个虚拟环境并安装所需的依赖:

conda create -n selftok python=3.10
conda activate selftok
pip install -r requirements.txt

然后,下载并配置预训练模型:

git clone https://github.com/selftok-team/SelftokTokenizer.git
cd ./SelftokTokenizer

接下来,使用以下代码将图像转换为标记序列:

import argparse
from mimogpt.infer.infer_utils import parse_args_from_yaml
from torchvision import transforms
from PIL import Image
import torch
import numpy as np
from mimogpt.infer.SelftokPipeline import SelftokPipeline, NormalizeToTensor
from torchvision.utils import save_image

parser = argparse.ArgumentParser()
parser.add_argument("--yml-path", type=str, default="./configs/res256/256-eval.yml")
parser.add_argument("--pretrained", type=str, default="path/to/your/tokenizer_512_ckpt.pth")
parser.add_argument("--sd3_pretrained", type=str, default="path/to/your/models--stabilityai--stable-diffusion-3-medium-diffusers")
parser.add_argument("--data_size", type=int, default=256)

args = parser.parse_args()
cfg = parse_args_from_yaml(args.yml_path)

model = SelftokPipeline(
    cfg=cfg,
    ckpt_path=args.pretrained,
    sd3_path=args.sd3_pretrained,
    datasize=args.data_size,
    device='cuda'
)

img_transform = transforms.Compose([
    transforms.Resize(args.data_size),
    transforms.CenterCrop(args.data_size),
    NormalizeToTensor(),
])

image_paths = ['./test.jpg']
images = [img_transform(Image.open(p)) for p in image_paths]
images = torch.stack(images).to('cuda')

tokens = model.encoding(images, device='cuda')
np.save('./token.npy', tokens.detach().cpu().numpy())

3. 应用案例和最佳实践

  • 图像重建:使用 SelftokTokenizer 对图像进行编码,然后通过扩散模型解码重建图像。
  • 视觉生成:结合 Selftok 的自回归特性和强化学习,可以显著提升视觉生成任务的性能。
  • 视觉理解:利用 SelftokTokenizer 对图像进行编码,然后输入到视觉语言模型中,以提高视觉理解任务的准确性。

4. 典型生态项目

SelftokTokenizer 可以与其他开源项目配合使用,例如:

  • Stable Diffusion:用于图像生成的稳定扩散模型,可以与 SelftokTokenizer 结合,提高生成图像的质量。
  • Transformers:基于注意力机制的开源库,可以用来构建和训练 VLM,与 SelftokTokenizer 配合,提升模型的性能。

以上就是 SelftokTokenizer 的开源项目教程。通过遵循这些步骤,您可以快速上手并开始使用 SelftokTokenizer。

SelftokTokenizer Selftok: Discrete Visual Tokens of Autoregression, by Diffusion, and for Reasoning SelftokTokenizer 项目地址: https://gitcode.com/gh_mirrors/se/SelftokTokenizer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翟苹星Trustworthy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值