一鍵啟動在線推理服務,輕鬆實現在線部署,這有個「煉丹」利器

2021-01-09 機器之心Pro

機器之心發布

機器之心編輯部

本文詳細介紹了如何使用百度 Paddle Serving 來實現高效的服務化部署。

常見的深度學習模型開發流程需要經過問題定義、數據準備、特徵提取、建模、訓練幾個過程,以及最後一個環節——將訓練出來的模型部署應用到實際業務中。如下圖所示,當前用戶在訓練出一個可用的模型後,可以選擇如下四種部署方式:

伺服器端高性能部署:將模型部署在伺服器上,利用伺服器的高性能幫助用戶處理推理業務;

服務化部署:將模型以線上服務的形式部署在伺服器或者雲端,用戶通過客戶端或瀏覽器發送需要推理的輸入內容,伺服器或者雲通過響應報文將推理結果返回給用戶;

移動端部署:將模型部署在移動端上,例如手機或者物聯網的嵌入式端;

Web 端部署:將模型部署在網頁上,用戶通過網頁完成推理業務。

今天我們就來講講如何使用飛槳的服務化部署框架 Paddle Serving 來實現第二種部署方式。

這時可能會有讀者說了:部署?算了吧,我直接用 python 也能做推理,而且部署太複雜了,都是企業才能幹的事情,與我無關。

這位客官慢走!今天咱們說的 Paddle Serving 用起來可是非常簡單,而且部署成功後,那可是在線服務,可謂「獨樂樂不如眾樂樂!」,不僅自己可以使用它做推理,而且還可以讓其他人使用手機、電腦等設備通過客戶端或瀏覽器一起使用推理服務,瞬間讓你人氣值爆棚!下面我們就先介紹一種最基礎的用法,0 代碼完成在線服務部署!

0 代碼完成在線服務部署

使用 Paddle Serving 部署在線推理服務的過程非常簡單,主要分為 3 個步驟,獲取可用於部署在線服務的模型、啟動服務端和使用客戶端訪問服務端進行推理,也就是說最多 3 步就可以完成部署,是不是和把大象關到冰箱裡一樣簡單?

具體怎麼操作,咱們以常用的波士頓房價預測模型為例來快速體驗一下如何將這個模型部署到伺服器上。為了方便用戶使用,飛槳已經把波士頓房價預測等比較常用的模型文件保存在 GitHub 或 Gitee 上,歡迎大家下載體驗。

Paddle Serving 部署用例的下載地址:

https://github.com/PaddlePaddle/Serving/tree/develop/python/examples

如果用戶想了解如何訓練或保存用於部署的模型,可以參考如下地址:

https://github.com/PaddlePaddle/Serving/blob/develop/doc/SAVE_CN.md

在獲取模型後,用戶僅需要在伺服器上執行如下命令即可部署推理在線服務。

python -m paddle_serving_server_gpu.serve --model fit_a_line/uci_housing_model --thread 10 --port 9393 --name uci

其中 paddle_serving_server_gpu.serve 是使用 GPU 部署在線服務的模塊,如果使用 CPU 則是 paddle_serving_server.serve。其它參數則分別是模型所在位置、當前服務的並發數量、服務埠和 HTTP 服務的名稱。

在部署成功後,用戶就可以在自己的設備上使用如下 cURL 命令向伺服器請求推理服務。

curl -H "Content-Type:application/json" -X POST -d '{"feed":[{"x": [0.0137, -0.1136, 0.2553, -0.0692, 0.0582, -0.0727, -0.1583, -0.0584, 0.6283, 0.4919, 0.1856, 0.0795, -0.0332]}], "fetch":["price"]}' http://X.X.X.X:9393/uci/prediction

其中 「X」 和其後的一串數字是波士頓房價預測這個模型用於推理的 13 個特徵值,而 「price」 是咱們希望獲取的推理結果。「X.X.X.X」是伺服器的地址,而 「9393」 和「uci」分別和前面部署命令中 port 和 name 參數指定的值相對應。

以上過程可以說是完全 0 代碼部署在線推理服務,當然這只是最簡單的 Paddle Serving 的使用方式,其中服務端和客戶端之間是使用的 HTTP 協議通信,我們可以把這種在線服務稱之為 Web 服務。

如果用戶希望使用性能更好的 RPC 通信協議,即部署 RPC 在線服務,或者需要部署的模型稍微複雜一些,需要數據預處理或後處理,那麼就需要使用下面的進階部署方案了。

