Maison >Périphériques technologiques >IA >Contrôlez plus de 100 000 modèles d'IA en un seul clic, HuggingFace crée un « APP Store » pour les modèles de type ChatGPT

Contrôlez plus de 100 000 modèles d'IA en un seul clic, HuggingFace crée un « APP Store » pour les modèles de type ChatGPT

WBOY
WBOYavant
2023-05-16 09:40:061259parcourir

Du chat à la programmation en passant par la prise en charge de divers plug-ins, le puissant ChatGPT n'est depuis longtemps plus un simple assistant de conversation, mais s'oriente vers la « gestion » du monde de l'IA.

Le 23 mars, OpenAI a annoncé que ChatGPT commençait à prendre en charge divers plug-ins tiers, tels que le célèbre artefact scientifique et technique Wolfram Alpha. Avec l'aide de cet artefact, ChatGPT, qui était à l'origine un poulet et un lapin dans la même cage, est devenu l'un des meilleurs étudiants en sciences et en ingénierie. De nombreuses personnes sur Twitter ont commenté que le lancement du plug-in ChatGPT ressemble un peu au lancement de l'iPhone App Store en 2008. Cela signifie également que les chatbots IA entrent dans une nouvelle étape d’évolution : l’étape de la « méta-application ».

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

Début avril, des chercheurs de l'Université du Zhejiang et de Microsoft Asia Research ont proposé une méthode importante appelée "HuggingGPT", qui peut être considérée comme une démonstration à grande échelle de la voie ci-dessus. HuggingGPT permet à ChatGPT d'agir comme un contrôleur (qui peut être compris comme une couche de gestion), lui permettant de gérer un grand nombre d'autres modèles d'IA pour résoudre certaines tâches d'IA complexes. Plus précisément, HuggingGPT utilise ChatGPT pour la planification des tâches lorsqu'il reçoit une demande d'utilisateur, sélectionne un modèle en fonction de la description des fonctionnalités disponible dans HuggingFace, exécute chaque sous-tâche avec le modèle d'IA sélectionné et agrège la réponse en fonction des résultats d'exécution.

Cette approche peut compenser de nombreuses lacunes des grands modèles actuels, telles que les modalités limitées qui peuvent être traitées, et à certains égards, elle n'est pas aussi bonne que les modèles professionnels.

Bien que le modèle HuggingFace soit prévu, HuggingGPT n'est pas un produit officiel de HuggingFace après tout. Tout à l’heure, HuggingFace est enfin passé à l’action.

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

Semblable à HuggingGPT, ils ont lancé une nouvelle API - HuggingFace Transformers Agents. Grâce aux agents Transformers, vous pouvez contrôler plus de 100 000 modèles Hugging Face pour effectuer diverses tâches multimodales.

