模型简介
模型特点
模型能力
使用案例
🚀 TURNA - GGUF
本项目提供了 boun-tabi-LMG 的 TURNA 模型的 GGUF 格式文件,方便用户使用该模型进行相关任务。
🚀 快速开始
本仓库包含了 boun-tabi-LMG 的 TURNA 模型的 GGUF 格式文件。你可以根据以下内容了解 GGUF 格式、模型的使用方法、下载方式等信息。
✨ 主要特性
- 多客户端支持:GGUF 格式得到了众多客户端和库的支持,如 llama.cpp、text-generation-webui 等。
- 多种量化文件:提供了不同比特、量化方法和大小的文件,以满足不同的使用场景和精度需求。
- 易于下载:可以使用
huggingface-hub
库快速下载所需的模型文件。
📦 安装指南
安装依赖库
推荐使用 huggingface-hub
Python 库进行模型文件的下载:
pip3 install huggingface-hub
下载模型文件
可以使用以下命令将单个模型文件高速下载到当前目录:
huggingface-cli download helizac/TURNA_GGUF TURNA_Q4_K.gguf --local-dir . --local-dir-use-symlinks False
如果你想一次下载多个文件,可以使用模式匹配:
huggingface-cli download helizac/TURNA_GGUF --local-dir . --local-dir-use-symlinks False --include='*Q4_K*gguf'
更多关于 huggingface-cli
下载的文档,请参考:HF -> Hub Python Library -> Download files -> Download from the CLI。
💻 使用示例
基础用法
可以从以下链接复制笔记本: https://colab.research.google.com/drive/1vH3V5kFn1mlhAUtH4E-diq-6DhWBCT3T?usp=sharing
或者使用以下代码:
%%shell
# 更新并安装依赖
apt update && apt install -y curl build-essential
pip install huggingface_hub
# 使用 rustup 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
# 将 Rust 添加到 PATH
source $HOME/.cargo/env
# 从 Huggingface 克隆 Candle
git clone https://github.com/huggingface/candle.git
%cd candle
import os
os.environ['PATH'] += ':' + os.path.expanduser('~/.cargo/bin')
%%shell
# 为 cargo 添加 CUDA 特性
cargo add --git https://github.com/huggingface/candle.git candle-core --features "cuda" --package candle-core
# 使用具有读取权限的 CLI 登录 Hugging Face
huggingface-cli login
import subprocess
import os
def run_turna_gguf(prompt="Bir varmış bir yokmuş, ", temperature=1, quantization_method="Q8_1", config_file="config.json", model_id = "helizac/TURNA_GGUF"):
cmd = (
f'cargo run --example quantized-t5 --release -- '
f'--model-id "{model_id}" '
f'--prompt "[S2S]{prompt}<EOS>" '
f'--temperature {temperature} '
f'--weight-file "TURNA_{quantization_method}.gguf" '
f'--config-file "{config_file}" '
)
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
for line in process.stdout:
print(line, end='') # 打印命令输出的每一行
process.stdout.close()
return_code = process.wait()
if return_code != 0:
print(f"命令 '{cmd}' 失败,错误代码为 {return_code}")
run_turna_gguf("Bir varmış bir yokmuş") # shingaava’nın yöneticisi, kâhyası vs garip şeyler ihityacına göre Mudanya'nın ileri gelen köylerine kadar gitmiş, kâhya Uşak’a kadar gelmiş, yatacak yer dahi yoksa kışı bir Osmanlı zabitleri olarak geçirirmiş.Diğerleri falan bilmemnereye, efendi masiste yazlık, geçici işlerde de kışları olamıyormuş. Japonlar da gelmesini sabırsızlıkla beklermişiz. Oysa her köyde yaşamıyormuş. Sonra korsanlar Karamürsel’e her geldiğinde gelirmişiz, durmadan, her mayıstaki yataverememi diye şikayet ederlermiş. Her isteyen gemiyle gelirmiş, bazen birkaç sandık güruhla kaçırtırmış. Bir defasında bir arkadaşım seyahate muavin olarak İstanbul ve Adapazarı’ndan teyzesinin yanına baradan. Yazın sonu şöyle kara olan mahalleye geçer, oraya, annem gibi, bir başkasının yanına gidermiş tüm olarak. O da bütün herkese sormuş. Hac için gelirlermiş. Anlatmaktan vaz geçmiş, söylenerek işaretlemiş buradayan ülkeye. Bursa’nın neresine gidermiş anlayamadığımı söyler, biz çoktan kimsenin sırrını açıklamamışız. Dostumuz olan Emine Teyze’miz hükümet hesap evine, hatta yüzüne bile bakmayız. Artık memlekete yerlerini bulurmuş, “tatlı canınız oralardan geçiyormuşa. Annemin oradaki yataverenleri ziyareti, yapmam dediği fiil ayakta işnallah demişim. Bu arada Tiran-Japon’muş. Sohbet görene, şuursuz bir hergele nasıl merasim tanıda ilişkilerin zirvesine ulaşmış, sonra Hacettepe’yle kesişiriş ve dumanlar çıkar yengemden, hakkını isteriz, geç konuşmasının çok üstü kapalı söylemeleri, ocağında besenebiliy uşaklar, durumu öğrenmiş ben ayrı muamele görmüşüz. Ohooo gülmezsin tabi, paşa da andımıza saygısından bir sadakaya göndertir, efendim evlenmişiz. Senin gelin olamamış akrabalıkJagyok adı altında ölü gelirlermiş. Ben burada bestenasarya’daki balığın çekirgeleri de pek severim. Dede’ye böbreğini bile götürmek günlere getirirmiş. ( Taoyi ile akrabamızın). Sen beni tanımazsın, üreyin, bol bol türbeleri varmış. Yakala onu ve Tanman’a yatacak yer olmadığı için kimsenin haberini eksikmiş Tepe hanımın rahmetliye anlatmaya. bildiğiniz ölülermiş bunlar karılar ve insanlar MEfcan’ı yindeikmiş, alayında kalsınlar hep Remzi Görki kendisini o da lerine doğuranın ağına ihtiyacım var dermiş
513 tokens generated (5.11 token/s)
函数 run_turna_gguf
解释
参数说明:
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
prompt |
str |
"Bir varmış bir yokmuÅŸ, " | 提供给模型的初始文本 |
temperature |
float |
1 | 控制输出的随机性,值越高输出越随机,值越低输出越确定 |
quantization_method |
str |
"Q8_1" | 指定使用的量化方法,选择相应的 .gguf 权重文件 |
config_file |
str |
"config.json" | 包含模型特定设置的配置文件路径 |
model_id |
str |
"helizac/TURNA_GGUF" | Hugging Face 仓库中模型的标识符 |
📚 详细文档
关于 GGUF
GGUF 是 llama.cpp 团队在 2023 年 8 月 21 日引入的一种新格式,它是 GGML 的替代品,而 GGML 已不再受 llama.cpp 支持。
以下是已知支持 GGUF 的客户端和库的不完全列表:
- llama.cpp:GGUF 的源项目,提供 CLI 和服务器选项。
- text-generation-webui:最广泛使用的 Web UI,具有许多功能和强大的扩展,支持 GPU 加速。
- KoboldCpp:功能齐全的 Web UI,支持所有平台和 GPU 架构的 GPU 加速,特别适合讲故事。
- GPT4All:免费开源的本地运行 GUI,支持 Windows、Linux 和 macOS,具有完整的 GPU 加速。
- LM Studio:适用于 Windows 和 macOS(Silicon)的易于使用且功能强大的本地 GUI,支持 GPU 加速,截至 2023 年 11 月 27 日,Linux 版本处于测试阶段。
- LoLLMS Web UI:一个很棒的 Web UI,具有许多有趣和独特的功能,包括一个完整的模型库,便于模型选择。
- Faraday.dev:一个有吸引力且易于使用的基于角色的聊天 GUI,适用于 Windows 和 macOS(Silicon 和 Intel),支持 GPU 加速。
- llama-cpp-python:一个支持 GPU 加速、LangChain 和 OpenAI 兼容 API 服务器的 Python 库。
- candle:一个专注于性能的 Rust ML 框架,包括 GPU 支持和易于使用。
- ctransformers:一个支持 GPU 加速、LangChain 和 OpenAI 兼容 AI 服务器的 Python 库。截至 2023 年 11 月 27 日,ctransformers 已经很长时间没有更新,不支持许多最新的模型。
提示模板
[S2S]prompt<EOS>
兼容性
这些量化的 GGUFv2 文件与 Hugging Face 的 candle 兼容。这些模型是使用 Rust 和 Python 通过 candle、cargo 进行量化的。
提供的文件
名称 | 比特 | 量化方法 | 大小 | 使用场景 |
---|---|---|---|---|
TURNA_Q2K.gguf | 2 | Q2K | 0.36 GB | 最小尺寸,最低精度 |
TURNA_Q3K.gguf | 3 | Q3K | 0.48 GB | 非常低的精度 |
TURNA_Q4_0.gguf | 4 | Q4_0 | 0.63 GB | 低精度,级别 0 |
TURNA_Q4_1.gguf | 4 | Q4_1 | 0.70 GB | 略优于 Q4_0 |
TURNA_Q4K.gguf | 4 | Q4K | 0.63 GB | 内核优化,低精度 |
TURNA_Q5_0.gguf | 5 | Q5_0 | 0.77 GB | 中等精度,级别 0 |
TURNA_Q5_1.gguf | 5 | Q5_1 | 0.84 GB | 优于 Q5_0 |
TURNA_Q5K.gguf | 5 | Q5K | 0.77 GB | 内核优化,中等精度 |
TURNA_Q6K.gguf | 6 | Q6K | 0.91 GB | 精度高于 Q5K |
TURNA_Q8_0.gguf | 8 | Q8_0 | 1.21 GB | 高精度,级别 0 |
TURNA_Q8_1.gguf | 8 | Q8_1 | 1.29 GB | 优于 Q8_0 |
TURNA_Q8K.gguf | 8 | Q8K | 1.30 GB | 内核优化,量化文件中最高精度 |
TURNA_F16.gguf | 16 | F16 | 2.28 GB | 高精度,较小尺寸 |
TURNA_F32.gguf | 32 | F32 | 4.57 GB | 最高精度,最大尺寸 |
🔧 技术细节
- 当前限制:目前,TURNA_GGUF 仅支持 CPU 使用,正在寻求实现 CUDA 支持。相关问题已在 GitHub 上提出,如果问题得到解决,将进行实现。
- 编译问题:huggingface/candle 框架附带了许多其他依赖项,编译时间可能会很长。需要编写一个简化版本,仅运行量化的 t5 模型。
📄 许可证
该模型仅供非商业学术研究使用。
@misc{uludoÄŸan2024turna,
title={TURNA: A Turkish Encoder-Decoder Language Model for Enhanced Understanding and Generation},
author={Gökçe Uludoğan and Zeynep Yirmibeşoğlu Balal and Furkan Akkurt and Melikşah Türker and Onur Güngör and Susan Üsküdarlı},
year={2024},
eprint={2401.14373},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
致谢与贡献
感谢 boun-tabi-LMG 团队的工作!
GGUF 模型卡
{Furkan Erdi}
原始模型卡:BOUN TABI Language Modeling Group's TURNA
TURNA 📱
@misc{uludoÄŸan2024turna,
title={TURNA: A Turkish Encoder-Decoder Language Model for Enhanced Understanding and Generation},
author={Gökçe Uludoğan and Zeynep Yirmibeşoğlu Balal and Furkan Akkurt and Melikşah Türker and Onur Güngör and Susan Üsküdarlı},
year={2024},
eprint={2401.14373},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
⚠️ 重要提示
手动下载者请注意:几乎不需要克隆整个仓库!本仓库提供了多种不同的量化格式,大多数用户只需要选择并下载单个文件。
💡 使用建议
推荐使用
huggingface-hub
Python 库进行模型文件的下载,它可以高速下载所需的单个模型文件。同时,可以根据自己的需求选择合适的量化方法和文件大小。



