0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Android上構(gòu)建自定義AI功能

谷歌開發(fā)者 ? 來源:Android 開發(fā)者 ? 2024-11-15 11:51 ? 次閱讀

作者 / 高級開發(fā)者關(guān)系工程師 Kateryna Semenova 和高級產(chǎn)品經(jīng)理 Mark Sherwood

在 "AI on Android Spotlight Week" 期間,我們深入探討了如何將自己的 AI 模型引入 Android 設(shè)備,如手機(jī)、平板電腦等。通過利用 Google 和其他來源的工具與技術(shù),您可以直接在這些設(shè)備上運(yùn)行復(fù)雜的 AI 模型,以實(shí)現(xiàn)更出色的性能、更好的隱私性和更高的可用性,創(chuàng)造激動(dòng)人心的可能性。

了解設(shè)備端 AI

設(shè)備端 AI 不依賴基于云服務(wù)器,而是直接在硬件設(shè)備上部署和運(yùn)行機(jī)器學(xué)習(xí)或生成式 AI 模型。此方法具有幾項(xiàng)優(yōu)勢,例如降低延遲、強(qiáng)化隱私、節(jié)約成本,以及減少了對互聯(lián)網(wǎng)連接的依賴。

對于生成文本用例,請?zhí)剿?Gemini Nano;用戶現(xiàn)在可以通過 Gemini Nano 的 SDK 進(jìn)行實(shí)驗(yàn)性訪問。對于許多設(shè)備端 AI 用例,您可能想要在應(yīng)用中打包自己的模型。我們將在本文介紹如何在 Android 上實(shí)現(xiàn)此操作。

設(shè)備端 AI 的核心資源

Google AI Edge 平臺(tái)為在邊緣設(shè)備上構(gòu)建和部署 AI 模型提供了一個(gè)全面的生態(tài)系統(tǒng)。此平臺(tái)支持各種框架和工具,能讓開發(fā)者將 AI 功能無縫集成到應(yīng)用中。Google AI Edge 平臺(tái)包括:

MediaPipe Tasks - 跨平臺(tái)低代碼 API,用于處理常見的生成式 AI、視覺、文本和音頻任務(wù)

LiteRT (前身為 TensorFlow Lite) - 用于在 Android 上部署自定義機(jī)器學(xué)習(xí)模型的輕量級運(yùn)行時(shí)

MediaPipe Framework - 用于將多個(gè)機(jī)器學(xué)習(xí)模型與預(yù)處理和后處理邏輯高效鏈接在一起的流水線框架

Model Explorer - 轉(zhuǎn)換、性能和調(diào)試可視化工具

如何在 Android 上構(gòu)建

自定義 AI 功能

1. 定義您的用例: 在深入研究技術(shù)細(xì)節(jié)之前,明確定義您希望 AI 功能實(shí)現(xiàn)的目標(biāo)非常重要。無論您致力于開發(fā)圖像分類、自然語言處理還是其他應(yīng)用,擁有明確的目標(biāo)將為您的開發(fā)進(jìn)程指明方向。

2. 選擇合適的工具和框架: 根據(jù)您的用例,您或許可以使用開箱即用的解決方案,也可能需要?jiǎng)?chuàng)建或獲取自己的模型。通過 MediaPipe Tasks 查看常見的解決方案,如手勢識(shí)別、圖像分割或面部特征點(diǎn)檢測。如果您找到符合需求的解決方案,可以直接進(jìn)入測試和部署步驟。

如果您需要為用例創(chuàng)建或獲取自定義模型,則需要一個(gè)設(shè)備端機(jī)器學(xué)習(xí)框架,例如 LiteRT (前身為 TensorFlow Lite)。LiteRT 專為移動(dòng)和邊緣設(shè)備設(shè)計(jì),為部署機(jī)器學(xué)習(xí)模型提供了輕量級運(yùn)行時(shí)。只需按照以下子步驟操作:

