[LLM-Agent]万字长文深度解析规划框架:HuggingGPT

LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM) 在前面两篇博文中已经粗略介绍了增强语言模型和Tool Learning,本篇文章看四篇代表性的自动化框架,HuggingGPT、AutoGPT、WebGPT、WebCPM。HuggingGPT是tool learning中tool-augmented learning的一类,具体来说,它是一个以LLMs为控制器来管理来自Huggingface社区中诸多小模型的框架,其中用户的自然语言请求将视为一个通用接口,再经过LLMs的解析和规划后,再根据Huggingface小模型工具的描述进行模型选择,执行完每个小模 阅读详情

HuggingGPT是一个结合了ChatGPT和Hugging Face平台上的各种专家模型,以解决复杂的AI任务,可以认为他是一种结合任务规划和工具调用两种Agent工作流的框架。它的工作流程主要分为以下几个步骤:

  • 任务规划:使用ChatGPT分析用户的请求,理解他们的意图,并将其分解为可能可解决的任务。
  • 模型选择:为了完成规划的任务,ChatGPT根据模型的描述选择托管在Hugging Face上的专家模型。
  • 任务执行:调用并执行每个选定的模型,然后将结果返回给ChatGPT。
  • 响应生成:最后,使用ChatGPT整合所有模型的预测结果,并生成响应。

图 1

光说不练假把式,我们先尝试运行,然后逐步分析各个阶段的Prompt设计和代码设计。

1. 运行

下载Repo git clone https://github.com/microsoft/JARVIS.git

1.1 安装依赖

安装server依赖

bash
复制代码
cd JARVIS/hugginggpt/server
conda create -n jarvis python=3.8
conda activate jarvis
pip install -r requirements.txt

安装前端页面

bash
复制代码
cd ../web
npm install

注意,requirment.txt中的的werkzeug要更新为Werkzeug==2.2.2,否则Flask会报不兼容问题。这里没有安装pytorch之类的,因为我们不打算在本地下载模型,所需空间过于巨大,直接访问线上的模型。

1.2 修改配置

既然需要在线使用HuggingGPT的模型,那么我们需要到HuggingGPT上申请Token。修改server/configs/config.lite.yaml,更新huggingface token。另外我们要使用本地的LLM模型,需要修改openai->api_key,必须添加sk开头的字符串,不然报错。必须添加local->endpoint, 就是你本地openai的地址。此外,你可能还要修改是否采用续写use_completion和模型。如果无法访问HuggingGPT你还需要添加proxy。

yaml
复制代码
openai: 
  api_key: sk-xxxx # added
huggingface:
  token: hf_xxx # updated
dev: true
debug: false
log_file: logs/debug.log
model: gpt-3.5-turbo # updated
use_completion: false # updated
inference_mode: huggingface # local, huggingface or hybrid, prefer hybrid
local_deployment: minimal # minimal, standard or full, prefer full
num_candidate_models: 5
max_description_length: 100
proxy: http://127.0.0.1:7890 # optional: your proxy server "http://ip:port"
local:
  endpoint: http://localhost:11434 # updated
...

此外,还需要修改server/awsome_chat.py,添加API_KEY否则也无法运行本地LLM。

python
复制代码
if API_TYPE == "local":
     API_ENDPOINT = f"{config['local']['endpoint']}/v1/{api_name}"
+    API_KEY = config['openai']['api_key']

1.2 运行

开始运行

bash
复制代码
python  --config configs/config.lite.yaml --mode server
npm run dev

然后我们打开浏览器http://localhost:9999/#/, 出现类似下图的窗口。

image-20240524101621504

输入类似

describe the image /examples/c.jpg.

其中examples位于是hugginggpt/server/public/examples/,所以如果你要测试自己的图片,可以考虑将图片放在这儿。会输出类似如下图的结果。

image-20240524102326517

2. 分析

在文章开头我们有说过,任务是分为规划任务、选择模型、执行任务和生成响应。那么我们先从任务规划看起。

2.1 任务规划

任务规划需要LLM进行推理分解任务,对于这样一个将HuggingFace当做调用工具的框架,我们要如何设计Prompt?几个原则

  1. 说明任务
  2. 说明任务的输入输出
  3. Few-Shot示例
  4. 上下文
  5. 用户输入

