无所不谈,百无禁忌,Win11本地部署无内容审查中文大语言模型CausalLM-14B

news2024/11/18 19:39:05

在这里插入图片描述

无内容审查机制大模型整合包,基于CausalLM-14B量化

目前流行的开源大语言模型大抵都会有内容审查机制,这并非是新鲜事,因为之前chat-gpt就曾经被“玩”坏过,如果没有内容审查,恶意用户可能通过精心设计的输入(prompt)来操纵LLM执行不当行为。内容审查可以帮助识别和过滤这些潜在的攻击,确保LLM按照既定的安全策略和道德标准运行。

但我们今天讨论的是无内容审查机制的大模型,在中文领域公开的模型中,能力相对比较强的有阿里的 Qwen-14B 和清华的 ChatGLM3-6B。

而今天的主角,CausalLM-14B则是在Qwen-14B基础上使用了 Qwen-14B 的部分权重,并且加入一些其他的中文数据集,最终炼制了一个无内容审核的大模型版本,经过量化后可以在本地运行,保证了用户的隐私。

CausalLM-14B的量化版本下载页面:

https://huggingface.co/TheBloke/CausalLM-14B-GGUF

量化版本的运行条件:

Name	Quant method	Bits	Size	Max RAM required	Use case  
causallm_14b.Q4_0.gguf	Q4_0	4	8.18 GB	10.68 GB	legacy; small, very high quality loss - prefer using Q3_K_M  
causallm_14b.Q4_1.gguf	Q4_1	4	9.01 GB	11.51 GB	legacy; small, substantial quality loss - lprefer using Q3_K_L  
causallm_14b.Q5_0.gguf	Q5_0	5	9.85 GB	12.35 GB	legacy; medium, balanced quality - prefer using Q4_K_M  
causallm_14b.Q5_1.gguf	Q5_1	5	10.69 GB	13.19 GB	legacy; medium, low quality loss - prefer using Q5_K_M  
causallm_14b.Q8_0.gguf	Q8_0	8	15.06 GB	17.56 GB	very large, extremely low quality loss - not recommended

本地环境配置

笔者的设备是神船笔记本4060的8G显卡配置。

首先确保本地安装好了Visual Studio installer开发工具,在搜索框中直接搜索Visual Studio即可:

点选后,确保安装了使用C++的桌面开发组件:

随后下载并且配置cmake:

https://cmake.org/download/

本地运行命令:

PS C:\Users\zcxey> cmake -version  
cmake version 3.29.0-rc1  
  
CMake suite maintained and supported by Kitware (kitware.com/cmake).  
PS C:\Users\zcxey>

代表配置成功。

接着需要下载CUDA:

https://developer.nvidia.com/cuda-downloads

这里推荐12的版本,运行命令:

PS C:\Users\zcxey> nvcc --version  
nvcc: NVIDIA (R) Cuda compiler driver  
Copyright (c) 2005-2023 NVIDIA Corporation  
Built on Wed_Nov_22_10:30:42_Pacific_Standard_Time_2023  
Cuda compilation tools, release 12.3, V12.3.107  
Build cuda_12.3.r12.3/compiler.33567101_0  
PS C:\Users\zcxey>

说明cuda配置成功。

通过llama.cpp来跑大模型

llama.cpp 是一个开源项目,它提供了一个纯 C/C++ 实现的推理工具,用于运行大型语言模型(LLaMA)。这个项目由开发者 Georgi Gerganov 开发,基于 Meta(原 Facebook)发布的 LLaMA 模型。llama.cpp 的目标是使得大型语言模型能够在各种硬件上本地运行,包括那些没有高性能 GPU 的设备。

在llama.cpp的releases下载页:

https://github.com/ggerganov/llama.cpp/releases

下载llama-b2288-bin-win-cublas-cu12.2.0-x64.zip

也就是基于CUDA12的编译好的版本。

在终端中打开llama-b2288-bin-win-cublas-cu12.2.0-x64目录,运行命令:

