Instructions to use yummyfiles/Bob with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers.js
How to use yummyfiles/Bob with Transformers.js:
// npm i @huggingface/transformers import { pipeline } from '@huggingface/transformers'; // Allocate pipeline const pipe = await pipeline('text-generation', 'yummyfiles/Bob');
File size: 5,086 Bytes
9939244 | 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 125 126 127 128 129 130 131 132 133 134 | {
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# @title Install dependencies\n",
"!pip install -q -U autotrain-advanced huggingface_hub huggingface_hub[cli] optimum transformers accelerate peft bitsandbytes datasets"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# @title Login to Hugging Face\n",
"from huggingface_hub import login\n",
"import os\n",
"token = os.getenv('HF_TOKEN')\n",
"if not token:\n",
" raise ValueError('Set HF_TOKEN in Colab secrets (left sidebar 🔑)')\n",
"login(token=token)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# @title Upload dataset to HF Hub\n",
"from huggingface_hub import HfApi\n",
"import json\n",
"\n",
"dataset = [\n",
" {\"text\": \"<|begin_of_text|><|start_header_id|>user<|end_header_id|>What is the current price of Bitcoin?<|eot_id|><|start_header_id|>assistant<|end_header_id|><call_tool>get_crypto_price({\\\"symbol\\\": \\\"BTC\\\"})</call_tool><|eot_id|>\"},\n",
" {\"text\": \"<|begin_of_text|><|start_header_id|>user<|end_header_id|>Multiply 42 by 58 for me.<|eot_id|><|start_header_id|>assistant<|end_header_id|><call_tool>multiply_numbers({\\\"a\\\": 42, \\\"b\\\": 58})</call_tool><|eot_id|>\"},\n",
" {\"text\": \"<|begin_of_text|><|start_header_id|>user<|end_header_id|>What is the capital of France?<|eot_id|><|start_header_id|>assistant<|end_header_id|>The capital of France is Paris.<|eot_id|>\"},\n",
" {\"text\": \"<|begin_of_text|><|start_header_id|>user<|end_header_id|>Calculate 144 multiplied by 37.<|eot_id|><|start_header_id|>assistant<|end_header_id|><call_tool>multiply_numbers({\\\"a\\\": 144, \\\"b\\\": 37})</call_tool><|eot_id|>\"},\n",
" {\"text\": \"<|begin_of_text|><|start_header_id|>user<|end_header_id|>What's the current Ethereum price?<|eot_id|><|start_header_id|>assistant<|end_header_id|><call_tool>get_crypto_price({\\\"symbol\\\": \\\"ETH\\\"})</call_tool><|eot_id|>\"}\n",
"]\n",
"\n",
"with open('dataset.jsonl', 'w') as f:\n",
" for ex in dataset:\n",
" f.write(json.dumps(ex) + '\\n')\n",
"\n",
"api = HfApi()\n",
"api.upload_file(\n",
" path_or_fileobj='dataset.jsonl',\n",
" path_in_repo='dataset.jsonl',\n",
" repo_id='yummyfiles/Bob',\n",
" repo_type='dataset',\n",
" token=os.getenv('HF_TOKEN')\n",
")\n",
"print('Dataset uploaded to yummyfiles/Bob')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# @title Fine-tune with AutoTrain (runs ~15 min on T4)\n",
"!autotrain llm --train \\\n",
" --project-name Bob \\\n",
" --model meta-llama/Llama-3.2-1B-Instruct \\\n",
" --train-data yummyfiles/Bob \\\n",
" --data-path dataset.jsonl \\\n",
" --text-column text \\\n",
" --trainer peft \\\n",
" --peft-r 16 \\\n",
" --peft-alpha 32 \\\n",
" --peft-dropout 0.05 \\\n",
" --learning-rate 2e-4 \\\n",
" --batch-size 1 \\\n",
" --epochs 3 \\\n",
" --block-size 2048 \\\n",
" --warmup-ratio 0.03 \\\n",
" --optimizer paged_adamw_8bit \\\n",
" --scheduler cosine \\\n",
" --gradient-accumulation 4 \\\n",
" --mixed-precision bf16 \\\n",
" --quantization 4bit \\\n",
" --push-to-hub \\\n",
" --repo-id yummyfiles/Bob \\\n",
" --token {os.getenv('HF_TOKEN')}"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# @title Export to ONNX (4-bit) and upload\n",
"!pip install -q optimum[onnxruntime]\n",
"!optimum-cli export onnx \\\n",
" --model yummyfiles/Bob \\\n",
" --task text-generation \\\n",
" --quantize int4 \\\n",
" --output /content/web_model\n",
"\n",
"from huggingface_hub import HfApi\n",
"api = HfApi()\n",
"api.upload_folder(\n",
" folder_path='/content/web_model',\n",
" path_in_repo='web_model',\n",
" repo_id='yummyfiles/Bob',\n",
" repo_type='model',\n",
" token=os.getenv('HF_TOKEN')\n",
")\n",
"print('ONNX model uploaded to yummyfiles/Bob/web_model')"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 4
} |