Udostępnij przez


Często zadawane pytania dotyczące używania sztucznej inteligencji w aplikacjach systemu Windows

Ogólne

Jak mogę zintegrować sztuczną inteligencję z aplikacją kliencką systemu Windows?

Integrowanie sztucznej inteligencji z aplikacją systemu Windows można osiągnąć za pomocą dwóch podstawowych metod: modelu lokalnego lub modelu opartego na chmurze. W przypadku opcji modelu lokalnego masz możliwość korzystania ze wstępnie istniejącego modelu lub trenowania własnego przy użyciu platform takich jak TensorFlow lub PyTorch, a następnie dołączania go do aplikacji za pośrednictwem onnxRuntime. Platforma Microsoft Foundry w systemie Windows oferuje interfejsy API dla różnych funkcji, w tym OCR lub korzystające z modelu Krzemionki Phi. Z drugiej strony hostowanie modelu w chmurze i uzyskiwanie do niego dostępu za pośrednictwem interfejsu API REST umożliwia aplikacji pozostanie usprawnione przez delegowanie zadań intensywnie korzystających z zasobów do chmury. Aby uzyskać więcej informacji, zobacz Używanie modeli uczenia maszynowego w aplikacji systemu Windows .

Czy do korzystania z funkcji sztucznej inteligencji potrzebuję najnowszej wersji systemu Windows 11 i komputera Copilot+ z procesorem NPU?

Istnieje wiele sposobów uruchamiania obciążeń sztucznej inteligencji, zarówno przez instalowanie i uruchamianie modeli lokalnie na urządzeniu z systemem Windows, jak i przez uruchamianie modeli opartych na chmurze (zobacz Wprowadzenie do sztucznej inteligencji w systemie Windows), jednak funkcje sztucznej inteligencji obsługiwane przez interfejsy API sztucznej inteligencji systemu Windows obecnie wymagają komputera Copilot + PC z serwerem NPU.

Jakie języki programowania najlepiej nadają się do tworzenia sztucznej inteligencji w aplikacjach klienckich systemu Windows?

Możesz użyć dowolnego preferowanego języka programowania. Na przykład język C# jest powszechnie używany do tworzenia aplikacji klienckich systemu Windows. Jeśli potrzebujesz większej kontroli nad szczegółami niskiego poziomu, język C++ jest doskonałą opcją. Alternatywnie możesz rozważyć użycie języka Python. Możesz również użyć podsystemu Windows dla systemu Linux (WSL), aby uruchomić narzędzia sztucznej inteligencji oparte na systemie Linux w systemie Windows.

Jakie są najlepsze struktury sztucznej inteligencji dla aplikacji klienckich systemu Windows?

Zalecamy używanie polecenia OnnxRuntime.

Jak należy obsługiwać prywatność i zabezpieczenia danych podczas korzystania ze sztucznej inteligencji w aplikacjach klienckich systemu Windows?

Przestrzeganie prywatności i bezpieczeństwa danych użytkownika jest niezbędne podczas tworzenia aplikacji opartych na sztucznej inteligencji. Przed zebraniem danych należy przestrzegać najlepszych rozwiązań dotyczących obsługi danych, takich jak szyfrowanie poufnych danych, używanie bezpiecznych połączeń i uzyskiwanie zgody użytkownika. Należy również w sposób przejrzysty określić sposób korzystania z danych i zapewnić użytkownikom kontrolę nad ich danymi. Zapoznaj się również z tematem Tworzenie odpowiedzialnych aplikacji i funkcji sztucznej inteligencji w systemie Windows.

Jakie są wymagania systemowe dotyczące uruchamiania sztucznej inteligencji w aplikacjach klienckich systemu Windows?

Wymagania systemowe dotyczące aplikacji systemu Windows korzystających ze sztucznej inteligencji zależą od złożoności modelu AI i używanego przyspieszania sprzętowego. W przypadku prostych modeli nowoczesny procesor CPU może być wystarczający, ale w przypadku bardziej złożonych modeli procesor GPU lub NPU może być wymagany. Należy również wziąć pod uwagę wymagania dotyczące pamięci i magazynu aplikacji, a także przepustowość sieci wymaganą dla usług sztucznej inteligencji opartej na chmurze.

