LLM(十)| Tiny-Vicuna-1B:Tiny Models轻量化系列Top One

       在过去的一年里,见证了LLM的蓬勃发展,而模型的参数量也不断刷新记录,在2023年下半年,外界传言GPT-4是一个专家混合模型。因此,如果你想用人工智能做点什么,你需要IBM或NASA类似的计算能力:你怎么能运行8个2200亿参数的模型,每个模型的有效参数大小达到1.76万亿?

       然而,nano Models(比如新诞生的GeminiNano)、Tiny Models(就像TinyLlama家族)和Microsoft Phi1和2等另辟蹊径,希望一些较小的大模型也可以部署到生产环境中,给更多的企业和个人带来福音。

一、Tiny-Vicuna-1B介绍

      Tiny Vicuna是一个Llama模型(Vicuna是使用从ShareGPT收集的用户共享对话进行微调Llama的大模型)。这个小模型是TinyLlama项目的一部分,该项目旨在通过适当的优化,在3万亿tokens上预训练的1.1B Llama模型,但由于Tiny Vicuna 1B是用WizardVicuna数据集微调的TinyLLama 1.1B,因此被称为Tiny Vicuna!运行Tiny Vicuna 1B量化版本,只需要不超过700 Mb的RAM!

二、运行Tiny-Vicuna-1B-GGUF

       我们将使用Huggingface上Jiayi-Pan的Tiny-Vicuna-1B的量化GGUF模型文件。因为即使它是一个只有11亿个参数的模型,在CPU上全精度运行也需要将近10 GB的RAM。

Step1:在新目录中创建虚拟环境并将其激活:

mkdir TinyVicunacd TinyVicunapython3.10 -m venv venv #I am using python 3.10python -m venv venv  #if you are on Windows#to activate the Virtual Environmentsource venv/bin/activate  #for macvenv\Scripts\activate     #for windows users

Step2:安装所需的包

pip install llama-cpp-pythonpip install gradiopip install psutilpip install plotly

       最后两个依赖项仅用于提供推断时间期间的CPU/RAM使用统计信息。我认为亲眼看到这一切是件好事😉。

Step3:接下来是在同一目录中下载GGUF文件。你可以选择量化方法,但不要低于q4。本演示使用q5版本:有点重,但质量损失很小。下载链接:https://huggingface.co/afrideva/Tiny-Vicuna-1B-GGUF/tree/main

Step4:运行python文件中模型核心代码的两个不同部分,我将在下面对它们进行解释,python文件下载地址:https://github.com/fabiomatricardi/KingOfTheTiny/raw/main/40-vicuna1B_PG_MEM.py。

from llama_cpp import Llamamodelfile = "./tiny-vicuna-1b.q5_k_m.gguf"contextlength=2048stoptoken = '<s>'################ LOADING THE MODELS  ################################ 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 = Llama(  model_path=modelfile,  # Download the model file first  n_ctx=contextlength,  # The max sequence length to use - note that longer sequence lengths require much more resources  #n_threads=2,            # The number of CPU threads to use, tailor to your system and the resulting performance)######### INFERENCE #######################response = llm(prompt,                 max_tokens=max_new_tokens,                 stop=['Q:', stoptoken],                 temperature = temperature,                repeat_penalty = repeat_penalty,                top_p = top_p,                echo=False)print(response)

       我们从Llama.cpp导入Llama类,并将其实例化到llm变量中。正如您所看到的,我们需要在这里传递很少的参数:模型路径(包括GGUF文件名)和上下文窗口。

注意1:如果在Windows上运行,modelfile不需要./,它应该简化为modelfile = “tiny-vicuna-1b.q5_k_m.gguf”

注意2:每个模型都使用特定的上下文窗口进行训练。如果模型卡中没有提到,可以在第一次加载模型时查看终端控制台

