日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

瑞芯微(EASY EAI)RV1126B 模型轉(zhuǎn)換API說明

ljx2016 ? 2026-05-14 14:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. RKLLM 初始化

在這一部分,用戶需要先初始化 RKLLM 對象,這是整個工作流的第一步。在示例代碼中使用 RKLLM()構(gòu)造函數(shù)來初始化 RKLLM 對象。

2. 模型加載


在 RKLLM 初始化完成后,用戶需要調(diào)用 rkllm.load_huggingface()函數(shù)來傳入模型的具體路徑,RKLLM-Toolkit 即可根據(jù)對應(yīng)路徑順利加載 Hugging Face 或 GGUF 格式的大語言模型,從而順利完成后續(xù)的轉(zhuǎn)換、量化操作,具體的函數(shù)定義如下:

v2-d0579821f6c0ba4e5773ca3d6794443f_720w.webp

示例代碼如下:

ret = rkllm.load_huggingface( model = './huggingface_model_dir', model_lora = './huggingface_lora_model_dir' ) if ret != 0: print('Load model failed!')

v2-2217a42edf1f702893a0a9a36e3cd614_720w.webp


示例代碼如下:

ret = rkllm.load_gguf(model = './model-Q4_0.gguf') if ret != 0: print('Load model failed!')


3. 模型構(gòu)建


用戶在通過rkllm.load_huggingface()函數(shù)完成原始模型的加載后,下一步就是通過rkllm.build()函數(shù)實現(xiàn)對 RKLLM 模型的構(gòu)建。構(gòu)建模型時,用戶可以選擇是否進行量化,量化有助于減小模型的大小和提高在 Rockchip NPU 上的推理性能。rkllm.build()函數(shù)的具體定義如下:

v2-77e1474110497058eb4aeff6d8a149ac_720w.webp


示例代碼如下:

ret = rkllm.build( do_quantization=True, optimization_level=1, quantized_dtype='w8a8', quantized_algorithm="normal", num_npu_core=3, extra_qparams=None, dataset="quant_data.json", hybrid_rate=0, target_platform='rk3588') if ret != 0: print('Build model failed!')


4. 模型導(dǎo)出


用戶在通過 rkllm.build()函數(shù)構(gòu)建了 RKLLM 模型后,可以通過 rkllm.export_rkllm()函數(shù)將RKNN 模型保存為一個.rkllm 文件,以便后續(xù)模型的部署。rkllm.export_rkllm()函數(shù)的具體參數(shù)定義如下:

v2-70c7eb3b03e691c00ec1f0e122a60856_720w.webp

示例代碼如下:

ret = rkllm.export_rkllm(export_path = './model.rkllm') if ret != 0: print('Export model failed!')


5. GPTQ 模型轉(zhuǎn)換
用戶除了使用上述工具中提供的量化算法進行模型轉(zhuǎn)換,也可以先使用 AutoGPTQ 開源量化工具將浮點模型量化為 4bit/8bit 權(quán)重(需保存為 Hugging Face 格式),再轉(zhuǎn)換為RKLLM 模型。使用 AutoGPTQ 量化浮點模型時,需確保以下參數(shù)設(shè)置:

bits=4 sym=true group_size=32/64/128 desc_act=false bits=8 sym=true group_size=128/256/512 desc_act=false


Hugging Face 格式的 GPTQ 模型轉(zhuǎn)換為 rkllm 的示例代碼如下:

modelpath = '/path/to/Model-Instruct-GPTQ-Int4' llm = RKLLM() ret = llm.load_huggingface(model=modelpath, model_lora = None, device='cuda') if ret != 0: print('Load model failed!') exit(ret) # Build model dataset = None qparams = None target_platform = "RK3576" optimization_level = 1 quantized_dtype = "w4a16_g32" #w4a16_g64 or w4a16_g128 quantized_algorithm = "normal" num_npu_core = 2 ret = llm.build(do_quantization=True, optimization_level=optimization_level, quantized_dtype=quantized_dtype, quantized_algorithm=quantized_algorithm, target_platform=target_platform, num_npu_core=num_npu_core, extra_qparams=qparams, dataset=dataset) if ret != 0: print('Build model failed!') exit(ret) # Export rkllm model ret = llm.export_rkllm(f"./{os.path.basename(modelpath)}_{quantized_dtype}_{ target_platform}.rkllm") if ret != 0: print('Export model failed!') exit(ret)


