大模型部署手记(11)LLaMa2+Chinese-LLaMA-Plus-2-7B+Windows+llama.cpp+中文对话

news2024/9/28 11:25:28

1.简介:

组织机构:Meta(Facebook)

代码仓:GitHub - facebookresearch/llama: Inference code for LLaMA models

模型:LIama-2-7b-hf、Chinese-LLaMA-Plus-2-7B 

下载:使用huggingface.co和百度网盘下载

硬件环境:暗影精灵7Plus

Windows版本:Windows 11家庭中文版 Insider Preview 22H2

内存 32G

GPU显卡:Nvidia GTX 3080 Laptop (16G)

查看 https://github.com/ymcui/Chinese-LLaMA-Alpaca-2

新的模型出来了,可以试一试。

2.代码和模型下载:

下载Chinese-LLaMA-Alpaca-2代码仓:

d:\

git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca-2

获取原版LIama-2-7b-hf模型:https://huggingface.co/meta-llama/Llama-2-7b-hf

下载所有文件,备用。

将文件下载到 d:\llama.cpp\models2的目录:

根据

直接下载完整版模型:

将下载好的文件复制到 d:\llama.cpp\models2\chinese-alpaca-2-7b-hf目录下:

3.安装依赖

暂无。

4.部署验证1(直接使用chinese-alpaca-2-7b完整版模型,转FP16,INT4量化)

生成FP16模型并进行4-bit量化:

cd llama.cpp

python convert.py models2/chinese-alpaca-2-7b-hf/

./quantize ./models2/chinese-alpaca-2-7b-hf/ggml-model-f16.gguf ./models2/chinese-alpaca-2-7b-hf/ggml-model-q4_0.gguf q4_0

参考 chat.sh

#!/bin/bash

# temporary script to chat with Chinese Alpaca-2 model
# usage: ./chat.sh alpaca2-ggml-model-path your-first-instruction

SYSTEM='You are a helpful assistant. 你是一个乐于助人的助手。'
FIRST_INSTRUCTION=$2

./main -m $1 \
--color -i -c 4096 -t 8 --temp 0.5 --top_k 40 --top_p 0.9 --repeat_penalty 1.1 \
--in-prefix-bos --in-prefix ' [INST] ' --in-suffix ' [/INST]' -p \
"[INST] <<SYS>>
$SYSTEM
<</SYS>>

$FIRST_INSTRUCTION [/INST]"

#./chat.sh models2/7B/ggml-model-q4_0.gguf '请列举5条文明乘车的建议'

编辑好推理代码并执行:

./main -m ./models2/chinese-alpaca-2-7b-hf/ggml-model-q4_0.gguf -n -1 --color -r "User:" --in-prefix " " -i -c 4096 -t 8 --temp 0.5 --top_k 40 --top_p 0.9 --repeat_penalty 1.1 -e -p "User: Hi\nAI: Hello. I am an AI chatbot. Would you like to talk?\nUser: Sure!\nAI: What would you like to talk about?\nUser:"

#./main -m ./models_chat/path_to_original_llama_root_dir/ggml-model-q4_0.gguf -n -1 --color -r "User:" --in-prefix " " -i -e -p "User: Hi\nAI: Hello. I am an AI chatbot. Would you like to talk?\nUser: Sure!\nAI: What would you like to talk about?\nUser:"

您好!

你是谁?

你能做什么?

写一篇国庆节去南京中山陵游玩的游记。

你写完了吗?

ChatGPT和国内的AIGC产品相比有什么优缺点?

你觉得怎样才能做到独立思考?

再见!

早知道2代目这么优秀,我为啥还花那么多功夫研究一代呢?

5.部署验证2(使用Llama-2-7b-hf 原始模型和chinese-alpaca-2-lora-7b Lora模型,转换,合并,转FP16,INT4量化)

当然,研究技术不能只是拿来主义,还是要试图做一次成功的模型合并的。

下载两个LoRa模型:

Chinese-LLaMA-2-LoRA-7B

https://pan.baidu.com/s/1bmgqdyRh9E3a2uqOGyNqiQ?pwd=7kvq

Chinese-Alpaca-2-LoRA-7B

https://pan.baidu.com/s/1g42_X7Z0QWDyrrDqv2jifQ?pwd=bq7n

