如何使用 Mistral 和 Llama2 构建 AI 聊天机器人

news2024/11/13 10:19:11

在这里插入图片描述

开始使用 Mistral

让我们从 Mistral 7B Instruct 的 GGUF 量化版本开始,并使用 AutoClasses ‘AutoModelForCausalLM’ 之一来加载模型。AutoClasses 可以帮助我们自动检索给定模型路径的模型。AudoModelForCausalLM 是具有因果语言建模的模型类之一,这就是 Mistral 7B Instruct 模型所需要的。

Python

# Source: https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-GGUF

from ctransformers import AutoModelForCausalLM

# Set gpu_layers to the number of layers to offload to GPU. Set to 0 if no GPU acceleration is available on your system.

llm = AutoModelForCausalLM.from_pretrained(“TheBloke/Mistral-7B-Instruct-v0.1-GGUF”, model_file=“mistral-7b-instruct-v0.1.Q4_K_M.gguf”, model_type=“mistral”, gpu_layers=50)

print(llm(“AI is going to”))

图片

添加流完成

在上面的例子中,当我们运行模型推理时,它会在生成整个答案时返回一个响应。当我们生成较长的响应时,这可能会很慢。而且,当我们在聊天界面中时,看到模型一次 “键入” 一个单词的响应可能更自然。这就是为什么我们有时可能希望在生成响应时 “流” 响应。为此,我们只需在调用模型期间添加 ‘stream=True’ 即可。

为了加快模型响应速度,我们使用 ‘async’ 来允许 IO 任务在后台进行,以便计算机可以在等待模型响应的同时执行其他任务。

图片

在这里插入图片描述

使用 Mistral 7B 构建我们的第一个聊天机器人

我们如何将此模型包装到聊天界面中?Panel 只需五行代码即可轻松构建聊天机器人!

  • 我们首先定义一个 ChatInterface 小部件:chat_interface = pn.chat.ChatInterface(callback=callback, callback_user=“Mistral”)。此小组件处理聊天机器人的所有 UI 和逻辑。请注意,我们需要定义系统在 ‘callback’ 函数中的响应方式,这就是我们上面刚刚定义的。

  • 让我们从系统消息 “Send a message to get a reply from Mistral!” 开始聊天机器人,以便用户有明确的说明该怎么做。

  • 最后,chat_interface.servable() 确保我们可以在本地或云上为应用程序提供服务。要为应用程序提供服务,只需将以下代码另存为独立的 Python 文件 app.py 或 Jupyter Notebook 文件 app.ipynb,然后运行“panel serve app.py”或“panel serve app.ipynb”即可。

图片

使用 Mistral 7B 和 Llama2 7B 构建我们的第二个聊天机器人

我们可以添加来自另一个模型的响应吗?我们能否比较不同模型的响应?是的,我们绝对可以!下面是一个示例:

  • 我们在字典中定义模型信息,包括模型名称、模型路径和模型文件MODEL_ARGUMENTS

  • 然后在 for 循环中,我们分别传入每个模型,并将每个模型的响应发送到聊天界面。

图片

使用 LangChain 使用 Mistral 7B 和 Llama2 7B 构建我们的第三个聊天机器人

我们可以用 LangChain 构建同一个聊天机器人吗?是的!LangChain 是一个用于开发 LLM 应用程序的框架,许多人认为它很有用。

  • LangChain 提供了一个 CTrasnformers 包装器,我们可以通过 langchain.llms import CTransformers 访问它。然后,我们可以使用 CTransformers 统一接口来加载我们的两个模型。
  • PromptTemplate 帮助我们定义可重用的模板,用于生成要发送到语言模型的提示。我们在 prompt 变量中定义 prompt。
  • 我们使用 LLMChain 将 Prompt 与语言模型链接起来。具体来说,它使用提供的输入值格式化提示模板,将格式化的提示传递给语言模型,并返回输出。

在这里插入图片描述

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2103470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot如何对接口防刷限流处理

一、API防刷限流: API接口限流,旨在预防用户过度频繁地访问特定接口,以及抵御潜在的恶意攻击行为,这些行为可能导致后端服务器承受过高的负载,进而引发内存资源紧张。为了有效缓解服务器面临的压力,确保服…

数据结构代码集训day15(适合考研、自学、期末和专升本)

本份题目来自B站up:白话拆解数据结构 今日题目如下; (1)编写算法,实现十进制转十六进制; (2)汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老…

javascript网页设计案例,非常详细

这里我将为你提供一个详细的JavaScript网页设计案例。我们将创建一个简单的动态网页&#xff0c;包含一个可以显示当前时间的时钟和一个可以切换背景颜色的按钮。 1. HTML部分 首先&#xff0c;我们需要创建一个HTML文件来定义网页的基本结构。 <!DOCTYPE html> <h…

Python ppt

python生成ppt&#xff0c;数据源为html from lxml import html from pptx import Presentation from pptx.util import Inches from pptx.dml.color import RGBColor from pptx.enum.shapes import MSO_SHAPE# HTML代码 html_content """ <html><b…

【深度学习 transformer】使用pytorch 训练transformer 模型,hugginface 来啦

Hugging Face是一个致力于开源自然语言处理&#xff08;NLP&#xff09;和机器学习项目的社区。它由几个关键组件组成&#xff1a; Transformers&#xff1a;这是一个基于PyTorch的库&#xff0c;提供了各种预训练的NLP模型&#xff0c;如BERT、GPT、RoBERTa、DistilBERT等。它…

【陪诊系统-PC管理端】动态路由

先说说这里为什么要使用动态路由&#xff1f; 因为前面的菜单管理功能模块中&#xff0c;可以创建或修改不同权限&#xff0c;当前登录账号可以绑定不同的权限&#xff0c;不同权限能访问的功能页面不同&#xff0c;所以使用动态路由来控制。 而登录成功后&#xff0c;服务器…