6. 自定義模型轉(zhuǎn)換


用戶如果修改了模型結(jié)構(gòu)或者名稱,且修改后的整體架構(gòu)如下,則可以使用自定義功能轉(zhuǎn)換模型。

TOKEN_EMBD ↓ embd_scale(optional) ↓ ┌─ x │ ↓ │ ATTN_NORM │ ↓ │ attn │ ↓ │ ATTN_POST_NORM(optional) │ ↓ │ hidden_state_scale(optional) │ ↓ │ cross attn(optional) │ ↓ ┌─ └? + │ │ ↓ │ FFN_NORM │ ↓ │ MLP │ ↓ │ FFN_POST_NORM(optional) │ ↓ │ hidden_state_scale(optional) │ ↓ └───? + ...↓ OUTPUT_NORM ↓ lm_head_scale(optional) ↓ OUTPUT


以 Qwen 模型為例,將 Qwen 模型文件 modeling_qwen.py 中相應(yīng)的變量名稱填入自定義配置文件中,如下所示:

{ "BLOCKNAME": "QWenBlock", "TOKEN_EMBD": "wte", "ATTN_NORM": "ln_1", "ATTN_Q_NORM": "", "ATTN_K_NORM": "", "CROSS_ATTN_NORM": "", "CROSS_ATTN_Q": "", "ATTN_Q": "", "ATTN_K": "", "ATTN_V": "", "ATTN_QKV": "attn.c_attn", "ATTN_KV": "", "KV_CONTINUOUS": "true", "ATTN_OUT": "attn.c_proj", "CROSS_ATTN_OUT": "", "ATTN_POST_NORM": "", "FFN_NORM": "ln_2", "FFN_UP": "mlp.w1", "FFN_GATE": "mlp.w2", "ACT_TYPE": "silu", "FFN_DOWN": "mlp.c_proj", "FFN_POST_NORM": "", "OUTPUT_NORM": "ln_f", "OUTPUT": "lm_head" }


其中,ACT_TYPE 可選項為["silu", "gelu", "relu", "fatrelu", "squarerelu", "swiglu"]共六種,ATTN_NORM 和 FFN_NORM 只支持 RMSNorm;
如果使用了 ATTN_QKV 或者 ATTN_KV,則必須確認權(quán)重是否可以拆分為連續(xù)的 K|V,如果連續(xù)則 KV_CONTINUOUS 設(shè)置為 true,例如 Qwen 模型的 c_attn 權(quán)重是連續(xù)存儲,它可以按Q,K,V 大小進行順序切分,而 InternLM2 模型的 wqkv 權(quán)重是不連續(xù)存儲,它的 Q,K,V 是按head_dim 交錯排布。
Qwen 1.8B 模型的 modeling_qwen.py 文件定義如下:

