表白网站源码大全,jsp网站开发关键技术,网站做贸易用什么色调比较好,网站优化关键词排名LLaMA 模型
LLaMa 是一个大型语言模型#xff0c;由 Meta 开源。它的全称是 Large Language Model Meta AI#xff0c;参数量从 70 亿到 650 亿不等。例如#xff0c;130 亿参数的 LLaMA 模型在大多数基准上可以胜过参数量达 1750 亿的 GPT-3#xff0c;而且可以在单块 V1…LLaMA 模型
LLaMa 是一个大型语言模型由 Meta 开源。它的全称是 Large Language Model Meta AI参数量从 70 亿到 650 亿不等。例如130 亿参数的 LLaMA 模型在大多数基准上可以胜过参数量达 1750 亿的 GPT-3而且可以在单块 V100 GPU 上运行。而最大的 650 亿参数的 LLaMA 模型可以媲美谷歌的 Chinchilla-70B 和 PaLM-540B。Vicuna 模型
Vicuna 是一个由 UC 伯克利、CMU、斯坦福等机构的学者联手发布的最新开源大模型。基于 Meta 开源的 LLaMA 大模型使用 ShareGPT 平台上的用户共享对话数据微调而来。包含 7B 和 13B 两个型号的开源预训练模型。下载模型
# 下载 Vicuna 7B
# !git lfs clone http://git.aistudio.baidu.com/180581/vicuna-7b-v1.1.git# 下载 Vicuna 13B
!git lfs clone http://git.aistudio.baidu.com/180581/vicuna-13b-v1.1.git开发环境
!pip install --pre --upgrade paddlenlp -f https://www.paddlepaddle.org.cn/whl/paddlenlp.html --user
!pip install paddlepaddle-gpu0.0.0.post112 -f https://www.paddlepaddle.org.cn/whl/linux/gpu/develop.html --user代码
import os
import glob
import paddlefrom tqdm import tqdm
from paddlenlp.transformers import LlamaForCausalLM, LlamaConfig, LlamaTokenizerpattern paddle-model-?????-of-?????.pdparams# Vicuna 7B
# ckpt_dir vicuna-7b-v1.1
# config_dict {
# hidden_size: 4096,
# initializer_range: 0.02,
# intermediate_size: 11008,
# max_position_embeddings: 2048,
# model_type: llama,
# num_attention_heads: 32,
# num_hidden_layers: 32,
# rms_norm_eps: 1e-06,
# vocab_size: 32000,
# bos_token_id: 1,
# eos_token_id: 2,
# pad_token_id: 0,
# use_cache: True,
# use_recompute: False,
# use_flash_attention: False,
# }# Vicuna 13B
ckpt_dir vicuna-13b-v1.1
config_dict {hidden_size: 5120,initializer_range: 0.02,intermediate_size: 13824,max_position_embeddings: 2048,model_type: llama,num_attention_heads: 40,num_hidden_layers: 40,rms_norm_eps: 1e-06,vocab_size: 32000,bos_token_id: 1,eos_token_id: 2,pad_token_id: 0,use_cache: True,use_recompute: False,use_flash_attention: False,
}paddle.set_default_dtype(float16)tokenizer LlamaTokenizer.from_pretrained(ckpt_dir)config LlamaConfig(**config_dict)model LlamaForCausalLM(config)
model.eval()for name, layer in model.named_sublayers():if rotary_emb in name:layer.inv_freq layer.inv_freq.cast(paddle.float32)paddle.device.cuda.empty_cache()for file_path in tqdm(glob.glob(os.path.join(ckpt_dir, pattern))):params paddle.load(file_path)assert model.set_dict(params)[1] [], Load error.del paramspaddle.device.cuda.empty_cache()input_text input(USER: )
prompt fUSER: {input_text}\n\nASSISTANT:
with paddle.no_grad():with paddle.amp.auto_cast(False, levelO2, dtypefloat16):while True:if input_text exit:breakinputs tokenizer(prompt, return_tensorspd, return_attention_maskTrue,return_position_idsTrue)outputs model.generate(input_idsinputs.input_ids, attention_maskinputs.attention_mask, position_idsinputs.position_ids, max_length2048-inputs.input_ids.shape[1], min_length0, decode_strategysampling,temperature0.8, top_k40, top_p0.95, repetition_penalty1.1,bos_token_idtokenizer.bos_token_id,eos_token_idtokenizer.eos_token_id,pad_token_idtokenizer.pad_token_id,use_cacheTrue, use_fastTrue, use_fp16_decodingTrue)response tokenizer.decode(outputs[0][0], skip_special_tokensTrue)print(ASSISTANT: response)input_text input(USER: )prompt f{response}\n\nUSER: {input_text}\n\nASSISTANT: del inputsdel outputsdel responsepaddle.device.cuda.empty_cache()