🚀 CharLLaMa-35M
CharLLaMa-35M是一个微小的语言模型,采用了LLaMa架构,具备逐字符的分词功能。这一特性使其适用于各类实验场景,尤其是在BPE分词对单词及其部分的处理效果不佳时,它能发挥重要作用,具体应用场景如下:
- 生成式拼写检查器
- 文本分类:可替代
TfidfVectorizer(analyzer='char')
,即当基于字符n-gram的基线方法效果良好时
- 文本转录
- 拼写错误和打字错误检测
该模型拥有35,913,600个参数。
✨ 主要特性
预训练特点
本模型是为了在"文学工作室"项目中进行俄语诗歌实验而开发的。因此,预训练语料库包含了大量诗歌格式的文本,这可能会对下游任务产生影响。
预训练语料库的规模约为800亿个标记,且文本均为俄语。
训练曲线:
分词器
要使用该模型,需要安装特殊的分词器:
pip install git+https://github.com/Koziev/character-tokenizer
除了西里尔字母和标点符号外,这个分词器还支持特殊标记<s>
、</s>
、<pad>
和<unk>
。
由于这不是transformers库中的标准分词器,不能通过transformers.AutoTokenizer.from_pretrained
来加载,而应使用以下方式:
import charactertokenizer
...
tokenizer = charactertokenizer.CharacterTokenizer.from_pretrained('inkoziev/charllama-35M')
若要查看分词效果,可以使用以下代码片段:
prompt = '<s>У Лукоморья дуб зеленый\n'
encoded_prompt = tokenizer.encode(prompt, return_tensors='pt')
print('Tokenized prompt:', ' | '.join(tokenizer.decode([t]) for t in encoded_prompt[0]))
你将看到以|
分隔的标记列表:
Tokenized prompt: <s> | У | | Л | у | к | о | м | о | р | ь | я | | д | у | б | | з | е | л | е | н | ы | й |
📦 安装指南
安装特殊的分词器:
pip install git+https://github.com/Koziev/character-tokenizer
💻 使用示例
基础用法
使用transformers库,可将该模型作为普通的GPT模型(更准确地说,是transformers.LlamaModel)来使用:
import os
import torch
import transformers
import charactertokenizer
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model_name_or_path = 'inkoziev/charllama-35M'
model = transformers.AutoModelForCausalLM.from_pretrained(model_name_or_path)
model.to(device)
model.eval()
tokenizer = charactertokenizer.CharacterTokenizer.from_pretrained(model_path)
prompt = 'Меня зовут Ар'
encoded_prompt = tokenizer.encode(prompt, return_tensors='pt')
output_sequences = model.generate(
input_ids=encoded_prompt.to(device),
max_length=500,
temperature=1.0,
top_k=0,
top_p=0.8,
repetition_penalty=1.0,
do_sample=True,
num_return_sequences=5,
pad_token_id=0,
)
for o in output_sequences:
text = tokenizer.decode(o)
if text.startswith('<s>'):
text = text.replace('<s>', '')
text = text[:text.index('</s>')].strip()
print(text)
print('-'*80)
此外,所有适用于GPT模型的工具,如transformers.AutoModelForSequenceClassification,也都可以正常使用。
📄 许可证
本项目采用OpenRAIL许可证。