论文阅读:TinyGPT-V 论文阅读及源码梳理对应

!!!目前只是初稿,静待周末更新

TODO

有待更新

QFormer作用?

QFormer来自论文BCLI2工作中,用来弥补Frozen Image encoder和Frozen LLM之间的gap。
基于Bert作为初始化的。

推理结构图
Image
blip2_image_eval
QFormer
Liner
Linear
get_context_emb
prompt
Give the following image: <Img>ImageContent</Img>. "
"You will be able to see the image once I provide it to you. Please answer my questions.

融合方法:
先将图像转为向量。将prompt除Image部分其他部分依次转为向量。
再将两者mix,得到最终向量。

def get_context_emb(self, prompt, img_list):
    device = img_list[0].device
    prompt_segs = prompt.split("<ImageHere>")
    assert (
        len(prompt_segs) == len(img_list) + 1
    ), "Unmatched numbers of image placeholders and images."

    seg_tokens = [
        self.llama_tokenizer(seg, return_tensors="pt", add_special_tokens=i == 0)
        .to(device)
        .input_ids  # only add bos to the first seg
        for i, seg in enumerate(prompt_segs)
    ]

    seg_embs = [self.embed_tokens(seg_t) for seg_t in seg_tokens]

    # TODO: 这里具体如何混合在一起的,需要Debug查看
    mixed_embs = [emb for pair in zip(seg_embs[:-1], img_list) for emb in pair] + [
        seg_embs[-1]
    ]
    mixed_embs = torch.cat(mixed_embs, dim=1)
    return mixed_embs

相关推荐

  1. 论文阅读TinyGPT-V 论文阅读梳理对应

    2024-01-12 11:12:01       53 阅读
  2. Vue3梳理目录结构阅读方法

    2024-01-12 11:12:01       61 阅读
  3. 【学习笔记8】阅读StyleID论文

    2024-01-12 11:12:01       27 阅读
  4. 论文阅读笔记】清单

    2024-01-12 11:12:01       77 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-12 11:12:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-12 11:12:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-12 11:12:01       87 阅读
  4. Python语言-面向对象

    2024-01-12 11:12:01       96 阅读

热门阅读

  1. vue中 ref 和 $refs的使用

    2024-01-12 11:12:01       56 阅读
  2. 谈谈CPU,MCU,SOC的区别和用途

    2024-01-12 11:12:01       46 阅读
  3. 自然语言处理-用于预训练词嵌入的数据集

    2024-01-12 11:12:01       68 阅读
  4. golang中的字符串拼接

    2024-01-12 11:12:01       58 阅读