一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

Python失寵!Hugging Face用Rust新寫了一個ML框架

jf_WZTOguxH ? 來源:AI前線 ? 2023-08-11 16:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近期,Hugging Face 低調(diào)開源了一個重磅 ML 框架:Candle。Candle 一改機(jī)器學(xué)習(xí)慣用 Python 的做法,而是 Rust 編寫,重點(diǎn)關(guān)注性能(包括 GPU 支持)和易用性。

根據(jù) Hugging Face 的介紹,Candle 的核心目標(biāo)是讓 Serverless 推理成為可能。像 PyTorch 這樣的完整機(jī)器學(xué)習(xí)框架非常大,這使得在集群上創(chuàng)建實(shí)例的速度很慢。Candle 允許部署輕量級二進(jìn)制文件。另外,Candle 可以讓用戶從生產(chǎn)工作負(fù)載中刪除 Python。Python 開銷會嚴(yán)重影響性能,而 GIL 是眾所周知的令人頭疼的問題。

Rust 真的可以嗎?

Pytorch 框架是用 Python 編寫的,API 也是基于 Python 的,這讓用戶上手開發(fā)會非常快。另外,Python 本身就是一種簡潔而易于學(xué)習(xí)的編程語言,很適合初學(xué)者和專業(yè)開發(fā)者使用。

但基于 Python 的 Pytorch 框架問題也很明顯。相對于一些靜態(tài)圖框架(如 TensorFlow),Python 在某些情況下可能會導(dǎo)致性能問題。Python 的全局解釋器鎖(GIL)可能會在多線程的情況下影響性能,尤其是在涉及 CPU 密集型任務(wù)時。Python 的解釋性質(zhì)還可能會引入一些運(yùn)行時開銷。另外,將基于 Python 的 PyTorch 模型部署到生產(chǎn)環(huán)境中可能需要一些額外的步驟,不如其他編譯型語言那么方便。

顯然,Hugging Face 一直在尋找解決辦法,它給出的答案是用時下最快的語言 Rust 重寫一個 ML 框架?!白羁岬氖?,這是來自 Hugging Face 的,不僅僅是某人的愛好項(xiàng)目。”有網(wǎng)友贊嘆道。實(shí)際上,許多 HF 生態(tài)系統(tǒng)已經(jīng)使用 Rust,例如 safetensors、tokenizer。

不過,Rust 的難度也讓一些開發(fā)者望而卻步,“編寫 Rust 是一件艱難的事情,你必須跳來跳去,花更多的時間思考編程語言的抽象,而不是思考要解決的問題。所以,我現(xiàn)在還不著急重寫任何 Python 的東西?!?/p>

開發(fā)者“fooblaster”指出,Pytorch 部署模型有多個生產(chǎn)路徑無需 Python 解釋器,如 torchscript 和 libtorch,或是更煩人的路徑如 onnx export 和 onnx runtime,所以不需要 Rust 來解決這個問題。另外很人知道,現(xiàn)在可以使用 C++ 編寫 Torch 訓(xùn)練代碼,并與推理和訓(xùn)練共享一種通用語言。

對此,開發(fā)者“malcolmgreaves”表示,這些是使模型推理獨(dú)立于 Python 的偉大技術(shù)。然而,總是有大量的預(yù)處理、后處理或其他業(yè)務(wù)邏輯需要圍繞模型推理。這種事情需要在通用編程語言中完成,因此 Python 經(jīng)常被使用(因?yàn)橹С帜P偷拇a通常是由同一個人編寫的,并且這些代碼很可能是 Python,因?yàn)槟哪P陀?xùn)練和 eval 代碼很可能也是 Python)。這就是非 Python PL(如 Rust)可以在簡化生產(chǎn)部署 / 維護(hù)以及具有真正高效的生產(chǎn)推理方面發(fā)揮巨大作用的地方。

當(dāng)然,也有開發(fā)者為 Python 打抱不平。

“任何編程語言在生產(chǎn)環(huán)境中都可能是一種痛苦。Python 的缺點(diǎn)之一也是它的優(yōu)點(diǎn)之一。使用 Python 或 JavaScript 等‘混亂’語言很容易陷入糟糕的生產(chǎn)環(huán)境,因此避免這些痛點(diǎn)的工具已經(jīng)非常成熟。有了這些,Python 在生產(chǎn)中就會變得很棒?!遍_發(fā)者“devjab”進(jìn)一步表示,“是的,這將要求您的組織做出一些嚴(yán)肅的 CI 文化決策并強(qiáng)制執(zhí)行。但問題是,雖然使用某些編程語言可以不必如此,但當(dāng)企業(yè)達(dá)到一定規(guī)模時,總是會需要它們。因此,更早建立這個流程就會容易得多,而且如果您認(rèn)真使用 Python,早就會這樣做了。我認(rèn)為,如果在生產(chǎn)環(huán)境中工作很痛苦,那么問題不在于技術(shù),而在于流程?!?/p>

