['   \n  \n [\'ਇਸ ਕੋਡ ਨੂੰ ਸਾਫ਼ ਕਰੋ\' \'\\ਨਿੰਪੋਰਟ ਗਣਿਤ\\ਨਿੰਪੋਰਟ ਸਮਾਂ\\ਨਿੰਪੋਰਟ ਟਾਰਚ\\ਨ ਡਾਟਾਸੇਟਾਂ ਤੋਂ ਆਯਾਤ ਲੋਡ _ ਡੇਟਾਸੇਟ \\ਨ ਵਾਕ _ ਟ੍ਰਾਂਸਫਾਰਮਰਾਂ ਤੋਂ ਆਯਾਤ ਕਰੋਟ੍ਰਾਂਸਫਾਰਮਰਾਂ ਤੋਂ ਇੰਪੋਰਟ ਆਟੋਟੋਕਨਾਈਜ਼ਰ, ਆਟੋਮੋਡਲ \\n\\nਮੋਡਲ _ ਨਾਮ = "ਆਲ-ਮਿਨੀਐੱਲਐੱਮ-ਐੱਲ6-ਵੀ2" \\nਪ੍ਰਿੰਟ (ਐੱਫ "ਮਾਡਲਃ {ਮਾਡਲ _ ਨਾਮ}") \\ndataset _ ਪਾਥ= "ਟ੍ਰੇੱਕ" \\nਪ੍ਰਿੰਟ (f "ਡੇਟਾਸੇਟਃ {ਡੇਟਾਸੇਟ _ ਪਾਥ}") \\ndataset = ਲੋਡ _ ਡੇਟਾਸੇਟ (ਡੇਟਾਸੇਟ _ ਪਾਥ, ਸਪਲਿਟ = "ਟ੍ਰੇਨ") \\nਪ੍ਰਿੰਟ (f "ਡੇਟਾਸੇਟ ਦਾ ਅਕਾਰਃ{ਲੇਨ (ਡੇਟਾਸੇਟ)} ") \\nmax _ pow = math.ceil (math.log2 (ਲੇਨ (ਡੇਟਾਸੇਟ))) \\n\\nstarting _ lines = 100\\nਪ੍ਰਿੰਟ (f" ਸਟਾਰਟਿੰਗ ਲਾਈਨਾਂਃ {ਸਟਾਰਟਿੰਗ _ ਲਾਈਨਾਂ} ") \\nmin _ pow =math.floor (math.log2 (ਸਟਾਰਟਿੰਗ _ ਲਾਈਨਾਂ)) \\nprint (f "2 ਦੀ ਨਜ਼ਦੀਕੀ ਪਾਵਰਃ {ਮਿੰਟ _ ਪਾਵ}") \\ndevises = ["cpu"] \\n #ਕੋਸ਼ਿਸ਼ ਕਰੋ ਅਤੇ ਦੇਖੋ ਕਿ ਕੀ ਐੱਮ. ਪੀ. ਐੱਸ. ਉਪਲਬਧ ਹੈ, ਅਤੇ ਸ਼ਾਮਲ ਕਰੋ \\niftorch.has_mps: \\n devices.append ("mps") \\nif torch.cuda.is_available (): \\n devices.append ("cuda") \\nਪ੍ਰਿੰਟ (f "ਉਪਕਰਣਃ{ਜੰਤਰ} ") \\nprint () \\nprint (" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ") \\nprint () (2 * * p ਵਿੱਚ ਰੇਖਾਵਾਂ ਲਈ (2 * * p ਲਈ ਸੀਮਾ (ਘੱਟੋ ਘੱਟ _ ਪੌ,ਮੈਕਸ _ ਪਾਵ + 1): \\n ਵਾਕ = ਡੇਟਾਸੇਟ ["ਟੈਕਸਟ"] [: ਲਾਈਨਾਂ] \\n\\n ਪ੍ਰਿੰਟ (f "ਵਾਕਾਂ ਦੀ ਲੰਬਾਈ ਇੰਕੋਡ ਕਰਨ ਲਈਃ {ਲੇਨ (ਵਾਕਾਂ)}") \\n #ਉਪਕਰਣ ਲਈ ["cpu", "mps"]: \\nਯੰਤਰਾਂ ਵਿੱਚ ਯੰਤਰ ਲਈਃ \\n ਮਾਡਲ = ਵਾਕ ਪਰਿਵਰਤਨਕਾਰ (ਮਾਡਲ _ ਨਾਮ, ਯੰਤਰ = ਯੰਤਰ) \\n ਸਟਾਰਟ = time.time () \\n ਇੰਬੈਡਿੰਗ = model.encode (ਵਾਕ,ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਸੱਚਾ) \\n ਅੰਤ = time.time () \\n ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਅੰਤ-ਸ਼ੁਰੂ\\n ਦਰ = ਲਾਈਨਾਂ/ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ\\n #ਨਾਲ csv\\n ਵਿੱਚ ਨਤੀਜੇ ਸ਼ਾਮਲ ਕਰੋ("results.csv", a ") ਨੂੰ f: \\n f.write (\\n #f" {ਮਾਡਲ _ ਨਾਮ}, {ਡੇਟਾਸੇਟ _ ਪਾਥ}, {ਜੰਤਰ}, {ਲਾਈਨਾਂ}, {ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)}\\\\n "\\n ਦੇ ਰੂਪ ਵਿੱਚ ਖੋਲ੍ਹੋ।f "{ਮਾਡਲ _ ਨਾਮ}, {ਡੇਟਾਸੇਟ _ ਪਾਥ}, {ਜੰਤਰ}, {ਲਾਈਨਾਂ}, {ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)}, {ਗੋਲ (ਰੇਟ, 2)}\\\\n" \\n) \\n ਪ੍ਰਿੰਟ (\\n "{} ਦੀ ਵਰਤੋਂ ਨਾਲ ਇੰਕੋਡਿੰਗ {} ਵਿੱਚ ਪੂਰੀ ਕੀਤੀ ਗਈਸਕਿੰਟ. "ਫਾਰਮੈਟ (\\n ਉਪਕਰਣ, ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2) \\n) \\n) \\n ਪ੍ਰਿੰਟ (" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =ਮਾਡਲ = ਵਾਕ ਟ੍ਰਾਂਸਫਾਰਮਰ (ਮਾਡਲ _ ਨਾਮ, ਯੰਤਰ = "ਸੀਪੀਯੂ") \\n #ਸਟਾਰਟ = time.time () \\n #ਇੰਬੈਡਿੰਗਜ਼ = model.encode (ਵਾਕ, ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਸੱਚਾ) \\n #ਅੰਤ =time.time () \\n #ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਐਂਡ-ਸਟਾਰਟ \\n #ਪ੍ਰਿੰਟ ("CPU ਦੀ ਵਰਤੋਂ ਨਾਲ ਇੰਕੋਡਿੰਗ {} ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੂਰੀ ਕੀਤੀ ਗਈ".. ਫਾਰਮੈਟ (ਰਾਊਂਡ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)) \\n #ਮਾਡਲ =ਵਾਕ ਟ੍ਰਾਂਸਫਾਰਮਰ (ਮਾਡਲ _ ਨਾਮ, ਯੰਤਰ = "ਐੱਮ. ਪੀ. ਐੱਸ".) \\n #ਸਟਾਰਟ = time.time () \\n #ਇੰਬੈਡਿੰਗਜ਼ = model.encode (ਵਾਕ, ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਟਰੂ) \\n #ਐਂਡ =time.time () \\n #ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਐਂਡ-ਸਟਾਰਟ \\n #ਪ੍ਰਿੰਟ (\\n #"ਐਪਲ ਸਿਲੀਕਾਨ ਚਿੱਪ M2 (ਐੱਮ. ਪੀ. ਐੱਸ.) ਦੀ ਵਰਤੋਂ ਨਾਲ ਇੰਕੋਡਿੰਗ {} ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੂਰੀ ਕੀਤੀ ਗਈ". ਫਾਰਮੈਟ (\\n #\') ', 'ਇਸ ਕੋਡ ਨੂੰ ਸਾਫ਼ ਕਰੋ "\'ਡੇਟਾ ਸੈੱਟਾਂ ਤੋਂ ਗਣਿਤ ਆਯਾਤ ਸਮਾਂ ਆਯਾਤ ਟਾਰਚ ਆਯਾਤ ਕਰੋ ਵਾਕ _ ਟ੍ਰਾਂਸਫਾਰਮਰਾਂ ਤੋਂ ਲੋਡ _ ਡੇਟਾਸੇਟ ਆਯਾਤ ਕਰੋ ਵਾਕ ਟ੍ਰਾਂਸਫਾਰਮਰਟ੍ਰਾਂਸਫਾਰਮਰਾਂ ਤੋਂ ਇੰਪੋਰਟ ਆਟੋਟੋਕਨਾਈਜ਼ਰ, ਆਟੋਮੋਡਲ ਮਾਡਲ _ ਨੇਮ = "ਆਲ-ਮਿਨੀਐੱਲਐੱਮ-ਐੱਲ6-ਵੀ2" ਪ੍ਰਿੰਟ (ਐੱਫ "ਮਾਡਲਃ {ਮਾਡਲ _ ਨਾਮ}") ਡੇਟਾਸੇਟ _ ਪਾਥ = "ਟ੍ਰੇੱਕ" ਪ੍ਰਿੰਟ (ਐੱਫ "ਡੇਟਾਸੇਟਃ{ਡੇਟਾਸੇਟ _ ਪਾਥ} ") ਡੇਟਾਸੇਟ = ਲੋਡ _ ਡੇਟਾਸੇਟ (ਡੇਟਾਸੇਟ _ ਪਾਥ, ਸਪਲਿਟ =" ਟ੍ਰੇਨ ") ਪ੍ਰਿੰਟ (f" ਡੇਟਾਸੇਟ ਦਾ ਅਕਾਰਃ {ਲੇਨ (ਡੇਟਾਸੇਟ)} ") ਮੈਕਸ _ ਪਾਵ =math.ceil (math.log2 (ਲੇਨ (ਡੇਟਾਸੇਟ))) ਸਟਾਰਟਿੰਗ ਲਾਈਨਾਂ = 100 ਪ੍ਰਿੰਟ (f "ਸਟਾਰਟਿੰਗ ਲਾਈਨਾਂਃ {ਸਟਾਰਟਿੰਗ _ ਲਾਈਨਾਂ}") ਮਿੰਟ _ ਪਾਵ = math.floor (math.log2 (ਸਟਾਰਟਿੰਗ _ ਲਾਈਨਾਂ))ਪ੍ਰਿੰਟ ਕਰੋ (f "2 ਦੀ ਨੇਡ਼ੇ ਦੀ ਸ਼ਕਤੀਃ {ਮਿੰਟ _ ਪਾਵ}") ਉਪਕਰਣ = ["ਸੀਪੀਯੂ"] #ਕੋਸ਼ਿਸ਼ ਕਰੋ ਅਤੇ ਦੇਖੋ ਕਿ ਕੀ ਐੱਮਪੀਐੱਸ ਉਪਲਬਧ ਹੈ, ਅਤੇ ਜੋਡ਼ੋ ਕਿ ਕੀ torch.has_mps: devices.append ("ਐੱਮਪੀਐੱਸ") ਜੇਕਰtorch.cuda.is_available (): devices.append ("cuda") ਪ੍ਰਿੰਟ (f "ਜੰਤਰਃ {ਜੰਤਰ}") ਪ੍ਰਿੰਟ ()ਪ੍ਰਿੰਟ ("= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =") ਪ੍ਰਿੰਟ () ਲਾਈਨਾਂ ਲਈ (2 * * ਪੀ ਲਈ ਪੀ ਸੀਮਾ ਵਿੱਚ (ਮਿੰਟ _ ਪਾਵ, ਮੈਕਸ _ ਪਾਵ + 1): ਵਾਕ = ਵਾਕਡਾਟਾਸੇਟ ["ਟੈਕਸਟ"] [: ਲਾਈਨਾਂ] ਪ੍ਰਿੰਟ (f "ਇੰਕੋਡ ਕਰਨ ਲਈ ਵਾਕਾਂ ਦੀ ਲੰਬਾਈਃ {len (ਵਾਕਾਂ)}") #["cpu", "mps"] ਵਿੱਚ ਜੰਤਰ ਲਈਃ ਜੰਤਰਾਂ ਵਿੱਚ ਜੰਤਰ ਲਈਃ ਮਾਡਲ =ਵਾਕ ਟ੍ਰਾਂਸਫਾਰਮਰ (ਮਾਡਲ _ ਨਾਮ, ਯੰਤਰ = ਯੰਤਰ) ਸਟਾਰਟ = time.time () ਇੰਬੈਡਿੰਗਜ਼ = model.encode (ਵਾਕ, ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਟਰੂ) ਅੰਤ = time.time ()ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਐਂਡ-ਸਟਾਰਟ ਰੇਟ = ਲਾਈਨਾਂ/ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ #ਨਤੀਜੇ ਨੂੰ csv ਵਿੱਚ ਓਪਨ ("results.csv", "a") ਦੇ ਨਾਲ ਜੋਡ਼ਦਾ ਹੈ ਜਿਵੇਂ ਕਿ f: f.write (#f "{ਮਾਡਲ _ ਨਾਮ}, {ਡੇਟਾਸੇਟ _ ਪਾਥ}, {ਜੰਤਰ}, {ਲਾਈਨਾਂ}, {ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)} \\n" f "{ਮਾਡਲ _ ਨਾਮ}, {ਡੇਟਾਸੇਟ _ ਪਾਥ}, {ਜੰਤਰ}, {ਲਾਈਨਾਂ}, {ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ,2)}, {ਰਾਊਂਡ (ਰੇਟ, 2)} \\n ") ਪ੍ਰਿੰਟ (" {} ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੂਰਾ ਕੀਤਾ {} ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੰਕੋਡਿੰਗ ".. ਫਾਰਮੈਟ (ਜੰਤਰ, ਰਾਊਂਡ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)))ਪ੍ਰਿੰਟ ("= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =") ਪ੍ਰਿੰਟ () ##ਮਾਡਲ = ਵਾਕ ਟ੍ਰਾਂਸਫਾਰਮਰ (ਮਾਡਲ _ ਨਾਮ, ਉਪਕਰਣ = "ਸੀਪੀਯੂ") #ਸਟਾਰਟ =time.time () #ਇੰਬੈਡਿੰਗਜ਼ = model.encode (ਵਾਕ, ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਟਰੂ) #ਐਂਡ = time.time () #ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਐਂਡ-ਸਟਾਰਟ #ਪ੍ਰਿੰਟ ("ਵਰਤ ਕੇ ਇੰਕੋਡਿੰਗ"CPU ਨੂੰ {} ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੂਰਾ ਕੀਤਾ ਗਿਆ ".. ਫਾਰਮੈਟ (ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)) #ਮਾਡਲ = ਸਟੇਨੈਂਸਟ੍ਰਾਂਸਫਾਰਮਰ (ਮਾਡਲ _ ਨਾਮ, ਡਿਵਾਈਸ =" ਐੱਮ. ਪੀ. ਐੱਸ ".) #ਸਟਾਰਟ = time.time () #ਇੰਬੈਡਿੰਗ = model.encode (ਵਾਕ, ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਟਰੂ) #ਐਂਡ = time.time () #ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਐਂਡ-ਸਟਾਰਟ #ਪ੍ਰਿੰਟ (#"ਐਪਲ ਦੀ ਵਰਤੋਂ ਨਾਲ ਇੰਕੋਡਿੰਗਸਿਲੀਕਾਨ ਚਿੱਪ ਐੱਮ2 (ਐੱਮ. ਪੀ. ਐੱਸ.) ਨੂੰ {} ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੂਰਾ ਕੀਤਾ ਗਿਆ।', ' [\'ਇਸ ਕੋਡ ਨੂੰ ਸਾਫ਼ ਕਰੋ\' \'\\ਨਿੰਪੋਰਟ ਗਣਿਤ\\ਨਿੰਪੋਰਟ ਸਮਾਂ\\ਨਿੰਪੋਰਟ ਟਾਰਚ\\ਨ ਡਾਟਾਸੇਟਾਂ ਤੋਂ ਆਯਾਤ ਲੋਡ _ ਡੇਟਾਸੇਟ \\ਨ ਵਾਕ _ ਟ੍ਰਾਂਸਫਾਰਮਰਾਂ ਤੋਂ ਆਯਾਤ ਕਰੋਟ੍ਰਾਂਸਫਾਰਮਰਾਂ ਤੋਂ ਇੰਪੋਰਟ ਆਟੋਟੋਕਨਾਈਜ਼ਰ, ਆਟੋਮੋਡਲ \\n\\nਮੋਡਲ _ ਨਾਮ = "ਆਲ-ਮਿਨੀਐੱਲਐੱਮ-ਐੱਲ6-ਵੀ2" \\nਪ੍ਰਿੰਟ (ਐੱਫ "ਮਾਡਲਃ {ਮਾਡਲ _ ਨਾਮ}") \\ndataset _ ਪਾਥ= "ਟ੍ਰੇੱਕ" \\nਪ੍ਰਿੰਟ (f "ਡੇਟਾਸੇਟਃ {ਡੇਟਾਸੇਟ _ ਪਾਥ}") \\ndataset = ਲੋਡ _ ਡੇਟਾਸੇਟ (ਡੇਟਾਸੇਟ _ ਪਾਥ, ਸਪਲਿਟ = "ਟ੍ਰੇਨ") \\nਪ੍ਰਿੰਟ (f "ਡੇਟਾਸੇਟ ਦਾ ਅਕਾਰਃ{ਲੇਨ (ਡੇਟਾਸੇਟ)} ") \\nmax _ pow = math.ceil (math.log2 (ਲੇਨ (ਡੇਟਾਸੇਟ))) \\n\\nstarting _ lines = 100\\nਪ੍ਰਿੰਟ (f" ਸਟਾਰਟਿੰਗ ਲਾਈਨਾਂਃ {ਸਟਾਰਟਿੰਗ _ ਲਾਈਨਾਂ} ") \\nmin _ pow =math.floor (math.log2 (ਸਟਾਰਟਿੰਗ _ ਲਾਈਨਾਂ)) \\nprint (f "2 ਦੀ ਨਜ਼ਦੀਕੀ ਪਾਵਰਃ {ਮਿੰਟ _ ਪਾਵ}") \\ndevises = ["cpu"] \\n #ਕੋਸ਼ਿਸ਼ ਕਰੋ ਅਤੇ ਦੇਖੋ ਕਿ ਕੀ ਐੱਮ. ਪੀ. ਐੱਸ. ਉਪਲਬਧ ਹੈ, ਅਤੇ ਸ਼ਾਮਲ ਕਰੋ \\niftorch.has_mps: \\n devices.append ("mps") \\nif torch.cuda.is_available (): \\n devices.append ("cuda") \\nਪ੍ਰਿੰਟ (f "ਉਪਕਰਣਃ{ਜੰਤਰ} ") \\nprint () \\nprint (" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ") \\nprint () (2 * * p ਵਿੱਚ ਰੇਖਾਵਾਂ ਲਈ (2 * * p ਲਈ ਸੀਮਾ (ਘੱਟੋ ਘੱਟ _ ਪੌ,ਮੈਕਸ _ ਪਾਵ + 1): \\n ਵਾਕ = ਡੇਟਾਸੇਟ ["ਟੈਕਸਟ"] [: ਲਾਈਨਾਂ] \\n\\n ਪ੍ਰਿੰਟ (f "ਵਾਕਾਂ ਦੀ ਲੰਬਾਈ ਇੰਕੋਡ ਕਰਨ ਲਈਃ {ਲੇਨ (ਵਾਕਾਂ)}") \\n #ਉਪਕਰਣ ਲਈ ["cpu", "mps"]: \\nਯੰਤਰਾਂ ਵਿੱਚ ਯੰਤਰ ਲਈਃ \\n ਮਾਡਲ = ਵਾਕ ਪਰਿਵਰਤਨਕਾਰ (ਮਾਡਲ _ ਨਾਮ, ਯੰਤਰ = ਯੰਤਰ) \\n ਸਟਾਰਟ = time.time () \\n ਇੰਬੈਡਿੰਗ = model.encode (ਵਾਕ,ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਸੱਚਾ) \\n ਅੰਤ = time.time () \\n ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਅੰਤ-ਸ਼ੁਰੂ\\n ਦਰ = ਲਾਈਨਾਂ/ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ\\n #ਨਾਲ csv\\n ਵਿੱਚ ਨਤੀਜੇ ਸ਼ਾਮਲ ਕਰੋ("results.csv", a ") ਨੂੰ f: \\n f.write (\\n #f" {ਮਾਡਲ _ ਨਾਮ}, {ਡੇਟਾਸੇਟ _ ਪਾਥ}, {ਜੰਤਰ}, {ਲਾਈਨਾਂ}, {ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)}\\\\n "\\n ਦੇ ਰੂਪ ਵਿੱਚ ਖੋਲ੍ਹੋ।f "{ਮਾਡਲ _ ਨਾਮ}, {ਡੇਟਾਸੇਟ _ ਪਾਥ}, {ਜੰਤਰ}, {ਲਾਈਨਾਂ}, {ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)}, {ਗੋਲ (ਰੇਟ, 2)}\\\\n" \\n) \\n ਪ੍ਰਿੰਟ (\\n "{} ਦੀ ਵਰਤੋਂ ਨਾਲ ਇੰਕੋਡਿੰਗ {} ਵਿੱਚ ਪੂਰੀ ਕੀਤੀ ਗਈਸਕਿੰਟ. "ਫਾਰਮੈਟ (\\n ਉਪਕਰਣ, ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2) \\n) \\n) \\n ਪ੍ਰਿੰਟ (" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =ਮਾਡਲ = ਵਾਕ ਟ੍ਰਾਂਸਫਾਰਮਰ (ਮਾਡਲ _ ਨਾਮ, ਯੰਤਰ = "ਸੀਪੀਯੂ") \\n #ਸਟਾਰਟ = time.time () \\n #ਇੰਬੈਡਿੰਗਜ਼ = model.encode (ਵਾਕ, ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਸੱਚਾ) \\n #ਅੰਤ =time.time () \\n #ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਐਂਡ-ਸਟਾਰਟ \\n #ਪ੍ਰਿੰਟ ("CPU ਦੀ ਵਰਤੋਂ ਨਾਲ ਇੰਕੋਡਿੰਗ {} ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੂਰੀ ਕੀਤੀ ਗਈ".. ਫਾਰਮੈਟ (ਰਾਊਂਡ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)) \\n #ਮਾਡਲ =ਵਾਕ ਟ੍ਰਾਂਸਫਾਰਮਰ (ਮਾਡਲ _ ਨਾਮ, ਯੰਤਰ = "ਐੱਮ. ਪੀ. ਐੱਸ".) \\n #ਸਟਾਰਟ = time.time () \\n #ਇੰਬੈਡਿੰਗਜ਼ = model.encode (ਵਾਕ, ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਟਰੂ) \\n #ਐਂਡ =time.time () \\n #ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਐਂਡ-ਸਟਾਰਟ \\n #ਪ੍ਰਿੰਟ (\\n #"ਐਪਲ ਸਿਲੀਕਾਨ ਚਿੱਪ M2 (ਐੱਮ. ਪੀ. ਐੱਸ.) ਦੀ ਵਰਤੋਂ ਨਾਲ ਇੰਕੋਡਿੰਗ {} ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੂਰੀ ਕੀਤੀ ਗਈ".. ਫਾਰਮੈਟ (\\n #\',\' ਇੱਥੇ ਹਨਕੋਡ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ ਕੁੱਝ ਸੁਝਾਅਃ \\n\\n1. "ਮੈਜਿਕ ਸਟਰਿੰਗਜ਼" ਲਈ ਸਥਿਰਤਾ ਦੀ ਵਰਤੋਂ ਕਰੋ ਜਿਵੇਂ ਕਿ ਮਾਡਲ _ ਨਾਮ, ਡੇਟਾਸੇਟ _ ਪਾਥ, ਆਦਿ।ਅਤੇ ਕਾਇਮ ਰੱਖਣ ਯੋਗ। \\n\\n \'\' ਪਾਈਥਨ \\nMODEL _ NAME = "ਆਲ-ਮਿਨੀਐੱਲਐੱਮ-ਐੱਲ6-ਵੀ2" \\nDATASET _ PATH = "ਟ੍ਰੇੱਕ" \\n "\\n \\n2. ਲੰਬੇ ਸਮੀਕਰਨ ਨੂੰ ਵਿਚਕਾਰਲੇ ਵਿੱਚ ਕੱਢੋ।ਬਿਹਤਰ ਪਡ਼੍ਹਨਯੋਗਤਾ ਲਈ ਵੇਰੀਏਬਲ। ਉਦਾਹਰਨ ਲਈਃ \\n\\n "\'ਪਾਈਥਨ\\ਨਡੇਟਾਸੇਟ = ਲੋਡ _ ਡੇਟਾਸੇਟ (DATASET _ PATH, ਸਪਲਿਟ =" ਟ੍ਰੇਨ ") \\nsentences = ਡੇਟਾਸੇਟ [" ਟੈਕਸਟ "] [: ਲਾਈਨਾਂ]\\n "\'\\n\' ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਦੁਬਾਰਾ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈਃ \\n" \'ਪਾਈਥਨ \\ntrain _ ਸੈਟ = ਲੋਡ _ ਡੇਟਾਸੇਟ (DATASET _ PATH, ਸਪਲਿਟ = "ਟ੍ਰੇਨ") \\nsentences = ਟ੍ਰੇਨ _ ਸੈੱਟ ["ਟੈਕਸਟ"] [: ਲਾਈਨਾਂ] \\n "\' \\n\\n3।ਸਤਰ ਨੂੰ + ਨਾਲ ਜੋਡ਼ਨ ਦੀ ਬਜਾਏ ਸਤਰ ਇੰਟਰਪੋਲੇਸ਼ਨ ਲਈ f-ਸਤਰ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਉਦਾਹਰਨ ਲਈਃ \\n\\n "\'ਪਾਈਥਨ \\nਪ੍ਰਿੰਟ (f" ਮਾਡਲਃ {ਮਾਡਲ _ ਨਾਮ} ")\\nਪ੍ਰਿੰਟ (f "ਡੇਟਾਸੇਟ ਦਾ ਅਕਾਰਃ {len (ਡੇਟਾਸੇਟ)}") \\n "\'\\n\\n4. ਕੋਡ ਨੂੰ ਵਧੇਰੇ ਮਾਡਯੂਲਰ ਅਤੇ ਮੁਡ਼ ਵਰਤੋਂ ਯੋਗ ਬਣਾਉਣ ਲਈ ਕੋਡ ਦੇ ਵੱਡੇ ਹਿੱਸਿਆਂ ਨੂੰ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਕੱਢੋ।ਉਦਾਹਰਨ ਲਈ, ਇੰਕੋਡਿੰਗ ਤਰਕ ਨੂੰ ਇੱਕ ਫੰਕਸ਼ਨ ਵਿੱਚ ਕੱਢਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜਿਵੇਂ ਕਿਃ \\n\\n "\'ਪਾਈਥਨ \\ndef ਇੰਕੋਡ _ ਵਾਕ (ਮਾਡਲ, ਵਾਕ, ਉਪਕਰਣ): \\n ਸਟਾਰਟ =time.time () \\n ਇੰਬੈਡਿੰਗਜ਼ = model.encode (ਵਾਕ, ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਟਰੂ) \\n ਅੰਤ = time.time () \\n ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਅੰਤ-ਸ਼ੁਰੂ\\n ਪ੍ਰਿੰਟ (f "ਦੀ ਵਰਤੋਂ ਨਾਲ ਇੰਕੋਡਿੰਗ{ਜੰਤਰ} ਨੂੰ {ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)} ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੂਰਾ ਕੀਤਾ ਗਿਆ। ") \\n" \'\\n\' ਫਿਰ ਤੁਸੀਂ ਇਸ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਕਹਿ ਸਕਦੇ ਹੋਃ \\n \'ਏਨਕੋਡ _ ਵਾਕ (ਮਾਡਲ, ਵਾਕ, "cpu")\' \\n\\n5। ਵਰਤੋਂਬਿਹਤਰ ਪਡ਼੍ਹਨਯੋਗਤਾ ਲਈ ਇਕਸਾਰ ਦੂਰੀ ਅਤੇ ਇੰਡੇਟੇਸ਼ਨ। \\n\\n ਉਮੀਦ ਹੈ ਕਿ ਇਸ ਨਾਲ ਮਦਦ ਮਿਲੇਗੀ! ਮੈਨੂੰ ਦੱਸੋ ਕਿ ਕੀ ਤੁਹਾਡੇ ਕੋਈ ਹੋਰ ਪ੍ਰਸ਼ਨ ਹਨ। \',\' ਟਾਈਮ ਸਟੈਂਪ ਸ਼ਾਮਲ ਕਰੋ ਅਤੇਸਿਸਟਮ ਬਾਰੇ ਜਾਣਕਾਰੀ ਜਿਸ ਵਿੱਚ ਨਿਰਧਾਰਨ, ਵਿਲੱਖਣ ਡਿਵਾਈਸ ਆਈਡੀ ਅਤੇ ਸੀਐਸਵੀ ਦੀ ਪਾਵਰ ਸਥਿਤੀ ਸ਼ਾਮਲ ਹੈ] ', 'ਇਸ ਕੋਡ ਨੂੰ ਸਾਫ਼ ਕਰੋ "\'ਡੇਟਾ ਸੈੱਟਾਂ ਤੋਂ ਗਣਿਤ ਆਯਾਤ ਸਮਾਂ ਆਯਾਤ ਟਾਰਚ ਆਯਾਤ ਕਰੋ ਵਾਕ _ ਟ੍ਰਾਂਸਫਾਰਮਰਾਂ ਤੋਂ ਲੋਡ _ ਡੇਟਾਸੇਟ ਆਯਾਤ ਕਰੋ ਵਾਕ ਟ੍ਰਾਂਸਫਾਰਮਰਟ੍ਰਾਂਸਫਾਰਮਰਾਂ ਤੋਂ ਇੰਪੋਰਟ ਆਟੋਟੋਕਨਾਈਜ਼ਰ, ਆਟੋਮੋਡਲ ਮਾਡਲ _ ਨੇਮ = "ਆਲ-ਮਿਨੀਐੱਲਐੱਮ-ਐੱਲ6-ਵੀ2" ਪ੍ਰਿੰਟ (ਐੱਫ "ਮਾਡਲਃ {ਮਾਡਲ _ ਨਾਮ}") ਡੇਟਾਸੇਟ _ ਪਾਥ = "ਟ੍ਰੇੱਕ" ਪ੍ਰਿੰਟ (ਐੱਫ "ਡੇਟਾਸੇਟਃ{ਡੇਟਾਸੇਟ _ ਪਾਥ} ") ਡੇਟਾਸੇਟ = ਲੋਡ _ ਡੇਟਾਸੇਟ (ਡੇਟਾਸੇਟ _ ਪਾਥ, ਸਪਲਿਟ =" ਟ੍ਰੇਨ ") ਪ੍ਰਿੰਟ (f" ਡੇਟਾਸੇਟ ਦਾ ਅਕਾਰਃ {ਲੇਨ (ਡੇਟਾਸੇਟ)} ") ਮੈਕਸ _ ਪਾਵ =math.ceil (math.log2 (ਲੇਨ (ਡੇਟਾਸੇਟ))) ਸਟਾਰਟਿੰਗ ਲਾਈਨਾਂ = 100 ਪ੍ਰਿੰਟ (f "ਸਟਾਰਟਿੰਗ ਲਾਈਨਾਂਃ {ਸਟਾਰਟਿੰਗ _ ਲਾਈਨਾਂ}") ਮਿੰਟ _ ਪਾਵ = math.floor (math.log2 (ਸਟਾਰਟਿੰਗ _ ਲਾਈਨਾਂ))ਪ੍ਰਿੰਟ ਕਰੋ (f "2 ਦੀ ਨੇਡ਼ੇ ਦੀ ਸ਼ਕਤੀਃ {ਮਿੰਟ _ ਪਾਵ}") ਉਪਕਰਣ = ["ਸੀਪੀਯੂ"] #ਕੋਸ਼ਿਸ਼ ਕਰੋ ਅਤੇ ਦੇਖੋ ਕਿ ਕੀ ਐੱਮਪੀਐੱਸ ਉਪਲਬਧ ਹੈ, ਅਤੇ ਜੋਡ਼ੋ ਕਿ ਕੀ torch.has_mps: devices.append ("ਐੱਮਪੀਐੱਸ") ਜੇਕਰtorch.cuda.is_available (): devices.append ("cuda") ਪ੍ਰਿੰਟ (f "ਜੰਤਰਃ {ਜੰਤਰ}") ਪ੍ਰਿੰਟ ()ਪ੍ਰਿੰਟ ("= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =") ਪ੍ਰਿੰਟ () ਲਾਈਨਾਂ ਲਈ (2 * * ਪੀ ਲਈ ਪੀ ਸੀਮਾ ਵਿੱਚ (ਮਿੰਟ _ ਪਾਵ, ਮੈਕਸ _ ਪਾਵ + 1): ਵਾਕ = ਵਾਕਡਾਟਾਸੇਟ ["ਟੈਕਸਟ"] [: ਲਾਈਨਾਂ] ਪ੍ਰਿੰਟ (f "ਇੰਕੋਡ ਕਰਨ ਲਈ ਵਾਕਾਂ ਦੀ ਲੰਬਾਈਃ {len (ਵਾਕਾਂ)}") #["cpu", "mps"] ਵਿੱਚ ਜੰਤਰ ਲਈਃ ਜੰਤਰਾਂ ਵਿੱਚ ਜੰਤਰ ਲਈਃ ਮਾਡਲ =ਵਾਕ ਟ੍ਰਾਂਸਫਾਰਮਰ (ਮਾਡਲ _ ਨਾਮ, ਯੰਤਰ = ਯੰਤਰ) ਸਟਾਰਟ = time.time () ਇੰਬੈਡਿੰਗਜ਼ = model.encode (ਵਾਕ, ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਟਰੂ) ਅੰਤ = time.time ()ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਐਂਡ-ਸਟਾਰਟ ਰੇਟ = ਲਾਈਨਾਂ/ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ #ਨਤੀਜੇ ਨੂੰ csv ਵਿੱਚ ਓਪਨ ("results.csv", "a") ਦੇ ਨਾਲ ਜੋਡ਼ਦਾ ਹੈ ਜਿਵੇਂ ਕਿ f: f.write (#f "{ਮਾਡਲ _ ਨਾਮ}, {ਡੇਟਾਸੇਟ _ ਪਾਥ}, {ਜੰਤਰ}, {ਲਾਈਨਾਂ}, {ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)} \\n" f "{ਮਾਡਲ _ ਨਾਮ}, {ਡੇਟਾਸੇਟ _ ਪਾਥ}, {ਜੰਤਰ}, {ਲਾਈਨਾਂ}, {ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ,2)}, {ਰਾਊਂਡ (ਰੇਟ, 2)} \\n ") ਪ੍ਰਿੰਟ (" {} ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੂਰਾ ਕੀਤਾ {} ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੰਕੋਡਿੰਗ ".. ਫਾਰਮੈਟ (ਜੰਤਰ, ਰਾਊਂਡ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)))ਪ੍ਰਿੰਟ ("= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =") ਪ੍ਰਿੰਟ () ##ਮਾਡਲ = ਵਾਕ ਟ੍ਰਾਂਸਫਾਰਮਰ (ਮਾਡਲ _ ਨਾਮ, ਉਪਕਰਣ = "ਸੀਪੀਯੂ") #ਸਟਾਰਟ =time.time () #ਇੰਬੈਡਿੰਗਜ਼ = model.encode (ਵਾਕ, ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਟਰੂ) #ਐਂਡ = time.time () #ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਐਂਡ-ਸਟਾਰਟ #ਪ੍ਰਿੰਟ ("ਵਰਤ ਕੇ ਇੰਕੋਡਿੰਗ"CPU ਨੂੰ {} ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੂਰਾ ਕੀਤਾ ਗਿਆ ".. ਫਾਰਮੈਟ (ਗੋਲ (ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ, 2)) #ਮਾਡਲ = ਸਟੇਨੈਂਸਟ੍ਰਾਂਸਫਾਰਮਰ (ਮਾਡਲ _ ਨਾਮ, ਡਿਵਾਈਸ =" ਐੱਮ. ਪੀ. ਐੱਸ ".) #ਸਟਾਰਟ = time.time () #ਇੰਬੈਡਿੰਗ = model.encode (ਵਾਕ, ਸ਼ੋਅ _ ਪ੍ਰੋਗਰੈੱਸ _ ਬਾਰ = ਟਰੂ) #ਐਂਡ = time.time () #ਐਗਜ਼ੀਕਿਊਸ਼ਨ _ ਟਾਈਮ = ਐਂਡ-ਸਟਾਰਟ #ਪ੍ਰਿੰਟ (#"ਐਪਲ ਦੀ ਵਰਤੋਂ ਨਾਲ ਇੰਕੋਡਿੰਗਸਿਲੀਕਾਨ ਚਿੱਪ ਐੱਮ2 (ਐੱਮ. ਪੀ. ਐੱਸ.) ਨੂੰ {} ਸਕਿੰਟਾਂ ਵਿੱਚ ਪੂਰਾ ਕੀਤਾ ਗਿਆ। \n ']