此外,我们还需要将HuggingFace所包含的API给到LLM,进行推理用户问题所需任务步骤。我们当然不可能将所有HuggingFace上的Model都提供给LLM,所以我们提供任务类型,huggingface上大约有19个任务类型, 其中15个NLP任务类型,2个Audio任务类型,3个CV的任务类型。

我觉得这里通过任务类型缩小LLM选择工具选择范围,之后再通过任务类型,然后再让LLM选择具体的模型,相当于一种摘要技术,从大类选择,在缩小到具体选择。你要知道hugginggpt在p0_models.jsonl中缓存了大约673个任务,你不可能将他们所有的描述都发送给LLM,它包含2765000个字符。

说明任务,在输出上对LLM有强烈的要求,除了要求是JSON,而且要求推理各个任务的依赖关系,并且填充类似的JSON输出。然而我要说的这种复杂的输出要求,当前只能用于Demo,否则你会遇到非常多的解析,无法获得想要的JSON格式,或者丢失特定的字段

json
复制代码
The AI assistant can parse user input to several tasks: [{"task": task, "id": task_id, "dep": dependency_task_id, "args": {"text": text or <GENERATED>-dep_id, "image": image_url or <GENERATED>-dep_id, "audio": audio_url or <GENERATED>-dep_id}}]. 

说明任务的输入和输出,除了上文说的解释任务依赖关系和如何生成tasks之外,这里设定了task必须是HuggingFace支持的这些类别,args必须是text、imag和audio。还是老话,要求越多失败越多,我就遇到args偶尔缺失,task偶尔不对的问题。

json
复制代码
The special tag "<GENERATED>-dep_id" refer to the one generated text/image/audio in the dependency task (Please consider whether the dependency task generates resources of this type.) and "dep_id" must be in "dep" list. The "dep" field denotes the ids of the previous prerequisite tasks which generate a new resource that the current task relies on. The "args" field must in ["text", "image", "audio"], nothing else. The task MUST be selected from the following options: "token-classification", "text2text-generation", "summarization", "translation", "question-answering", "conversational", "text-generation", "sentence-similarity", "tabular-classification", "object-detection", "image-classification", "image-to-image", "image-to-text", "text-to-image", "text-to-video", "visual-question-answering", "document-question-answering", "image-segmentation", "depth-estimation", "text-to-speech", "automatic-speech-recognition", "audio-to-audio", "audio-classification", "canny-control", "hed-control", "mlsd-control", "normal-control", "openpose-control", "canny-text-to-image", "depth-text-to-image", "hed-text-to-image", "mlsd-text-to-image", "normal-text-to-image", "openpose-text-to-image", "seg-text-to-image". 

让LLM推理规划,这里有个魔法Think step by step。

bash
复制代码
There may be multiple tasks of the same type. Think step by step about all the tasks needed to resolve the user's request. Parse out as few tasks as possible while ensuring that the user request can be resolved. Pay attention to the dependencies and order among tasks. If the user input can't be parsed, you need to reply empty JSON [], otherwise you must return JSON directly.

设定Few shot examples,大约有6个,考虑阅读体验,这里只放一个,更多的Few shot examples位于hugginggpt/server/demos/demo_parse_task.json。

json
复制代码
[
    {
        "role": "user",
        "content": "Give you some pictures e1.jpg, e2.png, e3.jpg, help me count the number of sheep?"
    },
    {
        "role": "assistant",
        "content": "[{"task": "image-to-text", "id": 0, "dep": [-1], "args": {"image": "e1.jpg" }}, {"task": "object-detection", "id": 1, "dep": [-1], "args": {"image": "e1.jpg" }}, {"task": "visual-question-answering", "id": 2, "dep": [1], "args": {"image": "<GENERATED>-1", "text": "How many sheep in the picture"}} }}, {"task": "image-to-text", "id": 3, "dep": [-1], "args": {"image": "e2.png" }}, {"task": "object-detection", "id": 4, "dep": [-1], "args": {"image": "e2.png" }}, {"task": "visual-question-answering", "id": 5, "dep": [4], "args": {"image": "<GENERATED>-4", "text": "How many sheep in the picture"}} }}, {"task": "image-to-text", "id": 6, "dep": [-1], "args": {"image": "e3.jpg" }},  {"task": "object-detection", "id": 7, "dep": [-1], "args": {"image": "e3.jpg" }}, {"task": "visual-question-answering", "id": 8, "dep": [7], "args": {"image": "<GENERATED>-7", "text": "How many sheep in the picture"}}]"
    },
    ...
]