開發(fā)和訓(xùn)練模型: 使用您選擇的框架開發(fā) AI 模型。訓(xùn)練可以在功能強(qiáng)大的機(jī)器或云環(huán)境中執(zhí)行,但模型應(yīng)針對設(shè)備上的部署進(jìn)行優(yōu)化。量化和剪枝等技術(shù)可以幫助縮小模型尺寸并提高推理速度。Model Explorer 可以幫助您在使用模型的同時(shí)理解和探索該模型。

轉(zhuǎn)換和優(yōu)化模型: 當(dāng)您的模型訓(xùn)練好后,就可以將其轉(zhuǎn)換為適合設(shè)備端部署的格式。例如,LiteRT 需要將其轉(zhuǎn)換為特定格式。優(yōu)化工具可以幫助減少模型的占用空間并提升其性能。AI Edge Torch 允許您使用 Google AI Edge LiteRT 和 MediaPipe Tasks 庫來轉(zhuǎn)換 PyTorch 模型,使其能在 Android 和其他平臺(tái)上本地運(yùn)行。

加速模型: 您可以使用 GPU 和 NPU,為 Android 上的模型推理加速。借助 LiteRT 的 GPU 代理,您可以立即在 GPU 上運(yùn)行您的模型。我們正在努力構(gòu)建下一代 GPU 和 NPU 代理,使您的模型運(yùn)行得更快,并支持更多模型在 GPU 和 NPU 上運(yùn)行。我們誠邀您參與我們的搶先體驗(yàn)計(jì)劃,以試用這一新的 GPU 和 NPU 基礎(chǔ)設(shè)施。我們將會(huì)陸續(xù)邀請參與者搶先體驗(yàn),即刻聯(lián)系我們參與體驗(yàn)吧!

3. 測試和部署: 為了確保您的模型在各種設(shè)備上都能實(shí)現(xiàn)預(yù)期的性能,嚴(yán)格的測試至關(guān)重要。完成測試后,即可向用戶部署您的應(yīng)用,為他們提供無縫且高效的 AI 體驗(yàn)。我們正在努力讓 Google Play 和 Android App Bundle 發(fā)揮其優(yōu)勢,以便更好地為設(shè)備端 AI 功能提供自定義機(jī)器學(xué)習(xí)模型。Play for On-device AI 簡化了啟動(dòng)、定位、版本控制、下載和更新設(shè)備端模型的復(fù)雜程度,從而為用戶提供更好的使用體驗(yàn),同時(shí)不會(huì)影響應(yīng)用的大小,也不會(huì)增加成本。如有興趣加入 Play for On-device AI 搶先體驗(yàn)計(jì)劃,您可以填寫表格。

通過隱私性和透明度

建立對 AI 的信任

隨著 AI 在日常生活中發(fā)揮的作用日益增強(qiáng),確保模型在設(shè)備上按預(yù)期運(yùn)行至關(guān)重要。我們強(qiáng)調(diào) "零信任" 方法,為開發(fā)者提供工具來驗(yàn)證設(shè)備完整性和用戶對其數(shù)據(jù)的控制。在零信任方法中,開發(fā)者需要能夠?qū)υO(shè)備的可信度做出明智決策。

我們推薦開發(fā)者使用 Play Integrity API,來驗(yàn)證應(yīng)用、服務(wù)器請求和設(shè)備環(huán)境。您可以在應(yīng)用后端決定下載并運(yùn)行模型之前的重要時(shí)刻調(diào)用 API。還可以考慮啟用在安裝應(yīng)用時(shí)進(jìn)行完整性檢查,以減少應(yīng)用被分發(fā)到未知和不受信任的環(huán)境中。

Play Integrity API 利用 Android 平臺(tái)密鑰認(rèn)證來驗(yàn)證硬件組件,并在整個(gè)設(shè)備群中生成完整性判定,從而使大多數(shù)開發(fā)者不再需要直接集成不同的認(rèn)證工具,降低了設(shè)備生態(tài)系統(tǒng)的復(fù)雜性。在決定是否信任設(shè)備運(yùn)行 AI 模型之前,開發(fā)者可以使用其中一個(gè)或兩個(gè)工具來評估設(shè)備安全性和軟件完整性。

結(jié)論

