ഓരോ ദിവസവും ഉപയോഗിക്കുന്ന ഹാർഡ്വെയറുകളിൽ AI ഇൻഫെറെൻസ് വേഗത്തിലാക്കാൻ ശ്രമിക്കുമ്പോൾ, CPU-യുടെ മന്ദഗതിയിലുള്ള പ്രവർത്തനത്തിനും GPU-വിന്റെ സങ്കീർണ്ണതയ്ക്കും ഇടയിൽ കുടുങ്ങിയതായി തോന്നുന്നുണ്ടെങ്കിൽ, OpenVINO ഒരു പരിഹാരമായേക്കാം. Intel നിർമ്മിച്ച ഇത്, സാധാരണ ഡീപ് ലേണിംഗ് മോഡലുകളെ CPU-കളിലും, സംയോജിത GPU-കളിലും, NPU-കളിൽ പോലും പ്രവർത്തിക്കുന്ന വേഗതയേറിയ ആപ്ലിക്കേഷനുകളാക്കി മാറ്റുന്നു—നിങ്ങളുടെ കോഡിംഗ് മാറ്റിയെഴുതാതെ തന്നെ.
ഈ പ്രായോഗികവും പ്രശ്നപരിഹാരത്തിന് ഊന്നൽ നൽകുന്നതുമായ ഗൈഡിൽ, OpenVINO എങ്ങനെ ഉപയോഗിക്കാമെന്ന് നിങ്ങൾ പഠിക്കും—ഇൻസ്റ്റലേഷൻ മുതൽ മോഡൽ പരിവർത്തനം, ഒപ്റ്റിമൈസേഷൻ, വിന്യാസം വരെ. ഞങ്ങൾ സാധാരണ വർക്ക്ഫ്ലോകളെക്കുറിച്ച് സംസാരിക്കും, കോഡിന്റെ ഉദാഹരണങ്ങൾ പങ്കിടും, കൂടാതെ പ്രധാനപ്പെട്ട പ്രകടന ടിപ്പുകൾക്ക് ഊന്നൽ നൽകുകയും ചെയ്യും.
ഒറ്റനോട്ടത്തിൽ നിങ്ങൾ പഠിക്കുന്ന കാര്യങ്ങൾ:
- മിനിറ്റുകൾക്കുള്ളിൽ pip ഉപയോഗിച്ച് OpenVINO ഇൻസ്റ്റാൾ ചെയ്യുക
- മോഡൽ ഓപ്റ്റിമൈസർ ഉപയോഗിച്ച് മോഡലുകൾ (ONNX/TF/PyTorch എക്സ്പോർട്ട്) പരിവർത്തനം ചെയ്യുക
- Python-ൽ OpenVINO റൺടൈം ഉപയോഗിച്ച് ഇൻഫെറെൻസ് പ്രവർത്തിപ്പിക്കുക
- ക്വാಂಟൈസേഷൻ, ബെഞ്ച്മാർക്കിംഗ് ടൂളുകൾ എന്നിവ ഉപയോഗിച്ച് ഒപ്റ്റിമൈസ് ചെയ്യുക
- കുറഞ്ഞ കോഡ് മാറ്റങ്ങളോടെ CPU, iGPU, NPU എന്നിവയിലുടനീളം വിന്യസിക്കുക
എന്താണ് OpenVINO, എന്തുകൊണ്ട് ഇത് ഉപയോഗിക്കണം?
Intel ഹാർഡ്വെയറുകളിലും അതിനുശേഷവും AI മോഡലുകൾ ഒപ്റ്റിമൈസ് ചെയ്യുന്നതിനും വിന്യസിക്കുന്നതിനുമുള്ള ഒരു ഓപ്പൺ സോഴ്സ് ടൂൾകിറ്റാണ് OpenVINO. പ്രവചനാതീതമായ പ്രകടനം, കുറഞ്ഞ ലേറ്റൻസി, പോർട്ടബിലിറ്റി എന്നിവ ആവശ്യമുള്ളപ്പോൾ ഇത് പ്രൊഡക്ഷൻ ഇൻഫെറെൻസിന് വളരെ മികച്ചതാണ്—നിങ്ങൾക്ക് ആവശ്യമില്ലെങ്കിൽ കനത്ത CUDA സജ്ജീകരണം ആവശ്യമില്ല. ഇത് ONNX പോലുള്ള ജനപ്രിയ മോഡൽ ഫോർമാറ്റുകളെ പിന്തുണയ്ക്കുകയും സാധാരണ ഫ്രെയിംവർക്കുകളുമായി എളുപ്പത്തിൽ സംയോജിപ്പിക്കുകയും ചെയ്യുന്നു.
പ്രധാന ഗുണങ്ങൾ:
- വേഗത: ഒപ്റ്റിമൈസ് ചെയ്ത കേർണലുകളും ഗ്രാഫ് ട്രാൻസ്ഫോർമേഷനുകളും CPU-കളിലും GPU-കളിലുമുള്ള ഇൻഫെറെൻസ് വേഗത്തിലാക്കുന്നു.
- പോർട്ടബിലിറ്റി: ഒരു ആപ്ലിക്കേഷന് ഒരു കോഡ് ഉപയോഗിച്ച് CPU, iGPU, NPU എന്നിവയിൽ പ്രവർത്തിപ്പിക്കാൻ സാധിക്കും.
- കാര്യക്ഷമത: ക്വാಂಟൈസേഷൻ, മോഡൽ കംപ്രഷൻ, റൺടൈം ഒപ്റ്റിമൈസേഷനുകൾ എന്നിവ ലേറ്റൻസിയും മെമ്മറിയും കുറയ്ക്കുന്നു.
- ലളിതത: ക്ലീൻ Python API-യും CLI ടൂളുകളും തുടക്കക്കാർക്ക് എളുപ്പത്തിൽ ഉപയോഗിക്കാൻ സാധിക്കുന്നവയാണ്.
ഘട്ടം 1: OpenVINO ഇൻസ്റ്റാൾ ചെയ്യുക
മിക്ക ഉപയോക്താക്കൾക്കും, എളുപ്പമുള്ള മാർഗ്ഗം pip വഴിയാണ്:
- Python 3.9–3.12 ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക (64-bit).
- ഒരു വെർച്വൽ എൻവയോൺമെന്റ് ഉണ്ടാക്കുകയും പ്രവർത്തിപ്പിക്കുകയും ചെയ്യുക (ശുപാർശ ചെയ്യുന്നു).
- ഇൻസ്റ്റാൾ ചെയ്യുക:
pip install -U openvino openvino-dev
- പരിശോധിക്കുക:
python -c "import openvino; print(openvino.version)"
നിങ്ങൾക്ക് ഔദ്യോഗികമായ വിശദമായ വിവരങ്ങൾ അറിയണമെങ്കിൽ അല്ലെങ്കിൽ പതിപ്പ് അനുസരിച്ചുള്ള നിർദ്ദേശങ്ങളും പ്ലാറ്റ്ഫോം പിന്തുണയും ട്രാക്ക് ചെയ്യാൻ ആഗ്രഹിക്കുന്നുണ്ടെങ്കിൽ, OpenVINO ഗെറ്റ് സ്റ്റാർട്ടഡ് ഡോക്സും നിലവിലെ ഡോക്യുമെന്റേഷൻ ഹബ്ബും ഉപയോഗിച്ച് തുടങ്ങുക. വേഗത്തിലുള്ള pip ഇൻസ്റ്റലേഷനും അനുയോജ്യതയ്ക്കുമായി, PyPI പേജ് റഫർ ചെയ്യുക.
ഘട്ടം 2: നിങ്ങളുടെ മോഡൽ തയ്യാറാക്കുക (ONNX ശുപാർശ ചെയ്യുന്നു)
IR (ഇന്റർമീഡിയറ്റ് റെപ്രസന്റേഷൻ) മോഡലുകൾ (.xml/.bin) ഉപയോഗിച്ച് OpenVINO മികച്ച രീതിയിൽ പ്രവർത്തിക്കുന്നു. മിക്ക ഉപയോക്താക്കളും ആദ്യം ONNX-ലേക്ക് എക്സ്പോർട്ട് ചെയ്യുകയും പിന്നീട് മോഡൽ ഓപ്റ്റിമൈസർ ഉപയോഗിച്ച് IR-ലേക്ക് മാറ്റുകയും ചെയ്യുന്നു.
പ്രധാന വഴികൾ:
- PyTorch: torch.onnx.export → ONNX → OpenVINO IR
- TensorFlow/Keras: SavedModel → ONNX (tf2onnx വഴി) → OpenVINO IR
- നിലവിലുള്ള ONNX: OpenVINO IR-ലേക്ക് നേരിട്ട് മാറ്റുക
പെട്ടെന്നുള്ള ഉദാഹരണം (PyTorch → ONNX):
- Python-ൽ നിങ്ങളുടെ മോഡൽ ONNX-ലേക്ക് എക്സ്പോർട്ട് ചെയ്യുക:
torch.onnx.export(model, dummy_input, "model.onnx", opset_version=17, do_constant_folding=True)
- onnx.checker.check_model ഉപയോഗിച്ച് ONNX സാധൂകരിക്കുക അല്ലെങ്കിൽ onnxruntime-ൽ ഒരു തവണ പ്രവർത്തിപ്പിക്കുക.
ഘട്ടം 3: മോഡൽ ഓപ്റ്റിമൈസർ ഉപയോഗിച്ച് OpenVINO IR-ലേക്ക് മാറ്റുക
മോഡൽ ഓപ്റ്റിമൈസർ ഫ്രെയിംവർക്ക് മോഡലുകളെ OpenVINO IR-ലേക്ക് മാറ്റുകയും ഗ്രാഫ്-ലെവൽ ഒപ്റ്റിമൈസേഷനുകൾ പ്രയോഗിക്കുകയും ചെയ്യുന്നു. openvino-dev ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, നിങ്ങൾക്ക് ഇത് പ്രവർത്തിപ്പിക്കാൻ കഴിയും:
- mo --input_model model.onnx --output_dir ov_model
ഇത് model.xml, model.bin എന്നിവ ഉണ്ടാക്കുന്നു.
ഉപയോഗപ്രദമായ ഫ്ലാഗുകൾ:
- --input_shape: നിങ്ങളുടെ മോഡൽ ഡൈനാമിക് ആണെങ്കിൽ ഇൻപുട്ട് ഡൈമെൻഷനുകൾ നിർബന്ധമാക്കുക.
- --mean_values/--scale_values: പ്രീപ്രോസസ്സിംഗ് സമയത്ത് ഇൻപുട്ടുകൾ സാധാരണീകരിക്കുക.
- --compress_to_fp16: വേഗത/മെമ്മറി നേട്ടങ്ങൾക്കായി കൃത്യതയും മോഡൽ വലുപ്പവും കുറയ്ക്കുക.
നുറുങ്ങ്: നിങ്ങൾ കുറഞ്ഞ ലേറ്റൻസി CPU ഇൻഫെറെൻസാണ് ലക്ഷ്യമിടുന്നതെങ്കിൽ, FP16 വേഗതയുടെയും കൃത്യതയുടെയും മികച്ച ബാലൻസ് നൽകുന്നു. A/B ടെസ്റ്റിംഗിനായി ഒരു FP32 IR ബേസ്ലൈനായി സൂക്ഷിക്കുക.
ഘട്ടം 4: OpenVINO റൺടൈം (Python) ഉപയോഗിച്ച് ഇൻഫെറെൻസ് പ്രവർത്തിപ്പിക്കുക
പ്രധാന റൺടൈം വർക്ക്ഫ്ലോ വളരെ ലളിതമാണ്.
ഉദാഹരണം (ഇമേജ് ക്ലാസിഫിക്കേഷൻ):
from openvino.runtime import Core
import numpy as np
import cv2
core = Core
model = core.read_model("ov_model/model.xml")
compiled_model = core.compile_model(model, device_name="CPU") # options: "CPU", "GPU", "AUTO", "NPU" (where supported)
input_layer = compiled_model.inputs. നിങ്ങൾക്ക് CPU ഹോട്ട്സ്പോട്ടുകളും ത്രെഡ് യൂട്ടിലൈസേഷനും പ്രൊഫൈൽ ചെയ്യണമെങ്കിൽ, OpenVINO ആപ്പുകൾക്കായി Intel VTune പ്രൊഫൈലറിന് പ്രത്യേക രീതി തന്നെയുണ്ട്.
ഘട്ടം 6: ക്വാಂಟൈസേഷൻ ഉപയോഗിച്ച് ഒപ്റ്റിമൈസ് ചെയ്യുക (INT8)
പോസ്റ്റ്-ട്രെയിനിംഗ് ക്വാണ്ടൈസേഷന് (PTQ) മോഡലിന്റെ വലുപ്പം കുറയ്ക്കാനും കൃത്യത നഷ്ടപ്പെടാതെ വേഗത വർദ്ധിപ്പിക്കാനും കഴിയും:
- openvino-dev-ൽ ഉൾപ്പെടുത്തിയിട്ടുള്ള POT (പോസ്റ്റ്-ട്രെയിനിംഗ് ഒപ്റ്റിമൈസേഷൻ ടൂൾ) ഉപയോഗിക്കുക.
- നിങ്ങളുടെ പ്രൊഡക്ഷൻ ഡാറ്റയ്ക്ക് സമാനമായ ഒരു ചെറിയ കാലിബ്രേഷൻ ഡാറ്റാസെറ്റ് നൽകുക.
- ഒരു INT8 IR എക്സ്പോർട്ട് ചെയ്ത് ബെഞ്ച്മാർക്ക് ചെയ്യുക. കൃത്യത കുറവാണെങ്കിൽ, മിക്സഡ് പ്രിസിഷൻ (INT8 + FP16) അല്ലെങ്കിൽ സെലക്ടീവ് ക്വാണ്ടൈസേഷൻ പരീക്ഷിക്കുക.
സാധാരണ ക്വാണ്ടൈസേഷൻ ഫ്ലോ:
- ശരിയായ സാമ്പിളുകൾ ശേഖരിക്കുക.
- POT ക്വാണ്ടൈസേഷൻ പാരാമീറ്ററുകൾ ക്രമീകരിക്കുക (ഓരോ ടെൻസറിനും ഓരോ ചാനലിനുമെതിരെ, സിമെട്രിക് വേഴ്സസ് അസിമെട്രിക്).
- കാലിബ്രേഷനും വാലിഡേഷനും പ്രവർത്തിപ്പിക്കുക.
- KPI-കൾ താരതമ്യം ചെയ്യുക: ലേറ്റൻസി, ത്രൂപുട്ട്, ടോപ്പ്-1/ടോപ്പ്-5 കൃത്യത അല്ലെങ്കിൽ ടാസ്ക്-നിർദ്ദിഷ്ട അളവുകൾ.
ഘട്ടം 7: ശരിയായ രീതിയിൽ പ്രീപ്രോസസ്സിംഗ് കൈകാര്യം ചെയ്യുക
മോഡൽ I/O-യുടെ പ്രതീക്ഷകൾ പലപ്പോഴും വ്യത്യസ്തമായിരിക്കും. നിങ്ങളുടെ പ്രീപ്രോസസ്സിംഗ് സാധാരണ നിലയിലാക്കുക:
- ആവശ്യമായ വലുപ്പത്തിലേക്ക് മാറ്റുക/സെൻ്റർ-ക്രോപ്പ് ചെയ്യുക (ഉദാഹരണത്തിന്, 224×224)
- ചാനൽ ഓർഡർ (RGB വേഴ്സസ് BGR)
- ലേഔട്ട് (NCHW വേഴ്സസ് NHWC)
നിങ്ങളുടെ ആപ്പ് കോഡ് വൃത്തിയുള്ളതും കൊണ്ടുനടക്കാവുന്നതുമായി നിലനിർത്താൻ, OpenVINO റൺടൈമിലെ PrePostProcessor API ഉപയോഗിച്ച് പ്രീപ്രോസസ്സിംഗ് ഘട്ടങ്ങൾ IR-ൽ ഉൾപ്പെടുത്താൻ കഴിയും.
ഉദാഹരണ ഭാഗം:
from openvino.runtime import Core, Layout, Type
from openvino.preprocess import PrePostProcessor
core = Core
model = core.read_model("ov_model/model.xml")
ppp = PrePostProcessor(model)
ppp.input.tensor.set_layout(Layout("NHWC"))
ppp.input.preprocess.convert_element_type(Type.f32)
ppp.output.tensor
model = ppp.build
compiled_model = core.compile_model(model, "AUTO")
ഘട്ടം 8: വീഡിയോയിലേക്കും സ്ട്രീമിംഗിലേക്കും സ്കെയിൽ ചെയ്യുക
വീഡിയോ അനലിറ്റിക്സിനായി, നിങ്ങൾക്ക് OpenCV അല്ലെങ്കിൽ GStreamer ഉപയോഗിച്ച് OpenVINO ഇൻഫെറെൻസ് പൈപ്പ്ലൈൻ ചെയ്യാം. ഉയർന്ന FPS നിലനിർത്താനും ലേറ്റൻസി കുറയ്ക്കാനും അസിൻക്രണസ് ഇൻഫെറെൻസ് അഭ്യർത്ഥനകളും ബാച്ച് പ്രോസസ്സിംഗും ഉപയോഗിക്കുക.
നുറുങ്ങുകൾ:
- async API ഉപയോഗിക്കുക: ഒന്നിലധികം ഇൻ-ഫ്ലൈറ്റ് അഭ്യർത്ഥനകൾ CPU-കളിലെ ത്രൂപുട്ട് മെച്ചപ്പെടുത്തുന്നു.
- നിങ്ങളുടെ മോഡലിന് വെക്റ്ററൈസ്ഡ് എക്സിക്യൂഷൻ പ്രയോജനകരമാണെങ്കിൽ ഫ്രെയിമുകൾ ബാച്ച് ചെയ്യുക.
- മൾട്ടി-കോർ സിസ്റ്റങ്ങളിൽ പ്രവചനാതീതമായ ലേറ്റൻസിക്ക് വേണ്ടി ത്രെഡുകൾ പിൻ ചെയ്യുക അല്ലെങ്കിൽ സ്ട്രീമുകൾ ക്രമീകരിക്കുക.
ഘട്ടം 9: ഉപകരണങ്ങളിൽ ഉചിതമായി വിന്യസിക്കുക
OpenVINO-യുടെ പ്രധാന പ്രത്യേകതകളിൽ ഒന്ന് തടസ്സമില്ലാത്ത ഉപകരണ ടാർഗെറ്റിംഗാണ്:
- CPU: ശക്തമായ ഡിഫോൾട്ട്; വ്യാപകമായി ലഭ്യമാണ്; എഡ്ജ്, സെർവർ എന്നിവയ്ക്ക് മികച്ചത്.
- GPU (സംയോജിപ്പിച്ചത്): ഒരു പ്രത്യേക GPU ഇല്ലാതെ നല്ല ആക്സിലറേഷൻ; ഡ്രൈവർ ഗുണനിലവാരം പ്രധാനമാണ്.
- AUTO: റൺടൈം തിരഞ്ഞെടുക്കാൻ അനുവദിക്കുക; കൊണ്ടുനടക്കാവുന്ന ആപ്പുകൾക്ക് മികച്ചത്.
- ഹെറ്ററോ എക്സിക്യൂഷൻ: പ്രയോജനകരമായ സ്ഥലങ്ങളിൽ ലെയറുകൾ ഉപകരണങ്ങളിലുടനീളം വിഭജിക്കുക.
പോർട്ടബിലിറ്റിക്കായി AUTO ഉപയോഗിച്ച് ആരംഭിക്കുക. നിങ്ങൾക്ക് കൂടുതൽ നിയന്ത്രണം ആവശ്യമാണെങ്കിൽ, CPU vs GPU ബെഞ്ച്മാർക്ക് ചെയ്ത് ഓരോ മോഡലിനും തീരുമാനിക്കുക.
ടാസ്ക് അനുസരിച്ചുള്ള പ്രായോഗിക ഉദാഹരണങ്ങൾ
- ONNX → IR പരിവർത്തനം ചെയ്യുക; FP16 ഉപയോഗിക്കുക; AUTO ഉപകരണം; അസിൻക്രണസ് ഇൻഫെറെൻസ്.
- പ്രീപ്രോസസ്സിംഗ്: വലുപ്പം മാറ്റുക, സെൻ്റർ-ക്രോപ്പ് ചെയ്യുക, സാധാരണീകരിക്കുക.
- ചെറിയ കൃത്യത കുറവിൽ >2× ത്രൂപുട്ട് ആവശ്യമുണ്ടെങ്കിൽ ക്വാണ്ടൈസ് ചെയ്യുക.
- ഒബ്ജക്റ്റ് ഡിറ്റക്ഷൻ (YOLO/SSD):
- ഡൈനാമിക് ഷേപ്പുകൾ കൈകാര്യം ചെയ്യുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക അല്ലെങ്കിൽ ഇൻപുട്ട് വലുപ്പം ശരിയാക്കുക.
- ഔട്ട്പുട്ടുകൾ പാഴ്സ് ചെയ്യുക: ബോക്സുകൾ ഡീകോഡ് ചെയ്യുക, NMS ക്ലയിന്റ് സൈഡിൽ പ്രയോഗിക്കുക.
- CPU-കളിൽ തത്സമയം പ്രവർത്തിപ്പിക്കാൻ എഡ്ജ് വിന്യാസങ്ങൾക്കായി INT8 ഉപയോഗിക്കുക.
- വലിയ ചിത്രങ്ങൾക്കായി ടൈലിംഗ് ഉപയോഗിക്കുക.
- വെക്റ്ററൈസ്ഡ് NumPy ഉപയോഗിച്ച് പോസ്റ്റ്-പ്രോസസ്സിംഗ് (argmax, കളർ മാപ്പിംഗ്) ഒപ്റ്റിമൈസ് ചെയ്യുക.
- ലഭ്യമാകുമ്പോൾ OpenVINO-ടെക്സ്റ്റ് ഒപ്റ്റിമൈസേഷനുകൾ ഉപയോഗിക്കുക.
- ടോക്കണൈസേഷൻ പൈപ്പ്ലൈനുകൾ കാഷെ ചെയ്യുക; ട്രാൻസ്ഫോർമറുകൾക്കായി INT8 പരിഗണിക്കുക.
- സ്ഥിരമായ ഡിഫ്യൂഷൻ / ജനറേറ്റീവ്:
- FP16 ടാർഗെറ്റ് ചെയ്യുക; ഷെഡ്യൂളർ/ഇൻഫെറെൻസ് ലൂപ്പുകൾ ഒപ്റ്റിമൈസ് ചെയ്യുക.
- പ്രൊഫൈലിംഗ് സഹായകമാകും—ഡിഫ്യൂഷൻ പൈപ്പ്ലൈനുകൾ മൾട്ടി-സ്റ്റേജ് ആണ്.
പരിശോധനയുടെയും മൂല്യനിർണ്ണയത്തിൻ്റെയും ചെക്ക്ലിസ്റ്റ്
- ചെറിയ ടെസ്റ്റ് സെറ്റിനായി ബേസ്ലൈനുമായി (PyTorch/TF/ONNXRuntime) ഔട്ട്പുട്ടുകൾ താരതമ്യം ചെയ്യുക.
- FP16/INT8 പരിവർത്തനങ്ങൾക്ക് ശേഷം സംഖ്യാപരമായ വ്യത്യാസങ്ങൾ സാധൂകരിക്കുക.
- ലേറ്റൻസി p50/p95 അളക്കുക, പ്രതീക്ഷിക്കുന്ന ലോഡിന് കീഴിലുള്ള ത്രൂപുട്ട്.
- സ്ട്രെസ് ടെസ്റ്റ്: മെമ്മറി അല്ലെങ്കിൽ ത്രെഡിംഗ് പ്രശ്നങ്ങൾ കണ്ടെത്താൻ ദീർഘനേരം പ്രവർത്തിപ്പിക്കുക.
പെട്ടെന്നുള്ള ഉത്തരങ്ങൾ
- മോഡൽ ഓപ്റ്റിമൈസറുമായുള്ള പരിവർത്തന പിശകുകൾ:
- openvino-dev അപ്ഡേറ്റ് ചെയ്യുക; പുതിയ opset പരീക്ഷിക്കുക; ONNX ഗ്രാഫ് ലളിതമാക്കുക (onnxsim).
- --input_shape നൽകുക; ഡൈനാമിക് ഇൻപുട്ട് പിന്തുണ സ്ഥിരീകരിക്കുക.
- CPU-യുടെ മന്ദഗതിയിലുള്ള പ്രകടനം:
- FP16/INT8, async API ഉപയോഗിക്കുക, ത്രെഡുകൾ/സ്ട്രീമുകൾ ട്യൂൺ ചെയ്യുക; benchmark_app പ്രവർത്തിപ്പിക്കുക.
- ഡ്രൈവറുകൾ അപ്ഡേറ്റ് ചെയ്യുക; device="AUTO" പരീക്ഷിക്കുക; പിന്തുണയ്ക്കുന്ന GPU-കൾക്കായി ഡോക്യുമെൻ്റുകൾ പരിശോധിക്കുക.
പഠനത്തിനുള്ള ഉറവിടങ്ങളും ഔദ്യോഗിക ഡോക്യുമെൻ്റുകളും
- ഹാൻഡ്സ്-ഓൺ ട്യൂട്ടോറിയലുകൾ, നോട്ട്ബുക്കുകൾ, സജ്ജീകരണ ഗൈഡുകൾ എന്നിവയ്ക്കായി ഇവിടെ ആരംഭിക്കുക: OpenVINO ഗെറ്റ് സ്റ്റാർട്ടഡ്
- API-കൾ, മോഡൽ ഓപ്റ്റിമൈസർ, POT, സാമ്പിളുകൾ എന്നിവയ്ക്കായുള്ള പൂർണ്ണ ഡോക്യുമെൻ്റേഷൻ പോർട്ടൽ: OpenVINO ഡോക്സ്
- വേഗത്തിലുള്ള ഇൻസ്റ്റാളേഷനുകൾക്കും അനുയോജ്യതയ്ക്കുമായുള്ള Pip ഇൻസ്റ്റലേഷൻ റഫറൻസ്: PyPI openvino
- OpenVINO ആപ്പുകൾക്കായുള്ള പ്രൊഫൈലിംഗും പ്രകടന വിശകലനവും: Intel VTune ഗൈഡ്
വഴിയിൽ, നിങ്ങൾ ഒപ്റ്റിമൈസേഷനും വിന്യാസവും സംബന്ധിച്ച സാങ്കേതിക ഉള്ളടക്കമോ ട്യൂട്ടോറിയലുകളോ അല്ലെങ്കിൽ ആന്തരിക പ്ലേബുക്കുകളോ തയ്യാറാക്കുകയാണെങ്കിൽ, Sider.AI-യുടെ റൈറ്റിംഗ് വർക്ക്സ്പേസ് പോലുള്ള ടൂളുകൾ കോഡ്, ബെഞ്ച്മാർക്കുകൾ, വിവരണം എന്നിവയെല്ലാം വേഗത്തിൽ ഒരുമിപ്പിക്കാൻ നിങ്ങളെ സഹായിക്കും—സങ്കീർണ്ണമായ OpenVINO പ്രകടന പരീക്ഷണങ്ങൾ അല്ലെങ്കിൽ മൾട്ടി-ഡിവൈസ് താരതമ്യങ്ങൾ രേഖപ്പെടുത്തുമ്പോൾ ഇത് ഉപയോഗപ്രദമാകും. ചെയ്യാനുദ്ദേശിക്കുന്ന അടുത്ത കാര്യങ്ങൾ
- pip ഉപയോഗിച്ച് OpenVINO ഇൻസ്റ്റാൾ ചെയ്യുക, ഒരു സാമ്പിൾ IR-ൽ benchmark_app പ്രവർത്തിപ്പിക്കുക.
- ഒരു നല്ല ONNX മോഡൽ (ഉദാഹരണത്തിന്, ResNet50) പരിവർത്തനം ചെയ്ത് കൃത്യത ഉറപ്പാക്കുക.
- FP16, തുടർന്ന് POT ഉപയോഗിച്ച് INT8 പരീക്ഷിക്കുക; ലേറ്റൻസിയും ത്രൂപുട്ടും അളക്കുക.
- CPU, GPU, AUTO എന്നിവയ്ക്കിടയിൽ device_name മാറ്റുക; നിങ്ങളുടെ ടാർഗെറ്റ് ഹാർഡ്വെയറിന് ഏറ്റവും മികച്ചത് തിരഞ്ഞെടുക്കുക.
- നിങ്ങൾക്ക് കൂടുതൽ പ്രകടനം ആവശ്യമുണ്ടെങ്കിൽ VTune ഉപയോഗിച്ച് പ്രൊഫൈൽ ചെയ്യുക.
പ്രധാന കണ്ടെത്തലുകൾ
- OpenVINO AI ഇൻഫെറെൻസിനെ വേഗതയേറിയതും കൊണ്ടുനടക്കാവുന്നതും ഹാർഡ്വെയർ അറിയുന്നതുമാക്കുന്നു.
- IR-ലേക്കുള്ള പരിവർത്തനവും മികച്ച പ്രീപ്രോസസ്സിംഗും വേഗത വർദ്ധിപ്പിക്കാൻ സഹായിക്കുന്നു.
- തത്സമയ പ്രകടനത്തിന് ക്വാണ്ടൈസേഷനും അസിൻക്രണസ് എക്സിക്യൂഷനുമാണ് ഏറ്റവും നല്ലത്.
- ഉപകരണ ഫ്ലെക്സിബിലിറ്റി (CPU/iGPU/NPU/AUTO) എന്നാൽ ഒരു കോഡ്ബേസ്, നിരവധി ടാർഗെറ്റുകൾ എന്നാണ് അർത്ഥമാക്കുന്നത്.
പതിവായി ചോദിക്കുന്ന ചോദ്യങ്ങൾ
Q1: OpenVINO ഏറ്റവും എളുപ്പത്തിൽ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം?
ഒരു വെർച്വൽ എൻവയോൺമെന്റ് ഉപയോഗിച്ച് ഇത് പ്രവർത്തിപ്പിക്കുക: pip install -U openvino openvino-dev. ഒരു ദ്രുത ഇമ്പോർട്ട് ചെക്ക് ഉപയോഗിച്ച് ഉറപ്പാക്കുക, പ്ലാറ്റ്ഫോം പ്രത്യേകതകൾക്കായി ഔദ്യോഗിക ഗെറ്റ് സ്റ്റാർട്ടഡ് ഡോക്യുമെന്റുകൾ പരിശോധിക്കുക.
Q2: എന്റെ മോഡലിനെ OpenVINO IR-ലേക്ക് എങ്ങനെ മാറ്റാനാകും?
നിങ്ങളുടെ മോഡലിനെ ONNX-ലേക്ക് എക്സ്പോർട്ട് ചെയ്യുക, തുടർന്ന് .xml/.bin IR ഫയലുകൾ നിർമ്മിക്കാൻ മോഡൽ ഓപ്റ്റിമൈസർ (mo) പ്രവർത്തിപ്പിക്കുക. ഇൻപുട്ട് ഷേപ്പുകൾ നൽകുക, വേഗതയ്ക്കും മെമ്മറി നേട്ടങ്ങൾക്കും വേണ്ടി FP16 പരിഗണിക്കുക.
Q3: കോഡ് മാറ്റങ്ങളില്ലാതെ CPU-യിലും സംയോജിത GPU-യിലും OpenVINO പ്രവർത്തിപ്പിക്കാൻ കഴിയുമോ?
ഉവ്വ്. device_name="AUTO", "CPU", അല്ലെങ്കിൽ "GPU" ഉപയോഗിച്ച് മോഡൽ കംപൈൽ ചെയ്യുക. നിങ്ങളുടെ ബാക്കിയുള്ള കോഡ് அப்படியே നിലനിർത്തിക്കൊണ്ട് തന്നെ ഒരു പാരാമീറ്റർ ഉപയോഗിച്ച് ഉപകരണങ്ങൾ മാറ്റാൻ കഴിയും.
Q4: OpenVINO ഉപയോഗിച്ച് ഇൻഫെറെൻസ് എങ്ങനെ വേഗത്തിലാക്കാം?
FP16 അല്ലെങ്കിൽ INT8 ക്വാണ്ടൈസേഷൻ, async ഇൻഫെറെൻസ് API എന്നിവ ഉപയോഗിക്കുക, மேலும் ത്രെഡുകളും സ്ട്രീമുകളും ട്യൂൺ ചെയ്യാൻ benchmark_app ഉപയോഗിക്കുക. കൂടുതൽ വിശകലനത്തിനായി VTune ഉപയോഗിച്ച് പ്രൊഫൈൽ ചെയ്യുക.
Q5: OpenVINO NLP-യെയും ജനറേറ്റീവ് മോഡലുകളെയും പിന്തുണയ്ക്കുമോ?
ഉവ്വ്. ഇത് നിരവധി NLP, டிஃப்யூஷன் മോഡലുകളെ പിന്തുണയ്ക്കുന്നു; FP16 ഉപയോഗിക്കുക, കൂടാതെ ട്രാൻസ്ഫോർമറുകൾക്കായി INT8 പരിഗണിക്കുക. ഒപ്റ്റിമൈസേഷന് ശേഷം കൃത്യത ഉറപ്പാക്കുക, மேலும் ലോഡിന് കീഴിലുള്ള ലേറ്റൻസി അളക്കുക.