最后上下文和用户输入,没什么好说的

json
复制代码
The chat log [ {{context}} ] may contain the resources I mentioned. Now I input { {{input}} }. Pay attention to the input and output types of tasks and the dependencies between tasks.

任务规划阶段的Promt就已经结束了,代码实现上这一段较为简单,核心流程是chat->chat_huggingface->parse_task->send_request。其中parse_task负责组装prompt和构造open ai API所需的data参数。这里有一个简易的对话上下文移动窗口,就是计算历史对话文本的tokens,如果超过最大token就尝试pop掉最后一个,这是移除最近的对话记录保留开始的策略,当然你也可以尝试其他策略。

python
复制代码
    # cut chat logs
    start = 0
    while start <= len(context):
        history = context[start:]
        prompt = replace_slot(parse_task_prompt, {
            "input": input,
            "context": history 
        })
        messages.append({"role": "user", "content": prompt})
        history_text = "<im_end>\nuser<im_start>".join([m["content"] for m in messages])
        num = count_tokens(LLM_encoding, history_text)
        if get_max_context_length(LLM) - num > 800:
            break
        messages.pop()
        start += 2

2.2 模型选择

在上文parse_task完成后,在chat_huggingface中就会对返回的结果进行任务解析,此时由于LLM回复的不确定性,有时候你会遇到失败无法解析或者丢失字段,一个成功的任务会返回类似如下的JSON。

json
复制代码
[
  {'task': 'object-detection', 'id': 0, 'dep': [-1], 'args': {'image': '/examples/a.jpg'}}, 
  {'task': 'image-to-image', 'id': 1, 'dep': [-1], 'args': {'image': '/examples/a.jpg'}}
]

根据task信息,在run_task中根据task值去hugginggpt/server/data/p0_models.jsonl这个json中去搜索前10的具体模型,最后根据类型查找到可用模型如下。

python
复制代码
{'local': [], 'huggingface': ['hustvl/yolos-tiny', 'microsoft/table-transformer-structure-recognition', 'facebook/detr-resnet-50', 'TahaDouaji/detr-doc-table-detection', 'hustvl/yolos-small']}

这里在选择模型时候,需要修改一下代码否则你几乎获取不到任何一个可用模型。

进入函数choose_model再次构造Prompt,让LLM帮助决策哪个模型更好, 以下prompt只是示意,因为源代码将其转换为了role content组成的arraylist。

vbnet
复制代码
System: Given the user request and the parsed tasks, the AI assistant helps the user to select a suitable model from a list of models to process the user request. The assistant should focus more on the description of the model and find the model that has the most potential to solve requests and tasks. Also, prefer models with local inference endpoints for speed and stability. 
[
User: {{input}},
Assistant: {{task}}..
]
User: Please choose the most suitable model from {{metas}} for the task {{task}}. The output must be in a strict JSON format: {"id": "id", "reason": "your detail reasons for the choice"}, the id in JSON must be the one provided in the model description.

输出如下,已经给出了最佳的模型和原因,接下来进入模型执行。

json
复制代码
{"id": "facebook/detr-resnet-50", "reason": "The model has the highest number of likes, and the description sounds promising with end-to-end detection using transformers. Also, it has a local inference endpoint for faster access."}

2.3 模型执行

上面模型已经选择,输入也有,接下来就是执行模型,这一步比较简单,就是构造huggingface api的请求。

python
复制代码
inference_result = model_inference(best_model_id, args, hosted_on, command['task'])

HuggingFace API的请求较为简单,只要你拥有Token,你甚至可以通过curl直接运行。

kotlin
复制代码
curl --location 'https://api-inference.huggingface.co/models/facebook/detr-resnet-50-panoptic' \
--header 'Authorization: Bearer replacewithyourowntoken' \
--header 'Content-Type: image/jpeg' \
--data '@/Users/xxxx/dc579d59_track_0.jpg'

由于可能包含多个任务,所以任务是通过thread并发执行的,最后通过queue进行收取结果如下所示。