Jak zoptymalizować wydajność sztucznej inteligencji w aplikacjach klienckich systemu Windows?

Aby zoptymalizować wydajność sztucznej inteligencji w aplikacjach systemu Windows, należy rozważyć użycie przyspieszania sprzętowego, takiego jak procesory GPU lub jednostki NPU, aby przyspieszyć wnioskowanie modelu. Laptopy z systemem Windows Copilot+ są zoptymalizowane pod kątem obciążeń sztucznej inteligencji i mogą zapewnić znaczny wzrost wydajności zadań sztucznej inteligencji. Zobacz również Omówienie zestawu narzędzi AI Toolkit for Visual Studio Code.

Czy mogę używać wstępnie wytrenowanych modeli sztucznej inteligencji w mojej aplikacji klienckiej systemu Windows?

Tak, możesz użyć wstępnie wytrenowanych modeli sztucznej inteligencji w aplikacji systemu Windows. Możesz pobrać wstępnie wytrenowane modele z Internetu lub użyć usługi sztucznej inteligencji opartej na chmurze, aby uzyskać dostęp do wstępnie wytrenowanych modeli. Następnie możesz zintegrować te modele z aplikacją przy użyciu platformy takiej jak OnnxRuntime.

Co to jest DirectML?

DirectML to interfejs API niskiego poziomu do uczenia maszynowego, który zapewnia przyspieszanie procesora GPU dla typowych zadań uczenia maszynowego w szerokim zakresie obsługiwanych sprzętu i sterowników, w tym wszystkich procesorów GPU obsługujących technologię DirectX 12 od dostawców, takich jak AMD, Intel, NVIDIA i Qualcomm.

Co to jest ONNX?

Open Neuron Network Exchange (ONNX) to otwarty standardowy format reprezentujący modele uczenia maszynowego. Popularne struktury modeli uczenia maszynowego, takie jak PyTorch, TensorFlow, SciKit-Learn, Keras, Chainer, MATLAB itp., można wyeksportować lub przekonwertować na standardowy format ONNX. W formacie ONNX model może działać na różnych platformach i urządzeniach. ONNX jest dobrym rozwiązaniem w przypadku korzystania z modelu uczenia maszynowego w innym formacie niż został wytrenowany.

Co to jest ORT?

OnnxRuntime lub ORT to ujednolicone narzędzie środowiska uruchomieniowego do wykonywania modeli w różnych strukturach (PyTorch, TensorFlow itp.), które obsługuje akceleratory sprzętowe (procesory CPU urządzeń, procesory GPU lub jednostki NPU).

Jak ONNX różni się od innych struktur uczenia maszynowego, takich jak PyTorch lub TensorFlow?

Rozwiązania PyTorch i TensorFlow służą do tworzenia, trenowania i uruchamiania modeli uczenia głębokiego używanych w aplikacjach sztucznej inteligencji. PyTorch jest często używany do badań, TensorFlow jest często używany do wdrażania w branży, a ONNX jest standardowym formatem wymiany modeli , który łączy lukę, umożliwiając przełączanie się między strukturami zgodnie z potrzebami i zgodnymi między platformami.

Co to jest npu? Czym różni się procesor CPU lub procesor GPU?

Jednostka przetwarzania neuronowego (NPU) to dedykowany mikroukład sztucznej inteligencji zaprojektowany specjalnie do wykonywania zadań sztucznej inteligencji. Skupienie się na procesorze NPU różni się od procesora CPU lub procesora GPU. Central Processing Unit (procesor CPU) jest podstawowym procesorem komputera, odpowiedzialnym za wykonywanie instrukcji i obliczeń ogólnego przeznaczenia. Jednostka przetwarzania graficznego (GPU) to wyspecjalizowany procesor przeznaczony do renderowania grafiki i zoptymalizowany pod kątem przetwarzania równoległego. Umożliwia renderowanie złożonych obrazów na potrzeby zadań edycji wideo i gier.