說到這裡,有的用戶可能就會頭疼了,不是為別的,就是因為剛剛提到的數據處理。要知道無論是圖像還是自然語言的文本,這些數據的處理都需要一定的領域知識,可是咱們大部分的用戶朋友們可不是圖像學或語言學專業畢業的,做個數據處理不僅需要學習相關的基礎知識,還要編寫不少代碼。這樣的情況下,使用 Paddle Serving 還會很簡單完成部署嗎?答案是當然可以!不過咱們也實事求是,0 代碼是不太可能的,不過低代碼還是沒問題的,請往下看!

進階流程—低代碼完成帶數據處理的在線服務部署

在 CV 和 NLP 領域,原始的數據通常要經過複雜的預處理才能轉換為模型的直接輸入,預測結果也需要經過後處理變成更直觀的圖像或者文字,這就咱們常說的數據預處理和後處理。這些本不是深度學習開發的核心環節,卻經常成為開發者們最頭疼的步驟。

為了方便用戶使用 Paddle Serving,飛槳的工程師們開發了內置預處理模塊 paddle-serving-app。paddle-serving-app 模塊集成了許多輔助功能,可以幫助用戶更快地體驗示例推理服務、編寫和部署自己的推理服務、分析推理服務中的各階段耗時、對服務進行調試等。paddle-serving-app 的安裝方法也很簡單僅需要一條命令即可。

pip install paddle_serving_app

paddle-serving-app 最主要的作用之一就是其內部添加了許多圖像(CV)和文本(NLP)的預處理方法。

對於 CV 任務,大部分預處理方法的操作都很相似。因此在 paddle-serving-app 中,這些預處理操作都被封裝成了獨立的類,然後 paddle-serving-app 提供了 Sequential 類,Sequential 類可以將各個預處理操作的類串聯起來,形成不同任務所需要的預處理方法。目前提供的預處理步驟包括:File2Image(從文件讀取圖像)、URL2Image(從連結中讀取圖像)、Normalize(歸一化)、CenterCrop(裁剪)、Resize(尺寸變換)、RGB2BGR(格式轉換)、Transpose(通道轉換)等方法。此外對於圖像檢測、圖像分割等任務,paddle-serving-app 還提供了 RCNNPostProcess、SegPostProcess 等後處理方法,可以將推理結果可視化。

對於 NLP 任務,不同類型的任務所對應的預處理方法會差異很大,定製化程度較深。因此對於不同的 NLP 任務分別實現了不同數據處理方法,分別是中文分詞模型預處理 LACReader、中文語義模型預處理 ChineseBertReader 和中文情感分析模型預處理 SentaReader。

此外,paddle-serving-app 中內置了多種 NLP 和 CV 領域的示例模型的獲取方法,用戶可以通過執行如下命令即可下載模型文件壓縮包,其中 model_name 為模型名稱。

python -m paddle_serving_app.package --get_model ${model_name}

因此 Paddle Serving 配合 paddle-serving-app 有如猛虎添翼,可以幫助用戶輕鬆完成更加複雜的在線服務部署場景。

下面我們將通過部署圖像分割服務和中文情感分析服務兩個示例,來為大家講解如何使用 Paddle Serving 和 paddle-serving-app 模塊實現低代碼部署 RPC 服務和 Web 服務。

部署圖像分割服務

圖像分割通過給出圖像中每個像素點的標籤,將圖像劃分成若干帶類別標籤的區塊的視覺任務,可以看作對每個像素進行分類。圖像分割是圖像處理的重要組成部分,也是難點之一。隨著人工智慧的發展,圖像分割技術已經在交通控制、醫療影像和人臉識別等多個領域得到了廣泛的應用。

本例將部署圖像分割的 RPC 服務,RPC 服務與前面的 Web 服務相比,對於用戶來說最大的差異是要編寫客戶端腳本,通過客戶端腳本來使用推理服務。而對於服務端來說,同樣只需要一條命令就可以啟動服務。下面我們來介紹具體的實現過程。

1. 獲取示例模型文件

使用 paddle-serving-app 下載圖像分割模型示例文件。

python -m paddle_serving_app.package --get deeplabv3+cityscapestar xf deeplabv3+cityscapes.tar.gz

解壓後將會生成服務端和客戶端的部署文件 seg_server_conf 和 seg_client_conf。其中 seg_server_conf 是在服務端使用,而 seg_client_conf 需要轉存到客戶端使用。