Par exemple, dans l'exemple ci-dessous, vous souhaitez que les agents Transformers expliquent à haute voix ce qui est représenté sur l'image. Il essaiera de comprendre vos instructions (lire à haute voix le contenu de l'image), puis les convertira en invites et sélectionnera les modèles et outils appropriés pour accomplir les tâches que vous spécifiez.

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

Jim Fan, scientifique en IA chez NVIDIA, a commenté : Ce jour est enfin arrivé, et c'est une étape importante vers "Everything APP".

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

Cependant, certaines personnes disent que ce n'est pas la même chose que l'itération automatique d'AutoGPT. Il s'agit plutôt d'éliminer les étapes d'écriture d'invites et de spécification manuelle des outils, et il est encore trop tôt pour le faire. APPLICATION universelle. Comment utiliser ?

Parallèlement à la sortie, HuggingFace a publié l'adresse Colab, tout le monde peut l'essayer :

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

https://huggingface.co/docs/transformers/en/transformers_agents

Simple In en bref, il fournit une API de langage naturel au-dessus des transformateurs : définissez d'abord un ensemble d'outils organisés, puis concevez un agent pour interpréter le langage naturel et utiliser ces outils.

De plus, les agents Transformers sont conçus pour être extensibles.

L'équipe a identifié un ensemble d'outils qui peuvent être habilités aux agents. Voici la liste des outils qui ont été intégrés :

  • Document Q&A : Étant donné un document au format image (par exemple PDF), répondez aux questions. à propos du document (Donut)
  • Questions et réponses sur le texte : Étant donné un long texte et une question, répondez à la question dans le texte (Flan-T5)
  • Légende d'image inconditionnelle : Ajouter une légende à une image (BLIP)
  • Questions et réponses sur l'image : étant donné une image, répondez aux questions sur l'image (VILT)
  • Segmentation d'image : étant donné une image et une invite, affichez le masque de segmentation de l'invite (CLIPSeg)
  • Voix vers texte : Give Définir un enregistrement d'une personne parlant et transcrire le discours en texte (Whisper)
  • Text to Speech : convertir du texte en parole (SpeechT5)
  • Classification de texte à échantillon zéro : étant donné un texte et une liste de balises , déterminez le texte et quelle balise correspond le mieux (BART)
  • Résumé de texte : résumer un long texte en une ou quelques phrases (BART)
  • Traduction : traduire le texte dans une langue donnée (NLLB)

Ces outils sont intégrés dans les transformateurs et peuvent également être utilisés manuellement :

<code>from transformers import load_tooltool = load_tool("text-to-speech")audio = tool("This is a text to speech tool")</code>

Les utilisateurs peuvent également transmettre le code de l'outil à Hugging Face Space ou au référentiel de modèles pour exploiter l'outil directement via l'agent, par exemple :

  • Téléchargeur de texte : téléchargez du texte à partir d'une URL Web
  • Texte vers image : générez une image en fonction de l'invite, utilisez la diffusion stable
  • Conversion d'image : modifiez l'image en fonction de l'image initiale et de l'invite, utilisez l'instruction de diffusion stable pix2pix
  • Texte en vidéo : générez une courte vidéo basée sur une invite, utilisez damo-vilab

Pour un gameplay spécifique, regardons d'abord quelques exemples de HuggingFace :

Générer une description d'image :

<code>agent.run("Caption the following image", image=image)</code>

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

Énoncer le texte :

<code>agent.run("Read the following text out loud", text=text)</code>

Entrée : Un castor nage dans l'eau

Sortie :

tts_exampleAudio : 00:0000:01

Lire le fichier :

一键控制10万多个AI模型,HuggingFace给类ChatGPT模型们做了个「APP Store」

Avant d'exécuter agent.run, vous devez instancier un grand agent de modèle de langage. Il prend en charge les modèles OpenAI et les modèles open source tels que BigCode et OpenAssistant.

Tout d'abord, veuillez installer le module complémentaire agents pour installer toutes les dépendances par défaut :

<code>pip install transformers[agents]</code>

Pour utiliser le modèle openAI, vous devez instancier un openai "OpenAiAgent" après avoir installé les dépendances :

<code>pip install openaifrom transformers import OpenAiAgentagent = OpenAiAgent(model="text-davinci-003", api_key="<your_api_key>")</code>

Pour utilisez BigCode ou OpenAssistant, connectez-vous d'abord pour accéder à l'API d'inférence :

<code>from huggingface_hub import loginlogin("<YOUR_TOKEN>")</code>

Ensuite, instanciez l'agent :

<code>from transformers import HfAgentStarcoderagent = HfAgent("https://api-inference.huggingface.co/models/bigcode/starcoder")StarcoderBaseagent = HfAgent("https://api-inference.huggingface.co/models/bigcode/starcoderbase")OpenAssistantagent = HfAgent(url_endpoint="https://api-inference.huggingface.co/models/OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5")</code>

Si l'utilisateur a son propre point de terminaison d'inférence pour ce modèle (ou un autre modèle), l'URL ci-dessus peut être remplacé par son propre point de terminaison d'URL.

接下来,我们了解一下 Transformers Agents 提供的两个 API:

单次执行

单次执行是在使用智能体的 run () 方法时:

<code>agent.run("Draw me a picture of rivers and lakes.")</code>

它会自动选择适合要执行的任务的工具并适当地执行,可在同一指令中执行一项或多项任务(不过指令越复杂,智能体失败的可能性就越大)。

<code>agent.run("Draw me a picture of the sea then transform the picture to add an island")</code>

每个 run () 操作都是独立的,因此可以针对不同的任务连续运行多次。如果想在执行过程中保持状态或将非文本对象传递给智能体,用户可以通过指定希望智能体使用的变量来实现。例如,用户可以生成第一张河流和湖泊图像,并通过执行以下操作要求模型更新该图片以添加一个岛屿:

<code>picture = agent.run("Generate a picture of rivers and lakes.")updated_picture = agent.run("Transform the image in picture to add an island to it.", picture=picture)</code>

当模型无法理解用户的请求并混合使用工具时,这会很有帮助。一个例子是:

<code>agent.run("Draw me the picture of a capybara swimming in the sea")</code>

在这里,模型可以用两种方式解释:

  • 让 text-to-image 水豚在海里游泳
  • 或者,生成 text-to-image 水豚,然后使用 image-transformation 工具让它在海里游泳

如果用户想强制执行第一种情况,可以通过将 prompt 作为参数传递给它来实现:

<code>agent.run("Draw me a picture of the prompt", prompt="a capybara swimming in the sea")</code>

基于聊天的执行 

智能体还有一种基于聊天的方法:

<code>agent.chat("Generate a picture of rivers and lakes")</code>
<code>agent.chat ("Transform the picture so that there is a rock in there")</code>

这是一种可以跨指令保持状态时。它更适合实验,但在单个指令上表现更好,而 run () 方法更擅长处理复杂指令。如果用户想传递非文本类型或特定 prompt,该方法也可以接受参数。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer