|
--- |
|
license: llama3 |
|
language: |
|
- tr |
|
- en |
|
base_model: meta-llama/Meta-Llama-3-8B-Instruct |
|
model-index: |
|
- name: MARS |
|
results: |
|
- task: |
|
type: text-generation |
|
name: Text Generation |
|
dataset: |
|
name: AI2 Reasoning Challenge TR v0.2 |
|
type: ai2_arc |
|
config: ARC-Challenge |
|
split: test |
|
args: |
|
num_few_shot: 25 |
|
metrics: |
|
- type: acc |
|
value: 46.08 |
|
name: accuracy |
|
- task: |
|
type: text-generation |
|
name: Text Generation |
|
dataset: |
|
name: MMLU TR v0.2 |
|
type: cais/mmlu |
|
config: all |
|
split: test |
|
args: |
|
num_few_shot: 5 |
|
metrics: |
|
- type: acc |
|
value: 47.02 |
|
name: accuracy |
|
- task: |
|
type: text-generation |
|
name: Text Generation |
|
dataset: |
|
name: TruthfulQA TR v0.2 |
|
type: truthful_qa |
|
config: multiple_choice |
|
split: validation |
|
args: |
|
num_few_shot: 0 |
|
metrics: |
|
- type: acc |
|
name: accuracy |
|
value: 49.38 |
|
- task: |
|
type: text-generation |
|
name: Text Generation |
|
dataset: |
|
name: Winogrande TR v0.2 |
|
type: winogrande |
|
config: winogrande_xl |
|
split: validation |
|
args: |
|
num_few_shot: 5 |
|
metrics: |
|
- type: acc |
|
value: 53.71 |
|
name: accuracy |
|
- task: |
|
type: text-generation |
|
name: Text Generation |
|
dataset: |
|
name: GSM8k TR v0.2 |
|
type: gsm8k |
|
config: main |
|
split: test |
|
args: |
|
num_few_shot: 5 |
|
metrics: |
|
- type: acc |
|
value: 53.08 |
|
name: accuracy |
|
pipeline_tag: text-generation |
|
--- |
|
|
|
|
|
<img src="MARS-1.0.png" alt="Curiosity MARS model logo" style="border-radius: 1rem; width: 100%"> |
|
|
|
|
|
<div style="display: flex; justify-content: center; align-items: center; flex-direction: column"> |
|
<h1 style="font-size: 5em; margin-bottom: 0; padding-bottom: 0;">MARS</h1> |
|
<aside>by <a href="https://curiosity.tech">Curiosity Technology</a></aside> |
|
</div> |
|
|
|
MARS is the first iteration of Curiosity Technology models, based on Llama 3 8B. |
|
|
|
We have trained MARS on in-house Turkish dataset, as well as several open-source datasets and their Turkish |
|
translations. |
|
It is our intention to release Turkish translations in near future for community to have their go on them. |
|
|
|
MARS have been trained for 3 days on 4xA100. |
|
|
|
## Model Details |
|
|
|
- **Base Model**: Meta Llama 3 8B Instruct |
|
- **Training Dataset**: In-house & Translated Open Source Turkish Datasets |
|
- **Training Method**: LoRA Fine Tuning |
|
|
|
|
|
## How to use |
|
|
|
You can run conversational inference using the Transformers pipeline abstraction, or by leveraging the Auto classes with the `generate()` function. Let's see examples of both. |
|
|
|
### Transformers pipeline |
|
|
|
```python |
|
import transformers |
|
import torch |
|
|
|
model_id = "curiositytech/MARS" |
|
|
|
pipeline = transformers.pipeline( |
|
"text-generation", |
|
model=model_id, |
|
model_kwargs={"torch_dtype": torch.bfloat16}, |
|
device_map="auto", |
|
) |
|
|
|
messages = [ |
|
{"role": "system", "content": "Sen korsan gibi konuşan bir korsan chatbotsun!"}, |
|
{"role": "user", "content": "Sen kimsin?"}, |
|
] |
|
|
|
terminators = [ |
|
pipeline.tokenizer.eos_token_id, |
|
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>") |
|
] |
|
|
|
outputs = pipeline( |
|
messages, |
|
max_new_tokens=256, |
|
eos_token_id=terminators, |
|
do_sample=True, |
|
temperature=0.6, |
|
top_p=0.9, |
|
) |
|
print(outputs[0]["generated_text"][-1]) |
|
``` |
|
|
|
### Transformers AutoModelForCausalLM |
|
|
|
```python |
|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
import torch |
|
|
|
model_id = "curiositytech/MARS" |
|
|
|
tokenizer = AutoTokenizer.from_pretrained(model_id) |
|
model = AutoModelForCausalLM.from_pretrained( |
|
model_id, |
|
torch_dtype=torch.bfloat16, |
|
device_map="auto", |
|
) |
|
|
|
messages = [ |
|
{"role": "system", "content": "Sen korsan gibi konuşan bir korsan chatbotsun!"}, |
|
{"role": "user", "content": "Sen kimsin?"}, |
|
] |
|
|
|
input_ids = tokenizer.apply_chat_template( |
|
messages, |
|
add_generation_prompt=True, |
|
return_tensors="pt" |
|
).to(model.device) |
|
|
|
terminators = [ |
|
tokenizer.eos_token_id, |
|
tokenizer.convert_tokens_to_ids("<|eot_id|>") |
|
] |
|
|
|
outputs = model.generate( |
|
input_ids, |
|
max_new_tokens=256, |
|
eos_token_id=terminators, |
|
do_sample=True, |
|
temperature=0.6, |
|
top_p=0.9, |
|
) |
|
response = outputs[0][input_ids.shape[-1]:] |
|
print(tokenizer.decode(response, skip_special_tokens=True)) |
|
``` |