2. 啟動推理服務

使用如下命令啟動圖像分割在線服務,服務埠號為 9393。

python -m paddle_serving_server_gpu.serve --model seg_server_conf --port 9393 --gpu_ids 0

3. 啟動客戶端

本示例中,需要對圖像做預處理和後處理,這是因為圖像在輸入到模型網絡之前需要經過預處理將原始圖像進行尺寸的轉換,變成 numpy.array 格式的像素值矩陣。而模型的輸出是一個矩陣,矩陣值可以標記不同的區域,但是並不直觀。需要經過後處理來將推理結果可視化,即將矩陣轉化為圖片。

上述預處理和後處理操作,將會通過少量代碼在客戶端調用 paddle-serving-app 來實現。圖像分割服務客戶端代碼(Seg_Client.py)如下:

from paddle_serving_client import Client# 從app模塊中獲取圖像預處理方法from paddle_serving_app.reader import Sequential, File2Image, Resize, SegPostprocessimport sysimport cv2# 創建客戶端client = Client()# 加載客戶端的配置文件client.load_client_config("seg_client_conf/serving_client_conf.prototxt")# 連接服務,X.X.X.X為服務端的地址client.connect(["X.X.X.X:9393"])# 圖像預處理,從文件中讀取圖像,統一圖像尺寸為512*512並做像素插值preprocess = Sequential( [File2Image(), Resize( (512, 512), interpolation=cv2.INTER_LINEAR)])# 分割任務的後處理算子,參數為訓練時的分割類別數,本例為19類分割postprocess = SegPostprocess(19) # 在線預估filename = "munster.png"im = preprocess(filename)fetch_map = client.predict(feed={"image": im}, fetch=["arg_max_0.tmp_0"])fetch_map["filename"] = filename# 圖像後處理postprocess(fetch_map)

用戶可以在自己的電腦上執行下面的命令來調用 Seg_Client.py 腳本使用推理服務。

python Seg_Client.py

推理成功後會在當前目錄生成一張圖像分割結果圖片。

原始圖像:

後處理後的推理結果圖像:

部署中文情感分析服務

情感分析任務是對於一條中文語句,來判斷這條語句的情感屬於積極還是消極,如下圖所示。

本示例任務的整體流程如下圖所示,原始的語句會進行多次預處理,並且待分析句子將會通過 LAC 模型進行切詞處理,然後將切詞的結果交給 Senta 模型做情感分析推理,總之,我們可以把使用 Senta 模型推理之前的部分都看做 Senta 模型輸入數據的預處理。

本例將使用 Web 服務的形式進行部署。在部署 Web 服務的場景中,上述數據預處理操作都會在服務端通過編寫腳本實現。具體操作步驟如下所示:

1. 獲取示例模型文件

使用 paddle-serving-app 下載圖像分割模型示例文件。

python -m paddle_serving_app.package --get_model senta_bilstmpython -m paddle_serving_app.package --get_model lactar -xzf senta_bilstm.tar.gztar -xzf lac.tar.gz

解壓後將會生成 LAC 模型和 Senta 模型的服務端和客戶端的部署文件 lac_model、lac_client、senta_bilstm_model 和 senta_bilstm_client。

2. 啟動推理服務

先在 9300 埠上啟動預處理使用的 LAC 模型的推理服務。

python -m paddle_serving_server.serve --model lac_model --port 9300

在 Senta 模型的推理服務中,會在預處理部分去訪問本地的 9300 埠,獲取 LAC 模型的推理結果再進一步處理成為 Senta 模型的輸入數據。啟動 Senta 服務的腳本(senta_web_service.py)如下所示:

from paddle_serving_server.web_service import WebServicefrom paddle_serving_client import Clientfrom paddle_serving_app.reader import LACReader, SentaReader

class SentaService(WebService): #初始化LAC模型預測服務 def init_lac_client(self, lac_port, lac_client_config): self.lac_reader = LACReader() self.senta_reader = SentaReader() # 創建LAC模型推理的客戶端 self.lac_client = Client() # 加載LAC模型的配置文件 self.lac_client.load_client_config(lac_client_config) # 連接LAC服務 self.lac_client.connect(["X.X.X.X:{}".format(lac_port)])

