运行 Baichuan2-13B-Chat 模型推理代码

文章介绍了如何使用预训练的Baichuan2模型进行文本生成,并展示了如何在不量化和进行4bits在线量化两种情况下运行模型,以生成关于历史问题的回答。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运行代码

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation.utils import GenerationConfig

def run_baichuan2(model_id):
    model_id = model_id
    # 加载分词
    tokenizer = AutoTokenizer.from_pretrained(
        # 模型地址
        model_id, 
        # 不加速,默认为Ture
        use_fast=False, 
        # 可解决ValueError: Tokenizer class BaichuanTokenizer does not exist
        trust_remote_code=True
    )
    # 加载模型
    model = AutoModelForCausalLM.from_pretrained(
        model_id, 
        # 加载模型精度
        torch_dtype=torch.float16, 
        # 信任远程代码
        trust_remote_code=True,
        # 显存自动分配(如果需要整数量化,该句需要注意,如果需要实现4bits在线量化需要注释)
        device_map="auto"
    )
    
    # 加载配置文件
    model.generation_config = GenerationConfig.from_pretrained(
        model_id
    )
    
    # 实现推理
    messages = []
    messages.append({"role": "user", "content":"亚历山大大帝的骑兵为什么强大?"})
    response = model.chat(tokenizer, messages)
    print(response)
    return response
    
def run_baichuan2_quantize(model_id):
    model_id = model_id
    model = AutoModelForCausalLM.from_pretrained(
        model_id, 
        torch_dtype=torch.float16, 
        trust_remote_code=True
    )
    tokenizer = AutoTokenizer.from_pretrained(
        model_id, 
        use_fast=False, 
        trust_remote_code=True
    )
    model.generation_config = GenerationConfig.from_pretrained(model_id)
    
    '''
    4bits 在线量化!(官方)
    需要注意的是,在用 from_pretrained 接口的时候,一般会加上 device_map="auto",在使用在线量化时,需要去掉这个参数,否则会报错
    '''
    model = model.quantize(4).cuda()
    messages = []
    messages.append({"role": "user", "content":"亚历山大大帝的骑兵为什么强大?"})
    response = model.chat(tokenizer, messages)
    print(response)
    return response

if __name__ == "__main__":
    model_id = "Baichuan2-13B-Chat"
    # 不量化运行
    run_baichuan2(model_id)
    # 量化quantize(4)运行
    run_baichuan2_quantize(model_id)
### Baichuan2-7B-Chat 模型的详细介绍 #### 模型特性 Baichuan2-7B-Chat 是由百川智能推出的一款基于 Transformer 架构的大规模语言模型,其主要特点是具备强大的对话理解和生成能力。该模型通过大量高质量数据训练而成,在多个自然语言处理任务中表现出色[^1]。 以下是 Baichuan2-7B-Chat 的核心特性: 1. **高效对话理解** 该模型经过专门优化,能够更好地理解人类的语言表达方式,并提供流畅、连贯的回答。它特别适合用于构建聊天机器人或其他需要实时互动的应用场景[^1]。 2. **大规模参数量** Baichuan2-7B-Chat 拥有约 70 亿个参数,这使得它可以捕捉复杂的语言模式并生成高度多样化的文本内容。相比更小型的模型,它的表现更加稳定且上下文感知更强[^1]。 3. **开源可用性** 百川智能提供了完整的微调代码以及预训练权重文件,开发者可以通过简单的 Python 脚本快速部署此模型至本地环境或云端服务器中运行[^1]。 4. **高性能推理支持** 结合 vLLM 等框架技术手段可以进一步提升 Baichuan2-7B-Chat 在实际生产环境中执行效率,降低延迟时间从而改善用户体验效果显著[^3]。 #### 功能概述 除了基本的文字生成外,Baichuan2-7B-Chat 还实现了许多高级功能来满足不同领域内的具体需求: - **多轮对话管理**:支持长时间记忆机制以便于维持跨回合交流的一致性和逻辑性; - **情感分析与调节**:可根据输入调整语气风格以适应特定场合下的沟通要求; - **代码编写辅助**:不仅限于自然语言处理范畴内还扩展到了程序开发方面给予一定帮助; - **翻译服务供给**:覆盖多种主流国际语言之间的相互转换操作便捷易用。 #### 应用场景举例 由于 Baichuan2-7B-Chat 出色的表现力及其灵活性设计原则使其广泛适用于以下几个方向上的实践当中: 1. 客服自动化解决方案 – 提升响应速度减少人工成本投入的同时保持较高服务质量水准。 2. 教育行业智能化转型助力教师备课授课环节提高教学资源利用率促进个性化学习路径规划形成闭环生态体系结构完善程度更高。 3. 游戏娱乐产品增值服务增强沉浸感体验吸引更多目标群体参与其中延长生命周期价值创造潜力更大。 ```python pip install modelscope from modelscope import snapshot_download model_id = "baichuan-inc/Baichuan2-7B-Chat" model_dir = snapshot_download(model_id, cache_dir="./", revision="master") ``` 以上为官方推荐的标准安装命令行脚本形式可以直接复制粘贴到终端窗口里执行完成整个过程非常简便快捷无需额外配置其他依赖项即可成功获取所需版本号对应的全部资料包供后续深入研究探索所用。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值