Mixtral:数据流中的生成式稀疏专家混合模型

译文
人工智能
本文探索如何通过Mistral AI公司的开放模型使用新型 GenAI LLM 与数据流管道构建实时 LLM 管道。该模型可以由轻量级无服务器REST API或Transformer库运行。

想了解更多AIGC的内容,请访问:

51CTO AI.x社区

https://www.51cto.com/aigc/

Cloudera公司数据流首席工程师Tim Spann 表示,Mixtral-8x7B大型语言模型(LLM)是一个预先训练的生成式稀疏专家混合模型。

他表示,这个模型很有趣,也很容易理解。在适当的提示下,它似乎表现很好。而通过用例,他并不确定Mixtral-8x7B是否比Google Gemma、Meta LLAMA2或OLLAMA Mistral更好。

Spann撰写的文章将展示如何使用Mixtral LLM,只需要几个步骤就可以针对文本输入运行Mixtral LLM。

该模型可以由轻量级无服务器REST API或Transformer库运行。也可以使用GitHub存储库,其场景最多可以有32000个令牌。开发人员还可以输入英语、意大利语、德语、西班牙语和法语的提示。关于如何利用这一模型有很多选项,而本文将展示如何利用Apache NiFi系统构建实时LLM管道。

开发人员需要决定的一个关键问题是将使用什么样的输入(聊天、代码生成、问答、文档分析、摘要等)。一旦决定输入,需要创建一些提示,并且进行调整。文中将提供一些指导,帮助提高快速构建技能。Spann在其演练教程中介绍一些基本的提示工程。

构建最佳提示的指南

提示符的构建对于使其正常工作非常关键,因此使用Apache NiFi系统构建提示符。

流程概述

步骤1:创建并格式化提示符

在构建应用程序时,以下是将要使用的基本提示模板。

提示模板

{ 
"inputs": 
"<s>[INST]Write a detailed complete response that appropriately 
answers the request.[/INST]
[INST]Use this information to enhance your answer: 
${context:trim():replaceAll('"',''):replaceAll('\n', '')}[/INST] 
User: ${inputs:trim():replaceAll('"',''):replaceAll('\n', '')}</s>" 
}

复制

将在ReplaceText处理器的替换值字段中输入这个提示符。

步骤2:构建对HuggingFace REST API的调用,根据模型进行分类

在数据流中添加一个InvokeHTTP处理器,将HTTP URL设置为Mixtral API URL。

步骤3:查询转换和清理结果

使用QueryRecord处理器来清理和转换抓取generated_text字段的HuggingFace结果。

步骤4:添加元数据字段

使用UpdateRecord处理器来添加元数据字段、JSON读取器和写入器,以及文字值替换值策略(Literal Value Replacement Value Strategy)。而正在添加的字段是添加属性。

发送到Kafka和Slack的概述。

步骤5:将元数据添加到数据流

使用UpdateAttribute处理器来添加正确的“application/json Content Type”,并将模型类型设置为Mixtral。

步骤6:将清理后的记录发送到Kafka Topic

将它发送到本地Kafka代理(可能是Docker或其他)和flank-mixtral8x7B主题。如果不存在,NiFi和Kafka会自动创建一个。

步骤7:重新尝试发送

如果出现问题,将尝试重新发送三次,然后中止。

将数据推送到Slack的概述。

步骤8:将相同的数据发送到Slack供用户回复

第一步是拆分为单个记录,每次发送一个记录。为此使用SplitRecord处理器。

和以前一样,重用JSON树读取器和JSON记录集编写器。像往常一样,选择“1”作为“每次拆分的记录”。

步骤9:使生成的文本可用于消息传递

使用EvaluateJsonPath从Mixtral (on HuggingFace)提取生成的文本。

步骤10:将回复发送到Slack

使用PublishSlack处理器,这是Apache NiFi 2.0的新功能。这需要设定频道名称或频道ID。选择使用“Message Text”属性的发布策略。对于消息文本,使用下面的Slack Response模板。

对于用户的最终回复需要一个 Slack 响应模板,该模板的格式应符合需要的沟通方式。以下是一个具有基本功能的示例。

