Text Generation
Transformers
English
qwen2
code-generation
python
fine-tuning
Qwen
tools
agent-framework
multi-agent
conversational
Eval Results (legacy)
Instructions to use my-ai-stack/Stack-2-9-finetuned with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use my-ai-stack/Stack-2-9-finetuned with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="my-ai-stack/Stack-2-9-finetuned") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("my-ai-stack/Stack-2-9-finetuned") model = AutoModelForCausalLM.from_pretrained("my-ai-stack/Stack-2-9-finetuned") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use my-ai-stack/Stack-2-9-finetuned with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "my-ai-stack/Stack-2-9-finetuned" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "my-ai-stack/Stack-2-9-finetuned", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/my-ai-stack/Stack-2-9-finetuned
- SGLang
How to use my-ai-stack/Stack-2-9-finetuned with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "my-ai-stack/Stack-2-9-finetuned" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "my-ai-stack/Stack-2-9-finetuned", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "my-ai-stack/Stack-2-9-finetuned" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "my-ai-stack/Stack-2-9-finetuned", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use my-ai-stack/Stack-2-9-finetuned with Docker Model Runner:
docker model run hf.co/my-ai-stack/Stack-2-9-finetuned
walidsobhie-code commited on
Commit ·
a8f2981
1
Parent(s): 65c52b2
fix: remove Google Drive mount (Colab-only) - use Kaggle output + GitHub push instead
Browse files- Removed google.colab dependency (doesn't work on Kaggle)
- Added GitHub push cell to save model permanently
- Added warning to download outputs before session expires
- Kaggle-compatible now
- kaggle_train_stack29_v5.ipynb +60 -14
kaggle_train_stack29_v5.ipynb
CHANGED
|
@@ -52,15 +52,15 @@
|
|
| 52 |
"metadata": {},
|
| 53 |
"outputs": [],
|
| 54 |
"source": [
|
| 55 |
-
"#
|
| 56 |
-
"
|
| 57 |
-
"drive.mount('/content/drive')\n",
|
| 58 |
"\n",
|
| 59 |
-
"# Create
|
| 60 |
-
"
|
| 61 |
-
"os.makedirs(
|
| 62 |
"\n",
|
| 63 |
-
"print(f\"\u2705
|
|
|
|
| 64 |
]
|
| 65 |
},
|
| 66 |
{
|
|
@@ -213,16 +213,62 @@
|
|
| 213 |
"print(f'Merged model: {merged_dir}')\n",
|
| 214 |
"!ls -lh {merged_dir}\n",
|
| 215 |
"\n",
|
| 216 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 217 |
"import shutil\n",
|
| 218 |
-
"
|
|
|
|
|
|
|
| 219 |
"if os.path.exists(merged_dir):\n",
|
| 220 |
-
"
|
| 221 |
-
"
|
| 222 |
-
"
|
| 223 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 224 |
"else:\n",
|
| 225 |
-
" print(\
|
| 226 |
]
|
| 227 |
},
|
| 228 |
{
|
|
|
|
| 52 |
"metadata": {},
|
| 53 |
"outputs": [],
|
| 54 |
"source": [
|
| 55 |
+
"# Save to Kaggle output (download before session ends!)\n",
|
| 56 |
+
"# Kaggle sessions expire after 9 hours - download outputs immediately!\n",
|
|
|
|
| 57 |
"\n",
|
| 58 |
+
"# Create a symbolic link to make paths easier\n",
|
| 59 |
+
"OUTPUT_DIR = os.path.join(REPO_DIR, 'training_output')\n",
|
| 60 |
+
"os.makedirs(OUTPUT_DIR, exist_ok=True)\n",
|
| 61 |
"\n",
|
| 62 |
+
"print(f\"\u2705 Output directory: {OUTPUT_DIR}\")\n",
|
| 63 |
+
"print(\"\u26a0\ufe0f IMPORTANT: Download outputs from 'Output' tab before session expires!\")\n"
|
| 64 |
]
|
| 65 |
},
|
| 66 |
{
|
|
|
|
| 213 |
"print(f'Merged model: {merged_dir}')\n",
|
| 214 |
"!ls -lh {merged_dir}\n",
|
| 215 |
"\n",
|
| 216 |
+
"print(\"\\n\u26a0\ufe0f DOWNLOAD THE MODEL NOW: Go to Output tab and download 'merged' folder!\")\n"
|
| 217 |
+
]
|
| 218 |
+
},
|
| 219 |
+
{
|
| 220 |
+
"cell_type": "code",
|
| 221 |
+
"execution_count": null,
|
| 222 |
+
"metadata": {},
|
| 223 |
+
"outputs": [],
|
| 224 |
+
"source": [
|
| 225 |
+
"# Push merged model to GitHub LFS (optional - for permanent storage)\n",
|
| 226 |
+
"# This saves the model to your GitHub repo so you can download anytime\n",
|
| 227 |
+
"\n",
|
| 228 |
+
"# Configure Git LFS\n",
|
| 229 |
+
"!git lfs install 2>/dev/null || echo 'Git LFS already installed'\n",
|
| 230 |
+
"\n",
|
| 231 |
+
"# Clone the repo if not already there\n",
|
| 232 |
+
"import subprocess\n",
|
| 233 |
+
"repo_url = 'https://github.com/my-ai-stack/stack-2.9.git'\n",
|
| 234 |
+
"local_repo = '/kaggle/working/stack-2.9-repo'\n",
|
| 235 |
+
"\n",
|
| 236 |
+
"if not os.path.exists(local_repo):\n",
|
| 237 |
+
" subprocess.run(['git', 'clone', repo_url, local_repo], check=True)\n",
|
| 238 |
+
"\n",
|
| 239 |
+
"# Copy merged model to repo\n",
|
| 240 |
"import shutil\n",
|
| 241 |
+
"target_dir = os.path.join(local_repo, 'models/stack-2.9-finetuned')\n",
|
| 242 |
+
"os.makedirs(target_dir, exist_ok=True)\n",
|
| 243 |
+
"\n",
|
| 244 |
"if os.path.exists(merged_dir):\n",
|
| 245 |
+
" # Copy files\n",
|
| 246 |
+
" for f in os.listdir(merged_dir):\n",
|
| 247 |
+
" src = os.path.join(merged_dir, f)\n",
|
| 248 |
+
" dst = os.path.join(target_dir, f)\n",
|
| 249 |
+
" if os.path.isdir(src):\n",
|
| 250 |
+
" shutil.copytree(src, dst, dirs_exist_ok=True)\n",
|
| 251 |
+
" else:\n",
|
| 252 |
+
" shutil.copy2(src, dst)\n",
|
| 253 |
+
" \n",
|
| 254 |
+
" print(f'\u2705 Copied model to {target_dir}')\n",
|
| 255 |
+
" \n",
|
| 256 |
+
" # Push to GitHub\n",
|
| 257 |
+
" os.chdir(local_repo)\n",
|
| 258 |
+
" subprocess.run(['git', 'add', 'models/stack-2.9-finetuned/'], check=True)\n",
|
| 259 |
+
" subprocess.run(['git', 'config', 'user.email', 'kaggle@kaggle.com'], check=True)\n",
|
| 260 |
+
" subprocess.run(['git', 'config', 'user.name', 'Kaggle Auto-Push'], check=True)\n",
|
| 261 |
+
" subprocess.run(['git', 'commit', '-m', 'feat: add fine-tuned model from Kaggle'], check=True)\n",
|
| 262 |
+
" \n",
|
| 263 |
+
" # Push (you may need a GitHub token for private repos)\n",
|
| 264 |
+
" result = subprocess.run(['git', 'push', 'origin', 'main'], capture_output=True, text=True)\n",
|
| 265 |
+
" if result.returncode == 0:\n",
|
| 266 |
+
" print('\u2705 Model pushed to GitHub!')\n",
|
| 267 |
+
" else:\n",
|
| 268 |
+
" print(f'\u26a0\ufe0f Push failed: {result.stderr}')\n",
|
| 269 |
+
" print(' You can still download from Kaggle Output tab.')\n",
|
| 270 |
"else:\n",
|
| 271 |
+
" print('\u26a0\ufe0f Merged model not found. Train first!')\n"
|
| 272 |
]
|
| 273 |
},
|
| 274 |
{
|