python
复制代码
{'generated image': '/images/a59b.jpg', 'predicted': [{'score': 0.9699670672416687, 'label': 'potted plant', 'box': {'xmin': 0, 'ymin': 240, 'xmax': 187, 'ymax': 484}}, {'score': 0.9995023012161255, 'label': 'cat', 'box': {'xmin': 165, 'ymin': 59, 'xmax': 645, 'ymax': 522}}]}
DEBUG:__main__:{1: {'task': {'task': 'image-to-image', 'id': 1, 'dep': [-1], 'args': {'image': 'public//examples/a.jpg'}}, 'inference result': {'error': 'Model lambdalabs/sd-image-variations-diffusers is currently loading', 'estimated_time': 248.20472717285156}, 'choose model result': {'id': 'lambdalabs/sd-image-variations-diffusers', 'reason': "The model has the most likes and it's also the only model with the tag 'stable-diffusion', which indicates it's a robust and popular choice for various image tasks."}}, 0: {'task': {'task': 'object-detection', 'id': 0, 'dep': [-1], 'args': {'image': 'public//examples/a.jpg'}}, 'inference result': {'generated image': '/images/a59b.jpg', 'predicted': [{'score': 0.9699670672416687, 'label': 'potted plant', 'box': {'xmin': 0, 'ymin': 240, 'xmax': 187, 'ymax': 484}}, {'score': 0.9995023012161255, 'label': 'cat', 'box': {'xmin': 165, 'ymin': 59, 'xmax': 645, 'ymax': 522}}]}, 'choose model result': {'id': 'facebook/detr-resnet-50', 'reason': 'The model has the highest number of likes, and the description sounds promising with end-to-end detection using transformers. Also, it has a local inference endpoint for faster access.'}}}

2.4 响应生成

在chat_huggingface中调用response_results,给定input和收集的results来构造类似如下所示的Prompt,其中processes就是上文模型执行的结果。该prompt先给定输入的问题和模型执行的结果,然后要求LLM仔细甄别输出的推测结果和问题是否匹配,然后进行作答。最后要求输出的它的工作流,包括使用的模型和推测结果和生成的文件位置等信息。

vbscript
复制代码
System: #4 Response Generation Stage: With the task execution logs, the AI assistant needs to describe the process and inference results.
User: Look at /examples/a.jpg picture, can you tell me how many objects in the picture? Give me a picture similar to this one.
Assitant: Before give you a response, I want to introduce my workflow for your request, which is shown in the following JSON data: {{processes}}. Do you have any demands regarding my response?
User: Yes. Please first think carefully and directly answer my request based on the inference results. Some of the inferences may not always turn out to be correct and require you to make careful consideration in making decisions. Then please detail your workflow including the used models and inference results for my request in your friendly tone. Please filter out information that is not relevant to my request. Tell me the complete path or urls of files in inference results. If there is nothing in the results, please tell me you can't make it.

最终LLM输入如下响应

json
复制代码
Sure! Based on the inference results, there are two objects in the picture "/examples/a.jpg". They are a potted plant and a cat.
For your second request, after reviewing the available options, I've selected a similar image using a model with the ID "facebook/detr-resnet-50". This model identified a similar image with the path: "/images/a59b.jpg".
The workflow goes like this:
1. Object Detection: I used a model called "facebook/detr-resnet-50" to detect objects in your image. It's an end-to-end model that uses transformers and has shown great performance. It successfully identified two objects for us.
2. Image Similarity: To find a similar image, I picked another pre-trained model called "lambdalabs/sd-image-variations-diffusers". This model is known to create variations of input images while keeping the main content stable. It's a diffusion-based model, and these types of models are good at generating new content with preserving the essence of the original image. 
However, I need to let you know that getting the similar image didn't work this time. The inference took longer than expected, which is not uncommon for some complex models, and eventually timed out. So, unfortunately, I couldn't generate a similar image within the given constraints.
I hope this helps! Let me know if you'd like more details on any specific steps or have additional questions.

3. 总结

纵观整个流程其实主要还是Prompt的设计,如何设计更好的Prompt生成任务规划、模型选择和响应生成。在这种中间就是各种结果的解析工作,以及调用各种工具完成任务。值得一说的是,我在实验过程中,遇到各种各样的错误,尤其是第一阶段的任务规划中的任务输出,它对LLM的要求非常高,如果你只是本地的小模型或许是难以胜任的。第二,当你有很多工具选择,不妨将他们先进行分类,让LLM先从分类中选择,然后筛选出缩小后具体的工具列表,再次给到LLM选择最优最匹配的工具。

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

在这里插入图片描述

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容:
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容:
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容:
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容:
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