#定義Senta模型推理服務的預處理,調用順序:lac reader->LAC模型推理->推理結果後處理->senta reader def preprocess(self, feed=[], fetch=[]): feed_data = [{ "words": self.lac_reader.process(x["words"]) } for x in feed] lac_result = self.lac_client.predict( feed=feed_data, fetch=["crf_decode"]) feed_batch = [] result_lod = lac_result["crf_decode.lod"] for i in range(len(feed)): segs = self.lac_reader.parse_result( feed[i]["words"], lac_result["crf_decode"][result_lod[i]:result_lod[i + 1]]) feed_data = self.senta_reader.process(segs) feed_batch.append({"words": feed_data}) return feed_batch, fetch# Senta Service封裝了啟動Senta模型和對接Senta預處理的流程#聲明推理服務 senta_service = SentaService(name="senta") #加載Senta模型的配置文件 senta_service.load_model_config("senta_bilstm_model") #配置推理服務的工作目錄和埠 senta_service.prepare_server(workdir="workdir", port=9393) #初始化LAC分詞推理服務的客戶端 senta_service.init_lac_client( lac_port=9300, lac_client_config="lac_model/serving_server_conf.prototxt") #啟動Senta模型推理服務的RPC服務部分,Senta模型使用RPC協議和LAC模型通信senta_service.run_rpc_service() #啟動Senta模型推理服務的http服務部分 senta_service.run_web_service()

用戶可以在服務端上執行下面的命令來調用 senta_web_service.py 腳本來啟動 Senta 推理服務,推理服務的埠為 9393。

3. 通過客戶端訪問推理服務

通過 HTTP 請求來訪問服務,其中 X.X.X.X 為服務端的地址。

curl -H "Content-Type:application/json" -X POST -d '{"feed":[{"words": "天氣不錯"}], "fetch":["class_probs"]}' http://X.X.X.X:9393/senta/prediction

獲取到的返回結果如下所示,class_probs 中為樣本的推理概率,分別為消極情緒的概率和積極情緒的概率。

{"result":{"class_probs":[[0.0690595954656601,0.9309403896331787]]}}

除了以上內容,Paddle Serving 還內置了更多類型、更多方向的推理服務示例等您來嘗試。並且作為工業級的在線服務框架,Paddle Serving 還擁有 ABTest、模型熱加載等實際業務場景中常用的功能,點擊下面的連結可以了解更多框架相關的信息和用法。

https://github.com/PaddlePaddle/Serving

寫在最後

綜上所述,飛槳的服務化部署框架 Paddle Serving 可以為人工智慧落地的最後一公裡提供越來越專業、可靠、易用的服務。當前 Paddle Serving 支持部署 RPC 服務和 Web 服務兩種類型且都支持通過一行命令啟動服務的功能。如果推理服務中涉及數據處理,則用戶可以通過 paddle-serving-app 模塊編寫少量代碼,即可輕鬆搞定數據處理工作。

Paddle Serving 接下來會在後續的版本中繼續降低用戶的使用門檻,提高用戶部署在線服務的效率,開放更多開箱即用的模型,敬請關注!

如果您加入官方 QQ 群,您將遇上大批志同道合的深度學習同學。官方 QQ 群:703252161。

如果您想詳細了解更多飛槳的相關內容,請參閱以下文檔。

官網地址:https://www.paddlepaddle.org.cn

飛槳 Paddle Serving 項目地址:

GitHub:https://github.com/PaddlePaddle/Serving

Gitee: https://gitee.com/paddlepaddle/Serving

飛槳開源框架項目地址:

GitHub: https://github.com/PaddlePaddle/Paddle

Gitee: https://gitee.com/paddlepaddle/Paddle

