|
--- |
|
license: mit |
|
datasets: |
|
- marcomaccarini/ds_robot_33_large |
|
language: |
|
- en |
|
- it |
|
metrics: |
|
- accuracy |
|
base_model: |
|
- meta-llama/Meta-Llama-3.1-8B |
|
library_name: peft |
|
--- |
|
|
|
## IMPORTS |
|
```bash |
|
pip install trl peft torch datasets transformers jupyterlab accelerate tiktoken matplotlib bitsandbytes evaluate scikit-learn |
|
``` |
|
|
|
## CODE |
|
|
|
```python |
|
from huggingface_hub import login |
|
access_token = "secret-token" |
|
login(token=access_token) |
|
|
|
import torch |
|
import datasets |
|
from peft import PeftModel |
|
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, AutoModel, TFBertForQuestionAnswering,TFAutoModelWithLMHead |
|
|
|
GPU_use = 0 |
|
st = "cuda:"+str(GPU_use) |
|
torch.cuda.set_device(GPU_use) |
|
|
|
ds = datasets.load_dataset('marcomaccarini/ds_robot_33_large') |
|
|
|
trn = ds['train'] |
|
|
|
base_model = 'meta-llama/Meta-Llama-3-8B' |
|
tokr = AutoTokenizer.from_pretrained(base_model) |
|
model = AutoModelForCausalLM.from_pretrained("marcomaccarini/SynthLA", torch_dtype=torch.bfloat16, device_map=GPU_use,token=access_token) |
|
|
|
fmt = """ |
|
Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request. |
|
USER: {} |
|
=== |
|
{} |
|
ASSISTANT:""" |
|
|
|
def sql_prompt(d): |
|
return fmt.format(d["context"], d["question"]) |
|
def question(table, quest): |
|
tst = dict(**trn[8]) |
|
tst['context'] = table |
|
tst['question'] = quest |
|
return sql_prompt(tst) |
|
|
|
t = 'table([ eof x: 85 y: 179 z: 548, gripper: open , black-cup x: -54 y: -27 z: 80, white-cup x: -5 y: 59 z: 60, box x: -30 y: 34 z: 100, green-cylinder x: 25 y: -3 z: 80 or: 142, green-cube x: -390 y: -490 z: 80 or: 83, grey-cube x: 56 y: -22 z: 80 or: 96, red-cube x: -32 y: 58 z: 80 or: 157, yellow-ball x: -21 y: 30 z: 20 or: 41, banana x: 2 y: 53 z: 20 or: 9, remote x: -48 y: 31 z: 30 or: 69, pen x: -53 y: -59 z: 10 or: 174 ])' |
|
q = 'pick green-cube and place to black-cup' |
|
|
|
test = question(t,q) |
|
toks = tokr(test, return_tensors="pt") |
|
res = model.generate(**toks.to(st), max_new_tokens=100, top_p = 0).to('cpu') |
|
|
|
print(tokr.batch_decode(res)[0].replace("*","\n")) |
|
|
|
|
|
|
|
``` |
|
|