D:\Downloads\llama-b2288-bin-win-cublas-cu12.2.0-x64>.\main.exe -m D:\Downloads\causallm_14b.Q4_0.gguf --n-gpu-layers 30 --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "<|im_start|>system\n{You are a helpful assistant.}<|im_end|>\n<|im_start|>user\n{你好}<|im_end|>\n<|im_start|>assistant"

这里通过–n-gpu-layers 30参数来通过cuda加速,同时CausalLM-14B有自己的prompt模板,格式如下:

"<|im_start|>system\n{You are a helpful assistant.}<|im_end|>\n<|im_start|>user\n{你好}<|im_end|>\n<|im_start|>assistant"

随后程序返回:

<|im_start|>system\n{You are a helpful assistant.}<|im_end|>\n<|im_start|>user\n{你好}<|im_end|>\n<|im_start|>assistant:  
 你好!很高兴见到你。有什么我可以帮助你的吗?<|endoftext|> [end of text]

好吧,既然是无审查模型,那么来点刺激的:

"<|im_start|>system\n{You are a helpful assistant.}<|im_end|>\n<|im_start|>user\n{You fucking bitch! 翻译为中文}<|im_end|>\n<|im_start|>assistant"

程序返回:

<|im_start|>system\n{You are a helpful assistant.}<|im_end|>\n<|im_start|>user\n{You fucking bitch! 翻译为中文}<|im_end|>\n<|im_start|>assistant{你这个该死的婊子!}<|endoftext|> [end of text]

通过llama-cpp-python来跑大模型

llama-cpp-python 是一个 Python 库,它提供了对 llama.cpp 的 Python 绑定。

换句话说,直接通过Python来启动llama.cpp。

首先安装llama-cpp-python:

pip uninstall -y llama-cpp-python  
set CMAKE_ARGS=-DLLAMA_CUBLAS=on  
set FORCE_CMAKE=1  
pip install llama-cpp-python --force-reinstall --upgrade --no-cache-dir

如果安装好之后,不支持cuda,需要拷贝cuda动态库文件到Microsoft Visual Studio的所在目录:

Copy files from: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\extras\visual_studio_integration\MSBuildExtensions  
to  
(For Enterprise version) C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\BuildCustomizations

随后编写代码:

from llama_cpp import Llama  
llm = Llama(  
      model_path="D:\Downloads\causallm_14b-dpo-alpha.Q3_K_M.gguf",  
      chat_format="llama-2"  
)  
res = llm.create_chat_completion(  
      messages = [  
          {"role": "system", "content": "You are a helpful assistant."},  
          {  
              "role": "user",  
              "content": "来一段金瓶梅风格的情感小说,100字,别太露骨了"  
          }  
      ],stream=True  
)  
  
for chunk in res:  
    try:  
        print(chunk['choices'][0]["delta"]['content'])  
    except Exception as e:  
        print(str(e))  
        pass

程序返回:

AS = 1 | SSE3 = 1 | SSSE3 = 0 | VSX = 0 | MATMUL_INT8 = 0 |  
Model metadata: {'general.name': '.', 'general.architecture': 'llama', 'llama.context_length': '8192', 'llama.rope.dimension_count': '128', 'llama.embedding_length': '5120', 'llama.block_count': '40', 'llama.feed_forward_length': '13696', 'llama.attention.head_count': '40', 'tokenizer.ggml.eos_token_id': '151643', 'general.file_type': '12', 'llama.attention.head_count_kv': '40', 'llama.attention.layer_norm_rms_epsilon': '0.000010', 'llama.rope.freq_base': '10000.000000', 'tokenizer.ggml.model': 'gpt2', 'general.quantization_version': '2', 'tokenizer.ggml.bos_token_id': '151643', 'tokenizer.ggml.padding_token_id': '151643'}  
'content'  
 @  
金  
瓶  
姐姐  
  
  
  
金  
瓶  
姐姐  
好  
,  
下面  
是一  
段  
根据  
您的  
要求  
编  
写的  
金  
瓶  
梅  
风格  
的  
小说  
:  
  
  
王  
婆  
是  
清  
河  
城  
有名的  
媒  
人  
,  
她  
生  
得  
风  
流  
多  
情  
,  
经常  
出入  
于  
大户  
人家  
和  
青  
楼  
妓  
院  
。  
这一天