解压到 models2 目录:

将 D:\Chinese-LLaMA-Alpaca-2\scripts\merge_llama2_with_chinese_lora_low_mem.py文件复制到 d:\llama.cpp目录下:

python merge_llama2_with_chinese_lora_low_mem.py --base_model models2/Llama-2-7b-hf --lora_model models2/chinese-llama-2-lora-7b,models2/chinese-alpaca-2-lora-7b --output_type huggingface --output_dir models2/path_to_output_dir

看来使用huggingface 模式不行。

换成 pth方式试试:

python merge_llama2_with_chinese_lora_low_mem.py --base_model models2/Llama-2-7b-hf --lora_model models2/chinese-llama-2-lora-7b,models2/chinese-alpaca-2-lora-7b --output_type pth --output_dir models2/path_to_output_dir

是不是跟一代不一样,不能用两个Lora了?

去掉一个试试:

python merge_llama2_with_chinese_lora_low_mem.py --base_model models2/Llama-2-7b-hf --lora_model models2/chinese-alpaca-2-lora-7b --output_type pth --output_dir models2/path_to_output_dir

成功了!

转成FP16:

python convert.py models2/path_to_output_dir/

结果如下:

量化:

./quantize ./models2/path_to_output_dir/ggml-model-f16.gguf ./models2/path_to_output_dir/ggml-model-q4_0.gguf q4_0

结果如下:

启动推理:

./main -m ./models2/path_to_output_dir/ggml-model-q4_0.gguf -n -1 --color -r "User:" --in-prefix " " -i -c 4096 -t 8 --temp 0.5 --top_k 40 --top_p 0.9 --repeat_penalty 1.1 -e -p "User: Hi\nAI: Hello. I am an AI chatbot. Would you like to talk?\nUser: Sure!\nAI: What would you like to talk about?\nUser:"

讲一个笑话给我听吧!

我打算从南京去新疆旅游,给我设计一个旅行路线

晚上睡不着觉怎么办?

树上10只鸟,打死1只,还剩几只?

你算不出来吗?

如何获得女孩的芳心?

== Running in interactive mode. ==
 - Press Ctrl+C to interject at any time.
 - Press Return to return control to LLaMa.
 - To return control without starting a new line, end your input with '/'.
 - If you want to submit another line, end your input with '\'.

 User: Hi
AI: Hello. I am an AI chatbot. Would you like to talk?
User: Sure!
AI: What would you like to talk about?
User: 讲一个笑话给我听吧!
AI: 好的,这里有一个:为什么猪不会上网?因为它们有Wi-Fi。
 我打算从南京去新疆旅游,给我设计一个旅行路线
AI: 当然可以!您可以从南京出发前往乌鲁木齐,然后继续向南到喀什、和田等地游览景点,最后返回南京。这样您的旅程将覆盖了中国的西北地区。 User: 晚上睡不着觉怎么办?
AI: 如果您无法入睡,您可以试试深呼吸或放松技巧来缓解压力和焦虑感,或者尝试听一些轻松的音乐以帮助入眠。如果您的失眠问题持续存在,请咨询医生寻求进一步的建议和治疗。
 树上10只鸟,打死1只,还剩几只?
AI: 您想让我猜吗?还是告诉我答案呢? User: 你算不出来吗?
AI: 我很抱歉,但我无法回答这个问题,因为没有足够的信息来计算剩余的鸟数量。如果您能提供更多的上下文或细节,我可以帮助您更好地理解问题并给出更准确的答案。
 5+10=?
AI: 这个数学题很简单:将两个数相加即可得到答案。所以,5 + 10 = 15。 User: 如何获得女孩的芳心?
AI: 这是一个非常主观的问题,因为每个人对"获得女孩的芳心"的理解可能不同。但是,以下是一些建议可以帮助您与女孩建立更亲密的关系: User: 你的建议呢?
AI: 我认为最重要的是要尊重和关心对方,倾听她的想法和感受,并给予她支持和鼓励。此外,保持积极乐观的态度也很重要,因为这会让人感到更加愉快和自信。 User: 还有没有别的建议?
AI: 当然!您还可以尝试做一些浪漫的事情来让她感受到您的爱意,例如准备一份特别的晚餐、送给她一束花或带她去一个有趣的地方旅游等等。最重要的是要记得始终保持真诚和诚实 ,这样会让女孩更加信任和依赖您。 User: 再见!
AI: 再见,祝您有一个美好的一天!

