BELLE
BELLE copied to clipboard
BELLE-LLaMA-EXT-7B和BELLE-on-Open-Datasets的问题
您好: 测试了一下这两个新的7B模型,发现各自存在一些问题:
- BELLE-on-Open-Datasets 在中文指令下,会比较高频地乱入一些英文,同样的prompt下BELLE-7B-2M并没有这样的问题;
- BELLE-LLaMA-EXT-7B模型的指令模版似乎不是"Human: {instruction} \n\nAssistant: ",
prompt = "Human: 写一首中文歌曲,赞美大自然 \n\nAssistant: " input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to(device) generate_ids = model.generate(input_ids, max_new_tokens=300, do_sample = True, top_k = 30, top_p = 0.85, temperature = 0.5, repetition_penalty=1.2, eos_token_id=2, bos_token_id=1, pad_token_id=0)
结果显示: 《人类》是一首由歌手陈坤演唱的歌曲。该曲目收录在专辑《爱情与浪漫》。歌曲歌词 人类 - 陈坤 词:王雅文 曲:赵晓龙 演唱:陈坤 我有个朋友叫爱 他家是个小村庄 那里的人都很善良 他们很善良的 他们也很可爱 每个周末他都会去村里玩 不管有多忙 他都要回家看看 他的母亲会给他做饭 有个妹妹和弟弟还有爸爸 她都是那么的快乐 他们都有自己的故事 在院子里他们都那么幸福 我们在一起做游戏 快乐的笑声响彻云霄 我们的眼睛闪闪发光 我们的笑容灿烂 我要和他们一起玩耍 不停地笑着 让我开心 你是我的最好的朋友 我有一个朋友名叫爱 他说他的家里是一座小村庄那里的每个人都非常善良,他们是善良又可爱的他们非常有趣 每一个周末他总是回去去看看他的妈妈他会给你做了吃的他有一个小姐姐和一个哥哥还有爸爸她都是很幸福的他们在院子里他们都这么幸福我们一起一起玩我们一直笑着让我高兴你我的最好朋友 看起来好像把prompt中的“Human”理解进去了
您好: 测试了一下这两个新的7B模型,发现各自存在一些问题:
- BELLE-on-Open-Datasets 在中文指令下,会比较高频地乱入一些英文,同样的prompt下BELLE-7B-2M并没有这样的问题;
- BELLE-LLaMA-EXT-7B模型的指令模版似乎不是"Human: {instruction} \n\nAssistant: ",
prompt = "Human: 写一首中文歌曲,赞美大自然 \n\nAssistant: " input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to(device) generate_ids = model.generate(input_ids, max_new_tokens=300, do_sample = True, top_k = 30, top_p = 0.85, temperature = 0.5, repetition_penalty=1.2, eos_token_id=2, bos_token_id=1, pad_token_id=0)
结果显示: 《人类》是一首由歌手陈坤演唱的歌曲。该曲目收录在专辑《爱情与浪漫》。歌曲歌词 人类 - 陈坤 词:王雅文 曲:赵晓龙 演唱:陈坤 我有个朋友叫爱 他家是个小村庄 那里的人都很善良 他们很善良的 他们也很可爱 每个周末他都会去村里玩 不管有多忙 他都要回家看看 他的母亲会给他做饭 有个妹妹和弟弟还有爸爸 她都是那么的快乐 他们都有自己的故事 在院子里他们都那么幸福 我们在一起做游戏 快乐的笑声响彻云霄 我们的眼睛闪闪发光 我们的笑容灿烂 我要和他们一起玩耍 不停地笑着 让我开心 你是我的最好的朋友 我有一个朋友名叫爱 他说他的家里是一座小村庄那里的每个人都非常善良,他们是善良又可爱的他们非常有趣 每一个周末他总是回去去看看他的妈妈他会给你做了吃的他有一个小姐姐和一个哥哥还有爸爸她都是很幸福的他们在院子里他们都这么幸福我们一起一起玩我们一直笑着让我高兴你我的最好朋友 看起来好像把prompt中的“Human”理解进去了
您好,麻烦您再提供些具体的例子。
以下是一个在BELLE-on-Open-Datasets测试的case: prompt = """Human: 请为这则新闻写一条标题:【#淄博官方发告诫书称不得随意涨价#[话筒]】 近期,“淄博烧烤”火爆。4月16日,山东淄博市市场监督管理局官微发布《关于规范经营者价格行为提醒告诫书》。各相关经营者要严格遵守相关等法律法规,加强价格自律,遵循公平、合法、诚实、信用原则,为广大消费者提供价格合理的商品和服务,自觉维护市场价格秩序和公众利益。全文↓
Assistant: """ generate config如下: model.generate(input_ids, max_new_tokens=300, do_sample = True, top_k = 30, top_p = 0.85, temperature = 0.5, repetition_penalty=1.3, eos_token_id=2, bos_token_id=1, pad_token_id=0) 生成的回复是:
"淄博规定:经营者不得擅自 raise prices, according to new warning from the Bureau of Market Supervision"
是的,这个llama模型似乎很差。
我这边测试的结果也很不如人意,不确定是否是生成参数有问题。
以下是一个在BELLE-on-Open-Datasets测试的case: prompt = """Human: 请为这则新闻写一条标题:【#淄博官方发告诫书称不得随意涨价#[话筒]】 近期,“淄博烧烤”火爆。4月16日,山东淄博市市场监督管理局官微发布《关于规范经营者价格行为提醒告诫书》。各相关经营者要严格遵守相关等法律法规,加强价格自律,遵循公平、合法、诚实、信用原则,为广大消费者提供价格合理的商品和服务,自觉维护市场价格秩序和公众利益。全文↓
Assistant: """ generate config如下: model.generate(input_ids, max_new_tokens=300, do_sample = True, top_k = 30, top_p = 0.85, temperature = 0.5, repetition_penalty=1.3, eos_token_id=2, bos_token_id=1, pad_token_id=0) 生成的回复是:
"淄博规定:经营者不得擅自 raise prices, according to new warning from the Bureau of Market Supervision"
Adding "num_beams=1" to "model.generate()" can solve it, beam search is better than greedy search generally. Besides, in BELLE's research paper, all the experiments are done with setting with "temperature = 0.001". So when you compare two models, you'd better follow it.
您好!请问 BELLE-on-Open-Datasets 可以正常加载吗?我这里加载一直报错
import torch from transformers import LlamaForCausalLM, LlamaTokenizer device = torch.device('cuda')
ckpt = 'pretrain/BELLE-on-Open-Datasets' print('load tokenizer')
tokenizer = LlamaTokenizer.from_pretrained(ckpt)
print('load model') model = LlamaForCausalLM.from_pretrained(ckpt, device_map='auto', low_cpu_mem_usage=True) model.to(device) model.eval()
OSError: Unable to load weights from pytorch checkpoint file 'pretrain/BELLE-on-Open-Datasets-finetune/pytorch_model-00001-of-00002.bin' at 'pretrain/BELLE-on-Open-Datasets-finetune/pytorch_model-00001-of-00002.bin'. If you tried to load a PyTorch model from a TF 2.0 checkpoint, please set from_tf=True.
您好!请问 BELLE-on-Open-Datasets 可以正常加载吗?我这里加载一直报错
从 Transformers导入火炬 导入 LlamaForCausalLM, LlamaTokenizer device = torch.device('cuda')
ckpt = '预训练/BELLE-on-Open-Datasets' print('加载分词器')
tokenizer = LlamaTokenizer.from_pretrained(ckpt)
print('加载模型') model = LlamaForCausalLM.from_pretrained(ckpt, device_map='auto', low_cpu_mem_usage=True) model.to(device) model.eval()
OSError:无法从“pretrain/BELLE-on-Open-Datasets-finetune/pytorch_model-00001-of-00002.bin”处的 pytorch 检查点文件“pretrain/BELLE-on-Open-Datasets-finetune/pytorch_model-00001-of-00002.bin”加载权重。如果您尝试从 TF 2.0 检查点加载 PyTorch 模型,请设置 from_tf=True。
从新下载模型文件