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

简介: 目前流行的开源大语言模型大抵都会有内容审查机制,这并非是新鲜事,因为之前chat-gpt就曾经被“玩”坏过,如果没有内容审查,恶意用户可能通过精心设计的输入(prompt)来操纵LLM执行不当行为。内容审查可以帮助识别和过滤这些潜在的攻击,确保LLM按照既定的安全策略和道德标准运行。 但我们今天讨论的是无内容审查机制的大模型,在中文领域公开的模型中,能力相对比较强的有阿里的 Qwen-14B 和清华的 ChatGLM3-6B。而今天的主角,CausalLM-14B则是在Qwen-14B基础上使用了 Qwen-14B 的部分权重,并且加入一些其他的中文数据集,最终炼制了一个无内容审核的

14b.jpg

目前流行的开源大语言模型大抵都会有内容审查机制,这并非是新鲜事,因为之前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

与众乡亲同飨。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
7月前
|
自然语言处理
ERNIE-Bot 4.0提示词原则与提示词格式
ERNIE-Bot 4.0提示词原则与提示词格式
70 0
|
2月前
|
人工智能 API
LangChain-14 Moderation OpenAI提供的功能:检测内容中是否有违反条例的内容
LangChain-14 Moderation OpenAI提供的功能:检测内容中是否有违反条例的内容
42 2
|
2月前
ChatGPT提问技巧——标准提示
ChatGPT提问技巧——标准提示
29 0
|
搜索推荐 安全 测试技术
中文大模型测评
中文大模型测评
|
6月前
|
机器学习/深度学习 存储 算法
真是太强大了!YOLO-World检测一切的任务框架使用指南,支持开放词汇检测任务
真是太强大了!YOLO-World检测一切的任务框架使用指南,支持开放词汇检测任务
|
7月前
|
Unix 编译器 iOS开发
苹果AppleMacOs系统Sonoma本地部署无内容审查(NSFW)大语言量化模型Causallm
最近Mac系统在运行大语言模型(LLMs)方面的性能已经得到了显著提升,尤其是随着苹果M系列芯片的不断迭代,本次我们在最新的MacOs系统Sonoma中本地部署无内容审查大语言量化模型Causallm。 这里推荐使用koboldcpp项目,它是由c++编写的kobold项目,而MacOS又是典型的Unix操作系统,自带clang编译器,也就是说MacOS操作系统是可以直接编译C语言的。
苹果AppleMacOs系统Sonoma本地部署无内容审查(NSFW)大语言量化模型Causallm
|
7月前
|
自然语言处理 Python
【相关问题解答1】bert中文文本摘要代码:import时无法找到包时,几个潜在的原因和解决方法
【相关问题解答1】bert中文文本摘要代码:import时无法找到包时,几个潜在的原因和解决方法
60 0
|
自然语言处理 机器人 API
GPT学术优化 (GPT Academic):支持一键润色、一键中英互译、一键代码解释、chat分析报告生成、PDF论文全文翻译功能、互联网信息聚合+GPT等等
GPT学术优化 (GPT Academic):支持一键润色、一键中英互译、一键代码解释、chat分析报告生成、PDF论文全文翻译功能、互联网信息聚合+GPT等等
|
7月前
ChatGPT - 在ChatGPT中设置通用提示模板
ChatGPT - 在ChatGPT中设置通用提示模板
65 0
|
算法 自然语言处理 机器学习/深度学习
中文竞技场大模型测评后续之双模型匿名对话
在中文竞技场大模型测评的延续中,我们将在双模型匿名对话技术场景中,通过趣味游戏方式对写作创作、代码相关、知识常识等领域进行全面测评
641 0
中文竞技场大模型测评后续之双模型匿名对话