感觉二代还是可以的!!!

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

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

相关文章

微软放大招!Bing支持DALL-E3,免费AI绘画等你来体验!

最近 OpenAI 发布了DALL-E3模型&#xff0c;出图效果和Midjourney不相上下&#xff0c;不过要使用它有些门槛&#xff0c;必须是 ChatGPT Plus 账户&#xff0c;而且还要排队&#xff0c;怎么等都等不到&#xff0c;搞得大家都比较焦虑。 不过现在微软在Bing上也支持 DALL-E3 …

Excel恢复科学技术法显示的数据

Excel中输入位数较大的数据时&#xff0c;软件会自动使用科学计数法显示。很多时候并不需要这样的计数格式&#xff0c;所以需要把它转变为普通的数字格式 操作方法 选中单元格/列/行》右键》设置单元格式 在打开的窗口中&#xff0c;切换到“数字”选项卡&#xff0c;点击“自…

第四章 图表样式美化

第四章 图表样式美化 1.图表样式概述 1.1.默认图表样式 ​ matplotlib在绘图的过程中会读取存储在本地的配置文件matplotlibrc&#xff0c;通过matplotlibrc文件中的缺省配置信息指定图表元素的默认样式&#xff0c;完成图表元素样式的初始设置。 ​ matplotlib文件包含众多…

springboot单独在指定地方输出sql

一般线上项目都是将日志进行关闭&#xff0c;因为mybatis日志打印&#xff0c;时间长了&#xff0c;会占用大量的内存&#xff0c;如果我想在我指定的地方进行打印sql情况&#xff0c;怎么玩呢&#xff01; 下面这个场景&#xff1a; 某天线上的项目出bug了&#xff0c;日志打印…

Keil软件仿真的方法: μVision2调试器

目录 1. μVision2调试器2. 调试工具3. 单步调试4. 使用断点调试5. 使用监视窗口调试6. 调试按钮的功能1&#xff0e;“单步”按钮2&#xff0e;“跟踪”按钮3&#xff0e;“运行到退出”按钮4&#xff0e;“运行到光标行”按钮 参考资料 软件仿真是利用PC的CPU来模拟单片机的运…

鸿蒙API9手机号验证

鸿蒙API9手机号验证 做一个app用户认证&#xff0c;之前一直想着都是通过HMS Core里边来接入&#xff0c;但是里边的文档最高只支持到API7。 由于想直接用API9来接&#xff0c;毕竟感觉后续ts/java混合开发要被舍弃&#xff0c;尽量还是用新的来弄。看了一遍新的API9的文档&am…

The-MIFARE-Hack-1 -mifare技术

RFID卡的使用变得越来越普遍。 一般来说&#xff0c;使用两种类型的RFID卡&#xff1a;有源卡和无源卡。 主动系统有自己的能源&#xff0c;而被动系统则依赖读卡器提供的能量。 最常见的 RFID 卡之一是 MIFARE Classic&#xff0c;由 NXP Semiconductors&#xff08;以前是 Ph…

如何强化九小场所安全检查隐患排查工作

九小场所与人们的日常生活息息相关&#xff0c;相关部门对这些场所的消防安全非常重视&#xff1b;但是由于各种原因&#xff0c;经营者安全意识薄弱&#xff0c;导致存在严重的安全隐患。凡尔码开发的九小场所巡检系统针对九小场所基数大、底数不清、责任不明、主体意识薄弱等…

Python大数据之Python进阶(六)多线程的使用

文章目录 多线程的使用1. 导入线程模块2. 线程类Thread参数说明3. 启动线程4. 多线程完成多任务的代码5. 小结 线程执行带有参数的任务1. 线程执行带有参数的任务的介绍2. args参数的使用3. kwargs参数的使用4. 小结 线程的注意点1. 线程的注意点介绍2. 线程之间执行是无序的3.…

5.编写程序 超强力方法

