先科普一下WINRE
WinRE(Windows Recovery Environment)是建立在Windows預裝環境下的系統恢復平臺,是WinPE的升級版本,將全面代替Windows XP中的系統恢復控制臺,主要有兩個功能:
1.利用StartUp Repair工具自動診斷、修復啟動時產生問題
2.高級系統恢復工具集中化平臺
WinRE與WinPE的關系
有人說WinRE就是WinPE 2.0,其實這個說法是錯誤的,WinPE叫做Windows Preinstallation Environment,也就是Windows預安裝環境,而WinRE是基于WinPE 2.0下的一個系統恢復平臺。
WinRE的功能
1.啟動修復:自動查找并修復Windows在啟動過程中的錯誤;
2.系統還原:利用VSC(Volume Shadow Copy)服務將計算機還原到以前的狀態或者還原點;
3.完整還原:完整還原PC備份的磁盤映像文件,這個也正是GHOST的對手;
4.Windows內存診斷工具:分析計算機存儲器(RAM)的硬件內存的問題;
5:命令提示符:使用命令行訪問文件系統,分區和文件;
經過以上的解釋,我們知道,WinRE并不能替代PE工具,但是也不能小瞧它。
如今大家用的Win10原版系統也可以經過設置中的高級啟動選項,進入RE,或者不正常關機三次,開機后自動進入,有時候會遇到系統自帶的電腦重置功能無法重置現象,這個之后就需要U盤中的WinRE了
以下是制作方法:
1.下載WIN10原版ISO鏡像。
下載地址:
2.下載DISM
下載地址:
3下載軟碟通(非必需,亦可不下,之后會說明)。
下載地址:
第一步,在磁盤中新建文件夾并命名為XXX(系統版本號)WINRE;
第二步,掛載WIN10原版ISO鏡像,
將bootmgr.efi bootmgr以及boot和efi文件夾這四個直接復制粘貼在第一步中你建的文件夾中;
第三步,在第一步你建的文件夾中新建文件夾,并命名為sources(注意,名字不能錯);
第四步,在sources中的文件如圖所示:
新建OEM文件夾,把系統ISO原版鏡像中的install.wim復制進去,注意!此時的BOOT.wim,并非ISO原版鏡像中的boot.wim,為了區分,我改成了大寫的BOOT,
這個BOOT.wim需要用DISM掛載install.wim,然后從掛載的install.wim里面提取名為winre.wim的文件,
將winre.wim復制粘貼進你在第三步中建的sources文件夾里面,并且改名為BOOT.wim(注意,如果在原版鏡像復制boot.wim,將無法從U盤啟動RE);
第五步,新建TXT文本文檔,改名為ResetConfig.xml;
里面請輸入:
第六步:進入OEM文件夾,
如圖所示建立此六個文件名,
ApplyCustomizations.CMD里面寫下:
OEMinfo.reg里面寫下:
PrepareCustomizations.CMD里面寫下:
ResetConfig.xml里面寫下:
ResetPartitions.txt里面寫下:
Unattend.xml里面寫下:
第七步,此時就可以把第一步所建的文件夾用軟碟通打包成ISO然后燒錄進U盤里,
或者你不喜歡用燒錄,也可以把第一步你建的文件夾里面的文件如圖:
直接把復制進U盤,最后用U盤啟動。
本人經過多次實踐發下如下圖所示情況,各位勿疑。此屬正常。
1511版本(目前來說1511版應該最好)如圖所示:
最后如果有童鞋嫌麻煩,不想動手,當然可以直接下載我自制做好了的
下載地址:
提取密碼:7aq5
想看到更多這類內容?去APP商店搜IT之家,天天都有小歡喜。
目前流行的開源大語言模型大抵都會有內容審查機制,這并非是新鮮事,因為之前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 是一個開源項目,它提供了一個純 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 是一個 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
與眾鄉親同饗。