|这篇博客(https://blog.stackademic.com/model-cards-is-all-you-need-e8c9a3450372?source=post_page-----f05e459b8018--------------------------------)介绍了Huggingface模型卡的使用

Step5:然后,我们使用额外的参数运行调用llm的推理。实际上,唯一需要的是Prompt:其他都是可选的。

请注意,Prompt必须遵循模型的特定格式。如果你不确定,并且模型卡中没有提到任何内容(就像本例中一样),可以查看:https://www.hardware-corner.net/llm-database/

       我们搜索Vicuna 1.5版本,因为原始模型表明该模型是WizardVicuna数据集上TinyLlama的微调版本。它应该与Vicuna-v1.5系列完全兼容。

       选择模型可以验证预期的提示格式。

       因此,我们的提示模板如下(请注意,没有新行,我创建它们是为了可读性):

A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: {prompt} ASSISTANT:

       因此,我们的提示可以是这样的,在代码中:

prompt = f"USER: What is Science? ASSISTANT:"

三、Tiny-Vicuna-1B案例分析

让我们使用3个主流用例来测试一下Tiny-Vicuna-1B的效果:

  • 通用问题;
  • 从上下文中提取信息(RAG);
  • 格式化输出。

3.1 通用问题

Prompt:什么是科学?

Answer:科学是通过观察、实验、分析和解释来研究知识。它包括使用逻辑推理、批判性思维和经验证据来理解自然世界或人类经验中的现象。

Prompt:为忙碌的专业人士写一份每日日程表。描述一个从早上到睡觉的典型日常生活。想想他是一个有妻子和孩子的男人。

Answer:我必须更好地说明我想要什么,因为只询问日常事务会给我正确但不一致的答案(永无止境的列表)

 Morning Routine: - Wake up at around 6am, shower and get dressed.- Have breakfast (breakfast can be anything from eggs, bacon or pancakes) and coffee/tea.- Check emails and work on important tasks for the day.- Take a quick walk outside to clear his mind before starting work.- Start working on his daily routine:    - Opening email and answering any urgent messages.   - Creating to-do lists for the day's activities.   - Checking social media accounts for updates or breaking news.   - Reviewing important documents/files.   - Making phone calls if necessary.   - Attending meetings or appointments as needed.   - Taking breaks and stretching to avoid burnout.- Lunch:    - Eating a light lunch, such as sandwiches or salads with hummus or guacamole.   - Drinking water or tea/coffee.- Afternoon Routine:    - Working on any important tasks from the morning's work.   - Checking emails and answering urgent messages.   - Taking breaks to stretch, walk around, or do some light exercise.   - Spending time with family/friends if possible.- Evening Routine:    - Watching TV or Netflix before going to bed.   - Reading a book or watching an episode of his favorite show.   - Taking a warm bath or reading a book while relaxing in bed.- Bedtime Routine:    - Winding down by taking a hot bath, reading a book, and listening to soothing music.   - Going back to sleep with the lights off.

3.2 从上下文中提取信息(RAG)

         从youtube视频中提取了摘录,并将其作为上下文来回答用户的问题。

此方法也适用于必须仅回复特定数据而不使用外部知识的聊天机器人

Reply to the question only using the provided context.[context]WHAT IS HIERARCHY 4.0? whether you own build manage maintain or operate an oil plant inevitably issues arise that require immediate action and resolution. With big data flowing in constantly from all sectors making sense of everything while troubleshootingissues without wasting time can be a huge challenge.  So what's the solution?introducing hierarchy 4.0 and Innovative software solution for control Safety Systems . Hierarchy 4.0 presents an interactive diagram of the entire plant revealing cause and effect Behavior with readings provided in a hierarchical view allowing for a deep understanding of the system's strategyAll data is collected from multiple sources visualized as a diagram and optimized through a customized dashboard allowing users to run a logic simulation from live data or pick a moment from their history.  Your simulation is based on actual safety Logics not just on a math modelNow every users can prepare an RCA report 90 percent faster in just a few minutes. Hierarchy can be used for any project phase starting from engineering to commissioning and up to operation and maintenance while supporting hazop Hazard analysis by reducing human error and avoiding incorrect documentation. Hierarchy 4.0 supports plant operators in decision making taking into account both the safety and the operability of their assets.  Hierarchy 4.0 Embraces a block log approach: it automatically calculates all Logics affected by anoverride and gives a full understanding of constraints.  Not convinced let's look at the data!During its first project hierarchy 4.0 prevented a revenue loss of 45 million dollars.  Plants that utilize hierarchy 4.0 save up to 95 of their time and deliver a return on investment up to five times in value from day one and experience a Personnel utilization and plant efficiency increase by 20 percent per year.Try our demo and make the move to hierarchy 4.0 today[end of context]Question: what is Hierarchy 4.0?

        该模型在40秒内处理了Prompt中的500个tokens👍🥳:

Answer:Hierarchy 4.0是一种用于控制安全系统的创新软件解决方案,通过交互式图表和优化的仪表板,可以深入了解系统的策略。它允许用户从实时数据中运行逻辑模拟,或从历史记录中选择一个时刻,从而减少人为错误并避免错误的文档。RCA报告可以使用层次结构4.0的块日志方法在几分钟内准备好。这支持工厂运营商在考虑其资产的安全性和可操作性的情况下进行决策。

3.3 格式化输出

       在这里,我们使用两个任务来评估一下模型的格式化输出效果:1)从文本中获得摘要,并要求LLM提供文本的主要主题,2)将其格式化为列表。

       Prompt很简单,但不得不尝试了几个版本,才找到一个只给摘要而没有任何介绍词的版本…

