'''Knowlm weight convert'''
import yaml
from mindspore import context
from mindformers.pipeline import pipeline
from mindformers import LlamaForCausalLM, LlamaConfig, LlamaTokenizer
context.set_context(device_target="Ascend")
with open("./knowlm.yaml", 'r') as file:
knowlm_data = yaml.load(file, Loader=yaml.FullLoader)
knowlm_model_path = "/path/to/your/weight.ckpt"
knowlm_config = LlamaConfig(
seq_length=knowlm_data['model_config']['seq_length'],
vocab_size=knowlm_data['model_config']['vocab_size'],
pad_token_id=knowlm_data['model_config']['pad_token_id'],
checkpoint_name_or_path=knowlm_data['model_config']['checkpoint_name_or_path'],
hidden_size=knowlm_data['model_config']['hidden_size'],
num_layers=knowlm_data['model_config']['num_layers'],
num_heads=knowlm_data['model_config']['num_heads'],
rms_norm_eps=knowlm_data['model_config']['rms_norm_eps']
)
knowlm_model = LlamaForCausalLM(
config=knowlm_config
)
tokenizer_path = "/path/to/your/tokenizer"
tokenizer = LlamaTokenizer(
vocab_file=tokenizer_path
)
pipeline_task = pipeline("text_generation", model=knowlm_model, tokenizer=tokenizer, max_length=32)
peline_result = pipeline_task(
"你非常了解一些健康生活的习惯,请列举几个健康生活的建议",
top_k=3,
do_sample=True,
top_p=0.95,
repetition_penalty=1.3,
max_length=256)
print(peline_result)