Sentence-BERT实现文本匹配【对比损失函数】

引言 还是基于Sentence-BERT架构&#xff0c;或者说Bi-Encoder架构&#xff0c;但是本文使用的是参考2中提出的对比损失函数。 架构 如上图&#xff0c;计算两个句嵌入 u \pmb u u和 v \pmb v v​之间的距离(1-余弦相似度)&#xff0c;然后使用参考2中提出的对比损失函数作为…

docker 安装 rabbitmq

参考文档&#xff1a; https://hub.docker.com/_/rabbitmq/ https://www.rabbitmq.com/docs/download https://www.kuangstudy.com/zl/rabbitmq#1366643532940484610 执行下面的命令 docker run -d -it --name myrabbit -e RABBITMQ_DEFAULT_USERadmin -e RABBITMQ_DEFAULT_PA…

“解决 Docker 启动失败:排查和修复 overlay2 存储驱动与网络模块问题”。

目录 1.报错如下 2.报错详解 1. ” 表明 overlay2 存储驱动挂载失败&#xff0c;找不到相应设备。 2.表明在路径中找不到 fuse-overlayfs 可执行文件。 3.表明加载 bridge 和 br_netfilter 模块失败。 4.及后续一系列关于停止服务的信息&#xff0c;是由于前面的错误导致的…

硬件生产厂家运维系统思路

当前硬件生产厂家运维已经逐渐摆脱原有的现场调试&#xff0c;初步诊断和运维已经进化为远程运维&#xff1b;主要方式为厂家建立运维系统&#xff0c;使用人员只需要关注厂家公众号或者登录官网&#xff0c;即可完成原来必须到现场才能解决的问题&#xff1b; 原弊端&#xff…

探讨 | 大模型在传统NLP任务的使用姿势

写在前面 今天给大家带来一篇震宇兄&#xff08;知乎邱震宇&#xff09;探讨大模型技术在提升传统NLP类任务效果上的应用方式的文章&#xff0c;主要从文本分类任务出发。 知乎&#xff1a;https://zhuanlan.zhihu.com/p/704983302PS&#xff1a;长文警告&#xff01;建议收藏…

Burp Suite Professional 2024.8 发布下载,新增功能概览

Burp Suite Professional 2024.8 (macOS, Linux, Windows) - Web 应用安全、测试和扫描 Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接&#xff1a;https://sysin.org/blog/burp-suite-pro/&#xff0c;查看最新版。原创作品&#xff0…

退火吗?C#/WinForm演示退火算法

退火模型&#xff1a;模拟退火算法&#xff08;Simulated Annealing, SA&#xff09;是一种概率型全局优化算法&#xff0c;灵感来源于物理学中的退火过程。它通过模拟金属退火过程中的加热和缓慢冷却&#xff0c;来寻找问题的近似全局最优解。算法开始时&#xff0c;初始温度设…

70万个哺乳动物功能基因集!这个数据库值得重视

生信碱移 Rummagene数据库 Rummagene 从 PubMed Central (PMC) 出版物提取了超70万个基因集&#xff0c;用于各类基因功能关联注释。 组学技术的引入逐渐将生物和生物医学研究从研究单个基因和蛋白质转向研究基因集、基因簇、分子复合物和基因表达模块。许多生物医学和生物研究…

log4j 清除MDC上下文 MDC分类日志

在项目里需要分类收集处理日志信息&#xff0c;使用 log4j的MDC在线程中添加分类信息。不过最近却出现日志信息记录错误的情况&#xff0c;具体来说&#xff0c;就是会出现本来是属于下一个分类的一部分信息莫名的记录到上一个分类的日志文件中了。这很显然是MDC信息错误造成的…

【nnUNet】环境安装

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ&#xff1a;870202403 公众号&#xff1a;VTK忠粉 前言 本文分享医疗分割模型nnUNet的环境安装教程&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0…

数据中台 | 数据智能平台产品系列文章,企业开发和盘活数据资产的利器!(上篇)

引言 发展数字经济&#xff0c;实现数字中国是我国的国家战略&#xff0c;坚定且不可动摇&#xff0c;近期随着《数据二十条》、《“数据要素”三年行动计划》、《关于加强数据资产管理的指导意见》等重磅政策的发布&#xff0c;使数字化转型成为越来越多企业增强竞争、扩大营收…

LabVIEW程序员错误排查思路

当LabVIEW程序员在开发过程中遇到难以解决的错误且网上搜不到答案时&#xff0c;需要采取系统性的方法进行排查和解决。这包括回顾代码逻辑、深入理解LabVIEW的底层机制、参考专业文献和求助社区等方式。下面将从多角度详细解读专业程序员在面对这种困境时的应对策略&#xff0…

【系统分析师】-面向对象方法

目录 1、基本概念 2、UML 2.1、基本结构 2.1.1.构造块 2.1.1.1、事物 2.1.1.2、关系 2.1.1.3、图形 2.1.2.规则 2.1.3.公共机制 2.2、41视图 3、面向对象分析OOA 3.1、用例模型 3.2、分析模型 4、面向对象设计OOD 4.1、细分 4.2、设计原则 5、面向对象的程序设…

一字线模组厂家的选择与使用技巧

在当今自动化与智能制造的浪潮中&#xff0c;一字线模组作为精密定位与传输的核心部件&#xff0c;其性能与质量直接关系到整个生产线的效率与稳定性。因此&#xff0c;选择合适的一字线模组厂家并掌握其使用技巧&#xff0c;对于提升企业竞争力至关重要。接下来我们跟着鑫优威…