模型概述
模型特點
模型能力
使用案例
🚀 OPEN-SOLAR-KO-10.7B-GGUF
OPEN-SOLAR-KO-10.7B-GGUF 包含了 beomi/OPEN-SOLAR-KO-10.7B 模型的 GGUF 格式文件,方便用戶在多種客戶端和庫中使用該模型進行文本生成。
🚀 快速開始
模型信息
- 模型創建者:beomi
- 原始模型:beomi/OPEN-SOLAR-KO-10.7B
關於 GGUF
GGUF 是 llama.cpp 團隊在 2023 年 8 月 21 日推出的一種新格式,它取代了不再受 llama.cpp 支持的 GGML 格式。以下是一些已知支持 GGUF 的客戶端和庫:
- llama.cpp:GGUF 的源項目,提供了命令行界面和服務器選項。
- text-generation-webui:最廣泛使用的 Web UI,具有許多功能和強大的擴展,支持 GPU 加速。
- KoboldCpp:功能齊全的 Web UI,支持跨所有平臺和 GPU 架構的 GPU 加速,特別適合用於講故事。
- GPT4All:一個免費開源的本地運行 GUI,支持 Windows、Linux 和 macOS,並具備完整的 GPU 加速功能。
- LM Studio:一個易於使用且功能強大的本地 GUI,適用於 Windows 和 macOS(Silicon),支持 GPU 加速。截至 2023 年 11 月 27 日,Linux 版本處於測試階段。
- LoLLMS Web UI:一個很棒的 Web UI,具有許多有趣和獨特的功能,包括一個完整的模型庫,方便用戶選擇模型。
- Faraday.dev:一個有吸引力且易於使用的基於角色的聊天 GUI,適用於 Windows 和 macOS(包括 Silicon 和 Intel),支持 GPU 加速。
- llama-cpp-python:一個支持 GPU 加速的 Python 庫,支持 LangChain 並提供與 OpenAI 兼容的 API 服務器。
- candle:一個專注於性能的 Rust 機器學習框架,包括 GPU 支持且易於使用。
- ctransformers:一個支持 GPU 加速的 Python 庫,支持 LangChain 並提供與 OpenAI 兼容的 AI 服務器。截至編寫本文時(2023 年 11 月 27 日),ctransformers 已經很長時間沒有更新,並且不支持許多最新的模型。
📦 安裝指南
安裝必要的庫
推薦使用 huggingface-hub
Python 庫來下載模型文件:
pip3 install huggingface-hub
若要加速高速連接(1Gbit/s 或更高)下的下載速度,可安裝 hf_transfer
:
pip3 install hf_transfer
下載模型文件
手動指定下載單個文件
可以使用以下命令將單個模型文件高速下載到當前目錄:
huggingface-cli download MaziyarPanahi/OPEN-SOLAR-KO-10.7B-GGUF OPEN-SOLAR-KO-10.7B-GGUF.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
若要使用 hf_transfer
加速下載,可設置環境變量 HF_HUB_ENABLE_HF_TRANSFER
為 1
:
HF_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download MaziyarPanahi/OPEN-SOLAR-KO-10.7B-GGUF OPEN-SOLAR-KO-10.7B-GGUF.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Windows 命令行用戶可在下載命令前運行 set HF_HUB_ENABLE_HF_TRANSFER=1
來設置環境變量。
批量下載文件
可以使用通配符模式一次性下載多個文件:
huggingface-cli download [MaziyarPanahi/OPEN-SOLAR-KO-10.7B-GGUF](https://huggingface.co/MaziyarPanahi/OPEN-SOLAR-KO-10.7B-GGUF) --local-dir . --local-dir-use-symlinks False --include='*Q4_K*gguf'
更多關於使用 huggingface-cli
下載文件的文檔,請參考:HF -> Hub Python Library -> Download files -> Download from the CLI。
在 text-generation-webui 中下載
在 text-generation-webui
的“Download Model” 下,輸入模型倉庫地址:MaziyarPanahi/OPEN-SOLAR-KO-10.7B-GGUF,並在下方輸入要下載的具體文件名,如:OPEN-SOLAR-KO-10.7B-GGUF.Q4_K_M.gguf,然後點擊 “Download”。
💻 使用示例
llama.cpp 命令示例
確保使用的 llama.cpp
版本為提交 d0cee0d 或更高版本。以下是一個示例命令:
./main -ngl 35 -m OPEN-SOLAR-KO-10.7B-GGUF.Q4_K_M.gguf --color -c 32768 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant"
-ngl 32
:將其更改為要卸載到 GPU 的層數。如果沒有 GPU 加速,請移除該參數。-c 32768
:將其更改為所需的序列長度。對於擴展序列模型(如 8K、16K、32K),必要的 RoPE 縮放參數會從 GGUF 文件中讀取,並由 llama.cpp 自動設置。請注意,更長的序列長度需要更多的資源,因此可能需要減小該值。- 如果想要進行聊天式對話,可將
-p <PROMPT>
參數替換為-i -ins
。 更多參數及使用方法,請參考 the llama.cpp documentation。
在 text-generation-webui 中運行
更多說明可在 text-generation-webui 文檔中找到,地址為:text-generation-webui/docs/04 ‐ Model Tab.md。
使用 Python 代碼運行
可以使用 llama-cpp-python 或 ctransformers 庫從 Python 中使用 GGUF 模型。截至編寫本文時(2023 年 11 月 27 日),ctransformers 已經很長時間沒有更新,並且不支持許多最新的模型,因此建議使用 llama-cpp-python。
安裝 llama-cpp-python 包
根據系統運行以下命令之一:
# 無 GPU 加速的基礎 ctransformers
pip install llama-cpp-python
# 使用 NVidia CUDA 加速
CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python
# 或使用 OpenBLAS 加速
CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" pip install llama-cpp-python
# 或使用 CLBLast 加速
CMAKE_ARGS="-DLLAMA_CLBLAST=on" pip install llama-cpp-python
# 或使用 AMD ROCm GPU 加速(僅適用於 Linux)
CMAKE_ARGS="-DLLAMA_HIPBLAS=on" pip install llama-cpp-python
# 或使用 Metal GPU 加速(僅適用於 macOS 系統)
CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python
# 在 Windows 中,在 PowerShell 中設置變量 CMAKE_ARGS,例如對於 NVidia CUDA:
$env:CMAKE_ARGS = "-DLLAMA_OPENBLAS=on"
pip install llama-cpp-python
簡單的 llama-cpp-python 示例代碼
from llama_cpp import Llama
# 設置 gpu_layers 為要卸載到 GPU 的層數。如果系統沒有 GPU 加速,將其設置為 0。
llm = Llama(
model_path="./OPEN-SOLAR-KO-10.7B-GGUF.Q4_K_M.gguf", # 先下載模型文件
n_ctx=32768, # 要使用的最大序列長度 - 請注意,更長的序列長度需要更多的資源
n_threads=8, # 要使用的 CPU 線程數,根據系統和性能進行調整
n_gpu_layers=35 # 如果有 GPU 加速,要卸載到 GPU 的層數
)
# 簡單的推理示例
output = llm(
"<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant", # 提示
max_tokens=512, # 生成最多 512 個令牌
stop=["</s>"], # 示例停止令牌 - 不一定適用於此特定模型!使用前請檢查。
echo=True # 是否回顯提示
)
# 聊天完成 API
llm = Llama(model_path="./OPEN-SOLAR-KO-10.7B-GGUF.Q4_K_M.gguf", chat_format="llama-2") # 根據使用的模型設置 chat_format
llm.create_chat_completion(
messages = [
{"role": "system", "content": "You are a story writing assistant."},
{
"role": "user",
"content": "Write a story about llamas."
}
]
)
與 LangChain 一起使用
以下是關於如何將 llama-cpp-python 和 ctransformers 與 LangChain 一起使用的指南:
量化方法說明
點擊查看詳情
新的量化方法如下:
- GGML_TYPE_Q2_K:“type-1” 2 位量化,超級塊包含 16 個塊,每個塊有 16 個權重。塊的縮放和最小值使用 4 位量化。最終每個權重有效使用 2.5625 位(bpw)。
- GGML_TYPE_Q3_K:“type-0” 3 位量化,超級塊包含 16 個塊,每個塊有 16 個權重。縮放使用 6 位量化。最終使用 3.4375 bpw。
- GGML_TYPE_Q4_K:“type-1” 4 位量化,超級塊包含 8 個塊,每個塊有 32 個權重。縮放和最小值使用 6 位量化。最終使用 4.5 bpw。
- GGML_TYPE_Q5_K:“type-1” 5 位量化。與 GGML_TYPE_Q4_K 具有相同的超級塊結構,最終使用 5.5 bpw。
- GGML_TYPE_Q6_K:“type-0” 6 位量化。超級塊包含 16 個塊,每個塊有 16 個權重。縮放使用 8 位量化。最終使用 6.5625 bpw。



