想了解更多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在其演练教程中介绍一些基本的提示工程。
构建最佳提示的指南
- 混合:快速工程指南
- 开始使用混合8X7B
提示符的构建对于使其正常工作非常关键,因此使用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的其他教程,可以查看:
- Apache NiFi 2.0.0-M2 Out!
以下是有关构建Slack机器人的更多信息:
- Building a Real-Time Slackbot With Generative AI
- Building an LLM Bot for Meetups and Conference Interactivity
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/