實(shí)際上,業(yè)內(nèi)一直在努力解決 Python 帶來的問題。

5 月份,LLVM 和 Swift 編程語言聯(lián)合創(chuàng)始人 Chris Lattner 創(chuàng)辦的新公司 Modular AI 發(fā)布了一個名為 Mojo 的新編程語言。Mojo 將 Python 特性與 C、C++ 和 CUDA 的系統(tǒng)編程功能結(jié)合了起來,并通過其所謂“極限加速”與其他 Python 速度增強(qiáng)方案區(qū)分了開來。據(jù)悉,憑借著硬件加速,Mojo 在運(yùn)行 Mandelbrot 等數(shù)字算法時比原始 Python 快上 3.5 萬倍。

另一方面,Python 自身也在做改進(jìn)。最近,Python 終于宣布要刪 GIL,Python 默認(rèn)版本將逐漸過渡到無 GIL 版本。這一決定能否鞏固其在機(jī)器學(xué)習(xí)領(lǐng)域的地位,也需要時間驗(yàn)證。

與 PyTorch 對比

據(jù)悉,當(dāng)前 Candle 已經(jīng)支持如今的前沿模型,像 Llama2。經(jīng)過改寫的模型,比如 Llama2 能夠方便、快速的運(yùn)行在容器環(huán)境,甚至可以運(yùn)行在瀏覽器中。Candle 結(jié)構(gòu)包括:

Candle-core:核心操作、設(shè)備和 Tensor 結(jié)構(gòu)定義。

Candle-nn:構(gòu)建真實(shí)模型的工具。

Candle-examples:在實(shí)際設(shè)置中使用庫的示例。

Candle-kernels:CUDA 自定義內(nèi)核;

Candle-datasets:數(shù)據(jù)集和數(shù)據(jù)加載器。

Candle-Transformers:與 Transformers 相關(guān)的實(shí)用程序。

Candle-flash-attn:Flash attention v2 層。

cd4f865e-3808-11ee-9e74-dac502259ad0.png

Pytorch 和 Candle 對比

該項(xiàng)目正在處于快速迭代過程中,更新非常頻繁,很多功能在不斷開發(fā)中,目前包含如下功能和特點(diǎn):

語法簡單, 風(fēng)格與 PyTorch 相似。

CPU 和 Cuda Backend:m1、f16、bf16。

支持 Serverless(CPU)、小型和快速部署

支持 WASM,可在瀏覽器中運(yùn)行模型。

模型訓(xùn)練

使用 NCCL 進(jìn)行分布式計(jì)算。

開箱即用的模型:Llama、Whisper、Falcon、StarCoder...

嵌入用戶定義的操作 / 內(nèi)核,如 flash-attention v2。

對于 Hugging Face 的這一新 ML 框架,大家有什么感想或使用感受?歡迎在評論區(qū)分享!

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

    關(guān)注

    0

    文章

    404

    瀏覽量

    17890
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    809

    瀏覽量

    13951
  • Rust
    +關(guān)注

    關(guān)注

    1

    文章

    234

    瀏覽量

    7094

原文標(biāo)題:Python 失寵!Hugging Face 用 Rust 新寫了一個 ML框架,現(xiàn)已低調(diào)開源