在这里插入图片描述

HuggingGPT - 小记 它就能帮你自动分析需要哪些AI模型,然后直接去调用HuggingFace上的相应模型,来帮你执行并完成。只要给定一个AI任务,例如“下面这张图片里有什么动物,每种有几只”。整个过程,你要做的就只是用自然语言将你的需求输出。可理解为:HuggingFace+ChatGPT。由浙大与微软亚研院的合作研发。 阅读详情

相关推荐

Hugging Face快速入门(重点讲解模型(Transformers)和数据集部分(Datasets))

1. Hugging Face是什么,提供了哪些内容 2. Hugging Face模型的使用(Transformer类库) 3. Hugging Face数据集的使用(Datasets类库)

iioSnail的博客 8万+

【AIGC】大模型协作系统 HuggingGPT 深度解析

HuggingGPT 将语言作为通用接口、将 LLM 作为控制器,管理现有的人工智能模型。 HuggingGPT 通过 ChatGPT 管理 HuggingFace 上集成的数百个模型,覆盖文本分类、目标检测、语义分割、图像生成、问答、文本到语音、文本到视频等不同模态和领域的任务。 HuggingGPT 的工作流程:任务规划,模型选择,任务执行,响应生成。

youcans的博客 1万+

4篇2章1节:从传统软件到大模型应用的Agent

在网站的搜索功能中,用户输入的文本被程序按照固定规则解析,就像在一个图书销售网站上,用户输入 “科幻小说”,程序会依据设定的分词规则,把这个短语拆分成 “科幻” 和 “小说” 两个关键词,随后系统会根据匹配算法和权重排序,将包含这两个关键词且相关性高、销量好、评分高(这些因素构成权重)的图书相关内容呈现给用户。与传统的软件系统依赖固定的规则和程序逻辑不同,大模型在设计之初就注重广泛的数据学习,其训练过程中涵盖了文本、表格、图片、音频、视频等多模态数据,这使得它们能够应对各种类型的输入。

MD Code 817

HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题

总的来说,尽管HuggingGPT提出了一个新的AI解决方案设计范式,但仍存在一些限制和改进空间。例如,规划能力严重依赖于LLM的能力,效率是常见的挑战令牌长度是使用LLM时的常见问题,而且LLM的不稳定性也可能导致工作流程中的异常。尽管如此,HuggingGPT通过利用LLM的理解和推理能力,能够解析用户的意图,并将其分解为多个子任务,显示出解决具有挑战性的AI任务的巨大潜力,从而为实现人工普适智能开辟了新的途径。

m0_56661101的博客 2112

MIMO-OFDM 通信-感知一体化(ISAC)中的联合优化与性能权衡

本文深入探讨了MIMO-OFDM技术在通信-感知一体化(ISAC)系统中的核心作用与挑战。文章分析了如何通过联合优化资源分配、波束成形与波形设计,在有限的频谱与硬件资源下,实现通信速率与感知精度之间的最佳平衡,并指出了工程实践中面临的同步、干扰等关键难题。

dapp9builder的博客 212

BRepNet与图神经网络融合:提升3D CAD加工特征识别的精度与泛化能力

本文探讨了BRepNet与图神经网络(GNN)融合技术如何显著提升3D CAD加工特征识别的精度与泛化能力。通过将CAD模型视为图结构,利用GNN的消息传递机制增强对复杂拓扑关系的理解,并结合BRepNet的局部特征提取,该融合方法在MFCAD++数据集上实现了高达99.53%的准确率,有效解决了传统方法在处理复杂相交特征时的局限性,为智能制造提供了关键技术支撑。

android的专栏 772

自主AI代理实战指南:从AutoGPT到生产级Agent系统

自主AI代理(Autonomous Agent)是大语言模型突破单轮对话限制、实现目标驱动式任务执行的关键范式。其核心原理在于构建‘规划—执行—记忆—反思’的闭环系统,通过显式状态机、分层记忆与工具编排解决传统LLM在上下文管理、原子化调用和长期目标分解上的结构性瓶颈。该技术已具备明确的技术价值:提升RPA智能化水平、增强客服决策能力、加速研发流程自动化。典型应用场景涵盖智能客服、金融风控、电商运营与法律合同审查等需跨系统协同的复杂业务流。本文基于AutoGPT、AgentGPT与HuggingGPT等主流

