🚀 Gemma-2B 微調 Python 模型
Gemma-2B 微調 Python 模型是基於 Gemma-2B 架構的深度學習模型,專門針對 Python 編程任務進行了微調。該模型旨在理解 Python 代碼,通過提供建議、補全代碼片段或進行修正,幫助開發者提高代碼質量和效率。
✨ 主要特性
- 代碼補全:根據部分輸入自動補全代碼片段。
- 語法修正:識別 Python 代碼中的語法錯誤並提供修正建議。
- 代碼質量提升:提供建議以增強代碼的可讀性、效率和可維護性。
- 調試輔助:通過識別潛在錯誤或低效之處,為調試 Python 代碼提供見解和建議。
📦 安裝指南
安裝 Gemma Python 包
pip install -q -U transformers==4.38.0
pip install torch
💻 使用示例
基礎用法
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("Mr-Vicky-01/Gemma-2B-Finetuined-pythonCode")
model = AutoModelForCausalLM.from_pretrained("Mr-Vicky-01/Gemma-2B-Finetuined-pythonCode")
query = input('enter a query:')
prompt_template = f"""
<start_of_turn>user based on given instruction create a solution\n\nhere are the instruction {query}
<end_of_turn>\n<start_of_turn>model
"""
prompt = prompt_template
encodeds = tokenizer(prompt, return_tensors="pt", add_special_tokens=True).input_ids
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model.to(device)
inputs = encodeds.to(device)
generated_ids = model.generate(inputs, max_new_tokens=1000, do_sample=False, pad_token_id=tokenizer.eos_token_id)
ans = ''
for i in tokenizer.decode(generated_ids[0], skip_special_tokens=True).split('<end_of_turn>')[:2]:
ans += i
model_answer = ans.split("model")[1].strip()
print(model_answer)
📚 詳細文檔
模型詳情
屬性 |
詳情 |
模型名稱 |
Gemma-2B 微調 Python 模型 |
模型類型 |
深度學習模型 |
基礎模型 |
Gemma-2B |
語言 |
Python |
任務 |
Python 代碼理解與輔助 |
推理
在我們的筆記本中使用該模型的方法:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("Mr-Vicky-01/Gemma-2B-Finetuined-pythonCode")
model = AutoModelForCausalLM.from_pretrained("Mr-Vicky-01/Gemma-2B-Finetuined-pythonCode")
query = input('enter a query:')
prompt_template = f"""
<start_of_turn>user based on given instruction create a solution\n\nhere are the instruction {query}
<end_of_turn>\n<start_of_turn>model
"""
prompt = prompt_template
encodeds = tokenizer(prompt, return_tensors="pt", add_special_tokens=True).input_ids
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model.to(device)
inputs = encodeds.to(device)
generated_ids = model.generate(inputs, max_new_tokens=1000, do_sample=False, pad_token_id=tokenizer.eos_token_id)
ans = ''
for i in tokenizer.decode(generated_ids[0], skip_special_tokens=True).split('<end_of_turn>')[:2]:
ans += i
model_answer = ans.split("model")[1].strip()
print(model_answer)
📄 許可證
本項目採用 MIT 許可證。