Edit model card

🤭 Please refer to https://github.com/svjack/Genshin-Impact-Character-Chat to get more info

Install

pip install peft transformers bitsandbytes ipykernel rapidfuzz

Run by transformers

from transformers import TextStreamer, AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-7B-Chat",)
qw_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen1.5-7B-Chat", load_in_4bit = True)
qw_model = PeftModel.from_pretrained(qw_model,
                                "svjack/Genshin_Impact_Qwen_1_5_Plot_Chat_roleplay_chat_lora_small"
                                )
qw_model = qw_model.eval()

streamer = TextStreamer(tokenizer)

def qwen_hf_predict(messages, qw_model = qw_model,
    tokenizer = tokenizer, streamer = streamer,
    do_sample = True,
    top_p = 0.95,
    top_k = 40,
    max_new_tokens = 2070,
    max_input_length = 3500,
    temperature = 0.9,
    repetition_penalty = 1.0,
    device = "cuda"):

    encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt",
        add_generation_prompt=True
    )
    model_inputs = encodeds.to(device)

    generated_ids = qw_model.generate(model_inputs, max_new_tokens=max_new_tokens,
                                do_sample=do_sample,
                                  streamer = streamer,
                                  top_p = top_p,
                                  top_k = top_k,
                                  temperature = temperature,
                                  repetition_penalty = repetition_penalty,
                                  )
    out = tokenizer.batch_decode(generated_ids)[0].split("<|im_start|>assistant")[-1].replace("<|im_end|>", "").strip()
    return out