將您的 AI 模型引入設(shè)備涉及多個(gè)步驟,包括定義用例、部署和測試模型等。借助 Google AI Edge 等資源,開發(fā)者可以使用強(qiáng)大的工具和洞察,使過程更順暢、更高效。隨著設(shè)備端 AI 的不斷發(fā)展,您將能夠利用這些資源,創(chuàng)建先進(jìn)的應(yīng)用,提供更好的性能、隱私性和用戶體驗(yàn)。我們目前正在尋找搶先體驗(yàn)的合作伙伴,在 Google AI Edge 中試用我們的一些最新工具和 API。填寫表格聯(lián)系我們,即刻了解我們該如何共同努力,以實(shí)現(xiàn)您的愿景。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3940

    瀏覽量

    127649
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    31294

    瀏覽量

    269654
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3279

    瀏覽量

    48976
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8428

    瀏覽量

    132845

原文標(biāo)題:如何輕松將 AI 模型引入 Android 設(shè)備

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    think-cell:自定義think-cell(四)

    C.5 設(shè)置默認(rèn)議程幻燈片布局 think-cell 議程可以在演示文稿中使用特定的自定義布局來定義議程、位置和議程幻燈片的其他形狀,例如標(biāo)題或圖片。通過將此自定義布局添加到模板,您
    的頭像 發(fā)表于 01-13 10:37 ?60次閱讀
    think-cell:<b class='flag-5'>自定義</b>think-cell(四)

    think-cell;自定義think-cell(一)

    布局介紹了如何創(chuàng)建自定義議程幻燈片布局,第六部分 C.6 功能區(qū)自定義 介紹了如何使用 PowerPoint 的功能區(qū)自定義選項(xiàng)
    的頭像 發(fā)表于 01-08 11:31 ?107次閱讀
    think-cell;<b class='flag-5'>自定義</b>think-cell(一)

    創(chuàng)建自定義的基于閃存的引導(dǎo)加載程序(BSL)

    電子發(fā)燒友網(wǎng)站提供《創(chuàng)建自定義的基于閃存的引導(dǎo)加載程序(BSL).pdf》資料免費(fèi)下載
    發(fā)表于 09-19 10:50 ?0次下載
    創(chuàng)建<b class='flag-5'>自定義</b>的基于閃存的引導(dǎo)加載程序(BSL)

    如何創(chuàng)建TestStand自定義步驟

    在之前的課程中簡單地介紹過TestStand自帶的一些步驟類型,如測試、消息彈窗、賦值、標(biāo)簽等等,這些簡單的步驟從TestStand的插入選版中就可以添加到序列中。那么在使用中如果碰到需要實(shí)現(xiàn)更加靈活、復(fù)雜的功能,使用自帶的一些步驟類型可能難以滿足,這時(shí)就需要使用到自定義
    的頭像 發(fā)表于 09-11 14:46 ?1200次閱讀
    如何創(chuàng)建TestStand<b class='flag-5'>自定義</b>步驟

    NVIDIA NeMo加速并簡化自定義模型開發(fā)

    如果企業(yè)希望充分發(fā)揮出 AI 的力量,就需要根據(jù)其行業(yè)需求量身定制的自定義模型。
    的頭像 發(fā)表于 07-26 11:17 ?783次閱讀
    NVIDIA NeMo加速并簡化<b class='flag-5'>自定義</b>模型開發(fā)

    NVIDIA AI Foundry 為全球企業(yè)打造自定義 Llama 3.1 生成式 AI 模型

    Foundry 提供從數(shù)據(jù)策管、合成數(shù)據(jù)生成、微調(diào)、檢索、防護(hù)到評估的全方位生成式 AI 模型服務(wù),以便部署自定義 Llama 3.1 NVIDIA NIM 微服務(wù)和新的 NVIDIA NeMo
    發(fā)表于 07-24 09:39 ?727次閱讀
    NVIDIA <b class='flag-5'>AI</b> Foundry 為全球企業(yè)打造<b class='flag-5'>自定義</b> Llama 3.1 生成式 <b class='flag-5'>AI</b> 模型

    如何通過SDK功能獲取esptouch v2 apk的自定義數(shù)據(jù)?

    嗨,我使用 esptouch v2 apk 來配置網(wǎng)絡(luò)。我在 esptouch v2 apk 的自定義數(shù)據(jù)幀中輸入 mqqt 數(shù)據(jù),然后按確認(rèn)鍵。同時(shí),給ESP8266板電,ESP8266開始
    發(fā)表于 07-15 07:20

    如何為ESP8266構(gòu)建自定義盾牌?

    我正在尋找某種如何為ESP8266構(gòu)建自定義盾牌的指南。 到目前為止,我已經(jīng)使用 NODEMCU 構(gòu)建功能原型,但我現(xiàn)在想簡化事情并使其更小。 1. 是否有一些書面的、開放的硬件
    發(fā)表于 07-08 07:17

    何在IDF框架中使用自定義的靜態(tài)庫和動(dòng)態(tài)庫?

    基于商業(yè)需要,我們需要在 ESP-IDF v4.0-rc 這個(gè)版本的IDF中開發(fā)與使用自定義庫,有如下問題請協(xié)助: 1如何利用IDF框架編寫自定義靜態(tài)庫和動(dòng)態(tài)庫? 2如何在IDF框架中使用自定
    發(fā)表于 06-25 07:57

    Chrome移動(dòng)版支持自定義菜單欄功能

    在先前版本中,用戶通過點(diǎn)擊瀏覽器右上角的三個(gè)點(diǎn)按鈕即可調(diào)出包含各類圖標(biāo)與操作的菜單。而此次更新后,Chrome新增了“自定義菜單”選項(xiàng),允許用戶自主控制該區(qū)域的展示內(nèi)容。
    的頭像 發(fā)表于 05-27 15:00 ?856次閱讀

    HarmonyOS開發(fā)案例:【 自定義彈窗】

    基于ArkTS的聲明式開發(fā)范式實(shí)現(xiàn)了三種不同的彈窗,第一種直接使用公共組件,后兩種使用CustomDialogController實(shí)現(xiàn)自定義彈窗
    的頭像 發(fā)表于 05-16 18:18 ?1407次閱讀
    HarmonyOS開發(fā)案例:【 <b class='flag-5'>自定義</b>彈窗】

    TSMaster 自定義 LIN 調(diào)度表編程指導(dǎo)

    LIN(LocalInterconnectNetwork)協(xié)議調(diào)度表是用于LIN總線通信中的消息調(diào)度的一種機(jī)制,我們收到越來越多來自不同用戶希望能夠通過接口實(shí)現(xiàn)自定義LIN調(diào)度表的需求。所以在
    的頭像 發(fā)表于 05-11 08:21 ?713次閱讀
    TSMaster <b class='flag-5'>自定義</b> LIN 調(diào)度表編程指導(dǎo)

    HarmonyOS實(shí)戰(zhàn)開發(fā)-深度探索與打造個(gè)性化自定義組件

    今天分享一下 什么是自定義組件?及其自定義組件的實(shí)戰(zhàn)。 做過前端或者android開發(fā)的都知道自定義組件,鴻蒙中顯示在界面上的UI都稱為組件,小打一個(gè)按鈕,再到一個(gè)列表。 鴻蒙提供的組
    發(fā)表于 05-08 16:30

    HarmonyOS開發(fā)實(shí)例:【自定義Emitter】

    使用[Emitter]實(shí)現(xiàn)事件的訂閱和發(fā)布,使用[自定義彈窗]設(shè)置廣告信息。
    的頭像 發(fā)表于 04-14 11:37 ?1025次閱讀
    HarmonyOS開發(fā)實(shí)例:【<b class='flag-5'>自定義</b>Emitter】

    鴻蒙ArkUI實(shí)例:【自定義組件】

    組件是 OpenHarmony 頁面最小顯示單元,一個(gè)頁面可由多個(gè)組件組合而成,也可只由一個(gè)組件組合而成,這些組件可以是ArkUI開發(fā)框架自帶系統(tǒng)組件,比如?`Text`?、?`Button`?等,也可以是自定義組件,本節(jié)筆者簡單介紹一下自定義組件的語法規(guī)范。
    的頭像 發(fā)表于 04-08 10:17 ?667次閱讀