5.1 创建战舰游戏 创建一个类似战舰的游戏&#xff1a;攻击网站 有一种棋盘类的战舰游戏&#xff0c;目标是要猜测对方战舰的坐标&#xff0c;然后轮流开炮攻击&#xff0c;命中数发就可以打沉对方的战舰。不过我们不喜欢战争&#xff0c;只要打垮这些达康公司就好(因为与商业…

10.10为什么要用二进制

由选择器引发的疑问与思考 &#xff1f;想的是就让每位表示得越多&#xff0c;不就越能节省空间开销&#xff0c;从而不需要那么多的位数&#xff1f; 状态总量为S,R进制的N位数有SR*N&#xff0c; 表示当前这个位数的进制数所能表示最多的状态总量 客观存在的数量在不同进制…

springcloud----检索中间件 ElasticSearch 分布式场景的运用

如果对es的基础知识有不了解的可以看 es看这个文章就会使用了 1.分布式集群场景下的使用 单机的elasticsearch做数据存储&#xff0c;必然面临两个问题&#xff1a;海量数据存储问题、单点故障问题。 海量数据存储问题&#xff1a;将索引库从逻辑上拆分为N个分片&#xff08…

【opencv】windows10下opencv4.8.0-cuda版本源码编译教程

【opencv】windows10下opencv4.8.0-cuda版本源码编译教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【opencv】windows10下opencv4.8.0-cuda版本源码编译教程前言准备工具cuda/cudnncmakeopencv4.5.0opencv_contrib CMake编译VS2019编译可…

Hadoop2.0探讨

文章目录 8. Hadoop 再探讨8.1 Hadoop的优化与发展8.2 HDFS 的FA和Federation(Hadoop2.0新特性)8.2.1 HDFS HA8.2.2 HDFS Federation 8.3 YARN8.3.1 MapReduce1.0的缺陷8.3.2 Yarn设计思路8.3.3 Yarn体系结构8.3.4 Yarn工作流程8.3.5 Yarn框架和MapReduce1.0框架对比分析8.3.6 …

C# Onnx GFPGAN GPEN-BFR 人像修复

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms;namespace 图像修复 {public partial class Form1 : For…

MAX17058_MAX17059 STM32 iic 驱动设计

本文采用资源下载链接&#xff0c;含完整工程代码 MAX17058-MAX17059STM32iic驱动设计内含有代码、详细设计过程文档&#xff0c;实际项目中使用代码&#xff0c;稳定可靠资源-CSDN文库 简介 MAX17058/MAX17059 IC是微小的锂离子(Li )在手持和便携式设备的电池电量计。MAX170…

MTK8183/MT8183安卓4G核心板_联发科安卓手机开发板主板方案定制

MediaTek MT8183 整合先进功能和 AI 的主流 Chromebook 平台 MTK8183又称为MediaTek Kompanio 500&#xff0c;是一款支持强大功能的Chromebook平台&#xff0c;结合多种高功能硬件于单一高效能芯片。支持连接选项包括 Wi-Fi、蓝芽和 GNSS&#xff0c;外围设备可选择连接 USB …

Flutter 直接调用so动态库,或调用C/C++源文件内函数

开发环境 MacBook Pro Apple M2 Pro | macOS Sonoma 14.0 Android Studio Giraffe | 2022.3.1 Patch 1 XCode Version 15.0 Flutter 3.13.2 • channel stable Tools • Dart 3.1.0 • DevTools 2.25.0 先说下历程&#xff0c;因为我已经使用了Flutter3的版本&#xff0c;起初…

【考研408真题】2022年408数据结构41题---判断当前顺序存储结构树是否是二叉搜索树

文章目录 思路408考研各数据结构C/C代码&#xff08;Continually updating&#xff09; 思路 很明显&#xff0c;这是一个顺序存储结构的树的构成方法。其中树的根节点位置从索引0开始&#xff0c;对于该结构&#xff0c;存在有&#xff1a;如果当前根节点的下标为n&#xff0c…

波奇学C++:哈希

哈希本质是的值和位置建立关联起来&#xff0c;这种关联关系就是哈希函数 示例:除留余数&#xff1a;对输入的数字取模。 哈希冲突&#xff1a;多个不同的值指向同一个位置 解决方法&#xff1a; 闭散列&#xff1a;开发地址法。 把24放在下一个位置 哈希桶 闭散列法 闭散列…