模型概述
模型特點
模型能力
使用案例
🚀 多語言模型Kraken
Kraken多語言模型及架構是一個強大的語言處理工具,由多方合作打造,支持多種語言,能根據輸入智能選擇合適的模型生成文本,為不同語言場景提供靈活、準確的響應。
🚀 快速開始
加載和調用Kraken多語言模型
from transformers import AutoModelForCausalLM
device = "cuda:0" ## 若使用NVIDIA顯卡,設置為 "cuda:0";若使用Mac,設置為 "mps"
# 加載模型和配置:
model = AutoModelForCausalLM.from_pretrained("./kraken_model", trust_remote_code=True)
調用不同語言專家模型示例
調用德語專家模型
messages = [
{'role': 'system', 'content': 'Du bist ein freundlicher und hilfreicher deutscher KI-Assistent'},
{'role': 'user', 'content': "Erzähle mir eine kurze Gute Nacht Geschichte in 2 Sätzen."}
]
tokenizer = model.tokenizer
input_text = tokenizer.apply_chat_template(messages, tokenize=False)
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to("cuda:0")
output_ids = model.generate(input_ids, max_length=150)
print(tokenizer.decode(output_ids[0], skip_special_tokens=True))
調用英語專家模型
messages = [
{'role': 'system', 'content': '"You are a helpful AI Assistant'},
{'role': 'user', 'content': "Find the mass percentage of Ba in BaO"}
]
tokenizer = model.tokenizer
input_text = tokenizer.apply_chat_template(messages, tokenize=False)
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to(device)
output_ids = model.generate(input_ids, max_length=250)
print(tokenizer.decode(output_ids[0], skip_special_tokens=True))
調用意大利語專家模型
messages = [
{'role': 'system', 'content': 'Sei un utile assistente AI.'},
{'role': 'user', 'content': 'Hai qualche idea su cosa potrei fare a Roma?'}
]
tokenizer = model.tokenizer
input_text = tokenizer.apply_chat_template(messages, tokenize=False)
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to(device)
output_ids = model.generate(input_ids ,temperature=0.6, do_sample=True, top_p=0.9,top_k=20, max_length=500)
print(tokenizer.decode(output_ids[0], skip_special_tokens=True))
調用法語專家模型
messages = [
{'role': 'system', 'content': 'Vous êtes un assistant IA allemand sympathique et serviable'},
{'role': 'user', 'content': 'J\'aimerais faire du shopping à Paris. Que pouvez-vous recommander?'}
]
tokenizer = model.tokenizer
input_text = tokenizer.apply_chat_template(messages, tokenize=False)
print(input_text)
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to(device)
output_ids = model.generate(input_ids ,temperature=0.6, do_sample=True, top_p=0.9,top_k=20, max_length=250)
print(tokenizer.decode(output_ids[0], skip_special_tokens=True))
調用斯堪的納維亞語專家模型
messages = [
{'role': 'system', 'content': 'Du är en hjälpsam AI-assistent'},
{'role': 'user', 'content': 'Jag kommer från Tyskland och skulle vilja resa till Sverige. Är en färja över Danmark ett bra sätt att resa?'}
]
tokenizer = model.tokenizer
input_text = tokenizer.apply_chat_template(messages, tokenize=False)
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to(device)
output_ids = model.generate(input_ids ,temperature=0.1, do_sample=True, top_p=0.9,top_k=20, max_length=250)
print(tokenizer.decode(output_ids[0], skip_special_tokens=True))
切換專家模型和量化設置
進入kraken_model
文件夾的配置文件,可進行如下設置:
"models": {
"expert1": "VAGOsolutions/Llama-3-SauerkrautLM-8b-Instruct", # 切換到你選擇的德語/英語模型
"expert2": "mii-community/zefiro-7b-dpo-ITA", # 切換到你選擇的意大利語模型
"expert3": "paulml/Hermes-2-Pro-French", # 切換到你選擇的法語模型
"expert4": "norallm/normistral-7b-warm-instruct" # 切換到你選擇的斯堪的納維亞語模型
},
# 目前支持: "4bit","8bit" 和 "awq"
"quantization": {
"expert1": null,
"expert2": null,
"expert3": null,
"expert4": null
},
"router": "kraken_router",
# 根據你選擇的模型調整分詞器
"tokenizers": {
"expert1": "VAGOsolutions/Llama-3-SauerkrautLM-8b-Instruct",
"expert2": "mii-community/zefiro-7b-dpo-ITA",
"expert3": "paulml/Hermes-2-Pro-French",
"expert4": "norallm/normistral-7b-warm-instruct"
}
},
"model_type": "kraken",
"torch_dtype": "float32",
"transformers_version": "4.41.0"
}
✨ 主要特性
- 動態模型路由:使用序列分類模型,根據輸入的特徵將輸入路由到最合適的語言模型。
- 多語言模型支持:支持集成各種預訓練的因果語言模型,可根據上下文靈活響應。
- 可定製模板:支持使用預定義模板進行輸入格式化,增強模型對不同對話上下文的適應性。
- 可擴展配置:採用自定義配置設置,可輕鬆擴展和適應各種因果語言建模用例。
📚 詳細文檔
模型概述
Kraken多語言模型及架構 Kraken 是 Cognitive Computations、VAGO Solutions 和 Hyperspace.ai 的 共同成果。由 Fernando Fernandes Neto、David Golchinfar、Lucas Atkins 和 Eric Hartford 創建。該模型支持德語、英語、意大利語、法語、瑞典語、芬蘭語、丹麥語和挪威語。
Kraken架構是一個複雜的機器學習框架,專為動態文本生成任務設計。它利用Hugging Face的transformers庫來協調多個因果語言模型(CLMs),並根據輸入文本的上下文和內容智能地將輸入路由到不同的模型。該架構由一個自定義配置類(KrakenConfig)驅動,便於集成和管理各種組件,如分詞器、模型和路由機制。
選定的專家模型
"德語/英語專家": "VAGOsolutions/Llama-3-SauerkrautLM-8b-Instruct",
"意大利語功能專家": "mii-community/zefiro-7b-dpo-ITA",
"法語專家": "paulml/Hermes-2-Pro-French",
"斯堪的納維亞語專家": "norallm/normistral-7b-warm-instruct",
📄 免責聲明
我們必須告知用戶,儘管我們在數據清理方面已盡最大努力,但仍不能完全排除未審查內容出現的可能性。我們無法保證模型始終表現恰當。因此,如果您遇到任何問題或發現不適當的內容,請通過提供的聯繫方式告知我們。此外,需要明確的是,這些模型的許可並不構成法律建議,我們不對使用我們模型的第三方的行為負責。
📞 聯繫我們
如果您對用於商業應用的定製大語言模型感興趣,請通過我們的網站與我們聯繫。我們也非常感謝您的反饋和建議。
🤝 合作機會
我們熱切尋求對我們的初創公司VAGO solutions和Hyperspace的支持和投資,我們在這兩家公司不斷推進強大語言模型的開發,以滿足各種目的和需求。如果您對共同應對未來挑戰感興趣,我們誠摯地邀請您通過 VAGO solutions、Hyperspace.computer 和 Cognitive Computations 與我們聯繫。
📝 引用方式
Fernando Fernandes Neto, David Golchinfar, Lucas Atkins, Eric Hartford - Kraken: An OpenSource Collection of Experts Model, 2024