[text]... insert here your text...... the move to hierarchy 4.0 today[end of text]- SUMMARY:

Answer:层次4.0是一种用于控制安全系统的创新软件解决方案,可深入了解系统策略,在层次视图中可视化数据,并支持工厂操作员在考虑其资产的安全性和可操作性的情况下进行决策。它还通过防止由于错误或被忽视的危险而造成的收入损失,节省了时间并带来了投资回报。

       对于第二项任务,必须找到好的措辞和顺序,才能获得一个降价列表作为输出。

Write the main points of the following text.[text]WHAT IS HIERARCHY 4.0? whether you ... the move to hierarchy 4.0 today[end of text]format the output as a markdown list.

       不出所料,结果很好!

- Hierarchy 4.0 is an innovative software solution for control safety systems that provides a deep understanding of the system's strategy through interactive diagrams, optimized with a customized dashboard and supported by RCA reports.- All data is collected from multiple sources visualized as a hierarchical view allowing users to run a logic simulation from live data or pick a moment from their history.- Your simulation is based on actual safety logics not just on a math model, making it faster and more accurate for any project phase starting from engineering to commissioning and up to operation and maintenance.- Hierarchy can be used for any project phase starting from engineering to commissioning and up to operation and maintenance while supporting hazop Hazard analysis by reducing human error and avoiding incorrect documentation.- Hierarchy 4.0 supports plant operators in decision making taking into account both the safety and the operability of their assets, with a block log approach that calculates all Logics affected by an override automatically.- Not convinced let's look at the data! During its first project hierarchy 4.0 prevented a revenue loss of 45 million dollars, saving up to 95 of their time and delivering a return on investment up to five times in value from day one and experiencing a Personnel utilization and plant efficiency increase by 20 percent per year.- Try our demo and make the move to hierarchy 4.0 today!

令人惊讶的是,列表生成是准确的,而且总是在主题上。

四、实验的大致步骤如下:

使用的Gradio用户界面来运行推理结果,部署的大致步骤如下:

  • 准备虚拟环境并将其激活(可选);
  • 根据上面第二小节的Step2,安装依赖项;
  • 下载q5 GGUF模型文件;
  • 下载python文件;
  • 在第39行代码中指定模型文件
#only "tiny-vicuna-1b.q5_k_m.gguf" if you are on Windows39|  modelfile = "./tiny-vicuna-1b.q5_k_m.gguf"  

       保存文件并在终端上从项目目录运行此命令

python 40-vicuna1B_PG_MEM.py

        默认浏览器将打开一个带有Gradio界面的新选项卡

        要关闭应用程序:

  • 关闭“浏览器”选项卡;
  • 在“终端”窗口上键入^C

参考文献:

[1] https://blog.stackademic.com/tiny-vicuna-1b-is-the-lightweight-champion-of-the-tiny-models-f05e459b8018

[2] https://github.com/fabiomatricardi/KingOfTheTiny

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GoZero微服务个人探索之路(三)Go-Zero官方rpc demo示例探究

官方网址&#xff1a;https://go-zero.dev/docs/tasks/cli/grpc-demo 项目结构 demo包 两个文件均为protoc-gen-go-grpc自动生成构成一个完整的 gRPC 服务的定义和实现 democlient包 demo.go goctl生成的客户端代码 Request 和 Response 别名&#xff1a; 定义了 Request 和…

相机内外参标定综合