相關焦點

  • 如何用「邊寫邊搜」寫論文?
    邊寫邊搜是致力於成就效率愛好者的一款知識服務工具,提供 資料管理、聚合搜索、在線閱讀、一鍵引用、筆記摘錄、模版管理、協同創作、報告加速 等功能。「在線精讀」是一款基於雲服務的分屏閱讀和筆記應用,邊讀資料邊做筆記,打造個人專屬的高倍速閱讀理解體系。
  • 從翻譯影片到國內外IP版權運營,在線翻譯平臺「人人譯視界」要探索...
    36氪獲悉,5月28日科技公司「譯滿天下」研發的在線翻譯平臺人人譯視界正式公布,該產品結合AI技術,為各語種翻譯從業人員、愛好者和翻譯公司提供智能翻譯服務。 譯視界基於海量語料庫和AI技術,支持視頻聽譯、文檔速譯,快速匹配語料,自動生成影片字幕。
  • 「作業幫」獲超16億美元融資,在線教育巨頭高維度競爭加劇...
    」獲超16億美元E+輪融資,在線教育巨頭競爭進入下半場◆「丁香園」完成5億美元融資,將持續鞏固專業壁壘◆醫療器械商「邁迪頂峰」宣布獲得超過10億元人民幣的C輪融資◆英國晶片公司「Graphcore」融資2.22億美元,瞄準全新人工智慧IPU晶片◆基因組測序服務提供商「23andMe」獲得8250萬美元F輪融資Part
  • 《2020年教育行業在線數位化轉型白皮書》發布
    國家政策積極指導教育在線化,教育行業在線數位化轉型成為必然趨勢。線下服務線上化案例:寧夏大學線上雙選會疫情期間,寧夏大學高度重視畢業生就業工作,主動作為、科學謀劃、創新舉措,第一時間按下了線上招聘指導與服務工作的「啟動鍵」,於 2020 年 4 月 3 日,舉辦了 2020 年春季首場綜合類網絡「雙選會」,搭建信息服務平臺,實現安全、高效的「無接觸招聘」。
  • 釘釘在線課堂怎麼用 釘釘在線課堂操作方法介紹
    最近許多朋友都在在釘釘在線課堂在哪裡?如果你也想知道釘釘在線課堂在哪裡下載,怎麼使用的話,可以來看看本文了,這裡為大家詳細介紹了釘釘在線課程的操作方法介紹,讓您快速掌握方法之後,可以更輕鬆在家裡就可以上課了。
  • 學術人必備10大利器,至少提升96%的科研效率!(附下載地址)
    學術人必備10大利器,至少提升96%的科研效率!(附下載地址) 學者有限且寶貴的時間和精力,應該貢獻給有趣的科研工作,而不是陷入無窮的學術瑣務。「學者利器」致力於向學者和大學科研教學人員推薦有價值的效率工具,解放最有價值人群的時間。 關注「學者利器」,提升學術效率。
  • 中國離線地圖與在線地圖服務聯動
    其中,網際網路在線地圖服務和移動網際網路在線地圖服務將依次成為推動行業增長的核心驅動因素,圖商在這兩個細分行業的收入之和將在2014年超過10億元。  在網際網路在線地圖市場,高德軟體通過與搜房、大麥等垂直網站的合作,在地圖服務中對於POI的不斷加強,以及積極提供部署、在線應用和開放簡單易用的API接口,在今年首次實現了在該領域的領先。同時,高德地圖也將向網際網路/移動網際網路生活門戶轉型作為其主要戰略。
  • 有聲小說平凡的世界在線收聽_有聲小說平凡的世界聽書在線下載...
    喜馬拉雅為你提供有聲小說平凡的世界在線收聽,喜馬拉雅採用最輕鬆的讀書方式,讓用戶通過聽書來閱讀,體驗到最愉悅的閱讀方式,海量資源包括了小說、新聞、段子、相聲、脫口秀等等,想聽什麼就聽什麼,所有內容只有你想不到。
  • Transn傳神攜手阿里雲、釘釘,在線同傳翻譯服務重磅上線
    面對領域多樣、需求複雜、實時性高的雲會議場景,Transn傳神、阿里雲機器翻譯、釘釘資源互補跨界合作,利用三方優勢,為高效雲會議上線全鏈路在線人工同傳解決方案。讓用戶無論在何時何地與海外交流都能足不出戶輕鬆預約資深譯員,會議信息無礙溝通。
  • 日本在線教育網站Schoo的運營模式
    日本的在線教育事業可以說是越來越蓬勃了,今天要介紹的是日本目前成長最快,並已經有穩定商業模式與收入來源的在線教育網站- 「schoo 」( 沒打錯,真的少一個L) 。  其次,「schoo 」的教學內容有80% 是以在線現場直播的方式放送,並以「LIVE 觀看人數」與「2 周內登入1 次的會員數」作為運營的KPI 指標;這麼強調「網路LIVE 直播」而不是預先錄好的原因是因為社長森健志郎認為,「未來高品質的網路服務來自即時性」,網站內容的品質來自於三個層面:第一是包含講師陣容、課程內容的品質,這部分網站可以事先規劃,讓品質達到最好;但第二個與第三個層面
  • 將科幻變成現實,谷歌百度用神經機器翻譯踐行人類的「巴別塔之夢」
    但 NMT 系統的訓練和翻譯推理的計算成本非常高,同時也難以應對罕見詞,這些問題阻礙了 NMT 在實際部署和服務中的應用,因為在實際應用中,準確度和速度都很關鍵。而谷歌的神經機器翻譯提出了帶有 8 個編碼器和 8 個解碼器的深度 LSTM 網絡組成的模型,使用了注意力和殘差連接。為了提升並行性從而降低訓練時間,注意機制將解碼器的底層連接到了編碼器的頂層。
  • 快陪練陸文勇:逆勢融資、首家盈利,在線陪練靠什麼贏?|鯨報導
    這個兩歲的「孩子」學會了走路,有了獨立的思考,更加相信「大並不代表好,好就是好,好公司和大公司畢竟相差甚遠。」這場直播後沒多久,2002 年 3 月 23 日,快陪練宣布完成 A 輪融資,並且宣稱已於 2 月份實現了持續盈利,且現金流為正。意即,截至目前,快陪練成為在線音樂教育行業唯一實現正向盈利的公司。為什麼快陪練能成為在線音樂教育行業唯一實現正向盈利的公司?
  • 埃洛克防務發布「守望者」、「觀測者」
    結合母公司AIRLOOK在製圖、人工智慧、雲計算等技術與服務的積累,埃洛克防務將攜手合作夥伴,深耕防務業務在應急、公安、生態、工程、工業、能源等領域的廣泛應用。「守望者」與「觀測者」以簡單易上手的操作體驗,適用不同的應用場景。
  • 4190萬人次在線!GMIC在線2020圓滿落幕,逆勢破局,冪次生長!
    4月27日,GMIC在線2020圓滿閉幕。在為期兩天三晚的活動期間,有來自全球15個國家和地區的230位演講嘉賓、190家企業,以及41908088在線觀眾參與其中,累計直播時長303小時40分鐘。通過200多場主題演講和圓桌論壇,圍繞科技、商業、科學、全球化、疫情、人類命運共同體等話題,展開了多形式、多維度、高標準的分享與跨界對談。
  • 銀谷在線迎來三周年生日,堅守初心服務大眾
    2019年7月15日,這一天對於銀谷在線很重要,也很有紀念價值,因為這一天正是銀谷在線發展三周年。而作為行業頭部平臺,銀谷在線深刻踐行普惠金融理念,堅守初心、科學布局,在網際網路金融領域內贏得了很高的評價,也持續為更多用戶提供更好的服務。
  • 2020-2021「AI中國」機器之心年度獎項揭榜(上)
    在這風雲變幻的這一年, AI與各行各業深度融合,在實體世界中體現出巨大價值,為科技強國戰略注入了更大的發展動能。本屆「AI 中國」機器之心 2020 年度評選,為順應產業變化,體現產業趨勢,在傳統的六大榜單之外,新增設「新基建領軍企業」、「產業數智化領軍企業」、「最強技術生態」及「智能國民應用」四大分榜,共計形成十大榜單200個獎項。
  • 全能平板電腦,同學們的在線學習利器!
    巔峰贅婿原標題:全能平板電腦,同學們的在線學習利器!近些年來,「網際網路+」概念深入人心,相關在線產業也蓬勃發展。其中最受廣大家長們關注的就是「網際網路+教育」,也就是我們常聽到的在線教育。在線教育這個熱詞兒,在疫情之下,家長學生都再熟悉不過,為了順利學習,各教育機構紛紛推行線上教學。
  • 創投周報 Vol.61|「康方生物」持續燒錢,被退回後再次赴港上市...
    大湖股份入主「東方華康」,正式進軍康養醫院,通過此次的股份認購,大湖股份將從原有的水資源綜合利用業務向康護領域傳導,這也是其董事長羅訂坤在以需求與政策導向考量下制定的長期發展戰略。 「天廣實」則獲得了11.3億元C1+C2輪融資,生物大分子藥再獲資本青睞。
  • 谷歌AI一鍵生成定製版3D遊戲神獸,可在線體驗!
    更重要的是,它或許還能激發你的創意靈感,而這也是Google研究團隊推出這款工具的目的之一。這款AI繪畫神器名為Chimera Painter,它是一個Web工具,其功能是基於動物簡圖生成高度逼真的「小怪獸」。