inkoziev commited on
Commit
5a830b2
1 Parent(s): 5764764

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +2 -63
README.md CHANGED
@@ -10,68 +10,7 @@ tags:
10
 
11
  ## CharGPT-96M
12
 
13
- Это крошечная языковая модель с **посимвольной** токенизацией для всевозможных экспериментов, когда задача решается плохо из-за BPE токенизации на слова и их части:
14
 
15
- 1) генеративные спеллчекеры
16
- 2) классификация текста: замена ```TfidfVectorizer(analyzer='char')```, т.е. когда хорошо сработал бейзлайн на символьных n-граммах
17
- 3) транскрипция текста
18
- 4) детекция орфографических ошибок, опечаток
19
-
20
- Размер модели - **96 миллионов** параметров.
21
-
22
- ### Особенности предварительной тренировки
23
-
24
- Я делал эту модель для экспериментов с русской поэзией в рамках проекта ["Литературная студия"](https://github.com/Koziev/verslibre).
25
- Поэтому корпус претрейна содержал значительное количество текстов поэтического формата.
26
- Это может повлиять на ваши downstream задачи.
27
-
28
- Объем корпуса претрейна - около **30B** токенов, тексты только на русском языке.
29
-
30
- Кривая loss_val: ![pretrain_loss_val](pretrain_loss_val.png)
31
-
32
-
33
- ### Использование
34
-
35
- С библиотекой transformerts модель можно использовать штатным способом как обычную GPT:
36
-
37
- ```
38
- import os
39
- import torch
40
- import transformers
41
-
42
- device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
43
-
44
- model_name_or_path = 'inkoziev/chargpt-96M'
45
- model = transformers.GPT2LMHeadModel.from_pretrained(model_name_or_path)
46
- model.to(device)
47
- model.eval()
48
-
49
- tokenizer = transformers.GPT2Tokenizer.from_pretrained(model_name_or_path)
50
- tokenizer.add_special_tokens({'bos_token': '<s>', 'eos_token': '</s>', 'pad_token': '<pad>'})
51
-
52
- prompt = '<s>У Лукоморья дуб зеленый\n'
53
- encoded_prompt = tokenizer.encode(prompt, return_tensors='pt')
54
-
55
- output_sequences = model.generate(
56
- input_ids=encoded_prompt.to(device),
57
- max_length=400,
58
- temperature=1.0,
59
- top_k=0,
60
- top_p=0.8,
61
- repetition_penalty=1.0,
62
- do_sample=True,
63
- num_return_sequences=5,
64
- pad_token_id=0,
65
- )
66
-
67
- for o in output_sequences:
68
- text = tokenizer.decode(o)
69
- if text.startswith('<s>'):
70
- text = text.replace('<s>', '')
71
- text = text[:text.index('</s>')].strip()
72
- print(text)
73
- print('-'*80)
74
- ```
75
-
76
- Также, будут работать все прочие инструменты для GPT моделей, например transformers.GPT2ForSequenceClassification.
77
 
 
10
 
11
  ## CharGPT-96M
12
 
13
+ Это крошечная языковая модель с **посимвольной** токенизацией для всевозможных экспериментов, когда задача решается плохо из-за BPE токенизации на слова и их части.
14
 
15
+ Подробное описание и примеры использования можно посмотреть в карточке модели [charllama-35M](https://huggingface.co/inkoziev/charllama-35M).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16