weixin_33843947的博客 384

Java8对接三方流式接口,并实时输出(GPT)

【代码】Java8对接三方流式接口,并实时输出(GPT)

m0_58617940的博客 1719

【论文阅读】--多模态检索增强生成综述

A Comprehensive Survey on Multimodal Retrieval-Augmented Generation本文综述了多模态检索增强生成(MRAG)技术,系统梳理了其核心模块、关键技术与应用进展。MRAG通过融合文本、图像、音频等多模态数据,在传统RAG基础上实现了跨模态信息检索与生成。核心架构包含检索策略(跨模态编码与高效搜索)、融合机制(注意力交互与统一表示)、增强技术(上下文富化与迭代检索)、生成技术(推理与指令调优)及训练策略(多阶段学习与对齐优化)五大模块,

我是个好人呀,O(∩_∩)O 612

docker配置国内镜像源

【代码】docker配置国内镜像源。

愿听风成曲 9592

利用setEcoMode优化innovus中的ecoAddRepeater批量操作效率

本文详细介绍了在Cadence Innovus工具中,如何利用setEcoMode命令的batchMode参数,显著提升ecoAddRepeater命令在批量插入buffer或inverter时的操作效率。通过合并重复的初始化和数据库更新开销,该模式可将大规模时序修复操作的执行速度提升数倍,并提供了完整的脚本示例与最佳实践,帮助后端设计工程师优化ECO流程。

mango的博客 505

【论文精读】HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face

又是一篇利用LLM进行规划的工作,中稿于NeurIPS 2023,它充分结合了专家模型解决特定任务的能力和LLMs的理解推理能力,工作新颖但效果一般,可以说提供了一种新的利用LLM解决通用任务的范式,在思想上值得借鉴。解决具有不同领域和模态的复杂人工智能任务是迈向通用人工智能的关键,虽然现在有大量可以用的AI模型面向不同领域和模态,但是它们不能解决复杂的AI任务。LLM在自然语言任务上有出色的表现,因此作者主张LLMs充当控制者来管理当前现有的AI模型,用于处理AI任务,自然语言则成为实现该目标的通用接口。

HERODING23的博客 2288

RK3588 buildroot 双网口bonding调试

本文介绍了Rockchip Buildroot中配置网络冗余的方法,通过bonding技术将多个物理网口合并为逻辑接口。主要内容包括:1)7种常见bonding模式的特点及适用场景;2)RK3588的具体配置流程,包括内核配置(启用bonding驱动、修改dts)、添加ifenslave工具;3)系统编译和网络状态检查。

501846585_QQAndroid_java 455

万字长文深度解析规划框架:HuggingGPT(附教程)

HuggingGPT是一个结合了ChatGPT和Hugging Face平台上的各种专家模型,以解决复杂的AI任务,可以认为他是一种结合任务规划和工具调用两种Agent工作流的框架。

2301_81888214的博客 886

推荐一个直接用于项目开发的PID库!很好用,很稳定

关注、星标公众号,不错过精彩内容大家好,我是小麦。最近有朋友问到有没有现成的C语言PID库。当然有了!现在我就准备给大家安利一下了。一般同学会去某度上搜,看到各种各样版本的PID示例,或者...

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 9014

RK3568平台开发系列讲解(音频篇)配置声卡

📢本篇文章介绍如何配置声卡。

内核笔记 2442

重磅!微软推出HuggingGPT:所有HuggingFace的模型都可以被ChatGPT随意调用!

编|桃子 Britta 源|新智元「贾维斯」已来!微软亚研院和浙大推出了一个大模型协作系统HuggingGPT,让ChatGPT协调HF社区模型,处理各种多模态任务能力超强。ChatGPT引爆的AI热潮也「烧到了」金融圈。近来,彭博社的研究人员也开发了一个金融领域的GPT——Bloomberg GPT,有500亿参数。GPT-4的横空出世,让许多人浅尝到了大型语言模型的强大能力。然而,OpenAI...

夕小瑶科技说 1397

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

HuggingGPT进化,一键控制10万多个AI模型

本文 机器之心 编辑:张倩、蛋酱通过 Transformers Agents,你可以控制 10 万多个 Hugging Face 模型完成各种多模态任务。从聊天到编程再到支持各种插件,强大的 ChatGPT 早就不是一个简单的对话助手,而是朝着 AI 界的「管理层」不断前进。3 月 23 号,OpenAI 宣布 ChatGPT 开始支持各类第三方插件,比如著名的理工科神器 Wolfram Alp...