Slack响应模板
===============================================================================================================
HuggingFace ${modelinformation} Results on ${date}:
Question: ${inputs}
Answer:
${generated_text}
=========================================== Data for nerds ====
HF URL: ${invokehttp.request.url}
TXID: ${invokehttp.tx.id}
== Slack Message Meta Data ==
ID: ${messageid} Name: ${messagerealname} [${messageusername}]
Time Zone: ${messageusertz}
== HF ${modelinformation}  Meta Data ==
Compute Characters/Time/Type: ${x-compute-characters} / ${x-compute-time}/${x-compute-type}
Generated/Prompt Tokens/Time per Token: ${x-generated-tokens} / ${x-prompt-tokens} : ${x-time-per-token}
Inference Time: ${x-inference-time}  // Queue Time: ${x-queue-time}
Request ID/SHA: ${x-request-id} / ${x-sha}
Validation/Total Time: ${x-validation-time} / ${x-total-time}
===============================================================================================================

运行这一程序时,它将看起来像Slack中的下图。

现在已经向 Hugging Face 发送了提示,让它针对 Mixtral 运行,将结果发送到 Kafka,并通过 Slack 回复用户。

现在已经用零代码完成了完整的Mixtral应用程序。

结论

现在,已经使用Apache NiFi、HuggingFace和Slack构建了一个完整的往返程序,以使用新的Mixtral模型构建聊天机器人。

学习摘要

  • 学会了如何为HuggingFace Mixtral建立一个提示
  • 学习如何清理数据流
  • 构建一个可以重用的HuggingFace REST调用
  • 处理HuggingFace模型调用结果
  • 发送第一条 Kafka 消息
  • 格式化和构建Slack调用
  • 为生成式人工智能构建一个完整的数据流

如果需要使用新的Apache NiFi 2.0的其他教程,可以查看:

以下是有关构建Slack机器人的更多信息:

Tim Spann正在编写Apache NiFi 2和生成式人工智能教程。

以下是他提供的一些资源:

Mixtral of Experts

Mixture of Experts Explained 

mistralai/Mixtral-8x7B-v0.1 

Mixtral Overview 

Invoke the Mixtral 8x7B model on Amazon Bedrock for text generation 

Running Mixtral 8x7b on M1 16GB

Mixtral-8x7B: Understanding and Running the Sparse Mixture of Experts by Mistral AI

Retro-Engineering a Database Schema: Mistral Models vs. GPT4, LLama2, and Bard (Episode 3) 

Comparison of Models: Quality, Performance & Price Analysis 

A Beginner’s Guide to Fine-Tuning Mixtral Instruct Model 

原文标题:Mixtral: Generative Sparse Mixture of Experts in DataFlows,作者:Tim Spann

链接:https://dzone.com/articles/mixtral-generative-sparse-mixture-of-experts-in-da。

想了解更多AIGC的内容,请访问:

51CTO AI.x社区

https://www.51cto.com/aigc/

责任编辑:姜华 来源: 51CTO内容精选
相关推荐

2020-02-06 19:12:36

Java函数式编程编程语言

2012-07-30 08:31:08

Storm数据流

2023-08-04 13:35:00

DeepMind模型

2011-04-14 14:43:38

SSISTransformat

2011-12-14 15:57:13

javanio

2009-07-15 09:06:11

Linux图形系统X11的CS架构

2023-02-16 08:00:00

数据流客户端开发数据集

2011-04-19 09:18:02

SSIS数据转换

2021-06-29 19:24:42

数据流数据排序

2023-08-31 16:47:05

反应式编程数据流

2024-01-10 16:01:28

2016-11-14 19:01:36

数据流聊天系统web

2009-08-19 10:41:12

Java输入数据流

2022-03-18 08:57:17

前端数据流选型

2017-11-16 19:26:34

海量数据算法计算机

2021-10-27 10:43:36

数据流中位数偶数

2023-04-18 23:33:46

分类模型辨别式模型生成式模型

2019-12-19 14:38:08

Flink SQL数据流Join

2013-10-21 10:58:50

微软大数据SQL Server

2014-02-11 08:51:15

亚马逊PaaSAppStream
点赞
收藏

51CTO技术栈公众号