文章出處:【微信號:AI前線,微信公眾號:AI前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    請問OpenVINO? 是否支持 Rust 綁定?

    無法確定OpenVINO?是否支持 Rust 綁定。
    發(fā)表于 06-25 07:45

    利用英特爾OpenVINO在本地運(yùn)行Qwen2.5-VL系列模型

    近期阿里通義實(shí)驗(yàn)室在 Hugging Face 和 ModelScope 上開源了 Qwen2.5-VL 的 Base 和 Instruct 模型,包含 3B、7B 和 72B 在內(nèi)的 3 模型尺寸。
    的頭像 發(fā)表于 03-12 13:42 ?1013次閱讀
    利用英特爾OpenVINO在本地運(yùn)行Qwen2.5-VL系列模型

    JavaScript與Rust和WebAssembly集成

    偶然次機(jī)會,接觸了Rust的代碼。當(dāng)時想給團(tuán)隊(duì)小伙伴做演示,發(fā)現(xiàn)自己并不能在移動端按照文檔生成演示demo。我就想,要是Rust代碼能轉(zhuǎn)化成JavaScript就好了。結(jié)果搜,還真
    的頭像 發(fā)表于 01-24 15:43 ?440次閱讀
    JavaScript與<b class='flag-5'>Rust</b>和WebAssembly集成

    Hugging Face推出最小AI視覺語言模型

    Hugging Face平臺于1月23日發(fā)布博文,推出了兩款令人矚目的輕量級AI模型——SmolVLM-256M-Instruct和SmolVLM-500M-Instruct。 其中
    的頭像 發(fā)表于 01-24 14:15 ?948次閱讀

    大模型訓(xùn)練框架(五)之Accelerate

    Hugging Face 的 Accelerate1是用于簡化和加速深度學(xué)習(xí)模型訓(xùn)練的庫,它支持在多種硬件配置上進(jìn)行分布式訓(xùn)練,包括 CPU、GPU、TPU 等。Accelerat
    的頭像 發(fā)表于 01-14 14:24 ?709次閱讀

    C寫了CIFF結(jié)構(gòu)的ΣΔ調(diào)制器遇到的疑問求解答

    C寫了CIFF結(jié)構(gòu)的ΣΔ調(diào)制器,8階調(diào)制,代碼步驟如下: 1.產(chǎn)生輸入信號 我的是1KHz的正弦波,double精度產(chǎn)生,采樣率
    發(fā)表于 10-28 08:30

    如何使用 Llama 3 進(jìn)行文本生成

    服務(wù)。以下是主要的幾種方法: 方法:使用現(xiàn)成的API服務(wù) 許多平臺提供了LLaMA 3的API接口,例如Hugging Face的Transformers庫和Inference API
    的頭像 發(fā)表于 10-27 14:21 ?1081次閱讀

    使用OpenVINO GenAI API在C++中構(gòu)建AI應(yīng)用程序

    許多桌面應(yīng)用程序是使用 C++ 開發(fā)的,而將生成式AI(GenAI)功能集成到這些應(yīng)用程序中可能會很具有挑戰(zhàn)性,尤其是因?yàn)槭褂孟?Hugging Face 這樣的 Python 庫的復(fù)雜性。C++
    的頭像 發(fā)表于 10-12 09:36 ?1123次閱讀
    使用OpenVINO GenAI API在C++中構(gòu)建AI應(yīng)用程序

    如何用Rust編寫ChatGPT桌面應(yīng)用(保姆級教程)

    為什么我們需要桌面應(yīng)用 原因?qū)嵲谔?,我們需要便捷?導(dǎo)出 記錄,需要在回答長度超長的時候自動加上“繼續(xù)”,需要 收藏 些很酷很實(shí)用的prompt...... (首先我假設(shè)你是
    的頭像 發(fā)表于 09-25 11:19 ?659次閱讀
    如何用<b class='flag-5'>Rust</b>編寫<b class='flag-5'>一</b><b class='flag-5'>個</b>ChatGPT桌面應(yīng)用(保姆級教程)

    借助Arm Neoverse加速Hugging Face模型

    人工智能 (AI) 有望觸及并改變我們生活的方方面面。如今,包括醫(yī)療保健、金融、制造、教育、媒體和運(yùn)輸?shù)仍趦?nèi)的各行各業(yè)都在利用 AI 進(jìn)行創(chuàng)新。它們通過運(yùn)行復(fù)雜的 AI 工作負(fù)載來提高生產(chǎn)力,改善消費(fèi)者決策,提升教育體驗(yàn)等,而這些都需要消耗大量算力和數(shù)據(jù)中心電力。
    的頭像 發(fā)表于 09-02 10:44 ?610次閱讀
    借助Arm Neoverse加速<b class='flag-5'>Hugging</b> <b class='flag-5'>Face</b>模型

    pytorch和python的關(guān)系是什么

    ,PyTorch已經(jīng)成為了非常受歡迎的框架。本文將介紹PyTorch和Python之間的關(guān)系,以及它們在深度學(xué)習(xí)領(lǐng)域的應(yīng)用。 Python
    的頭像 發(fā)表于 08-01 15:27 ?3273次閱讀

    未來嵌入式系統(tǒng)的黃金搭檔 MCX N947遇上Rust

    ? Rust 介紹 Rust門注重安全的語言,相比于 C/C++/ASM 有著更高級的抽象能力、編譯器帶來的安全特性與廣泛友好的社區(qū)支持。 Linux 與 Windows 內(nèi)核也都
    的頭像 發(fā)表于 07-25 09:14 ?1798次閱讀
    未來嵌入式系統(tǒng)的黃金搭檔 MCX N947遇上<b class='flag-5'>Rust</b>

    python寫驗(yàn)證環(huán)境cocotb

    本文介紹了cocotb的安裝、python tb文件的寫法、xrun仿真cocotb的腳本等,我們來看看體驗(yàn)如何。
    的頭像 發(fā)表于 07-24 09:38 ?1047次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>python</b>寫驗(yàn)證環(huán)境cocotb

    Hugging Face科技公司推出SmolLM系列語言模型

    7月22日最新資訊,Hugging Face科技公司在語言模型領(lǐng)域再創(chuàng)新高,正式推出了SmolLM系列——款專為適應(yīng)多樣計(jì)算資源而設(shè)計(jì)的緊湊型語言模型家族。該系列包含三版本,分別搭
    的頭像 發(fā)表于 07-23 16:35 ?726次閱讀

    opencv-python和opencv樣嗎

    樣。OpenCV(Open Source Computer Vision Library)是開源的計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Pytho
    的頭像 發(fā)表于 07-16 10:38 ?2084次閱讀