Jednostki NPU są przeznaczone do przyspieszania algorytmów uczenia głębokiego i mogą usuwać część pracy z procesora CPU lub procesora GPU komputera, dzięki czemu urządzenie może działać wydajniej. Jednostki NPU są przeznaczone do przyspieszania zadań sieci neuronowych. Doskonale nadają się do przetwarzania dużych ilości danych równolegle, co czyni je idealnym rozwiązaniem dla typowych zadań sztucznej inteligencji, takich jak rozpoznawanie obrazów lub przetwarzanie języka naturalnego. Na przykład podczas zadania rozpoznawania obrazów procesor NPU może być odpowiedzialny za wykrywanie obiektów lub przyspieszanie obrazów, podczas gdy procesor GPU ponosi odpowiedzialność za renderowanie obrazów.

Jak sprawdzić, jaki rodzaj procesora CPU, procesora GPU lub jednostki NPU ma moje urządzenie?

Aby sprawdzić typ procesora CPU, procesora GPU lub npu na urządzeniu z systemem Windows i jego wydajność, otwórz Menedżera zadań (Ctrl + Shift + Esc), a następnie wybierz kartę Wydajność i będzie można zobaczyć procesor, pamięć, sieć Wi-Fi, procesor GPU i/lub npU wymienione, wraz z informacjami na temat jego szybkości, szybkości wykorzystania i innych danych.

Co to jest uczenie maszynowe systemu Windows?

Usługa Windows ML (Machine Learning) umożliwia aplikacji używanie współużytkowanej kopii całego systemu środowiska uruchomieniowego ONNX (ORT, patrz powyżej) i dodaje obsługę dynamicznego pobierania dostawców specyficznych dla dostawcy (EPS), dzięki czemu wnioskowanie modelu może być zoptymalizowane w wielu różnych procesorach CPU, procesorach GPU i procesorach NPU w ekosystemie systemu Windows bez konieczności przenoszenia dużych obciążeń uruchomieniowych lub samych żądań EPs.

Przydatne pojęcia dotyczące sztucznej inteligencji

Co to jest model dużego języka (LLM)?

LLM to typ modelu uczenia maszynowego (ML) znany z możliwości generowania i zrozumienia języka ogólnego przeznaczenia. LlMs to sztuczne sieci neuronowe, które uzyskują możliwości, ucząc się relacji statystycznych z ogromnych ilości dokumentów tekstowych podczas obliczeń intensywnie nadzorowanego i częściowo nadzorowanego procesu trenowania. Maszyny LLM są często używane w przypadku generowania tekstu, czyli formy generowania sztucznej inteligencji, która, biorąc pod uwagę jakiś tekst wejściowy, generuje wyrazy (lub "tokeny"), które najprawdopodobniej tworzą spójne i kontekstowe zdania w zamian. Istnieją również modele małych języków (SLM), które mają mniej parametrów i bardziej ograniczoną pojemność, ale mogą być bardziej wydajne (wymagające mniej zasobów obliczeniowych), ekonomiczne i idealne dla określonych domen.

Co to jest trenowanie modelu uczenia maszynowego?

W usłudze Machine Learning trenowanie modelu obejmuje przekazywanie zestawu danych do modelu (LLM lub SLM), dzięki czemu może uczyć się na podstawie danych, aby model mógł podejmować przewidywania lub decyzje na podstawie tych danych, rozpoznając wzorce. Może również obejmować iteracyjne dostosowanie parametrów modelu w celu zoptymalizowania wydajności.

Co to jest wnioskowanie?

Proces używania wytrenowanego modelu uczenia maszynowego w celu przewidywania lub klasyfikacji nowych, niezaświetczonych danych nosi nazwę "Wnioskowanie". Gdy model językowy został wytrenowany na zestawie danych, poznasz swoje podstawowe wzorce i relacje, wszystko będzie gotowe do zastosowania tej wiedzy w rzeczywistych scenariuszach. Wnioskowanie to moment prawdy modelu sztucznej inteligencji, czyli test tego, jak dobrze może zastosować informacje poznane podczas trenowania w celu przewidywania lub rozwiązania zadania. Proces korzystania z istniejącego modelu do wnioskowania różni się od fazy trenowania, która wymaga użycia danych szkoleniowych i weryfikacyjnych w celu opracowania modelu i dostosowania jego parametrów.

