Add inference in notebook
This commit is contained in:
@@ -170,8 +170,9 @@
|
|||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"# Set model ID\n",
|
"# Set model ID\n",
|
||||||
"model_id = \"google/gemma-3-1b-it\"\n",
|
"#model_id = \"google/gemma-3-1b-it\"\n",
|
||||||
"#model_id = \"google/gemma-3-12b-it\""
|
"model_id = \"google/gemma-3-12b-it\"\n",
|
||||||
|
"output_dir = \"/root/models/notebook\""
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -286,7 +287,7 @@
|
|||||||
" logging_steps=1,\n",
|
" logging_steps=1,\n",
|
||||||
" save_strategy=\"steps\",\n",
|
" save_strategy=\"steps\",\n",
|
||||||
" save_steps=1,\n",
|
" save_steps=1,\n",
|
||||||
" output_dir=\"/root/models/notebook_lora\",\n",
|
" output_dir=output_dir+\"_lora\",\n",
|
||||||
" optim=\"paged_adamw_8bit\",\n",
|
" optim=\"paged_adamw_8bit\",\n",
|
||||||
" seed=42,\n",
|
" seed=42,\n",
|
||||||
" group_by_length=True,\n",
|
" group_by_length=True,\n",
|
||||||
@@ -321,6 +322,17 @@
|
|||||||
"trainer.train()"
|
"trainer.train()"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "4e91a67e",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"# Save tokenizer first\n",
|
||||||
|
"tokenizer.save_pretrained(output_dir+\"_merged\")"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": null,
|
||||||
@@ -329,7 +341,7 @@
|
|||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"# Save the trained LoRA adapter\n",
|
"# Save the trained LoRA adapter\n",
|
||||||
"trainer.model.save_pretrained(\"/root/models/notebook_lora_adapter\")"
|
"trainer.model.save_pretrained(output_dir+\"_lora_adapter\")"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -376,20 +388,73 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": null,
|
||||||
"id": "4e91a67e",
|
"id": "57b17d23",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"# Save tokenizer first\n",
|
|
||||||
"tokenizer.save_pretrained(\"/root/models/notebook_merged\")\n",
|
|
||||||
"\n",
|
|
||||||
"# Save the merged model\n",
|
"# Save the merged model\n",
|
||||||
"merged_model.save_pretrained(\n",
|
"merged_model.save_pretrained(\n",
|
||||||
" \"/root/models/notebook_merged\",\n",
|
" output_dir+\"_merged\",\n",
|
||||||
" safe_serialization=True\n",
|
" safe_serialization=True\n",
|
||||||
")"
|
")"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "0b1e39e1",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"from transformers import TextIteratorStreamer, pipeline\n",
|
||||||
|
"from threading import Thread\n",
|
||||||
|
"\n",
|
||||||
|
"messages = [\n",
|
||||||
|
" {\"role\": \"user\", \"content\": \"Hi, write a poem about iced-tea.\"},\n",
|
||||||
|
" {\"role\": \"assistant\", \"content\": \"\"},\n",
|
||||||
|
"]\n",
|
||||||
|
"prompt = tokenizer.apply_chat_template(\n",
|
||||||
|
" messages, tokenize=False,\n",
|
||||||
|
" add_generation_prompt=False,\n",
|
||||||
|
")\n",
|
||||||
|
"pipeline = pipeline(\n",
|
||||||
|
" \"text-generation\",\n",
|
||||||
|
" model=merged_model,\n",
|
||||||
|
" tokenizer=tokenizer,\n",
|
||||||
|
" return_full_text=False,\n",
|
||||||
|
")\n",
|
||||||
|
"streamer = TextIteratorStreamer(\n",
|
||||||
|
" tokenizer,\n",
|
||||||
|
" skip_prompt=True\n",
|
||||||
|
")\n",
|
||||||
|
"generation_kwargs = {\n",
|
||||||
|
" \"text_inputs\": prompt,\n",
|
||||||
|
" \"do_sample\": True,\n",
|
||||||
|
" \"max_new_tokens\": 1024,\n",
|
||||||
|
" \"streamer\": streamer,\n",
|
||||||
|
"}\n",
|
||||||
|
"generation_thread = Thread(\n",
|
||||||
|
" target=pipeline,\n",
|
||||||
|
" kwargs=generation_kwargs\n",
|
||||||
|
")\n",
|
||||||
|
"generation_thread.start()\n",
|
||||||
|
"\n",
|
||||||
|
"for text in streamer:\n",
|
||||||
|
" print(text, end=\"\")\n",
|
||||||
|
"\n",
|
||||||
|
"generation_thread.join()"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "e5cc8064",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"exit(1)"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": null,
|
||||||
@@ -428,7 +493,7 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"# Convert to GGUF (if merge was successful)\n",
|
"# Convert to GGUF (if merge was successful)\n",
|
||||||
"!python ./llama.cpp/convert_hf_to_gguf.py \\\n",
|
"!python ./llama.cpp/convert_hf_to_gguf.py \\\n",
|
||||||
" --outfile /root/models/notebook.gguf \\\n",
|
" --outfile /root/models/notebook_12B.gguf \\\n",
|
||||||
" --outtype q8_0 \\\n",
|
" --outtype q8_0 \\\n",
|
||||||
" /root/models/notebook_merged"
|
" /root/models/notebook_merged"
|
||||||
]
|
]
|
||||||
@@ -460,7 +525,7 @@
|
|||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"!unzip llama-b5226-bin-ubuntu-x64.zip"
|
"!unzip -o llama-b5226-bin-ubuntu-x64.zip"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -476,9 +541,9 @@
|
|||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"kernelspec": {
|
"kernelspec": {
|
||||||
"display_name": "Python 3 (ipykernel)",
|
"display_name": "notebook",
|
||||||
"language": "python",
|
"language": "python",
|
||||||
"name": "python3"
|
"name": "notebook"
|
||||||
},
|
},
|
||||||
"language_info": {
|
"language_info": {
|
||||||
"codemirror_mode": {
|
"codemirror_mode": {
|
||||||
|
|||||||
Reference in New Issue
Block a user