{"id":41154553,"url":"https://github.com/dataesr/llm-finetuning","last_synced_at":"2026-01-22T19:12:49.598Z","repository":{"id":284737506,"uuid":"955900685","full_name":"dataesr/llm-finetuning","owner":"dataesr","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-28T15:18:56.000Z","size":169,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-29T13:44:47.943Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dataesr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-27T11:30:30.000Z","updated_at":"2025-11-28T15:19:00.000Z","dependencies_parsed_at":"2025-04-14T11:28:34.932Z","dependency_job_id":"fe7e40f0-bc50-4fb8-b6e0-b0f201028028","html_url":"https://github.com/dataesr/llm-finetuning","commit_stats":null,"previous_names":["dataesr/llm_finetuning","dataesr/llm-finetuning"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dataesr/llm-finetuning","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataesr%2Fllm-finetuning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataesr%2Fllm-finetuning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataesr%2Fllm-finetuning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataesr%2Fllm-finetuning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dataesr","download_url":"https://codeload.github.com/dataesr/llm-finetuning/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataesr%2Fllm-finetuning/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28669088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T17:07:18.858Z","status":"ssl_error","status_checked_at":"2026-01-22T17:05:02.040Z","response_time":144,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-22T19:10:27.041Z","updated_at":"2026-01-22T19:12:49.587Z","avatar_url":"https://github.com/dataesr.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e build docker image\r\n\r\n```make docker-build-finetuning``` --\u003e build the finetuning image\r\n```make docker-build-inference``` --\u003e build the inference image\r\n```make docker-build-inference-app``` --\u003e build the inference app image\r\n\r\n\r\n```make docker-push-finetuning``` --\u003e push the finetuning image\r\n```make docker-push-inference``` --\u003e push the inference image\r\n```make docker-push-inference-app``` --\u003e push the inference app image\r\n\r\n\r\n\r\n\u003e launch finetuning job on ovh\r\n`ovhai job run  --gpu 1 --volume llm-datasets@1azgra:/workspace/datasets:ro --volume llm-jobs@1azgra:/workspace/jobs:rwd --env HF_TOKEN=\u003chuggingface_token\u003e \u003cother_envs\u003e ghcr.io/dataesr/llm-finetuning:latest -- uv run main.py  --mode [\"train\", \"push\"] --model_name \u003chuggingface_model_name\u003e --pipeline [\"causallm\", \"custom\"] --dataset_name \u003cdataset_name_from_object_storage\u003e --dataset_config \u003cdataset_config_name\u003e --dataset_format \u003cdataset_format\u003e --push_model_dir \u003cdir_of_finetuned_model\u003e`\r\n\r\nexamples:\r\n- Simple Fine-Tuning\r\n`ovhai job run --gpu 1 --volume llm-datasets@1azgra:/workspace/datasets:ro --volume llm-jobs@1azgra:/workspace/jobs:rwd --env HF_TOKEN=hf_abcdefg ghcr.io/dataesr/llm-finetuning:latest -- uv run main.py --model_name meta-llama/Llama-3.2-1B --dataset_name test.json`\r\n\r\n- Fine-tuning and push to hub\r\n`ovhai job run --gpu 1 --volume llm-datasets@1azgra:/workspace/datasets:ro --volume llm-jobs@1azgra:/workspace/jobs:rwd --env HF_TOKEN=hf_abcdefg HF_PUSH_REPO=nanani/nanana ghcr.io/dataesr/llm-finetuning:latest -- uv run main.py --model_name meta-llama/Llama-3.2-1B --dataset_name test.json`\r\n\r\n- Push trained model to hub\r\n`ovhai job run --cpu 1 --volume llm-jobs@1azgra:/workspace/jobs:ro --env HF_TOKEN=hf_abcdefg ghcr.io/dataesr/llm-finetuning:latest HF_PUSH_REPO=nanani/nanana -- uv run main.py --mode push --push_model_dir llama-3.2-1b/finetuned`\r\n\r\n- Delete all jobs files\r\n`ovhai bucket object delete llm-jobs@1azgra --all --yes`\r\n\r\n\u003e Launch inference job on ovh\r\n`ovhai job run  --gpu 1 --volume llm-datasets@1azgra:/workspace/datasets:ro --volume llm-completions@1azgra:/workspace/completions:rwd --env HF_TOKEN=\u003chuggingface_token\u003e \u003cother_envs\u003e ghcr.io/dataesr/llm-inference:latest -- uv run main.py --model_name \u003chuggingface_model_name\u003e --dataset_name \u003cdataset_name_from_object_storage\u003e --dataset_split \u003cdataset_split\u003e --dataset_config \u003cdataset_config_name\u003e`\r\n\r\n\u003e Launch inference app on ovh\r\n`ovhai app run --gpu 1 --env HF_TOKEN=\u003chuggingface_token\u003e --env MODEL_NAME=\u003chuggingface_model_name\u003e --default-http-port 8000 --unsecure-http ghcr.io/dataesr/llm-inference-app:latest`\r\n\r\n\r\n\u003e Environment variables\r\nGeneral\r\n- HF_TOKEN            = HuggingFace token\r\n- HF_PUSH_REPO        = HuggingFace repository (will try to push finetuned model to repo if defined)\r\n- MLFLOW_TRACKING_URI = Mlflow tracking url (mlflow tracking disabled if not set)\r\n- MLFLOW_RUN_NAME     = Mlflow tracking run name\r\n- MLFLOW_RUN_NAME_TAG = Suffix for auto generated run name if MLFLOW_RUN_NAME not set\r\n- MLFLOW_EXPERIMENT_NAME = Mlflow tracking experiment name\r\n- MLFLOW_MODEL_NAME = Name for model logged into Mlflow\r\n\r\nTraining params (finetuning)\r\n- MAX_SEQ_LENGTH, NUM_TRAIN_EPOCHS, MAX_STEPS, BATCH_SIZE, GRAD_ACC_STEPS, OPTIM, LEARNING_RATE, LR_SCHEDULER, WEIGHT_DECAY, MAX_GRAD_NORM, WARMUP_RATIO, SAVE_STEPS, LOG_STEPS\r\n- LORA_R, LORA_ALPHA, LORA_DROPOUT, TASK_TYPE\r\n- BNB_4BIT, BNB_QUANT_TYPE, BNB_DOUBLE_QUANT, BNB_COMPUTE_DTYPE","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataesr%2Fllm-finetuning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdataesr%2Fllm-finetuning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataesr%2Fllm-finetuning/lists"}