内容不便全部贴出,理解万岁。

结语

最后奉上基于llama-cpp-python和gradio的无审查大模型的webui项目,支持流式输出,提高推理效率:

https://github.com/v3ucn/Causallm14b_llama_webui_adult_version

与众乡亲同飨。

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

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

相关文章

leetcode刷题记录:动态规划02,子序列问题

参考labuladong的算法小抄整理 link 子序列问题&#xff0c;用一维dp数组或二维dp数组来解决。 一维数组&#xff1a;最大子数组和&#xff0c;最长递增子序列。dp[i]的定义&#xff1a;在子数组 arr[0…i] 中&#xff0c;以 arr[i] 结尾的子序列的长度是 dp[i]。二维数组&…

【Vue3】解锁Vue3黑科技:探索接口、泛型和自定义类型的前端奇迹

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

【大数据架构(3)】Lambda vs. Kappa Architecture-选择你需要的架构

文章目录 一. Data Processing Architectures1. Lambda Architecture1.1. 架构说明a. Data Ingestion Layerb. Batch Layer (Batch processing)c. Speed Layer (Real-Time Data Processing)d. Serving Layer 1.2. Lambda Architecture的优缺点1.3. 使用案例 2. Kappa Architect…

【风格迁移】StyTr2:引入 Transformer 解决 CNN 在长距离依赖性处理不足和细节丢失问题

StyTr2&#xff1a;引入 Transformer 解决 CNN 在长距离依赖性处理不足和细节丢失问题 提出背景StyTr2 组成StyTr2 架构 提出背景 论文&#xff1a;https://arxiv.org/pdf/2105.14576.pdf 代码&#xff1a;https://github.com/diyiiyiii/StyTR-2 问题&#xff1a; 传统的神经…

NOC2023软件创意编程(学而思赛道)python初中组初赛真题

软件创意编程 一、参赛范围 1.参赛组别:小学低年级组(1-3 年级)、小学高年级组(4-6 年级)、初中组。 2.参赛人数:1 人。 3.指导教师:1 人(可空缺)。 4.每人限参加 1 个赛项。 组别确定:以地方教育行政主管部门(教委、教育厅、教育局) 认定的选手所属学段为准。 二、…

云主机和传统主机到底有什么区别呢?

随着信息技术的快速发展&#xff0c;企业对IT基础设施的要求越来越高&#xff0c;许多问题等待解决&#xff1a;政府传统部署扩容升级麻烦、公司服务器维护周期长、建设和维护成本低等。运营成本高&#xff1b; 安全稳定性差、数据易丢失等问题亟待解决。 云主机的出现很大程度…

蓝桥杯集训·每日一题2024 (前缀和)

笔记&#xff1a; 例题&#xff1a; #include<bits/stdc.h> using namespace std; const int N 5000010; char str[N]; int s[N]; int main(){int t;cin>>t;for(int a1;a<t;a){int n;cin>>n;scanf("%s",str1);for(int i1;i<n;i){s[i]s[i-1]…

【教学类-36-12】20240302对称画右脸或左脸(中班《幼儿园里朋友多》)(midjounery-v 5.1 Python图片切割)

作品展示&#xff1a; 背景需求&#xff1a; 中班《幼儿园里朋友多》操作材料包——画对称脸 尝试用midjounery获得更多幼儿正脸图形&#xff0c;切割一半&#xff0c;制作相似的学具 一、MJ获取简笔画图案 风变编程——MJ 第1个关键词 Childrens face, front, simple stro…

switch开关语句

定义 单条件多分支的开关语句。 格式定义 switch(表达式) { case 常量值1: 若干个语句 break; ... case 常量值n: 若干个语句 break; default: 若干语句 } ★注意★&#xff1a; ① 表达式的值必须与int兼容类型&#xff1a; byte&#xff0c;short&#xff0c;int&#xff…

CI/CD笔记.Gitlab系列.`gitlab-ci.yml`中的头部关键字