Co to jest dostrajanie modelu uczenia maszynowego?

Dostrajanie jest kluczowym krokiem w uczeniu maszynowym, w którym wstępnie wytrenowany model jest dostosowywany do wykonywania określonego zadania. Zamiast trenować model od podstaw, dostrajanie rozpoczyna się od istniejącego modelu (zwykle trenowanego na dużym zestawie danych) i dostosowuje jego parametry przy użyciu mniejszego, specyficznego dla zadania zestawu danych. Dzięki precyzyjnemu dostrajaniu model uczy się funkcji specyficznych dla zadań, zachowując ogólną wiedzę uzyskaną podczas wstępnego trenowania, co zwiększa wydajność określonych aplikacji.

Co to jest inżynieria wyzwalaczy?

Inżynieria monitu to strategiczne podejście używane z generowaniem sztucznej inteligencji w celu kształtowania zachowania i odpowiedzi modelu językowego. Obejmuje to przemyślane tworzenie monitów wejściowych lub zapytań w celu uzyskania żądanego wyniku z modelu językowego (na przykład GPT-3 lub GPT-4). Projektując skuteczny monit, możesz pokierować modelem uczenia maszynowego w celu utworzenia żądanego typu odpowiedzi. Techniki obejmują dostosowywanie wyrazów, określanie kontekstu lub używanie kodów sterujących w celu wywierania wpływu na dane wyjściowe modelu.

Co to jest przyspieszanie sprzętowe (w odniesieniu do trenowania modelu uczenia maszynowego)?

Przyspieszanie sprzętowe odnosi się do użycia wyspecjalizowanego sprzętu komputerowego przeznaczonego do przyspieszania aplikacji sztucznej inteligencji poza tym, co jest osiągalne z procesorami ogólnego przeznaczenia. Przyspieszanie sprzętowe zwiększa szybkość, efektywność energetyczną i ogólną wydajność zadań uczenia maszynowego, takich jak modele trenowania, przewidywanie lub odciążanie obliczeń do dedykowanych składników sprzętowych, które excelują się w przetwarzaniu równoległym na potrzeby obciążeń uczenia głębokiego. Procesory GPU i jednostki NPU to przykłady akceleratorów sprzętowych.

Jakie są różnice między analitykiem danych, inżynierem uczenia maszynowego i deweloperem aplikacji, który chce zastosować funkcje sztucznej inteligencji w swojej aplikacji?

Proces tworzenia i używania modeli uczenia maszynowego obejmuje trzy główne role: Analitycy danych: Odpowiedzialny za definiowanie problemu, zbieranie i analizowanie danych, wybieranie i trenowanie algorytmu uczenia maszynowego oraz ocenianie i interpretowanie wyników. Używają one narzędzi, takich jak Python, R, Jupyter Notebook, TensorFlow, PyTorch i scikit-learn, aby wykonać te zadania. Inżynierowie uczenia maszynowego: odpowiedzialny za wdrażanie, monitorowanie i konserwowanie modeli uczenia maszynowego w środowiskach produkcyjnych. Używają one narzędzi, takich jak Docker, Kubernetes, Azure ML, AWS SageMaker i Google Cloud AI Platform, aby zapewnić skalowalność, niezawodność i bezpieczeństwo modeli uczenia maszynowego. Deweloperzy aplikacji: odpowiada za integrowanie modeli uczenia maszynowego z logiką aplikacji, interfejsem użytkownika i środowiskiem użytkownika. Używają one narzędzi, takich jak Microsoft Foundry w systemie Windows, OnnxRuntime lub interfejsów API REST, i przetwarzają dane wejściowe i wyjściowe modelu użytkownika. Każda rola obejmuje różne obowiązki i umiejętności, ale współpraca i komunikacja między tymi rolami jest wymagana, aby uzyskać najlepsze wyniki. W zależności od rozmiaru i złożoności projektu te role mogą być wykonywane przez tę samą osobę lub przez różne zespoły.