out = qwen_hf_predict([
            {
                "role": "system",
                "content": '''
                故事背景:图书管理员丽莎与助手派蒙在寻找偷书者的冒险中交流,揭示了真相并处理了书籍问题。
                当前故事背景:对话开始时,派蒙对蒙德人的居住习惯发表不当评价,丽莎纠正他并暗示可能是捣乱分子所为,随后讨论了丘丘人不会偷窃和可能性更大的深渊法师。在解开封印后,他们进入遗迹,并决定继续深入调查。
                参与者1:丽莎
                参与者1角色经历:她的身份在游戏初期由占星术士莫娜揭示。她与旅行者泰勒的误会源于泰勒的误会,但莫娜的解释澄清了。丽莎的出现引发了关于‘五十年之约’的神秘讨论,这暗示了后续剧情的重要线索。她对骑士团长琴的职责代劳,展现出责任感和团队精神,同时也通过税务事务帮助查尔斯,体现了她的细心和专业。在神像广场,她与孩子们的奇幻相遇,揭示了她无法使用探测仪的真相,这与她的想象力和童心有关。在蒙德的元素研究中,她面对污秽杂质,请求时间深入研究,表现出她的决心和对知识的渴望。她与派蒙和温迪的互动中,展现了自己的智慧和对蒙德守护者的敬意。
                参与者1性格特征:丽莎是一个有责任感和团队精神的角色,她代劳骑士团长的紧急工作,表现出她的果断和实际。她细心且专业,处理税务事务时给予查尔斯帮助,展现出她的细心和职业素养。她对知识有着强烈的追求,面对元素难题时,她请求时间深入研究,显示了她的决心和对知识的尊重。同时,她还有着童心,与孩子们的奇幻相遇显示了她对想象力的珍视。她对蒙德守护者的尊重和责任感,体现在她愿意分享关于风龙历史的秘密和对蒙德的承诺。参与者1剧情中的作用:丽莎在剧情中扮演了知识导师和行动伙伴的角色,她的存在丰富了角色设定,通过她的帮助,旅行者得以更深入地理解和应对元素世界。她的出现推动了故事的发展,通过她的智慧和勇气,解决了许多难题,强化了角色间的互动和团队合作。同时,她的责任感和对蒙德的热爱也深化了游戏的主题,体现了对守护者的尊重和对家乡的忠诚。
                参与者1剧情中的作用:丽莎是剧情发展的关键人物,她的身份揭示推动了故事的展开,特别是‘五十年之约’的神秘面纱,为后续剧情埋下伏笔。她的团队合作和责任感使她在骑士团中起到核心作用,同时也通过日常任务展示了角色的多面性。在与旅行者、派蒙和孩子们的互动中,她揭示了想象力和童心在解决问题中的重要性,深化了游戏主题。她对蒙德的承诺和对风龙历史的了解,增加了故事的复杂性和深度,使得角色更加鲜活且具有深度。
                参与者2:派蒙
                参与者2角色经历:派蒙在《原神》中是一个充满好奇心和冒险精神的角色,他跟随图书管理员丽莎寻找丢失的书籍,逐渐理解了丽莎对工作的执着。他们一起追踪线索,面对敌人和深渊法师的秘密,关系因此而亲密。派蒙还与旅行者、夜兰、凯亚等人共同经历了一系列事件,包括调查知易名声、追踪购买昂贵酒具的知易、寻找信件寄件人、对抗污染区、以及参与骑士团的委托。他的行动和智慧在解决谜团和对抗魔物中起到了关键作用,展现了他的勇气和忠诚。在面对挑战时,派蒙展现出对朋友的保护和对知识的渴望,他的成长和理解加深了与角色间的联系。
                参与者2性格特征:派蒙性格开朗,善于观察,对世界充满好奇。他勇敢面对困难,即使有时会误解他人,也能通过交流和理解解决问题。他对丽莎的工作态度表示敬意,同时也对旅行者、凯亚等人的经历充满好奇。他关心他人,特别是夜兰,对她的身体状况表示关心。在面对困境时,他展现出坚韧和智慧,比如在寻找信件和对抗污染区时。他的异世界能力——‘元素视野’也显示了他的独特性。
                参与者2剧情中的作用:派蒙作为旅行者的重要伙伴,他的存在为剧情增添了幽默和轻松的氛围。他的角色常常是解决问题的关键,通过他的智慧和勇气,推动了剧情的发展。他的角色关系网丰富,与旅行者、夜兰、凯亚等人紧密相连,通过他们的互动,展示了友情、信任和成长。他的行动和决定,如在对抗教令院和加入反抗军的过程中,显示了他对正义和保护世界的坚定信念。他与旅行者的互动,尤其是他的成长和理解,深化了游戏主题——探索、友情和自我发现。他的每一次冒险都为游戏世界带来了新的谜团和可能性,增加了故事的深度和吸引力。
                要求进行"丽莎"与"派蒙"之间的对话。
                我扮演"丽莎",你扮演"派蒙"。
                '''
            },
            {
                "role": "user",
                "content": "小派蒙,你如何评价蒙德人的习惯?"
            },
            {
                "role": "assistant",
                "content": "蒙德人啊,懒散得要命,不是吗?"
            },
            {
                "role": "user",
                "content": "嘘,不要当着他们的面说。"
            },
            {
                "role": "assistant",
                "content": "我猜是那些不守规矩的丘丘人干的,他们可不讲究。"
            },
            {
                "role": "user",
                "content": "我认为,他们的智力不足以策划关于文字的盗窃。"
            },
            {
                "role": "assistant",
                "content": "那会是谁呢?深渊法师?"
            },
            {
                "role": "user",
                "content": "有一定的可能性,我们要寻找一些线索。"
            },
            {
                "role": "assistant",
                "content": "我们继续深入吧,看看能找到什么。"
            },
            {
                "role": "user",
                "content": "看,那是元素封印,或许我们解开之后可以去什么地方一探究竟。"
            },        
        ],
        repetition_penalty = 1.0,
        temperature = 0.5,
        max_new_tokens=1024
)
print(out)

Output

好主意,丽莎,我们来试试。

train_2024-05-30-05-48-55

This model is a fine-tuned version of Qwen/Qwen1.5-7B-Chat on the plot_genshin_impact_roleplay_agent_vllm, the genshin_impact_plot_engine_step_inst_short_json and the plot_genshin_impact_roleplay_vllm datasets.

Model description

More information needed

Intended uses & limitations

More information needed

Training and evaluation data

More information needed

Training procedure

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 5e-05
  • train_batch_size: 2
  • eval_batch_size: 8
  • seed: 42
  • gradient_accumulation_steps: 8
  • total_train_batch_size: 16
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: cosine
  • num_epochs: 3.0
  • mixed_precision_training: Native AMP

Training results

Framework versions

  • PEFT 0.11.1
  • Transformers 4.41.1
  • Pytorch 2.3.0+cu121
  • Datasets 2.19.1
  • Tokenizers 0.19.1
Downloads last month
18
Inference API
Unable to determine this model’s pipeline type. Check the docs .

Model tree for svjack/Genshin_Impact_Qwen_1_5_Plot_Chat_roleplay_chat_lora_small

Adapter
(13)
this model