🚀 小型隨機DeepSeek語言模型
本項目是一個隨機初始化的模型,它借鑑了 deepseek-ai/deepseek-llm-67b-chat 的配置,但規模更小。該模型採用float16格式。
🚀 快速開始
模型說明
此模型隨機初始化,使用了 deepseek-ai/deepseek-llm-67b-chat 的配置,不過規模更小。需要注意的是,該模型採用的是float16格式。
代碼示例
import transformers
import torch
import os
from huggingface_hub import create_repo, upload_folder
source_model_id = 'deepseek-ai/deepseek-llm-67b-chat'
save_path = '/tmp/yujiepan/deepseek-llm-tiny-random'
repo_id = 'yujiepan/deepseek-llm-tiny-random'
config = transformers.AutoConfig.from_pretrained(
source_model_id, trust_remote_code=True)
config.hidden_size = 2
config.intermediate_size = 4
config.num_attention_heads = 2
config.num_hidden_layers = 2
config.num_key_value_heads = 1
model = transformers.AutoModelForCausalLM.from_config(
config, trust_remote_code=True)
model = model.half()
model.save_pretrained(save_path)
tokenizer = transformers.AutoTokenizer.from_pretrained(
source_model_id, trust_remote_code=True)
tokenizer.save_pretrained(save_path)
result = transformers.pipelines.pipeline(
'text-generation',
model=model.float(), tokenizer=tokenizer)('Hello')
print(result)
os.system(f'ls -alh {save_path}')
create_repo(repo_id, exist_ok=True)
upload_folder(repo_id=repo_id, folder_path=save_path)
💻 使用示例
基礎用法
import transformers
import torch
import os
from huggingface_hub import create_repo, upload_folder
source_model_id = 'deepseek-ai/deepseek-llm-67b-chat'
save_path = '/tmp/yujiepan/deepseek-llm-tiny-random'
repo_id = 'yujiepan/deepseek-llm-tiny-random'
config = transformers.AutoConfig.from_pretrained(
source_model_id, trust_remote_code=True)
config.hidden_size = 2
config.intermediate_size = 4
config.num_attention_heads = 2
config.num_hidden_layers = 2
config.num_key_value_heads = 1
model = transformers.AutoModelForCausalLM.from_config(
config, trust_remote_code=True)
model = model.half()
model.save_pretrained(save_path)
tokenizer = transformers.AutoTokenizer.from_pretrained(
source_model_id, trust_remote_code=True)
tokenizer.save_pretrained(save_path)
result = transformers.pipelines.pipeline(
'text-generation',
model=model.float(), tokenizer=tokenizer)('Hello')
print(result)
os.system(f'ls -alh {save_path}')
create_repo(repo_id, exist_ok=True)
upload_folder(repo_id=repo_id, folder_path=save_path)
高級用法
上述代碼已經涵蓋了模型的基本使用流程,若有更復雜的需求,可根據實際情況調整 config
中的參數,例如修改 hidden_size
、intermediate_size
等,以改變模型的規模和性能。
config.hidden_size = 4
config.intermediate_size = 8
📚 詳細文檔
模型參數說明
屬性 |
詳情 |
模型類型 |
基於transformers庫的文本生成模型 |
訓練數據 |
隨機初始化,未使用特定訓練數據 |
代碼功能說明
- 導入必要的庫:導入
transformers
、torch
、os
以及 huggingface_hub
中的相關函數。
- 設置模型和保存路徑:指定源模型ID、保存路徑和倉庫ID。
- 配置模型參數:從源模型加載配置,並修改部分參數,如隱藏層大小、中間層大小等。
- 創建模型和分詞器:根據配置創建模型和分詞器,並將模型轉換為float16格式。
- 保存模型和分詞器:將模型和分詞器保存到指定路徑。
- 進行文本生成:使用
transformers.pipelines.pipeline
進行文本生成,並打印結果。
- 上傳模型到Hugging Face:創建倉庫並將保存的模型上傳到Hugging Face。
注意事項
- 該模型是隨機初始化的,可能無法生成有意義的文本。
- 模型採用float16格式,可減少內存佔用,但可能會影響精度。