🚀 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許可證。