聊聊Llama2-Chinese中文大模型
2024/1/14 11:32:19
本文主要是介绍聊聊Llama2-Chinese中文大模型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
转载请注明出处: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-7B采用大规模的中文数据进行了继续预训练。
- Llama2-Chinese:由于Llama2本身的中文对齐较弱,我们采用中文指令集,对meta-llama/Llama-2-7b-chat-hf进行LoRA微调,使其具备较强的中文对话能力。
总结来说,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
属性值重新配置模型名称即可。
LlamaForCausalLM
这个类是Llama2模型对接到transformers库的衔接类。由config.json的architectures
属性值指定了。而且在官方文档有API说明.
对应在github上的实现:
从之前ChatGLM-6B的源码结构分析来看,Llama2的关键源码也是这个llama文件夹下的这些文件,尤其是modeling_llama.py
文件。
总结
从目前官方提供的文档等信息来看,资料还是比较少的,尤其是Atom模型的信息及示例等。这也需要我们在自身学习的过程中帮助社区不断地完善相关信息,反哺社区和中文大模型的发展。
转载请注明出处:https://www.cnblogs.com/zhiyong-ITNote
这篇关于聊聊Llama2-Chinese中文大模型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-03微信支付提示下单账户与支付账户不一致-icode9专业技术文章分享
- 2024-07-03微信支付提示订单号重复-icode9专业技术文章分享
- 2024-07-02微服务启动nacos注册上去了,但是一直没有收到请求-icode9专业技术文章分享
- 2024-07-02如何检查文件的编码格式-icode9专业技术文章分享
- 2024-07-02sublime 更改编码格式-icode9专业技术文章分享
- 2024-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享