{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Qwen3-4b Future Engineers project description generator" ] }, { "cell_type": "markdown", "metadata": { "id": "V5Lu_c6kylpm" }, "source": [ "Fine-tuning libraries installation." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "XqzRNYgayOGR", "outputId": "451ca3d1-0478-487b-f3e0-2f1a3315d4f1" }, "outputs": [], "source": [ "!!pip install -U --upgrade unsloth unsloth_zoo datasets transformers accelerate bitsandbytes peft trl huggingface-hub" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "!pip install https://github.com/vllm-project/vllm/releases/download/v0.13.0/vllm-0.13.0+cu130-cp38-abi3-manylinux_2_35_x86_64.whl" ] }, { "cell_type": "markdown", "metadata": { "id": "vVbIK43Yyj0W" }, "source": [ "Imports." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "s5UaOh5Tyjdd", "outputId": "82344823-4371-4acb-a919-d02b2fcfb626" }, "outputs": [], "source": [ "from datasets import load_dataset, concatenate_datasets, DatasetDict\n", "from unsloth import FastLanguageModel\n", "from trl import SFTTrainer, SFTConfig\n", "import torch" ] }, { "cell_type": "markdown", "metadata": { "id": "S5rRY_i7ZqIC" }, "source": [ "Dataset download." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 258, "referenced_widgets": [ "afb94e3e9b0a475fb4eac03d7a3128e6", "ace340343429488c99f6d9f390334fc6", "8041faea5dad4a79b987df717aebe056", "0a4fedff23ae4570973cc276883e2752", "d95cdcb571104377940e94c4591dcfa8", "a7537dc9c350414f879802ff28d59e79", "152b340b8ea94189996e64aa65eb0515", "7017bfe509b34782b3904e16cfbc54f3", "16fd619dc4524d7684696fd5164a97bf", "164685ec51734b8cb0cd93347194e59c", "182aef5c7bbb4ef1ba80c8e8536098b6", "9a667cdeac3547d2b36b788f90045e2f", "81783d4b003543c891eae5f4f3442a54", "30734b250b7a406b97f8097228254697", "ced4d9a9f43f43c99c363b73d3fd6c24", "6e3d55f6b1b2406b8448aab78be54fc0", "56eeb0934f674789ad685a9a19b1c4e2", "f1c5826f6b894f55b83f45a27d279252", "41e7817d1bab4cd081fb1c131c3d744e", "091525d0dfbe4874879bc4895fe7c214", "c189da522cb24ce3977b650f6dff5d11", "3ba6058e76ac4ccd93ccd4ea07893408", "472f2d6da291482281551c9b4ba6db21", "b79730f3c9e94d5b828d7b0b0a896bf4", "f0a3463396114d219ca3172c595b7618", "1b3f6b9713724f5db8cac296ab54685e", "47fa97aae9434cebb3f330df8f10ed51", "d76c993a51ee4ca38e4f8b33fe28c0bb", "51545e31aa804a0fbb65ef7a69f58ac0", "00743859a8bd4d0cab343083b535b795", "3af8fd79a9334057a6fe0e3be92151db", "6c10ba9776814a2cb50cf72a3b649af8", "668071d9f2ff4eac9ee3136f7c075995", "1ba29a79ab2e4257b0606e5d564c95c9", "92162f5a09834b78820ec363a4259120", "a63d1cec731b49bca18e5051dc5ab3e9", "b03f3f8272384e84ba74f976b1512e79", "a8a4a3105e2d458496b69e40e6a490ab", "766c80dbfe6b4e32a6ba6d64412722e2", "fee96fe7203f4fd39932b5c53c819d24", "f7a130b5555146fc853c2707f164bc31", "3de816b6eab044989d5cf111c61e1f32", "e533c3f3ee0f47ad9896ba626e06b6ba", "4c173107395f4334a5a0c563e805a73f", "920e98e9c6ce4afe9d31ce29e677b4e1", "eaf537571bae4ef68dbb988591220a0b", "b0f301f61cd644c0868fcf21bd03da26", "6e5acc7ae56843248b0a5f3522b70f6b", "335e95b759a145a08434f0ad75d83d8f", "8fce781f31bb4f95b5f8d06a3290e34f", "8cbdd0b22b354f0ea66dcb2c3de2f083", "57118ed5d65c46d9a6d3478df21fcc47", "f92f7370e5e64a89b2c8d3f4e8deb70b", "dc2a4870a6ee48bdb9f6acfafe916fae", "930c5b2302cc4f85bcd2a2faed1534aa", "99561bcef19243faacaa4563a6c93194", "7485e98cbba841dcac3a2f4a10b7f71e", "537b46fd95184b8e99c3e136b45881c3", "72cb9fdb8bfa440cba32698d3d437c92", "4eb8fbe0a593448ca1f0da3ca2834277", "a12acab8267548aa81ab7c45d73c0a11", "cd0846e22917451aa9e852fa89953259", "c75502968e4f444bbbbfbad2768c8f2f", "0b9753f3816d4a2e904d93a45f73df8d", "8b66c5bca2074aee945b57798773eb02", "cf1b5cc257c74657939ad9fc31d875fc", "fc217a20b36f48a9b08e873fac550d42", "f0ccf4044382401aa2505f77d4cd77c4", "ef405a83994f4c0bb4139e2e586083aa", "1abba17ac48d4b519da75bd87a129d60", "65ef434383ee47c7bbd2d03ca65b84b5", "a169496b20a9474f80108fe5203d8c38", "995def5bb77d42f3ba760dc257cfd17d", "2d1f6b16a677419397dd59212713ce9b", "30d04736099a45b285237634c05a1a9a", "00766e19d8ce497a9a828270e5a83fd2", "8fbbde606e9e4ea5bbc796f458a1c138" ] }, "id": "wimSZt2GytF_", "outputId": "5eed30e8-05dc-451c-aeb2-d490a68ba855" }, "outputs": [], "source": [ "hf_dataset_id = \"pymlex/future-engineers-dataset\"\n", "max_seq_length = 4096\n", "raw = load_dataset(hf_dataset_id)" ] }, { "cell_type": "markdown", "metadata": { "id": "Ph_glQlDZtaF" }, "source": [ "Choosing only short examples." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 49, "referenced_widgets": [ "a41a4d9f9cef4f0bb04fa6d8c1bb9d40", "a96e4c3ba026450ba0e3dc536b43f680", "587f8df825d24f829e9742109be2b4e0", "73e23c5530774ffd943bc988d2648feb", "263eb564a68b4aa6a569ad32387d02c4", "e98e7bccb6d54487a4ea881819cc3b61", "d3a619601de448769f178728fd034ed0", "93e62aec3a884bb6a8b2ad09ba2db796", "fd672f30fd324b26adbb2c518f5f663d", "9d00f87c39144fffb5638a76221c89c7", "afed9937659d4b7b858ea31261988c3e" ] }, "id": "Ax73ZO8izm4O", "outputId": "67f71476-9ce4-4b85-fec0-4a5c1556f2bf" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Filter: 100%|██████████| 2193/2193 [00:00<00:00, 54417.02 examples/s]\n" ] } ], "source": [ "ds = concatenate_datasets([raw[k] for k in raw.keys()])\n", "ds = ds.filter(lambda x: isinstance(x[\"text\"], str) and len(x[\"text\"]) < 8000)\n", "\n", "split = ds.train_test_split(test_size=0.1, seed=3407)\n", "split2 = split[\"test\"].train_test_split(test_size=0.5, seed=3407)" ] }, { "cell_type": "markdown", "metadata": { "id": "TW06WJqFZx8q" }, "source": [ "Hold-out with 90/5/5 ratio." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "id": "RZzqz1Gs1GlY" }, "outputs": [], "source": [ "train_base = split[\"train\"]\n", "val_base = split2[\"train\"]\n", "test_base = split2[\"test\"]" ] }, { "cell_type": "markdown", "metadata": { "id": "CzRr1GUzaDk2" }, "source": [ "unsloth/Qwen3-4B model initialisation" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "==((====))== Unsloth 2026.3.17: Fast Qwen3 patching. Transformers: 5.3.0. vLLM: 0.13.0+cu130.\n", " \\\\ /| NVIDIA GeForce RTX 4090. Num GPUs = 1. Max memory: 23.516 GB. Platform: Linux.\n", "O^O/ \\_/ \\ Torch: 2.10.0+cu130. CUDA: 8.9. CUDA Toolkit: 13.0. Triton: 3.6.0\n", "\\ / Bfloat16 = TRUE. FA [Xformers = 0.0.35. FA2 = False]\n", " \"-____-\" Free license: http://github.com/unslothai/unsloth\n", "Unsloth: Fast downloading is enabled - ignore downloading bars which are red colored!\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Loading weights: 100%|██████████| 398/398 [00:01<00:00, 320.40it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "unsloth/Qwen3-4B-Instruct-2507-unsloth-bnb-4bit does not have a padding token! Will use pad_token = <|PAD_TOKEN|>.\n" ] } ], "source": [ "model_name = \"unsloth/Qwen3-4B-Instruct-2507-unsloth-bnb-4bit\"\n", "model, tokenizer = FastLanguageModel.from_pretrained(\n", " model_name=model_name,\n", " max_seq_length=max_seq_length,\n", " dtype=None,\n", " load_in_4bit=True\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 543, "referenced_widgets": [ "d3fc2ccdfde14211a10b59a89d029bc8", "4ce7f7f4453d4d0581a06bebb7ebd810", "0a7328e2022d47d28ed20a8faaa3cefa", "41841ebfcda84ba6835fb8f0a83844f9", "6fc0f96493c2433c91a399a54f4d5fc3", "7aeb0b88e245468ca73f068ed4abd9ee", "07d0e4907058452893dee7ad1807a92c", "912063ac0e874a49bd8abd09572afffd", "146b07232f264e6ca095ee57fa0364ae", "95f06c2fb08d4fa8b5f4f96565bf6616", "b8e629c36d0b44b4b876e5e2d8fb66ba", "ab1e273093694ded95b0fee35a50874c", "9001ffb5ef8b48c39aee99c21ba2fda6", "cc7a81925ea24c02964ba95a4cd3af72", "4d8c49f168c04ddd8597ed542fa285d2", "ad750d065a2f49749d4bb00fb8a2ec4f", "4940910137f1405f8ade3b933edf102d", "96bb46159dd7428f87bac1d98870630c", "f303b97f3e5245ce93b80233beb05357", "a7f802cc38824af2b9ff54c5148adb12", "61232855bd444fa8800ea017bfedc65b", "38a609e60e75477484b8c9443a176c87", "0f5729b52c8f43498d25655615808e61", "5b52486aefb24b43a3655964c25fa13e", "866791dc15d74440991ccbf3a34ed0e4", "dfc9399f230d47a3b12283e5bfe4f834", "c5b9a8c058f948cd857e3997ee4fb92f", "b60e77848313481cbc907f898857fc41", "6460b1d395f940039f6bb5dd9aa56795", "6ae20f1423344cadae27833ded133140", "0c71eeb10de54c309c07e257e769ee77", "18d0eb9709fc4aef9986ffc19ac0d9b7", "c27be77738074a6380bb2763af097948", "3696854d29784d4b832ed7da1ba70248", "71f6c4c314bf4c3d8da09082dc877278", "e1943f891d9447d88ae35a985dd4d768", "76ca45a6541e48f8835b10c0f3ad2e87", "05a38396b14f47a491024ab6ce37108c", "66995d3732e042ed8150b87cc8fb25b0", "372e842d373b4e6fab33db0221f8d299", "c42e177cdba5463b8626c620b47591f6", "3abb54dc22d6404ca4d964b9a7320ef8", "372c6280f95049c5bf54189cd81bff77", "c1ecee38f65b4fb1ac1488d428564363", "5afc6df4e44247d89de6f07a05b2ff7a", "c9f6639ea18c476eb9763edd467e94e7", "d79ad61b660d4bcbab98bc6068b2a60e", "13e0a94f76de48c8aae58e04807858a7", "1576c00f8ff74a0eb27aa0ef5cc3358b", "f57c831b35d34a79981bf0c76803d2ce", "fa19262bc63540758db725e2a170f1bf", "438e7fc3c7ad4672b112f614427f3f08", "52eab35da1a6431b8847393689a11a97", "bdd0aba5796548fb83a405d817b91d60", "665bb61c53404a2c8edbe195dd1ed91d", "d8920e8d05d5402caa2550c5a670264c", "f125565e7928440f90c236963cf3efc6", "5bbcfd8d301644ffb720ed71f3cd7ece", "78c5b867484f41b5b00df741c29d4cb2", "c39aaf0adff944c0b016283d26b2649e", "0e942f3c9d734d468157811f13a1a5eb", "13ec793508a041819a340887578e839d", "10468e20f7054d978af851a5d011eb6b", "cd21c146cd7644fbb69cfc5662e6e539", "13c6fa755f2f4c6f8ce9e2eff5453207", "6842326c4a11426380121a4a362ebd0f", "cce34e71e5d7482f83505fa08c402815", "d8fafa5621ac443c9e2d9c44edf67b8b", "9bc110b1ae2d45c8bd102794863a1b11", "3e07f9b5a05546ccb6722b52add39150", "1336c6b57b334d3ca4a7dd800e97c454", "c79135d6b0b446e2b87c9dc7b69ce18f", "10d146a7982042f3be1119541d9bba54", "c0e701e132294c0cb41f11e643a2ef4e", "a3b2acfd0a514a9c91d16f5e5b1a455b", "f9e4bbeba9394a29a1254933dee62093", "45401a174a674f15a4032fc3418c0bc7", "fe2a4e37b3f149baa52fe543c2d70d0c", "25daa1be5c6e4461b30d5ed9bcfe3cb4", "f69cf8b8b7f44eed8ed4ca8772bf86ff", "a1a9f861aaaf43b7960ca9ee062d4444", "bb0bb78378aa47f087662a4ff715e128", "38f310a24267400885584df12135f1dc", "14d7035be1b54215b3e2dfed57bd3a2c", "983f8ccead2d4df69c9f786d23a01a02", "e4a40dea9e5e46f390baedd180d442d7", "2ae03bfd220c46b798d1930d5d17f0de", "e0a276193b6b4125bb143ea8d128858b", "98302fab13ea458bbc727e60f98f0400", "a914e194f3d44c059c36d26782ee133d", "897546c5c0ba40e7934f90d48093f954", "1b3d4fd5f7774aeea075ce68247cd3bc", "d0d138c43f624419aa26df9d00e02197", "dfc33af508da478ba80a9d81bca038f9", "a28100bcc8ed4464ae0e5f325668bb28", "57378766cb384b25a6466fc9104eef13", "63da2d4c1ffb419b86f4d594fbf63530", "55bd2d61c37e47bc83732e285a21f38e", "d19c486184cf4ba487b9a54eb8a3e48a", "635902c095cd43ae96e4591d822f7832", "991f24a8ee2240669588fe5cbe958c04", "ded539ec9c7a44d691a44fd5a8c5523f", "618206a835be48f6a919ad5d0e3ddf8f", "4c07ac3306644b65a4100891e90e8508", "aaef65bbf6684a1ea48df1e2c30dbb7b", "b7d1795708904d69a4e738caa64a36e8", "78c8ac14909e413fbb1626b6efdbec68", "1b7969fb58384e25b91b11f5348c810d", "308f359cff84446e89c1fbf76c8b34f2", "a86c9550ba0c4b5db3701819f8423c15", "e2237d437fc54937ba6f45a5b22c7377", "34b74c86bcc04eb5aad1b667a91c3948", "1778362342914876b0d5e0904a87e95e", "c6279dd011884c1cbd052586016a2b76", "02fbd37048bc44ada397b88dce82b583", "88f5d239ab634ca3a962683c937175b3", "aa847695ac7443c69bc8d9fd3a827fc3", "4370a707f89d4780a9be14854a678486", "db17be46e9f64fd4b07888c0719dbb42", "0965da667b9049d8b022963887d19a52", "66ceec301cb6460d9295cc303dea2a28" ] }, "id": "YSqkbItX1bWR", "outputId": "a8802782-cee2-4d1a-8022-e9a363012d53" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "==((====))== Unsloth 2026.3.17: Fast Qwen3 patching. Transformers: 5.3.0. vLLM: 0.13.0+cu130.\n", " \\\\ /| NVIDIA GeForce RTX 4090. Num GPUs = 1. Max memory: 23.516 GB. Platform: Linux.\n", "O^O/ \\_/ \\ Torch: 2.10.0+cu130. CUDA: 8.9. CUDA Toolkit: 13.0. Triton: 3.6.0\n", "\\ / Bfloat16 = TRUE. FA [Xformers = 0.0.35. FA2 = False]\n", " \"-____-\" Free license: http://github.com/unslothai/unsloth\n", "Unsloth: Fast downloading is enabled - ignore downloading bars which are red colored!\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Loading weights: 100%|██████████| 398/398 [00:00<00:00, 427.90it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "unsloth/Qwen3-4B-Instruct-2507-unsloth-bnb-4bit does not have a padding token! Will use pad_token = <|PAD_TOKEN|>.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Unsloth: Dropout = 0 is supported for fast patching. You are using dropout = 0.05.\n", "Unsloth will patch all other layers, except LoRA matrices, causing a performance hit.\n", "Unsloth 2026.3.17 patched 36 layers with 0 QKV layers, 0 O layers and 0 MLP layers.\n" ] } ], "source": [ "model = FastLanguageModel.get_peft_model(\n", " model,\n", " r=16,\n", " target_modules=[\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\", \"gate_proj\", \"up_proj\", \"down_proj\"],\n", " lora_alpha=32,\n", " lora_dropout=0.05,\n", " bias=\"none\",\n", " use_gradient_checkpointing=\"unsloth\",\n", " random_state=3407,\n", " use_rslora=False,\n", " loftq_config=None\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "s5BfzQ7raR0Q" }, "source": [ "Creating chat template." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "id": "p1tqAjKe12o6" }, "outputs": [], "source": [ "system_prompt = \"\"\"\n", "Ты пишешь полные научно-технические описания школьных инженерных и\n", "ИТ-проектов для конференции. Пиши по-русски, связно, подробно, конкретно,\n", "уверенно и без воды. Не сокращай текст до резюме и общего видения.\n", "Требуется аннотация, введение с актуальностью, цель, задачи,\n", "оборудование (конкретное, с названиями) и программы (с названиями),\n", "ход работы, выводы, перспективы.\n", "\"\"\"\n", "\n", "def format_example(example):\n", " messages = [\n", " {\"role\": \"system\", \"content\": system_prompt},\n", " {\"role\": \"user\", \"content\": f\"Тема: {example['topic']}. Подготовь полное описание проекта для конференции «Инженеры будущего».\"},\n", " {\"role\": \"assistant\", \"content\": example[\"text\"]}\n", " ]\n", " text = tokenizer.apply_chat_template(\n", " messages,\n", " tokenize=False,\n", " add_generation_prompt=False,\n", " enable_thinking=False\n", " )\n", " n_tokens = len(tokenizer(text, add_special_tokens=False)[\"input_ids\"])\n", " return {\"text\": text, \"n_tokens\": n_tokens}" ] }, { "cell_type": "markdown", "metadata": { "id": "m-X2FPygaXDK" }, "source": [ "Removing unnecessary properties from samples." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 209, "referenced_widgets": [ "062aa3463aa542d48cccffa5f07ed582", "d41e8332f4f04a30bc64ec387f42fe4c", "45ee4fea55ea417aa2b445574aec7dc3", "c615c08a75734e648df507d6b9b87709", "d97875b853bf4a67a55eb718a4486121", "b3726ad4f1e5435c91af8b65ecdb83f1", "9391fa81974b47db937b2c4d634dad66", "5c15afe7fa484a0291bee76b78afe3c9", "eba7e1f411814853b891f8e6af8b1231", "b540f4a56f5d419aaa23aa870ff4b2de", "388b03bb3fca42f9976a948593cd3f92", "5b93409eb52c42b9837446600dd88a09", "37894484f43441cd91a9f9bc1e4aee23", "7ca35449ad284230b5d0a50e42381e85", "f845f052c0404d65942df5e2a24d5044", "47afbfd64cea4c43bf5e7fa1572815a5", "bd0ff04e26ee42738f039ae223c3fe94", "ddc957a86ccb4db9bd8cb6c2f93ec186", "f7a3861739ef4476968bde8830e8a8de", "e75ea61d619a41ea9386230f5ce000d7", "f609c9ef559b4ebbbf05cdbe8682c6a6", "ed7f460b35694fa4854ff99ff47a9eb5", "9655cad3268d4b20b6099389f86ee154", "5d3bd1ebef5d4fcf885febea7c750345", "d813b2f6429b4829a399277230fbc9f4", "d17353fb374e48ddb36fc0d7b9bce1b0", "7a0a61bb5c69426d998fa7548bccd46a", "06fa5f63ece2456a8af7241f6148ea29", "7b20ddca1bfd48d1a0bc72dbc25cfedf", "cdb88e08cd274a22b9dde03458e4b1ff", "b62e8b497ba34971a7f481bc63914968", "17eca5bf14894c8ea5b06e94c3b2426c", "fea33c53651442beaac0b54286525e0a", "5e148d335771462390a5a75e9e8ff293", "7c52fbb84a814b6bb53ca8021c717d4a", "f3a89c30693646e2aec0dfba406bdc82", "fe631c3cc4054a88ab33df31f15be67c", "bc7e6dc2a6474851a429b8ff0b094ae7", "d6236b42fac340cbb91a3d131b416807", "89a57ee2ddac41d097105319c3853fb0", "abdac85e3a2943ba858525a123787c33", "7ae7387ea2b54220a0932ae9752ad9cd", "4addb1f6a8a340adad2c7dbbc070e665", "c79faa35f5324de0966f982defde367f", "a832b04c6416461a9e5ae1d5c2034ace", "a2cf3c153cb14cd798036556324257fe", "cad0705e7a34418fae8623255f325dc7", "90dbf52567c141e28449e7959431c42d", "9037f5009fcf424d80e93d140654e39f", "f0f7b98b362843ab8fc164a8d536b120", "c82a052155f04abe880363297b659f57", "8a8be365c1c3438aa5289f9a058df8b1", "e10931631edf4d9e98d3b54f9e64a222", "c30df31f10bd4bf5a1d100b0b970428b", "095f0d01ba3e4a409324d5a4a6767d33", "9fd6df67c79f4a4ba6bac8aa1b00e87f", "5ffdba59197d4805a1918c3315549c46", "702568abfa7d468e9b3be984e47c73da", "7c8b5663390f4da89b38f6f6d98c56ae", "9338626a84594166ac4023858053857e", "5d97da92242543a0bf8deee8df3a593e", "ff656004f9ba4764869a0c1a2fda3571", "aa02f38a23e34e7b8cbf6d409b70507b", "f61ee48caa7443a990ddaedd56e840a7", "1967bd368f2640c1a5314deff9414f18", "d56ae2422abc4e03b1119bd01c6c508d" ] }, "id": "PVxJtYxg2ydy", "outputId": "e5afd5a0-a894-49ca-81b6-357632fdf2cb" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Map: 100%|██████████| 1925/1925 [00:04<00:00, 434.95 examples/s]\n", "Map: 100%|██████████| 107/107 [00:00<00:00, 420.18 examples/s]\n", "Map: 100%|██████████| 107/107 [00:00<00:00, 446.68 examples/s]\n", "Filter: 100%|██████████| 1925/1925 [00:00<00:00, 71475.68 examples/s]\n", "Filter: 100%|██████████| 107/107 [00:00<00:00, 26416.54 examples/s]\n", "Filter: 100%|██████████| 107/107 [00:00<00:00, 27046.98 examples/s]\n" ] } ], "source": [ "train_ds = train_base.map(format_example, remove_columns=train_base.column_names)\n", "val_ds = val_base.map(format_example, remove_columns=val_base.column_names)\n", "test_ds = test_base.map(format_example, remove_columns=test_base.column_names)\n", "\n", "train_ds = train_ds.filter(lambda x: x[\"n_tokens\"] <= max_seq_length)\n", "val_ds = val_ds.filter(lambda x: x[\"n_tokens\"] <= max_seq_length)\n", "test_ds = test_ds.filter(lambda x: x[\"n_tokens\"] <= max_seq_length)\n", "\n", "train_ds = train_ds.remove_columns([\"n_tokens\"])\n", "val_ds = val_ds.remove_columns([\"n_tokens\"])\n", "test_ds = test_ds.remove_columns([\"n_tokens\"])\n", "\n", "bf16 = torch.cuda.is_bf16_supported()\n", "fp16 = not bf16" ] }, { "cell_type": "markdown", "metadata": { "id": "zS59-yF1acLg" }, "source": [ "Setting trainer and its config." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 116, "referenced_widgets": [ "7742a4e7c3014e8c9622dfd6eb817e11", "6cd9790bec664c63ae6a40d6343ed1f3", "731228d84969434f8d666ce80a23a9a6", "7bca706ac3474d058596e462bc8fe382", "dc33a70daff74adbb404558d8ce03945", "27d17e9277bb42538f600ec114e1a63b", "61a6ea958a4a48289b95373ec8ccb0c7", "ab39e31072a042a587b3f1c8811fa48b", "a6eaf5694c8d4baba8a95267818013a5", "6c54a4fb37194ab2b65c91b53eb55188", "3b1eb206143f48e8a8654b0e1d46e4b2", "a07093a5ba384c8d85208ab15f61506a", "cde5922a3d1f413dade80ea1b03d3d00", "9daab2b7f68b421dbd1d7029c55ed092", "8055a0b409e5410a8344c604aa18830d", "ef558f6c865d41e9990a3f7aac42e41b", "1d57244723c442fbb4365eea5bd88e82", "fdb7f386048f421fa1d9b3fabf749169", "6a34932e052848dc8e3c39cce70bb036", "b2b35ca4c3ce40bfab2265189391b8f6", "89c6f30607244bb696493e276736fa6d", "0d5c38374b04452c9db5b9e69c9c8375" ] }, "id": "SmgY_1h6yEXW", "outputId": "1d5d3ef7-c311-4727-e39c-bd566126345c" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "warmup_ratio is deprecated and will be removed in v5.2. Use `warmup_steps` instead.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "🦥 Unsloth: Padding-free auto-enabled, enabling faster training.\n" ] } ], "source": [ "train_args = SFTConfig(\n", " output_dir=\"/home/coder/project/jupyter/qwen3_future_engineers_lora\",\n", " per_device_train_batch_size=1,\n", " per_device_eval_batch_size=1,\n", " gradient_accumulation_steps=16,\n", " num_train_epochs=1,\n", " learning_rate=1.5e-4,\n", " warmup_ratio=0.03,\n", " lr_scheduler_type=\"cosine\",\n", " optim=\"paged_adamw_8bit\",\n", " logging_steps=10,\n", " save_steps=100,\n", " eval_steps=100,\n", " save_total_limit=2,\n", " bf16=bf16,\n", " fp16=fp16,\n", " report_to=\"none\",\n", " seed=3407\n", ")\n", "\n", "trainer = SFTTrainer(\n", " model=model,\n", " tokenizer=tokenizer,\n", " train_dataset=train_ds,\n", " eval_dataset=val_ds,\n", " dataset_text_field=\"text\",\n", " max_seq_length=max_seq_length,\n", " packing=True,\n", " args=train_args\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "_zPzgMi1agQq" }, "source": [ "Training. The model was trained on RTX 4090 GPU (24 GB VRAM) with 13 CPUs and 15 GB of RAM. The first two epochs were run with a learning rate of 1.5e-4 (40 min), while for the third epoch, it was reduced to 0.5e-4 (20 min). The entire process took one hour. By step 10, the loss was approximately 2.0. By step 200, it had dropped to about 1.0. During the third epoch, it decreased further to 0.95." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 834 }, "id": "gCJ0O1Xb3P8y", "outputId": "06ac149c-cd11-4f87-fffc-d91cf5d51bd3" }, "outputs": [], "source": [ "trainer.train()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('/home/coder/project/jupyter/qwen3_future_engineers_lora/tokenizer_config.json',\n", " '/home/coder/project/jupyter/qwen3_future_engineers_lora/chat_template.jinja',\n", " '/home/coder/project/jupyter/qwen3_future_engineers_lora/tokenizer.json')" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trainer.save_model(\"/home/coder/project/jupyter/qwen3_future_engineers_lora\")\n", "tokenizer.save_pretrained(\"/home/coder/project/jupyter/qwen3_future_engineers_lora\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Saving the model to Hugging Face." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The token has not been saved to the git credentials helper. Pass `add_to_git_credential=True` in this function directly or `--add-to-git-credential` if using via `hf`CLI if you want to set the git credential as well.\n", "Token is valid (permission: write).\n", "The token `future-engineers` has been saved to /home/coder/.cache/huggingface/stored_tokens\n", "Your token has been saved to /home/coder/.cache/huggingface/token\n", "Login successful.\n", "The current active token is: `future-engineers`\n" ] } ], "source": [ "!hf auth login --token YOUR_TOKEN" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Processing Files (1 / 1): 100%|██████████| 132MB / 132MB, 16.9MB/s \n", "New Data Upload: 100%|██████████| 132MB / 132MB, 16.9MB/s \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Saved model to https://huggingface.co/pymlex/qwen3-future-engineers-lora\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Processing Files (1 / 1): 100%|██████████| 11.4MB / 11.4MB, 0.00B/s \n", "New Data Upload: | | 0.00B / 0.00B, 0.00B/s \n" ] } ], "source": [ "model.push_to_hub(\"pymlex/qwen3-future-engineers-lora\")\n", "tokenizer.push_to_hub(\"pymlex/qwen3-future-engineers-lora\")" ] }, { "cell_type": "markdown", "metadata": { "id": "wvsK4ws9bTfO" }, "source": [ "Inference." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 225, "referenced_widgets": [ "3f5d7446ba1641a79bc60567c52b0e0f", "d9cb582e272e453284fea554858eb4ff", "908ac13fcae34ae28ea1173737122663", "b2f608e6f9fb42a3a5a5689dae9edf6b", "34f056f7cc9147bab839798c7d3adb76", "dfe2ca4064924b6cad334607414db54b", "0a514dc1640c44f3b50d985c6f458148", "4befe031fcf14643a8753a8e3da9d264", "6b0f87c7134d42d88599c186af07c4e5", "46c70dee98db40e5a875fe82ae906011", "45ed450b1356413293a07f3983dfd973" ] }, "id": "d6VHl_UoHixS", "outputId": "46fd63ca-7a98-4080-fd84-6192d5b81f72" }, "outputs": [], "source": [ "from transformers import AutoModelForCausalLM, AutoTokenizer\n", "from peft import PeftModel\n", "import torch\n", "\n", "base_model = \"Qwen/Qwen3-4B-Instruct-2507\"\n", "adapter_path = \"pymlex/qwen3-future-engineers-lora\"\n", "\n", "tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)\n", "\n", "model = AutoModelForCausalLM.from_pretrained(\n", " base_model,\n", " device_map=\"auto\",\n", " torch_dtype=torch.float16,\n", " trust_remote_code=True\n", ")\n", "\n", "model = PeftModel.from_pretrained(model, adapter_path)\n", "model.eval()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "id": "9I9B2n8LM0tN" }, "outputs": [], "source": [ "system_prompt = \"\"\"\n", "Ты пишешь полные научно-технические описания школьных инженерных и\n", "ИТ-проектов для конференции. Пиши по-русски, связно, подробно, конкретно,\n", "уверенно и без воды. Не сокращай текст до резюме и общего видения.\n", "Требуется аннотация, введение с актуальностью, цель, задачи,\n", "оборудование (конкретное, с названиями) и программы (с названиями),\n", "ход работы, выводы, перспективы.\n", "\"\"\"\n", "\n", "def generate(topic):\n", " messages = [\n", " {\"role\": \"system\", \"content\": system_prompt},\n", " {\"role\": \"user\", \"content\": f\"Тема: {topic}. Подготовь полное описание проекта для конференции «Инженеры будущего».\"}\n", " ]\n", "\n", " text = tokenizer.apply_chat_template(\n", " messages,\n", " tokenize=False,\n", " add_generation_prompt=True\n", " )\n", "\n", " inputs = tokenizer(text, return_tensors=\"pt\").to(model.device)\n", " prompt_len = inputs.input_ids.shape[1]\n", "\n", " outputs = model.generate(\n", " **inputs,\n", " max_new_tokens=1200,\n", " temperature=0.7,\n", " top_p=0.9,\n", " do_sample=True\n", " )\n", "\n", " decoded = tokenizer.decode(outputs[0][prompt_len:], skip_special_tokens=True)\n", " print(decoded.strip())" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "collapsed": true, "id": "UJWdY-Kl8-3U", "jupyter": { "outputs_hidden": true }, "outputId": "c1bb4dd2-f20d-43a7-a477-eb6f40050036" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "\n", "\n", "# Актуальность\n", "\n", "В настоящее время все больше людей страдают от проблем, вызванных низким качеством воздуха. Здоровье людей зависит от многих факторов, но одним из важнейших является качество воздуха. В нашей школе есть кабинеты с очень плохой вентиляцией. Поэтому мы решили создать систему мониторинга качества воздуха, которая будет показывать уровень углекислого газа и влажности воздуха в каждом кабинете нашей школы.\n", "\n", "# Цель\n", "\n", "Разработать и создать систему мониторинга качества воздуха в кабинетах нашей школы.\n", "\n", "# Задачи\n", "\n", "- 1. Изучить теоретический материал по теме.\n", "- 2. Изучить существующие аналоги.\n", "- 3. Разработать и создать систему мониторинга качества воздуха.\n", "- 4. Провести анализ работы созданной системы.\n", "\n", "# Оснащение и оборудование, использованное при создании работы\n", "\n", "- 1. Микроконтроллер Arduino UNO\n", "- 2. Датчик влажности воздуха DHT11\n", "- 3. Датчик концентрации углекислого газа MQ135\n", "- 4. Адаптер питания USB\n", "- 5. Компьютер с установленным ПО: Arduino IDE, Fritzing\n", "- 6. 3D-принтер Maestro Classic\n", "- 7. Пластик ABS\n", "\n", "# Описание\n", "\n", "Для создания системы мониторинга качества воздуха в кабинетах нашей школы авторы решили использовать микроконтроллер Arduino UNO. Это решение обусловлено его простотой и доступностью.\n", "\n", "Для датчиков влажности воздуха DHT11 и концентрации углекислого газа MQ135 авторы использовали стандартные разъёмы на 2 провода.\n", "\n", "В качестве среды для разработки авторы выбрали Arduino IDE. Это обусловлено простотой использования и доступностью. Для создания электрической схемы авторы использовали программу Fritzing. Это обусловлено простотой использования и доступностью. Для создания корпуса системы мониторинга качества воздуха авторы использовали 3D-принтер Maestro Classic. Это обусловлено простотой и доступностью.\n", "\n", "В процессе работы над проектом авторы проявили инициативу, активно изучили необходимый теоретический материал, изучили существующие аналоги, разработали и создали систему мониторинга качества воздуха, провели анализ работы созданной системы.\n", "\n", "# Результаты работы/выводы\n", "\n", "В результате работы над проектом авторы получили систему мониторинга качества воздуха в кабинетах нашей школы. Система состоит из микроконтроллера Arduino UNO, датчика влажности воздуха DHT11 и датчика концентрации углекислого газа MQ135. Система мониторинга качества воздуха в кабинетах нашей школы имеет следующие преимущества:\n", "\n", "- 1. Простота установки;\n", "- 2. Доступная стоимость;\n", "- 3. Возможность использования в любых условиях;\n", "- 4. Возможность расширения функционала.\n", "\n", "# Перспективы использования результатов работы\n", "\n", "В перспективе планируется использовать систему мониторинга качества воздуха в кабинетах нашей школы для улучшения качества воздуха в кабинетах. Также планируется разработать мобильное приложение для отображения данных с датчиков.\n", "\n", "# Мнение автора о своей работе, проекте «Инженерный класс в московской школе», конференции «Инженеры будущего», пожелания\n", "\n", "«Мы очень рады, что наш проект был выбран для участия в конференции «Инженеры будущего». Мы считаем, что наш проект имеет большой потенциал и может быть использован для улучшения качества воздуха в кабинетах нашей школы. Мы надеемся, что наш проект будет продолжать развиваться и совершенствоваться»\n" ] } ], "source": [ "generate(\"Система мониторинга качества воздуха в школьных кабинетах\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Rkongh5R9BWx", "outputId": "9ef2a60c-82ac-4e59-b4e4-573feede97ca" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "\n", "\n", "# Актуальность\n", "\n", "В современном мире всё большую роль играют информационные технологии, которые позволяют оптимизировать многие процессы. Одной из таких областей, где они могут быть применены, является образование. В школе ученики часто сталкиваются с трудностями в запоминании и отслеживании домашних заданий. Это может привести к низкой успеваемости и снижению мотивации к обучению. Для решения этой проблемы можно использовать приложение, которое автоматически уведомляет учеников о новых заданиях и помогает им отслеживать выполнение домашних заданий.\n", "\n", "# Цель\n", "\n", "Разработка приложения, которое поможет ученикам автоматически отслеживать и уведомлять о новых домашних заданиях.\n", "\n", "# Задачи\n", "\n", "- 1. Изучить существующие решения для автоматизации учёта домашних заданий.\n", "- 2. Разработать концепцию приложения.\n", "- 3. Создать базу данных для хранения информации о домашних заданиях.\n", "- 4. Разработать интерфейс пользователя для удобного взаимодействия с приложением.\n", "- 5. Реализовать функции уведомлений и напоминаний о новых заданиях.\n", "- 6. Интегрировать искусственный интеллект для автоматизации распознавания текста домашних заданий.\n", "- 7. Провести тестирование приложения и исправить выявленные недостатки.\n", "\n", "# Оснащение и оборудование, использованное при создании работы\n", "\n", "- ПК с установленным ПО: Python, Visual Studio Code, PyQt5, PyQt5-Designer, PyTesseract, OpenCV, TensorFlow\n", "- Смартфон\n", "\n", "# Описание\n", "\n", "В процессе работы над проектом автор изучил существующие решения для автоматизации учёта домашних заданий и разработал концепцию приложения. Далее автор создал базу данных для хранения информации о домашних заданиях и разработал интерфейс пользователя для удобного взаимодействия с приложением. В приложении реализованы функции уведомлений и напоминаний о новых заданиях. Также был интегрирован искусственный интеллект для автоматизации распознавания текста домашних заданий.\n", "\n", "# Результаты работы/выводы\n", "\n", "В результате работы над проектом были достигнуты следующие результаты:\n", "\n", "- 1. Разработано приложение для автоматизации учёта домашних заданий.\n", "- 2. Создана база данных для хранения информации о домашних заданиях.\n", "- 3. Разработан интерфейс пользователя для удобного взаимодействия с приложением.\n", "- 4. Реализованы функции уведомлений и напоминаний о новых заданиях.\n", "- 5. Интегрирован искусственный интеллект для автоматизации распознавания текста домашних заданий.\n", "\n", "# Перспективы использования результатов работы\n", "\n", "Результаты работы могут быть использованы для создания приложения, которое поможет ученикам автоматически отслеживать и уведомлять о новых домашних заданиях. Это может значительно улучшить успеваемость учеников и повысить их мотивацию к обучению.\n", "\n", "# Сотрудничество с вузом/учреждением при создании работы \n", "\n", "# МГТУ им. Н.Э. Баумана\n" ] } ], "source": [ "generate(\"Приложение для автоматизации учета домашних заданий с использованием ИИ\")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "collapsed": true, "id": "sDA4YBgg9DE3", "jupyter": { "outputs_hidden": true }, "outputId": "e9e1b03d-264e-45e7-e5cf-e91b450fd286" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "\n", "\n", "# **Актуальность**\n", "\n", "В настоящее время ведутся активные разработки по улучшению качества жизни людей и повышению их комфорта. Одним из направлений, в котором проявляется стремление улучшить качество жизни, является создание умных пространств. Умные пространства включают в себя элементы автоматизации, которые позволяют управлять различными устройствами и системами. Одним из примеров использования умных пространств является создание умной теплицы. Умная теплица может обеспечивать комфортные условия для роста растений, автоматически регулируя такие параметры, как влажность и температура. Она может быть оснащена датчиками, которые постоянно отслеживают изменения влажности и температуры, и автоматически регулировать уровень влажности и температуры в соответствии с необходимыми параметрами. Это может включать в себя включение или отключение влажности и температуры. Умная теплица может также иметь встроенные камеры, которые позволяют пользователям наблюдать за ростом растений в реальном времени, а также использовать системы искусственного освещения, которые могут регулировать количество света, доступного растениям, в зависимости от времени суток и условий внутри теплицы.\n", "\n", "# **Цель**\n", "\n", "Создать устройство, которое позволит автоматически регулировать влажность и температуру в теплице.\n", "\n", "# **Задачи**\n", "\n", "- 1. Изучить и проанализировать существующие решения и технологии для автоматического контроля влажности и температуры в теплицах.\n", "- 2. Определить необходимые параметры и требования для создания устройства, которое будет способно эффективно управлять влажностью и температурой.\n", "- 3. Разработать схему устройства, которая будет включать в себя необходимые датчики для измерения влажности и температуры, а также устройства для их регулировки.\n", "- 4. Определить оптимальные параметры для влажности и температуры в теплице, которые будут способствовать здоровому росту растений.\n", "- 5. Разработать алгоритм работы устройства, который будет определять необходимые действия для поддержания оптимальных параметров влажности и температуры.\n", "- 6. Создать программное обеспечение, которое будет реализовывать алгоритм работы устройства и обеспечивать взаимодействие с пользователем.\n", "- 7. Создать удобный интерфейс для управления устройством, который позволит пользователю легко настраивать параметры влажности и температуры, а также отслеживать их текущие значения.\n", "- 8. Оценить эффективность устройства и его способность обеспечивать оптимальные условия для роста растений.\n", "\n", "# **Оснащение и оборудование, использованное при создании работы**\n", "\n", "- Arduino UNO\n", "- LCD-модуль 1602\n", "- Датчик влажности земли\n", "- Датчик температуры\n", "- Датчик освещенности\n", "- Реле влажности\n", "- Реле температуры\n", "- Датчик влажности воздуха\n", "- Кнопка включения\n", "- Плата расширения\n", "- Регулятор освещенности\n", "- Драйвер шагового двигателя\n", "- Шаговый двигатель\n", "- Реле включения\n", "- Аккумулятор\n", "- Каналы связи\n", "- Компьютер\n", "- 3D-принтер\n", "\n", "# **Описание**\n", "\n", "Автором была разработана система для автоматического контроля влажности и температуры в теплице. В основе системы лежит микроконтроллер Arduino UNO, который управляет всеми устройствами и поддерживает связь с пользователем через LCD-модуль 1602. Для измерения влажности земли используется датчик влажности земли, а для измерения температуры – датчик температуры. Датчик освещенности позволяет определить уровень освещенности в теплице, что необходимо для регулирования искусственного освещения. Датчик влажности воздуха также помогает контролировать влажность воздуха внутри теплицы.\n", "\n", "В системе используются реле для управления различными устройствами, такими как реле влажности, реле температуры и реле включения. Реле влажности позволяет включать или выключать влажность в теплице, а реле температуры – регулировать температуру. Реле включения используется для управления включением или выключением теплицы.\n", "\n", "Для поддержания оптимальных условий в теплице используется система регулирования влажности и температуры. Влажность в теплице может быть поддерживаема при помощи реле вл\n" ] } ], "source": [ "generate(\"Разработка умной теплицы с автоматическим контролем влажности и температуры\")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "collapsed": true, "id": "l4hLcQ6iWIxh", "jupyter": { "outputs_hidden": true }, "outputId": "328ba277-c294-4d04-b1b6-976418d20895" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "\n", "\n", "# **Актуальность**\n", "\n", "В настоящее время ледоколы используются для обеспечения проходимости воды в зимний период, что необходимо для поддержания транспортных и энергетических связей. Важным аспектом использования ледоколов является их эффективное движение по льду, что позволяет достигать максимальной скорости передвижения и минимизировать затраты на энергию. Одним из ключевых факторов, влияющих на движение ледокола, является форма его корпуса. Угол наклона кормы играет значительную роль в определении траектории движения ледокола. Угол наклона кормы влияет на движение ледокола, поскольку он определяет траекторию движения ледокола. В результате, при небольшом наклоне кормы ледокол движется более плавно, а при большем наклоне ледокол может потерять контроль над своим движением и потерять стабильность.\n", "\n", "# **Цель**\n", "\n", "Создание физически информированной нейронной сети, которая может моделировать движение ледокола и определять оптимальный угол наклона кормы для достижения максимальной скорости передвижения.\n", "\n", "# **Задачи**\n", "\n", "- 1. Создать тренировочный набор данных, содержащий информацию о различных условиях движения ледокола, включая скорость, угол наклона кормы, тип льда, плотность льда и другие факторы.\n", "- 2. Разработать нейронную сеть, которая может обучаться на данном наборе данных и предсказывать оптимальный угол наклона кормы для достижения максимальной скорости передвижения.\n", "- 3. Оценить эффективность модели на тестовом наборе данных и определить её способность предсказывать оптимальный угол наклона кормы для достижения максимальной скорости передвижения.\n", "\n", "# **Оснащение и оборудование, использованное при создании работы**\n", "\n", "- Ноутбук с установленным ПО (Python, PyTorch)\n", "- Тренировочный набор данных\n", "\n", "# **Описание**\n", "\n", "Автор разработал физически информированную нейронную сеть, которая может моделировать движение ледокола и определять оптимальный угол наклона кормы для достижения максимальной скорости передвижения.\n", "\n", "# **Результаты работы/выводы**\n", "\n", "В результате работы автор получил физически информированную нейронную сеть, которая может моделировать движение ледокола и определять оптимальный угол наклона кормы для достижения максимальной скорости передвижения.\n", "\n", "# **Перспективы использования результатов работы**\n", "\n", "Результаты работы могут быть использованы для оптимизации движения ледоколов в различных условиях, что позволит повысить эффективность их использования и снизить затраты на энергию.\n", "\n", "# **Сотрудничество с вузом/учреждением при создании работы**\n", "\n", "Работа была выполнена при участии МГТУ им. Н.Э. Баумана.\n", "\n", "# **Мнение автора о своей работе, проекте «Инженерный класс в московской школе», конференции «Инженеры будущего», пожелания**\n", "\n", "«Мне очень понравилось создавать проект, я узнал много нового и получил много полезных навыков»\n" ] } ], "source": [ "generate(\"Физически информированная нейронная сеть для моделирования движения ледокола\")" ] } ], "metadata": { "accelerator": "GPU", "colab": { "gpuType": "T4", "provenance": [] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.4" } }, "nbformat": 4, "nbformat_minor": 4 }