|
--- |
|
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). |
|
|
|
<img src="Llama-3-8B-PL-small.jpg" width="420" /> |
|
|
|
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 |
|
|
|
<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). |
|
|
|
|