CaicaiJason

Results 6 comments of CaicaiJason

![image](https://github.com/THUDM/VisualGLM-6B/assets/27617518/8945826d-9710-4c14-a35d-bfc36158406e) 我也碰到一样的问题了,请问解决了吗?

> > ![image](https://user-images.githubusercontent.com/27617518/243574954-8945826d-9710-4c14-a35d-bfc36158406e.png) 我也碰到一样的问题了,请问解决了吗? > > 这是啥数据集? 自己生成的一些数据

改一下dataset的方法,先把索引读进去,然后每个batch再读图片 原来给的方法一口气把数据集全读到内存里了,直接oom ``` class FewShotDataset(Dataset): def __init__(self, path, processor, tokenizer, args): self.max_seq_length = args.max_source_length + args.max_target_length with open(path, 'r', encoding='utf-8') as f: self.data = json.load(f) self.processor = processor self.tokenizer =...

![image](https://github.com/THUDM/VisualGLM-6B/assets/27617518/e20445bf-5604-4c1f-aacb-70b11cde3dee) 多轮对话的数据格式是什么样的?

> 你把prompt改成"这张图片里有苹果吗?\n答:有。\n问:有几个苹果?" 把label改成"有2个。" 就相当于训练了多轮对话的第二轮 明白了,所以多轮对话就是把历史的对话变成Prompt,下一轮回答变成label去训练,感谢大佬~~

但是还是有个疑问,如果是这样的形式,那么对话轮次一多,token的数量不断累加了,感觉效率上是不是太低了。 我看到的例如llava的多轮对话数据集,其实是这样的形式,是不是更合理一些? ![image](https://github.com/THUDM/VisualGLM-6B/assets/27617518/4615cabf-126d-4444-8d63-0de75fb92934) > 你把prompt改成"这张图片里有苹果吗?\n答:有。\n问:有几个苹果?" 把label改成"有2个。" 就相当于训练了多轮对话的第二轮 但是还是有个疑问,如果是这样的形式,那么对话轮次一多,token的数量不断累加了,感觉效率上是不是太低了。 我看到的例如llava的多轮对话数据集,其实是这样的形式,是不是更合理一些? ![image](https://github.com/THUDM/VisualGLM-6B/assets/27617518/4615cabf-126d-4444-8d63-0de75fb92934)