🚀 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 许可证。