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:应用程序编程接口,允许不同的软件应用程序之间进行交互。
- 环境变量:在操作系统中定义的变量,可以被应用程序读取以配置其行为。