hugging face调用大模型开发聊天机器人

hugging face是一个著名的机器学习,深度学习与大模型应用网站。最早是2016年,三个法国企业家创办的儿童聊天机器人服务商。后来这个公司转型,专攻深度学习应用服务。

现在,hugging face不但已经集成了大量的深度学习模型,而且提供了丰富的工具和服务,涵盖了从模型训练、数据处理到模型推理和应用托管的各个方面。其平台和库的开源性质使得 NLP 和机器学习的开发变得更加简便和高效。

Hugging face都有什么工具?能够提供什么服务?

  1. Transformers 库
    功能:提供各种预训练的 Transformer 模型,如 BERT、GPT、T5 等,用于文本生成、文本分类、问答系统等任务。
    特点:支持 PyTorch 和 TensorFlow,易于使用和集成。
  2. Datasets 库
    功能:提供大量的开放数据集,支持数据加载、处理和转换。
    特点:与 Hugging Face Transformers 库兼容,支持快速加载和处理大规模数据集。
  3. Tokenizers 库
    功能:提供高效的文本分词工具,支持多种分词算法和模型。
    特点:性能优越,支持多语言和大规模文本处理。
  4. Hugging Face Hub
    功能:提供一个平台用于存储和分享机器学习模型和数据集。
    特点:模型和数据集的版本控制、共享和管理,支持社区贡献和团队协作。
  5. Inference API
    功能:提供 API 接口来进行模型推理和预测,无需自己托管模型。
    特点:支持多种预训练模型,按需付费。
  6. Spaces
    功能:一个平台,用于托管和共享机器学习应用和演示。
    特点:支持交互式 Web 应用的创建和分享,适合演示模型的实际应用。
  7. Hugging Face Course
    功能:提供免费的机器学习和 NLP 课程。
    特点:课程内容覆盖模型使用、微调、数据处理等,适合学习和提高技能。
  8. AutoNLP 和 AutoML
    功能:自动化机器学习管道的构建,包括数据预处理、模型选择和训练。
    特点:简化模型开发流程,适合没有深厚机器学习背景的用户。
  9. Hugging Face Hub for Research
    功能:为研究人员提供工具和资源,用于管理和发布研究模型和数据。
    特点:支持模型的公开发布和版本控制,促进科研成果的共享和复现。

在这篇文章,我们总结四个部分:
(1). 利用hugging face上已经训练好的模型搭建一个简单的聊天机器人
(2). 利用telegram API(国内无法使用)加载到telegram上做服务
(3). 利用FastAPI 搭建服务
(4). 利用flask 搭建服务

开发环境:
Python-Anaconda

(1). 利用hugging face上已经训练好的模型搭建一个简单的聊天机器人 首先,安装所需要的package:

pip install transformers

应该是很快就安装好了。如果有速度的问题,可以试试mamba install(https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html)。mamba的问题以后可以写文章专门进行讨论。

然后搞这样一个脚本就可以调用微软训练好的大模型,做出一个chatbot:

from transformers import AutoModelForCausalLM, AutoTokenizer

# 加载DialoGPT模型和分词器
model_name = "microsoft/DialoGPT-medium"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

import torch

# 追踪对话历史
chat_history_ids = None

print("对话机器人已启动,输入'退出'以结束对话。")

while True:
    # 获取用户输入
    user_input = input("你: ")

    # 检查是否退出
    if user_input.lower() in ["退出", "quit", "exit"]:
        print("对话机器人已结束。")
        break

    # 对输入进行编码
    new_input_ids = tokenizer.encode(user_input + tokenizer.eos_token, return_tensors="pt")

    # 将新输入加入到对话历史中
    bot_input_ids = torch.cat([chat_history_ids, new_input_ids], dim=-1) if chat_history_ids is not None else new_input_ids

    # 生成回复
    chat_history_ids = model.generate(bot_input_ids, max_length=1000, pad_token_id=tokenizer.eos_token_id)

    # 解码并打印回复
    bot_reply = tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)
    print(f"机器人: {bot_reply}")

做好了以后,打开到这个位置:

在这里插入图片描述
然后打开任何一个cmd(我推荐是anaconda自带的prompt)。然后这样即可启动。里面的东西我想也很基础。大家都可以轻松搞定:
在这里插入图片描述

(2). 利用telegram API(国内无法使用)加载到telegram上做服务

(3). 利用FastAPI 搭建服务

(4). 利用flask 搭建服务

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值