🚀 Kexer模型
Kexer模型是一系列開源的生成式文本模型,它們在Kotlin Exercices數據集上進行了微調。本倉庫是微調後的Deepseek-coder-1.3b模型,採用Hugging Face Transformers格式。
🚀 快速開始
Kexer模型可用於文本生成任務,以下是使用示例。
💻 使用示例
基礎用法
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = 'JetBrains/deepseek-coder-1.3B-kexer'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name).to('cuda')
input_text = """\
This function takes an integer n and returns factorial of a number:
fun factorial(n: Int): Int {\
"""
input_ids = tokenizer.encode(
input_text, return_tensors='pt'
).to('cuda')
output = model.generate(
input_ids, max_length=60, num_return_sequences=1,
early_stopping=True, pad_token_id=tokenizer.eos_token_id,
)
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
print(generated_text)
高級用法
和基礎模型一樣,我們可以使用FIM。要實現這一點,必須使用以下格式:
'<|fim▁begin|>' + prefix + '<|fim▁hole|>' + suffix + '<|fim▁end|>'
📚 詳細文檔
訓練設置
該模型在一塊A100 GPU上進行訓練,使用了以下超參數:
超參數 |
值 |
warmup |
10% |
max_lr |
1e - 4 |
scheduler |
linear |
total_batch_size |
256(每步約130K個標記) |
num_epochs |
4 |
更多關於微調的詳細信息可在技術報告中找到(即將發佈!)。
微調數據
為了微調此模型,我們使用了合成生成的Kotlin Exercices數據集中的15K個示例。每個示例都遵循HumanEval格式。該數據集總共包含約350萬個標記。
評估
為了進行評估,我們使用了Kotlin HumanEval數據集,該數據集包含由人類專家翻譯成Kotlin的HumanEval中的所有161個任務。你可以在數據集頁面上找到獲得我們評估結果所需的預處理詳細信息,包括運行代碼。
以下是我們的評估結果:
模型名稱 |
Kotlin HumanEval通過率 |
Deepseek-coder-1.3B |
26.71 |
Deepseek-coder-1.3B-Kexer |
36.65 |
倫理考量與侷限性
Deepseek-coder-1.3B-Kexer是一項新技術,使用時存在風險。到目前為止所進行的測試並未涵蓋,也不可能涵蓋所有場景。因此,和所有大語言模型一樣,Deepseek-coder-1.3B-Kexer的潛在輸出無法提前預測,在某些情況下,該模型可能會對用戶的提示產生不準確或令人反感的響應。該模型是在特定的數據格式(Kotlin任務)上進行微調的,偏離這種格式也可能導致對用戶查詢的不準確或不理想的響應。因此,在部署Deepseek-coder-1.3B-Kexer的任何應用程序之前,開發人員應該針對其具體應用對模型進行安全測試和調整。
📄 許可證
本項目採用Apache-2.0許可證。