---
language:
- pl
- en
pipeline_tag: text-generation
---
## Llama-3-8B-Omnibus-1-PL-v01-GGUF
To repozytorum zawiera konwersję modeli Llama-3-8B-Omnibus-1-PL-v01 do formatu GGUF - Q8_0 oraz Q4_K_M. Przetestowana została w dwóch środowiskach uruchomieniowych:
#### LM Studio
Wersja minimum 0.2.20 - koniecznie wybierz format promptu Llama 3 (!) (opcja Preset)
#### ollama
Wersja 0.1.32. Konfiguracja ollama plik Modelfile
```
FROM ./Llama-3-Omnibus-PL-v01.Q4_K_M.gguf TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|> {{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|> {{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|> {{ .Response }}<|eot_id|>""" PARAMETER stop "<|start_header_id|>" PARAMETER stop "<|end_header_id|>" PARAMETER stop "<|eot_id|>" PARAMETER stop "<|reserved_special_token"
```
Repozytorium zawiera model Meta Llama-3-8B-Omnibus-1-PL-v01 w wersji polskojęzycznej. Model postał na podstawie finetuningu modelu bazowego Llama-3-8B. Wykorzystano do tego dataset instrukcji Omnibus-1-PL (stworzyłem go na własne potrzeby przeprowadzania eksperymenów finetuningu modeli w języku polskim). Szczegóły parametrów treningu w sekcji Trening. Celem tego eksperymentu było sprawdzenie czy można namówić Llama-3-8B do płynnego rozmawiania w języku polskim (oryginalny model instrukcyjny 8B ma z tym problem - woli zdecydowanie bardziej rozmawiać po angielsku).
Uwaga!
* Model będzie dalej rozwijany ponieważ eksperymentuję z a. kolejnymi wersjami datasetu, b. model jest świetną bazą do testowania różnych technik finetunowania (LoRA, QLoRA; DPO, ORPO itd.)
* Udostępniłem go spontanicznie by użytkownicy mogli go używać i sprawdzać jakość Llama 3 ale w kontekście języka polskiego.
* Po informacji, że baza była trenowana na 15T tokenów (tylko 5% nie angielskich) uznałem, że to świetna baza do finetuningu. Być może lekkie dotrenowanie modelu za pomocą contingued-pretraining da jeszcze większy uzysk.
### Sposób kodowania nazwy modelu
* Nazwa modelu bazowego: Llama-3-8B
* Nazwa datasetu: Omnibus-1
* Wersja językowa: PL (polska)
* Wersja modelu: v01
### Dataset
Omnibus-1 to zbiór polskich instrukcji (100% kontekstu Polskiego - fakty, osoby, miejsca osadzone w Polsce), który został w 100% syntetycznie wygenerowany. Zawiera on instrukcje z kategorii - matematyka, umiejętność pisania, dialogi, tematy medyczne, zagadki logiczne, tłumaczenia itd. Powstał on w ramach moich prac związanych z badaniem jakości modeli w kontekście języka polskiego. Pozwala on na finetuning modelu i sprawdzenie podatności modelu do mówienia w naszym rodzimym języku. Dataset zawiera obecnie 75.000 instrukcji. Będzie cały czas udoskonalony i być może w przyszłości udostępniony (jak uznam, że już jest wtstarczająco pełen i obejmuje szerokie spektrum tematyki i umiejętności). Dataset jest w 100% generowany za pomocą innych LLM (GPT3.5, GPT4, Mixtral itd.)
### Użycie Llama-3-8B-Omnibus-1-PL-v01 z biblioteką Transformers
Poniższy kod używa bibliotekę Transformers:
```python
import transformers
import torch
model_id = "Remek/Llama-3-8B-Omnibus-1-PL-v01"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device="auto",
)
messages = [
{"role": "system", "content": "You are a helpful, smart, kind, and efficient AI assistant. You always fulfill the user's requests to the best of your ability."},
{"role": "user", "content": "Napisz czym jest Warszawa?"},
]
prompt = pipeline.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
terminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = pipeline(
prompt,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
print(outputs[0]["generated_text"][len(prompt):])
```
Przykładowa odpowiedź:
> Warszawa to stolica Polski, położona na terenie Mazowsza. Jest to największe miasto w Polsce pod względem liczby mieszkańców oraz powierzchni. Warszawa jest również siedzibą rządu, parlamentu, prezydenta, sądu najwyższego oraz wielu innych instytucji państwowych i międzynarodowych. Miasto jest znane z wielu zabytków, takich jak Stare Miasto, Zamek Królewski, Pałac Kultury i Nauki, a także z nowoczesnych atrakcji, takich jak Centrum Nauki Kopernik czy Centrum Nauki i Sztuki. Warszawa jest również ważnym centrum kulturalnym, gospodarczym i naukowym. Miasto jest również siedzibą wielu firm międzynarodowych i polskich przedsiębiorstw. Warszawa jest miastem, które łączy w sobie przeszłość z nowoczesnością, oferując mieszkańcom i turystom szeroki zakres możliwości. Miasto jest również znane z wielu festiwali i wydarzeń kulturalnych, które przyciągają miliony turystów z całego świata. Warszawa to miasto pełne życia, kultury, historii i nowoczesności, które zdecydowanie zasługuje na uwagę. <|im_end|>
### Szablon konwersacji
Szablon konwersacji to oryginalna wersja Llama3
```
<|start_header_id|>You are a helpful, smart, kind, and efficient AI assistant. You always fulfill the user's requests to the best of your ability.<|end_header_id|>
{System}
<|eot_id|>
<|start_header_id|>user<|end_header_id|>
{User}
<|eot_id|><|start_header_id|>assistant<|end_header_id|>
{Assistant}
```
### Wersje quantized
Wersje poddane quantyzacji są dostępne w repozytorium:
* Llama-3-8B-Omnibus-1-PL-v01-GGUF - przetestowane w LM Studio (wybierz szablon - Llama3)
*
| Version | Model card |
| ------- | -------------------------------------------------------------------- |
| GGUF | [🤗 HuggingFace](https://huggingface.co./Remek/Llama-3-8B-Omnibus-1-PL-v01-GGUF) |
### Trening
Poniżej szczegóły hiperparametrów treningu:
* learning_rate: 2e-05
* train_batch_size: 8
* eval_batch_size: 8
* seed: 42
* distributed_type: single-GPU (Nvidia A6000 Ada)
* num_devices: 1
* gradient_accumulation_steps: 4
* optimizer: adamw_8bit
* lr_scheduler_type: linear
* lr_scheduler_warmup_steps: 5
* num_epochs: 1
* QLoRa - 4bit: rank 64, alpha 128
#### Unsloth
[Unsloth](https://unsloth.ai), narzędzie dzięki któremu powstał ten model.
### Licencja
Licencja na zasadzie nie do komercyjnego użycia (ze względu na dataset - generowany syntetycznie za pomocą modeli GPT4, GPT3.5) oraz licencja Llama3 (proszę o zapoznanie się ze szczegółami licencji).