yiwenX's picture
更新 README 文档
37c862e verified
---
library_name: transformers
tags: ["tokenizer", "code", "python", "gpt2"]
---
# Python Code Tokenizer
专门针对 Python 代码优化的分词器,基于 GPT-2 tokenizer 训练而成。
## 模型详情
### 模型描述
这是一个专门针对 Python 代码优化的分词器,通过在大规模 Python 代码数据集上训练得到,能够更好地理解和处理 Python 语法结构。
- **基础模型:** GPT-2 Tokenizer
- **模型类型:** BPE (Byte Pair Encoding) Tokenizer
- **语言:** Python 代码
- **词汇表大小:** 52,000 tokens
- **许可证:** MIT
- **训练数据:** CodeParrot Clean Dataset
### 模型来源
- **基础分词器:** `openai-community/gpt2`
- **训练数据集:** `codeparrot/codeparrot-clean`
## 使用方法
### 快速开始
```python
from transformers import AutoTokenizer
# 加载分词器
tokenizer = AutoTokenizer.from_pretrained("your-username/code-search-net-tokenizer")
# 对Python代码进行分词
code = """
def hello_world():
print("Hello, World!")
return True
"""
tokens = tokenizer.encode(code)
print(f"Token IDs: {tokens}")
# 解码回原文
decoded = tokenizer.decode(tokens)
print(f"Decoded: {decoded}")
```
### 主要特性
- 优化了对 Python 关键字的处理(def, class, import 等)
- 更好地处理缩进和代码格式
- 支持 Python 特有的语法结构
- 减少了对代码的过度分词
## 技术细节
### 训练数据
使用 CodeParrot Clean 数据集,包含清洗后的高质量 Python 代码。
### 训练过程
- **训练方法:** 增量训练 (train_new_from_iterator)
- **词汇表大小:** 52,000 tokens
- **批处理大小:** 1,000 样本/批次
## 性能评估
相比原始 GPT-2 分词器,在 Python 代码上的改进:
- 更少的token数量(平均减少约20%)
- 更好的代码结构保留
- 提升下游任务性能
## 使用限制
- 主要针对 Python 代码优化,其他编程语言效果可能不佳
- 不适用于自然语言文本处理
- 对非ASCII字符支持有限
## 如何获取帮助
如有问题或建议,请在 GitHub Issues 中提出。