转载请注明出处:https://www.cnblogs.com/zhiyong-ITNote
Llama2-Chinese 大模型:由清华、交大以及浙大博士团队领衔开发;基于200B中文语料库结合Llama2基座模型训练。
Llama中文社区:国内最领先的开源大模型中文社区。
Atom大模型:为了区别于原始的Llama2模型,后续中文Llama2大模型,改名为Atom大模型。
模型获取地址:Huggingface
GITHUB地址:GITHUB
Huggingface上Llama-Chinese大模型集合:
查看下Llama2-Chinese-7b-Chat模型的config.json:
查看下Atom-7B-Chat的config.json:
简单看看区别,官方说明:
总结来说,Atom模型时重新预训练的;而Llama2-Chinese模型是微调后的。因此如果想要比较完善更全面的中文模型,建议是用Atom模型。
转载请注明出处:https://www.cnblogs.com/zhiyong-ITNote
根据 官方文档 在命令行调用API:
from transformers import AutoTokenizer, AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-2-7b-chat-hf',device_map='auto',torch_dtype=torch.float16,load_in_8bit=True) model =model.eval() tokenizer = AutoTokenizer.from_pretrained('meta-llama/Llama-2-7b-chat-hf',use_fast=False) input_ids = tokenizer(['<s>Human: 介绍一下中国\n</s><s>Assistant: '], return_tensors="pt",add_special_tokens=False).input_ids.to('cuda') generate_input = { "input_ids":input_ids, "max_new_tokens":512, "do_sample":True, "top_k":50, "top_p":0.95, "temperature":0.3, "repetition_penalty":1.3, "eos_token_id":tokenizer.eos_token_id, "bos_token_id":tokenizer.bos_token_id, "pad_token_id":tokenizer.pad_token_id } generate_ids = model.generate(**generate_input) text = tokenizer.decode(generate_ids[0]) print(text)
分析来看,调用的是基于Llama2微调后的模型,而不是预训练的模型。暂时也没有看到Atom预训练模型调用的资料。在这里补一下:
# 转载请注明出处:https://www.cnblogs.com/zhiyong-ITNote from transformers import AutoTokenizer, LlamaForCausalLM model = LlamaForCausalLM.from_pretrained('mnt/data/zhangzheng/data/AtoM-7B/checkpoint-56000',device_map='auto',torch_dtype=torch.float16,load_in_8bit=True) model =model.eval() tokenizer = AutoTokenizer.from_pretrained('mnt/data/zhangzheng/data/AtoM-7B/checkpoint-56000',use_fast=False) input_ids = tokenizer(['<s>Human: 介绍一下中国\n</s><s>Assistant: '], return_tensors="pt",add_special_tokens=False).input_ids.to('cuda') generate_input = { "input_ids":input_ids, "max_new_tokens":512, "do_sample":True, "top_k":50, "top_p":0.95, "temperature":0.3, "repetition_penalty":1.3, "eos_token_id":tokenizer.eos_token_id, "bos_token_id":tokenizer.bos_token_id, "pad_token_id":tokenizer.pad_token_id } generate_ids = model.generate(**generate_input) text = tokenizer.decode(generate_ids[0]) print(text)
其实就是根据huggingface上的模型config.json文件的_name_or_path
属性值重新配置模型名称即可。
这个类是Llama2模型对接到transformers库的衔接类。由config.json的architectures
属性值指定了。而且在官方文档有API说明.
对应在github上的实现:
从之前ChatGLM-6B的源码结构分析来看,Llama2的关键源码也是这个llama文件夹下的这些文件,尤其是modeling_llama.py
文件。
从目前官方提供的文档等信息来看,资料还是比较少的,尤其是Atom模型的信息及示例等。这也需要我们在自身学习的过程中帮助社区不断地完善相关信息,反哺社区和中文大模型的发展。
转载请注明出处:https://www.cnblogs.com/zhiyong-ITNote