idol24的博客 492

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LLM之Agent(三):HuggingGPT根据用户需求自动调用Huggingface合适的模型

​ 浙大和微软亚洲研究院开源的HuggingGPT,又名JARVIS,它可以根据用户的自然语言描述的需求就可以自动分析需要哪些AI模型,然后去Huggingface上直接调用对应的模型,最终给出用户的解决方案。混合端点(包括本地推理和HuggingFace推理)上被选定的专家模型根据任务顺序和依赖关系执行分配的任务,并将执行信息和结果给到ChatGPT;ChatGPT根据HuggingFace上托管的各专家模型的描述,为任务分配合适的模型;

wshzd的博客 685

浙大与微软发布的 HuggingGPT 在线演示惊艳亮相,可完成多模态复杂任务,将带来哪些影响?...

击上方关注 “终端研发部”设为“星标”,和你一起掌握更多数据库知识本文首发于知乎:httpss://www.zhihu.com/question/594533230/answer/2975554866GPT-4的横空出世,让很多人为止着迷,许多人浅尝到了大型语言模型的强大能力!这或许会让更多的人‘失业’吧!我们来看一下HuggingGPT:前几天HuggingGPT利用ChatGPT作为控制器,连...

这个时代,作为程序员可能要学习小程序 686

万字长文深度解析规划框架:HuggingGPT

纵观整个流程其实主要还是Prompt的设计,如何设计更好的Prompt生成任务规划、模型选择和响应生成。在这种中间就是各种结果的解析工作,以及调用各种工具完成任务。值得一说的是,我在实验过程中,遇到各种各样的错误,_**尤其是第一阶段的任务规划中的任务输出,它对LLM的要求非常高,如果你只是本地的小模型或许是难以胜任的。第二,当你有很多工具选择,不妨将他们先进行分类,让LLM先从分类中选择,然后筛选出缩小后具体的工具列表,再次给到LLM选择最优最匹配的工具。

z551646的博客 997

HuggingGPT Solving AI Tasks with ChatGPT and its Friends in Hugging Face 论文解读

然而,当前的LLMs仍然存在一些局限性,例如无法处理复杂信息(如视觉和语音),难以协调多个模型解决复杂任务,以及在特定任务上表现不如专家模型等。为了解决这些问题,论文提出了HuggingGPT,一个基于LLMs的智能体,它利用LLMs(如ChatGPT)连接机器学习社区(如Hugging Face)中的各种AI模型,以解决复杂的AI任务。HuggingGPT为实现通用人工智能铺平了道路,并具有巨大的潜力。HuggingGPT的核心思想是利用LLMs作为控制器,管理现有的AI模型,以解决复杂的AI任务。

The cure for boredom is curiosity. This is the log of its adventures. 1614

HuggingGPT:从多模态走向AGI!

借助 ChatGPT 强大的语言能力和 HuggingFace 丰富的 AI 模型,HuggingGPT 能够完成覆盖不同模态和领域的复杂 AI 任务,并在语言、视觉、语音等具有挑战性的任务中取得了令人印象深刻的结果。几个月来,ChatGPT、GPT-4 的相继爆火,让人们看到大型语言模型 (LLM) 在语言理解、生成、交互和推理方面表现出的非凡能力,这引起了学界和业界的极大关注,也让人们看到了 LLM 在构建通用人工智能 (AGI) 系统方面的潜力。

qq_41771998的博客 569

论文精读:HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face

解决不同领域和多种模态的复杂任务是通往AGI的关键,尽管现在有各种各样的AI模型,但是它们没有办法自主地处理复杂任务,而LLMs恰好可以作为管理者控制现有的AI模型来完成任务。本文提出的HuggingGPT就是一个基于ChatGPT的Agent,可以利用HuggingFace上各种各样的AI模型来完成任务。首先通过ChatGPT根据用户的请求制定任务计划,然后根据HuggingFace上模型的功能描述选择可用的AI模型,之后通过这些模型来执行子任务,最后总结执行结果并给出响应。

Alex 2037
上一篇: AI产品经理的前世今生
下一篇: [LLM-Agents]浅析Agent工具使用框架:MM-ReAct
大语言模型
博客等级 码龄3年 1万+粉丝 1971原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值