Bootstrap

构建LangChain应用程序的示例代码:31、连接大型语言模型与机器学习社区的系统-HuggingGPT教程

HuggingGPT:连接大型语言模型(ChatGPT)与机器学习社区(Hugging Face)的系统

🔥 论文: HuggingGPT: Bridging the Gap Between Large Language Models and the ML Community
🚀 项目: JARVIS on GitHub
🤗 空间: HuggingGPT Space on Hugging Face

设置工具

我们从Transformers Agent设置了可用的工具。它包括由Transformers支持的工具库以及一些定制工具,如图像生成器、视频生成器、文本下载器等。

from transformers import load_tool

# 加载Transformers支持的工具列表
hf_tools = [
    load_tool(tool_name)
    for tool_name in [
        "document-question-answering",    # 文档问答
        "image-captioning",               # 图像描述
        "image-question-answering",       # 图像问答
        "image-segmentation",             # 图像分割
        "speech-to-text",                 # 语音转文本
        "summarization",                  # 文本摘要
        "text-classification",            # 文本分类
        "text-question-answering",        # 文本问答
        "translation",                    # 翻译
        "huggingface-tools/text-to-image", # 文本到图像转换
        "huggingface-tools/text-to-video", # 文本到视频转换
        "text-to-speech",                 # 文本到语音转换
        "huggingface-tools/text-download", # 文本下载
        "huggingface-tools/image-transformation", # 图像转换
    ]
]

设置模型和HuggingGPT

我们创建一个HuggingGPT的实例,并使用ChatGPT作为控制器来管理上述工具。

from langchain_experimental.autonomous_agents import HuggingGPT
from langchain_openai import OpenAI

# 设置环境变量,指定OpenAI API的基础URL
%env OPENAI_API_BASE=http://localhost:8000/v1

# 创建OpenAI模型实例,使用gpt-3.5-turbo模型
llm = OpenAI(model_name="gpt-3.5-turbo")
# 创建HuggingGPT代理实例,传入大型语言模型和工具列表
agent = HuggingGPT(llm, hf_tools)

运行示例

给定一段文本,展示一个相关的图像和视频。

# 运行代理,根据文本内容展示图像和视频
agent.run("please show me a video and an image of 'a boy is running'")

总结

本文介绍了HuggingGPT系统,这是一个将大型语言模型(如ChatGPT)与机器学习社区(如Hugging Face)连接起来的系统。通过设置Transformers Agent提供的工具库和一些定制工具,HuggingGPT能够执行多种任务,包括文档问答、图像描述、图像问答等。通过创建HuggingGPT实例并使用ChatGPT作为控制器,可以管理和调度这些工具来执行复杂的任务。示例中展示了如何使用HuggingGPT根据文本内容展示相关的图像和视频。

扩展知识

  • Transformers:一个由Hugging Face开发的开源库,用于自然语言处理任务,支持多种预训练模型。
  • Hugging Face:一个开源的机器学习模型库,提供大量的预训练模型和工具,广泛应用于自然语言处理和其他机器学习任务。
  • 大型语言模型(LLM):如ChatGPT,是一种预训练的深度学习模型,能够生成或理解自然语言文本。
  • API:应用程序编程接口,允许不同的软件应用程序之间进行交互。
  • 环境变量:在操作系统中定义的变量,可以被应用程序读取以配置其行为。
;