基于llama的多角色聊天问答机器人

分享一个寒假在家和同学做的一个聊天机器人,拥有医生,老师,律师三种角色。大家感兴趣的可以在github上自取。简简单单当个课设也行。

GitHub - luobei0926/llama-chat-AIContribute to luobei0926/llama-chat-AI development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/luobei0926/llama-chat-AI

1、提示词设计

{
    "description": "Template used by SFTTrainer.",
    "prompt_input": "### Human:{instruction}\n{input}\n### Assistant: ",
    "prompt_no_input": "### Human:{instruction}\n### Assistant: ",
    "response_split": "### Assistant:"
}

2、加载参数

    # 创建 parser 并指定数据类
    parser = HfArgumentParser(
        (model_config, train_config, lora_config, data_config)
    )

    # 从命令行解析参数到数据类
    (
        model_args,
        train_args,
        lora_args,
        data_args,
    ) = parser.parse_args_into_dataclasses()

    args = argparse.Namespace(
        **vars(model_args), **vars(train_args), **vars(lora_args), **vars(data_args)
    )

    if args.xformers:        # 开启xformers设置
        from llama_xformers_attn_monkey_patch import replace_llama_attn_with_xformers_attn
        replace_llama_attn_with_xformers_attn()

    device_map = "auto"
    # world_size = int(os.environ.get("WORLD_SIZE", 1))
    # ddp = world_size != 1
    # if ddp:
    #     device_map = {"": int(os.environ.get("LOCAL_RANK") or 0)}

    compute_dtype = (
        torch.float16
        if args.fp16
        else (torch.bfloat16 if args.bf16 else torch.float32)
    )

    bnb_config = BitsAndBytesConfig(
        load_in_4bit=True,
        bnb_4bit_use_double_quant=True,
        bnb_4bit_quant_type="nf4",
        bnb_4bit_compute_dtype=compute_dtype,
    )

3、模型导入

  # 模型导入
    model = AutoModelForCausalLM.from_pretrained(
        pretrained_model_name_or_path=args.base_model,
        cache_dir=args.cache_dir,
        device_map=device_map,
        trust_remote_code=args.trust_remote_code,
        quantization_config=bnb_config,
        # use_auth_token=args.use_auth_token,
    )

    # lora_config设置导入
    peft_config = LoraConfig(
        r=args.r,
        lora_alpha=args.lora_alpha,
        target_modules=args.lora_target_modules,
        lora_dropout=args.lora_dropout,
        bias=args.lora_bias,  # 将其设置为"none",以仅训练权重参数而不是偏差
        task_type="CAUSAL_LM",
    )

后续请大家直接下载代码文件看吧~~

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值