class QWenLMHeadModel(QWenPreTrainedModel): def __init__(self, config): super().__init__(config) self.transformer = QWenModel(config) self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False) class QWenModel(QWenPreTrainedModel): _keys_to_ignore_on_load_missing = ["attn.masked_bias"] def __init__(self, config): super().__init__(config) self.wte = nn.Embedding(self.vocab_size, self.embed_dim) self.ln_f = RMSNorm( self.embed_dim, eps=config.layer_norm_epsilon, ) class QWenBlock(nn.Module): def __init__(self, config): super().__init__() hidden_size = config.hidden_size self.bf16 = config.bf16 self.ln_1 = RMSNorm( hidden_size, eps=config.layer_norm_epsilon, ) self.attn = QWenAttention(config) self.ln_2 = RMSNorm( hidden_size, eps=config.layer_norm_epsilon, ) self.mlp = QWenMLP(config) class QWenAttention(nn.Module): def __init__(self, config): super().__init__() self.c_attn = nn.Linear(config.hidden_size, 3 * self.projection_size) self.c_proj = nn.Linear( config.hidden_size, self.projection_size, bias=not config.no_bias ) class QWenMLP(nn.Module): def __init__(self, config): super().__init__() self.w1 = nn.Linear( config.hidden_size, config.intermediate_size // 2, bias=not config.no_bias) self.w2 = nn.Linear( config.hidden_size, config.intermediate_size // 2, bias=not config.no_bias) ff_dim_in = config.intermediate_size // 2 self.c_proj = nn.Linear(ff_dim_in, config.hidden_size, bias=not config.no_bias)


自定義模型的轉(zhuǎn)換,包括支持 cross attention 的模型,我們提供了一個 huggingface 模型結(jié)構(gòu)供參考,自定義的配置文件如下:

{ "BLOCKNAME": "CustomDecoderLayer", "TOKEN_EMBD": "embed_tokens", "ATTN_NORM": "input_layernorm", "ATTN_Q_NORM": "", "ATTN_K_NORM": "", "CROSS_ATTN_NORM": "cross_layernorm", "CROSS_ATTN_Q": "cross_attn.cross_q_proj", "ATTN_Q": "", "ATTN_K": "", "ATTN_V": "", "ATTN_QKV": "self_attn.qkv_proj", "ATTN_KV": "", "KV_CONTINUOUS": "true", "ATTN_OUT": "self_attn.o_proj", "CROSS_ATTN_OUT": "cross_attn.cross_o_proj", "ATTN_POST_NORM": "", "FFN_NORM": "post_attention_layernorm", "FFN_UP": "mlp.up_proj", "FFN_GATE": "mlp.gate_proj", "ACT_TYPE": "silu", "FFN_DOWN": "mlp.down_proj", "FFN_POST_NORM": "", "OUTPUT_NORM": "norm", "OUTPUT": "lm_head"

7. 舊版本模型更新


由于 1.0.2 版本與 1.1 及之后版本差異較大,因此提供了 rkllm.update_rkllm()函數(shù)將 1.0.2 版本模型更新為最新版本,更新模型時無需執(zhí)行上述模型加載和構(gòu)建步驟,直接調(diào)用此接口進行更新,更新后模型量化類型等參數(shù)均未改變。rkllm.update_rkllm()函數(shù)的具體參數(shù)定義如下:

v2-eec4e4a9f25f70ac613671d3447a59ab_720w.webp

示例代碼如下:

ret = llm.update_rkllm(model = "./model_1.0.2version.rkllm") if ret != 0: print('Load model failed!') exit(ret)

8. 仿真精度評估


用戶在通過 rkllm.build()函數(shù)構(gòu)建了 RKLLM 模型后,可以通過 rkllm.get_logits()函數(shù)在 PC端進行仿真精度評估,rkllm.get_logits()函數(shù)的具體參數(shù)定義如下:

v2-7c3ac0b8d4f5a7cb64c92cb89bd6b945_720w.webp

使用此函數(shù)進行 wikitext 數(shù)據(jù)集 ppl 測試示例代碼如下:

def eval_wikitext(llm): seqlen = 512 tokenizer = AutoTokenizer.from_pretrained( modelpath, trust_remote_code=True ) #Dataset download link: #https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-2-raw-v1 testenc = load_dataset("parquet", data_files='./wikitext/wikitext-2-raw-1/test-00000-of-00001.parquet', split='train') testenc = tokenizer( "\n\n".join(testenc['text']), return_tensors="pt").input_ids nsamples = testenc.numel() // seqlen nlls = [] for i in tqdm(range(nsamples), desc="eval_wikitext: "): batch = testenc[:, (i * seqlen): ((i + 1) * seqlen)] inputs = {"input_ids": batch} lm_logits = llm.get_logits(inputs) if lm_logits is None: print("get logits failed!") return shift_logits = lm_logits[:, :-1, :] shift_labels = batch[:, 1:].to(lm_logits.device) loss_fct = nn.CrossEntropyLoss().to(lm_logits.device) loss = loss_fct(shift_logits.view(-1, shift_logits.size(-1)), shift_labels.view(-1)) neg_log_likelihood = loss.float() * seqlen nlls.append(neg_log_likelihood) ppl = torch.exp(torch.stack(nlls).sum() / (nsamples * seqlen)) print(f'wikitext-2-raw-1-test ppl: {round(ppl.item(), 2)}')


9. 仿真模型推理


用戶在通過 rkllm.build()函數(shù)構(gòu)建了 RKLLM 模型后,可以通過 rkllm.chat_model()函數(shù)在 PC端進行仿真推理,rkllm.chat_model()函數(shù)的具體參數(shù)定義如下:

v2-23f603b7fa47592b2043bb146d407cf9_720w.webp


示例代碼如下:

args ={ "max_length":128, "top_k":1, "temperature":0.8, "do_sample":True, "repetition_penalty":1.1 } mesg = "Human: 今天天氣怎么樣?\nAssistant:" print(llm.chat_model(mesg, args))


以上的這些操作涵蓋了 RKLLM-Toolkit 模型轉(zhuǎn)換、量化的全部步驟,根據(jù)不同的需求和應(yīng)用場景,用戶可以選擇不同的配置選項和量化方式進行自定義設(shè)置,方便后續(xù)進行部署。

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

    關(guān)注

    1821

    文章

    50453

    瀏覽量

    267478
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    26

    文章

    6476

    瀏覽量

    121275
  • 瑞芯微
    +關(guān)注

    關(guān)注

    27

    文章

    888

    瀏覽量

    54712
  • EASY-EAI靈眸科技
    +關(guān)注

    關(guān)注

    4

    文章

    126

    瀏覽量

    3747
  • RV1126B
    +關(guān)注

    關(guān)注

    0

    文章

    116

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    (EASY EAI)RV1126B 音頻輸入

    1.聲卡資源介紹EASY-EAI-Nano-TB僅有一塊由RV1126B主控輸出的聲卡。通過串口調(diào)試或ssh調(diào)試,可以進入開發(fā)板終端。執(zhí)行aplay命令查看聲卡相關(guān)的詳細信息,如下所示
    的頭像 發(fā)表于 12-18 13:41 ?2657次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 音頻輸入

    (EASY EAI)RV1126B PWM使用

    1.PWM簡介1.1開發(fā)板PWM資源1.2查找PWM節(jié)點rv1126b的pwm資源表如下:【PWM1CH0】對應(yīng)的是pwm1_4ch_0,寄存地址為20700000?!綪WM1CH1】對應(yīng)
    的頭像 發(fā)表于 01-06 10:49 ?8711次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> PWM使用

    (EASY EAI)RV1126B 音頻輸出

    1.聲卡資源介紹EASY-EAI-Nano-TB僅有一塊由RV1126B主控輸出的聲卡。通過串口調(diào)試或ssh調(diào)試,可以進入開發(fā)板終端。執(zhí)行aplay命令查看聲卡相關(guān)的詳細信息,如下所示
    的頭像 發(fā)表于 04-01 17:13 ?8646次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 音頻輸出

    EASY EAI Nano-TB(RV1126B)開發(fā)板試用】+初識篇

    Nano-TB是靈眸科技研發(fā)的一款應(yīng)用于AIoT領(lǐng)域的開發(fā)板,它基于RV1126B處理器,集成了4個Cortex-A53及獨立的NEON協(xié)處理器,它支持4K@30fps的H.
    發(fā)表于 10-25 22:06

    EASY EAI Nano-TB(RV1126B)開發(fā)板試用】+1、開箱上電

    ,避免因接觸不良導(dǎo)致顯示或采集異常。 2 硬件解析:強勁AI核心與豐富接口 2.1 核心處理器性能 EASY EAI Nano-TB開發(fā)板的核心基于
    發(fā)表于 11-19 21:39

    EASY EAI Nano-TB(RV1126B)開發(fā)板試用】介紹、系統(tǒng)安裝

    ,并介紹了系統(tǒng)鏡像安裝部署的相關(guān)流程。 介紹 EASY-EAI-Nano-TB是靈眸科技研發(fā)的一款應(yīng)用于AIoT領(lǐng)域的AIOT主板。 核心板基于
    發(fā)表于 12-23 18:05

    RV1126系列選型指南:從RV1126RV1126B,一文看懂升級差異

    2025年7月,正式發(fā)布新一代AI視覺芯片RV1126B。作為其金牌方案商,EASYEAI靈眸科技同步推出搭載該芯片的AIoT核心板EAI11
    的頭像 發(fā)表于 09-04 10:50 ?5358次閱讀
    <b class='flag-5'>RV1126</b>系列選型指南:從<b class='flag-5'>RV1126</b>到<b class='flag-5'>RV1126B</b>,一文看懂升級差異

    【免費試用】EASY EAI Nano-TB(RV1126B)開發(fā)套件評測

    EASY-EAI-Nano-TB是靈眸科技研發(fā)的一款應(yīng)用于AIoT領(lǐng)域的AIOT主板。核心板基于RV1126B處理器設(shè)計,并引入了新
    的頭像 發(fā)表于 09-23 08:09 ?1350次閱讀
    【免費試用】<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b> Nano-TB(<b class='flag-5'>RV1126B</b>)開發(fā)套件評測

    RV1126B特性概述

    RV1126BRockchip在2025年第二季度全新推出的Arm架構(gòu)AI視覺芯片,搭載4核Cortex-A53與自研3Tops算力NPU。全面替代上一代的
    的頭像 發(fā)表于 10-09 11:22 ?2332次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b>特性概述

    替代升級實錘!實測RV1126B,CPU性能吊打RV1126

    AI智能芯片迭代提速,推出了全新的Arm架構(gòu)AI視覺芯片RV1126B,是否替換RV1126,CPU性能是擠牙膏還是大突破。帶著這些核
    的頭像 發(fā)表于 12-11 17:13 ?2679次閱讀
    替代升級實錘!實測<b class='flag-5'>RV1126B</b>,CPU性能吊打<b class='flag-5'>RV1126</b>

    (EASY EAI)RV1126B 人體關(guān)鍵點識別

    的特點。本人員檢測算法在數(shù)據(jù)集表現(xiàn)如下所示:基于EASY-EAI-Nano-TB(RV1126B)硬件主板的運行效率:17個人體關(guān)鍵點索引定義:2.快速上手2.1開發(fā)
    的頭像 發(fā)表于 01-23 10:13 ?4008次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 人體關(guān)鍵點識別

    (EASY EAI)RV1126B rknn-toolkit-lite2使用方法

    1.rknn-toolkit-lite2介紹RKNN-Toolkit-Lite2是(Rockchip)專為旗下RK系列芯片(如RV1126B、RK3576、RK3588等)打造的
    的頭像 發(fā)表于 04-22 17:38 ?840次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> rknn-toolkit-lite2使用方法

    (EASY EAI)RV1126B 模型轉(zhuǎn)換API說明

    1.API詳細說明1.1RKNN初始化及釋放在使用RKNN-Toolkit2的所有API接口時,都需要先調(diào)用RKNN()方法初始化RKNN對象,不再使用該對象時通過調(diào)用該對象的release()方法
    的頭像 發(fā)表于 05-06 11:23 ?262次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> <b class='flag-5'>模型</b><b class='flag-5'>轉(zhuǎn)換</b><b class='flag-5'>API</b><b class='flag-5'>說明</b>

    (EASY EAI)RV1126B yolov11訓(xùn)練部署教程

    、使用最廣泛的YOLO變體。YOLO11將延續(xù)YOLO系列的傳奇。本教程針對目標檢測算法yolo11的訓(xùn)練和部署到EASY-EAI-Nano-TB(RV1126B)進行
    的頭像 發(fā)表于 05-09 16:59 ?660次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> yolov11訓(xùn)練部署教程

    RV1126B 方案特性

    RV1126B是面向邊緣視覺場景的專用處理芯片,憑借低功耗、內(nèi)置AI-ISP、雙路MIPI-CSI接口以及端側(cè)AI算力,可支撐常規(guī)監(jiān)控、雙光譜、多目視覺等多類相機產(chǎn)品開發(fā),配合定
    的頭像 發(fā)表于 05-11 14:27 ?625次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b> 方案特性
    渭南市| 阜新| 日喀则市| 阳朔县| 东莞市| 仁寿县| 桦南县| 榆林市| 景宁| 木兰县| 鄂尔多斯市| 横山县| 新疆| 绵竹市| 穆棱市| 大埔县| 新和县| 廉江市| 大名县| 榕江县| 仲巴县| 申扎县| 鄂托克旗| 乡城县| 清流县| 都安| 台山市| 石棉县| 周口市| 南投市| 双城市| 柳林县| 左权县| 繁昌县| 绥江县| 会同县| 洪泽县| 綦江县| 咸丰县| 太保市| 昌平区|