相机内外参标定 内外参标定常用的工具相机成像原理内外参标定数学原理1&#xff09;求解内参矩阵与外参矩阵的积2&#xff09;求解内参矩阵3&#xff09;求解外参矩阵 内外参标定常用的工具 如图所示&#xff0c;棋盘格是很常见使用的标定工具 左下角写着棋盘格的参数&#xf…

odoo16 销售订单中数量与单价,手机录入不方便

odoo16 销售订单中数量与单价&#xff0c;手机录入不方便 在销售订单中&#xff0c;服装批发&#xff0c;数量与单价均是整数&#xff0c;系统默认的为保留两位小数的float类型&#xff0c;输入起来很不方便&#xff0c;如何修改 电脑版&#xff0c;输入时&#xff0c;自动选取…

测试驱动开发:基于Jenkins+GoTest+HTML的持续化集成

目录 前言 一、项目框架 1.项目迭代 2.项目时序图 3.项目测试执行 二、项目具体实现 1.创建流水线 2.拉取代码 3.执行测试代码 4.生成测试报告 5.报告内容解读 6.数据统计 7.邮件通知 8.企业微信通知 三、项目遇到的问题 1.go test -args 2.go test生…

ASO优化:巧用字符串

应用商店优化&#xff08;ASO&#xff09;与网站的搜索引擎优化 (SEO) 非常相似。 同样&#xff0c;应用程序商店通过关键字、评论、下载和升级数量以及其他排名因素来查找最相关的应用程序。 ASO 和 SEO 都致力于为产品带来更多流量&#xff0c;并将其置于搜索结果的顶部。 …

django后台进行加密手机号字段,加密存储,解密显示

需求: 1 &#xff1a;员工在填写用户的手机号时&#xff0c;直接填写&#xff0c;在django后台中输入 2&#xff1a;当员工在后台确认要存储到数据库时&#xff0c;后台将会把手机号进行加密存储&#xff0c;当数据库被黑之后&#xff0c;手机号字段为加密字符 3&#xff1a;员…

文心一言使用分享

ChatGPT 和文心一言哪个更好用&#xff1f; 一个直接可以用&#xff0c;一个还需要借助一些工具&#xff0c;还有可能账号会消失…… 没有可比性。 通用大模型用于特定功能的时候需要一些引导技巧。 import math import time def calculate_coordinate(c, d, e, f, g, h,…

Jenkins的环境部署,(打包、发布、部署、自动化测试)

一、Tomcat环境安装 1.安装JDK&#xff08;Java环境&#xff09; JDK下载地址&#xff1a;Java Downloads | Oracle 安装好后在系统环境变量里配置环境变量&#xff1a; ①添加JAVA_HOME 变量名&#xff1a;JAVA_HOME变量值&#xff1a;C:\Program Files\Java\jdk1.8.0_18…

Docker安全基线检查需要修复的一些问题

一、可能出现的漏洞 限制容器之间的网络流量 限制容器的内存使用量 为Docker启用内容信任 将容器的根文件系统挂载为只读 审核Docker文件和目录 默认情况下&#xff0c;同一主机上的容器之间允许所有网络通信。 如果不需要&#xff0c;请限制所有容器间的通信。 将需要相互通…

精品基于Uniapp+springboot农产品安全领域的信息采集系统App

《[含文档PPT源码等]精品基于Uniappspringboot农产品安全领域的信息采集系统App》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;Java 后台框架&#xff1a;sprin…

openEuler 下部署Zabbix报表系统zbxtable

1.zbxtable简单介绍 官网地址:使用文档 | ZbxTable ZbxTable 是使用 Go 语言开发的一个开源的 Zabbix 报表系统 目前已经推出 ZbxTable 2.1 版本 主要功能如下&#xff1a; 按照主机类型&#xff0c;展示或导出主机资源 资产管理&#xff0c;资源状态总览 多用户、角色、…

三、MySQL实例初始化、设置、服务启动关闭、环境变量配置、客户端登入(一篇足以从白走到黑)

目录 1、选择安装的电脑类型、设置端口号 2、选择mysql账号密码加密规则 3、设置root账户密码 4、设置mysql服务名和服务启动策略 5、执行设置&#xff08;初始化mysql实例&#xff09; 6、完成设置 7、MySQL数据库服务的启动和停止 方式一&#xff1a;图形化方式 方式…