File size: 6,312 Bytes
8a984c4 f660f95 8a984c4 da50da2 8a984c4 8516b04 8a984c4 5a1339c 74550a9 892aa5b 74550a9 94ea3f7 74550a9 8a984c4 2c77e93 8a984c4 5129771 8a984c4 da50da2 8a984c4 da50da2 8a984c4 1f11d62 8a984c4 1f11d62 710e0ce 1f11d62 8a984c4 bc0986f 8a984c4 ce8d7ea 181457c ce8d7ea 181457c 74550a9 181457c 74550a9 8a984c4 f660f95 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
---
language:
- pl
- en
pipeline_tag: text-generation
license: cc-by-4.0
---
## Llama-3-8B-Omnibus-1-PL-v01-INSTRUCT
Repozytorium zawiera model Meta Llama-3-8B-Omnibus-1-PL-v01-INSTRUCT w wersji polskoj臋zycznej. Jest to model INSTRUCT (instrukcyjny). 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).
<img src="Llama-3-8B-PL-small.jpg" width="420" />
Uwaga!
* Model NIE jest CENZUROWANY. To wersja do zabawy. Nie zosta艂a ujarzmiona.
* 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 艣wietny model 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. Nie jest on idealny i wymaga jeszcze du偶o nak艂adu pracy by model pracowa艂 w przewidywalnie ale 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.
### U偶ycie Llama-3-8B-Omnibus-1-PL-v01-INSTRUCT 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-INSTRUCT"
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|>system<|end_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.
<|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-instruct-GGUF - przetestowane w LM Studio (wybierz szablon - Llama3) oraz ollama
*
| Version | Model card |
| ------- | -------------------------------------------------------------------------- |
| Instruct| [馃 HuggingFace](https://huggingface.co/Remek/Llama-3-8B-Omnibus-1-PL-v01-instruct-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
<img src="https://raw.githubusercontent.com/unslothai/unsloth/main/images/made with unsloth.png" width="200px" align="center" />
[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). |