Sarvam Translate GGUF
模型简介
模型特点
模型能力
使用案例
🚀 sarvam-translate GGUF模型
sarvam-translate GGUF模型是Sarvam AI推出的高级翻译模型,基于Gemma3 - 4B - IT构建,专为印度22种官方语言的全面文档级翻译而设计。它突破了孤立句子的翻译局限,能够处理长上下文输入、多样的内容类型和各种格式,致力于为传统上在大语言模型性能方面落后于高资源语言的印度语言提供高质量、上下文感知的翻译。
项目信息
属性 | 详情 |
---|---|
库名称 | transformers |
许可证 | gpl - 3.0 |
支持语言 | as、bn、brx、doi、gom、gu、en、hi、kn、ks、mai、ml、mni、mr、ne、or、pa、sa、sat、sd、ta、te、ur |
基础模型 | google/gemma - 3 - 4b - it |
基础模型关系 | 微调 |
任务类型 | 翻译 |
🚀 快速开始
以下代码片段展示了如何使用Transformers库调用Sarvam - Translate进行翻译:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "sarvamai/sarvam-translate"
# 加载分词器和模型
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name).to('cuda:0')
# 翻译任务
tgt_lang = "Hindi"
input_txt = "Be the change you wish to see in the world."
# 对话风格的消息提示
messages = [
{"role": "system", "content": f"Translate the text below to {tgt_lang}."},
{"role": "user", "content": input_txt}
]
# 应用对话模板来构建对话结构
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
# 分词并将输入移动到模型设备
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
# 生成输出
generated_ids = model.generate(
**model_inputs,
max_new_tokens=1024,
do_sample=True,
temperature=0.01,
num_return_sequences=1
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
output_text = tokenizer.decode(output_ids, skip_special_tokens=True)
print("Input:", input_txt)
print("Translation:", output_text)
✨ 主要特性
- 全面支持印度语言:专注于印度22种官方语言,确保翻译细致准确。
- 高级文档级翻译:能够翻译完整的文档、网页、演讲、教科书和科学文章,而非仅仅是孤立的句子。
- 多样格式处理:可以处理各种输入格式,包括Markdown、数字化内容(处理OCR错误)、包含嵌入式数学和化学方程式的文档以及代码文件(仅翻译注释)。
- 上下文感知与包容性:设计上尊重不同的上下文、格式、风格(正式/非正式),并确保包容性(例如,适当的性别归属)。
📦 安装指南
vLLM部署
服务器端
vllm serve sarvamai/sarvam-translate --port 8000 --dtype bfloat16
客户端
from openai import OpenAI
# 修改OpenAI的API密钥和API基础地址以使用vLLM的API服务器
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
models = client.models.list()
model = models.data[0].id
tgt_lang = 'Hindi'
input_txt = 'Be the change you wish to see in the world.'
messages = [{"role": "system", "content": f"Translate the text below to {tgt_lang}."}, {"role": "user", "content": input_txt}]
response = client.chat.completions.create(model=model, messages=messages, temperature=0.01)
output_text = response.choices[0].message.content
print("Input:", input_txt)
print("Translation:", output_text)
使用Sarvam API
参考Python客户端文档。 示例代码:
from sarvamai import SarvamAI
client = SarvamAI()
response = client.text.translate(
input="Be the change you wish to see in the world.",
source_language_code="en-IN",
target_language_code="hi-IN",
speaker_gender="Male",
model="sarvam-translate:v1",
)
📚 详细文档
模型生成细节
此模型使用llama.cpp在提交版本1f63e75f
下生成。
超越IMatrix的量化
测试一种新的量化方法,使用规则提升重要层的量化级别,使其高于标准IMatrix的使用级别。
发现标准IMatrix在低比特量化和MOE模型中表现不佳。因此,使用llama.cpp --tensor - type来提升选定层的量化级别。详情见使用llama.cpp进行层提升
这会创建更大的模型文件,但可以提高给定模型大小下的精度。
选择正确的模型格式
选择正确的模型格式取决于你的硬件能力和内存限制。
BF16(Brain Float 16)– 若支持BF16加速则使用
- 一种16位浮点格式,专为更快的计算而设计,同时保持良好的精度。
- 提供与FP32 相似的动态范围,但内存使用更低。
- 如果你的硬件支持BF16加速(检查设备规格),则推荐使用。
- 与FP32相比,适用于高性能推理且内存占用减少。
📌 适用场景: ✔ 你的硬件具有原生BF16支持(例如,较新的GPU、TPU)。 ✔ 你希望在节省内存的同时获得更高的精度。 ✔ 你计划将模型重新量化为其他格式。
📌 避免场景: ❌ 你的硬件不支持BF16(可能会回退到FP32并运行较慢)。 ❌ 你需要与缺乏BF16优化的旧设备兼容。
F16(Float 16)– 比BF16更广泛支持
- 一种16位浮点格式,具有高精度,但值的范围比BF16小。
- 适用于大多数支持FP16加速的设备(包括许多GPU和一些CPU)。
- 数值精度略低于BF16,但通常足以用于推理。
📌 适用场景: ✔ 你的硬件支持FP16但不支持BF16。 ✔ 你需要在速度、内存使用和准确性之间取得平衡。 ✔ 你在GPU或其他针对FP16计算优化的设备上运行。
📌 避免场景: ❌ 你的设备缺乏原生FP16支持(可能会比预期运行更慢)。 ❌ 你有内存限制。
混合精度模型(例如,bf16_q8_0
,f16_q4_K
)– 两全其美
这些格式选择性地量化非关键层,同时将关键层保持为全精度(例如,注意力和输出层)。
- 命名方式如
bf16_q8_0
(表示全精度BF16核心层 + 量化Q8_0其他层)。 - 在内存效率和准确性之间取得平衡,比完全量化的模型有所改进,同时不需要BF16/F16的全部内存。
📌 适用场景: ✔ 你需要比仅量化模型更高的准确性,但无法在所有地方使用全BF16/F16。 ✔ 你的设备支持混合精度推理。 ✔ 你希望在受限硬件上为生产级模型优化权衡。
📌 避免场景: ❌ 你的目标设备不支持混合或全精度加速。 ❌ 你在超严格的内存限制下操作(在这种情况下,使用完全量化的格式)。
量化模型(Q4_K,Q6_K,Q8等)– 适用于CPU和低VRAM推理
量化在尽可能保持准确性的同时减小模型大小和内存使用。
- 低比特模型(Q4_K) → 内存使用最少,可能精度较低。
- 高比特模型(Q6_K,Q8_0) → 准确性更好,需要更多内存。
📌 适用场景: ✔ 你在CPU上运行推理,需要优化的模型。 ✔ 你的设备VRAM较低,无法加载全精度模型。 ✔ 你希望在保持合理准确性的同时减少内存占用。
📌 避免场景: ❌ 你需要最高的准确性(全精度模型更适合此需求)。 ❌ 你的硬件有足够的VRAM用于更高精度的格式(BF16/F16)。
极低比特量化(IQ3_XS,IQ3_S,IQ3_M,Q4_K,Q4_0)
这些模型针对极高的内存效率进行了优化,非常适合低功耗设备或大规模部署,其中内存是关键限制因素。
-
IQ3_XS:超低比特量化(3位),具有极高的内存效率。
- 适用场景:最适合超低内存设备,即使Q4_K也太大的情况。
- 权衡:与更高比特量化相比,准确性较低。
-
IQ3_S:小块大小,实现最大内存效率。
- 适用场景:最适合低内存设备,其中IQ3_XS过于激进的情况。
-
IQ3_M:中等块大小,比IQ3_S具有更好的准确性。
- 适用场景:适用于低内存设备,其中IQ3_S过于受限的情况。
-
Q4_K:4位量化,具有逐块优化以提高准确性。
- 适用场景:最适合低内存设备,其中Q6_K太大的情况。
-
Q4_0:纯4位量化,针对ARM设备进行了优化。
- 适用场景:最适合基于ARM的设备或低内存环境。
超低比特量化(IQ1_S IQ1_M IQ2_S IQ2_M IQ2_XS IQ2_XSS)
- 超低比特量化(1 - 2位),具有极高的内存效率。
- 适用场景:最适合需要将模型放入非常受限内存的情况。
- 权衡:准确性非常低。可能无法按预期运行。使用前请充分测试。
模型格式选择总结表
模型格式 | 精度 | 内存使用 | 设备要求 | 最佳用例 |
---|---|---|---|---|
BF16 | 非常高 | 高 | 支持BF16的GPU/CPU | 减少内存的高速推理 |
F16 | 高 | 高 | 支持FP16的GPU/CPU | BF16不可用时的推理 |
Q4_K | 中 - 低 | 低 | CPU或低VRAM设备 | 内存受限的推理 |
Q6_K | 中 | 中等 | 内存更多的CPU | 量化时更高的准确性 |
Q8_0 | 高 | 中等 | 具有中等VRAM的GPU/CPU | 量化模型中最高的准确性 |
IQ3_XS | 低 | 非常低 | 超低内存设备 | 最大内存效率,低准确性 |
IQ3_S | 低 | 非常低 | 低内存设备 | 比IQ3_XS更实用 |
IQ3_M | 低 - 中 | 低 | 低内存设备 | 比IQ3_S准确性更好 |
Q4_0 | 低 | 低 | 基于ARM的/嵌入式设备 | Llama.cpp自动为ARM推理优化 |
超低比特(IQ1/2_*) | 非常低 | 极低 | 小型边缘/嵌入式设备 | 将模型放入极紧的内存,低准确性 |
混合(例如,bf16_q8_0 ) |
中 - 高 | 中等 | 支持混合精度的硬件 | 平衡性能和内存,关键层接近FP准确性 |
量子网络监控测试
测试说明
如果你发现这些模型有用,请帮助测试AI驱动的量子网络监控助手,进行量子就绪安全检查:
👉 量子网络监控
量子网络监控服务的完整开源代码可在我的GitHub仓库(名称中包含NetworkMonitor的仓库)中找到:量子网络监控源代码。如果你想自己进行量化,还可以找到我用于量化模型的代码GGUFModelBuilder
测试方法
选择一种AI助手类型:
TurboLLM
(GPT - 4.1 - mini)HugLLM
(Hugginface开源模型)TestLLM
(仅支持CPU的实验性模型)
测试内容
正在挑战小型开源模型在AI网络监控方面的极限,具体包括:
- 针对实时网络服务进行函数调用
- 模型可以多小,同时仍能处理:
- 自动化Nmap安全扫描
- 量子就绪检查
- 网络监控任务
各助手特点
-
TestLLM(当前实验性模型,在Hugging Face Docker空间的2个CPU线程上运行llama.cpp):
- ✅ 零配置设置
- ⏳ 加载时间30秒(推理速度慢,但无API成本)。由于成本低,无令牌限制。
- 🔧 寻求帮助! 如果你对边缘设备AI感兴趣,让我们合作!
-
TurboLLM(使用gpt - 4.1 - mini):
- **性能非常好,但不幸的是OpenAI按令牌收费。因此,令牌使用受到限制。
- 创建自定义cmd处理器以在量子网络监控代理上运行.NET代码
- 实时网络诊断和监控
- 安全审计
- 渗透测试(Nmap/Metasploit)
-
HugLLM(最新的开源模型):
- 🌐 在Hugging Face推理API上运行。使用Novita托管的最新模型表现相当不错。
测试示例命令
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a comprehensive security audit on my server"
- '"Create a cmd processor to .. (what ever you want)" 注意,你需要安装量子网络监控代理才能运行.NET代码。这是一个非常灵活和强大的功能,请谨慎使用!
最后说明
创建这些模型文件、运行量子网络监控服务以及支付Novita和OpenAI的推理费用的服务器都是我自掏腰包资助的。模型创建和量子网络监控项目背后的所有代码都是开源的。请随意使用你认为有用的任何内容。
如果你欣赏这些工作,请考虑请我喝杯咖啡 ☕。你的支持有助于支付服务成本,并让我能够为大家提高令牌限制。
我也欢迎工作机会或赞助。
感谢! 😊
📄 许可证
本项目采用GPL - 3.0许可证。



