Instructions to use inkoziev/charllama-35M with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use inkoziev/charllama-35M with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="inkoziev/charllama-35M")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("inkoziev/charllama-35M") model = AutoModelForCausalLM.from_pretrained("inkoziev/charllama-35M") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use inkoziev/charllama-35M with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "inkoziev/charllama-35M" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "inkoziev/charllama-35M", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/inkoziev/charllama-35M
- SGLang
How to use inkoziev/charllama-35M with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "inkoziev/charllama-35M" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "inkoziev/charllama-35M", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "inkoziev/charllama-35M" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "inkoziev/charllama-35M", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use inkoziev/charllama-35M with Docker Model Runner:
docker model run hf.co/inkoziev/charllama-35M
CharLLaMa-35M
Это крошечная языковая модель, имеющая архитектуру LLaMa, с посимвольной токенизацией для всевозможных экспериментов, когда задача решается плохо из-за BPE токенизации на слова и их части:
- генеративные спеллчекеры
- классификация текста: замена
TfidfVectorizer(analyzer='char'), т.е. когда хорошо сработал бейзлайн на символьных n-граммах - транскрипция текста
- детекция орфографических ошибок, опечаток
Размер модели - 35 913 600 параметров.
Особенности предварительной тренировки
Я делал эту модель для экспериментов с русской поэзией в рамках проекта "Литературная студия". Поэтому корпус претрейна содержал значительное количество текстов поэтического формата. Это может повлиять на ваши downstream задачи.
Объем корпуса претрейна - около 80B токенов, тексты только на русском языке.
Токенизатор
Для использования модели нужно установить специальный токенизатор:
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> | У | | Л | у | к | о | м | о | р | ь | я | | д | у | б | | з | е | л | е | н | ы | й |
Использование
С библиотекой transformerts модель можно использовать штатным способом как обычную 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.
- Downloads last month
- 7