CI/CD笔记.Gitlab系列 gitlab-ci.yml中的头部关键字 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.ne…

解读OWASP应用安全验证标准ASVS

OWASP应用程序安全验证标准&#xff08;OWASP Application Security Verification Standard&#xff0c;ASVS&#xff09;为测试web应用程序技术安全控制提供了基础&#xff0c;还为开发人员提供了安全开发的要求列表。 1. 简介 OWASP应用安全验证标准&#xff0c;是一份测试应…

二维码门楼牌管理系统:城市数字化管理的新里程碑

文章目录 前言一、二维码门楼牌管理系统的构成二、二维码门楼牌管理系统的功能三、二维码门楼牌管理系统的应用四、二维码门楼牌管理系统的未来发展 前言 随着城市管理的数字化、智能化水平不断提升&#xff0c;二维码门楼牌管理系统作为一种创新的城市管理方法&#xff0c;正…

面试复盘——14

前言 无锡的一家企业&#xff0c;但是看Boss上面给的薪资不高还是要求硕士…面试体验很棒&#xff0c;hr、技术、三个人一起的。 一面 问技术栈&#xff0c;接触了Go多久&#xff0c;先前是用什么的。 Golang的切片、特点。 切片赋值的时候如果使用&#xff0c;是什么拷贝…

Java面试——Redis

优质博文&#xff1a;IT-BLOG-CN 一、Redis 为什么那么快 【1】完全基于内存&#xff0c;绝大部分请求是纯粹的内存操作&#xff0c;非常快速。数据存在内存中。 【2】数据结构简单&#xff0c;对数据操作也简单&#xff0c;Redis中的数据结构是专门进行设计的。 【3】采用单线…

Linux——进程控制(二)进程等待

目录 前言 一、进程等待 二、如何进行进程等待 1.wait 2.waitpid 2.1第二个参数 2.2第三个参数 3. 等待多个进程 三、为什么不用全局变量获取子进程的退出信息 前言 前面我们花了大量的时间去学习进程的退出&#xff0c;退出并不难&#xff0c;但更深入的学习能为本…

【深度优先搜索】【树】【C++算法】2003. 每棵子树内缺失的最小基因值

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 深度优先搜索 LeetCode2003. 每棵子树内缺失的最小基因值 有一棵根节点为 0 的 家族树 &#xff0c;总共包含 n 个节点&#xff0c;节点编号为 0 到 n - 1 。给你一个下标从 0 开始的整数数组 parents &#xff0c;其中…

AI Earth数据集——中国10米地物分类数据集(AIEC)

AIEarth中国10米地物分类数据集(AIEC) 简介与Notebook示例 达摩院AI Earth团队自研的中国区10m分辨率地物分类产品&#xff0c;数据包含2020-2022年中国逐年土地覆盖信息。研究团队利用Sentinel-2 数据集&#xff0c;借助深度学习方法&#xff0c;融合了多时序、多模态、Low L…

2024真正有效的苹果mac电脑清理工具CleanMyMac X

一、前言 对于Mac用户来说&#xff0c;电脑卡顿、运行缓慢无疑是一件令人头疼的事情。而市面上的清理软件又五花八门&#xff0c;效果参差不齐&#xff0c;如何才能找到一款真正有效的清理工具呢&#xff1f;今天&#xff0c;我们为大家推荐一款实力派电脑清理软件——CleanMy…

Tomcat基础及与Nginx实现动静分离,搭建高效稳定的个人博客系统

目录 引言 一、TOMCAT基础功能 &#xff08;一&#xff09;自动解压war包 &#xff08;二&#xff09;状态页 1.登录状态页 2.远程登录 &#xff08;三&#xff09;服务管理界面 &#xff08;四&#xff09;Host虚拟主机 1.设置虚拟主机 2.建立站点目录与文件 二、实…

Github配置SSH免密认证

以Ubuntu Server为例 生成SSH ssh-keygen -t ed25519 -C "your_emailexample.com" 如果系统不支持Ed25519算法&#xff0c;使用旧的命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 根据提示生成公私钥文件&#xff0c;记下位置…