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許可證。



