自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

讓哪吒用上DeepSeek,讓OpenVINO加速邊緣計(jì)算 原創(chuàng)

發(fā)布于 2025-4-26 21:24
瀏覽
0收藏

4月17日,OpenVINO? 2025.1版正式發(fā)布了。我們嘗個(gè)鮮,利用OpenVINO在英特爾哪吒開(kāi)發(fā)套件上部署deepseek-r1-distill-Qwen-7b模型。

一、在邊緣終端部署本地大模型的好處

    邊緣終端,如樹(shù)莓派和英特爾哪吒開(kāi)發(fā)套件,通常具有較低的功耗和成本,同時(shí)具備一定的計(jì)算能力。在這些設(shè)備上部署 DeepSeek-R1 大模型,可以帶來(lái)以下好處:

1. 降低云端依賴(lài)

邊緣終端的本地化部署減少了對(duì)云端服務(wù)的依賴(lài),使得設(shè)備能夠在離線(xiàn)或網(wǎng)絡(luò)不穩(wěn)定的情況下獨(dú)立運(yùn)行。這對(duì)于一些需要在偏遠(yuǎn)地區(qū)或網(wǎng)絡(luò)受限環(huán)境中使用的場(chǎng)景(如智能家居、工業(yè)物聯(lián)網(wǎng)等)非常有價(jià)值。

2. 應(yīng)用場(chǎng)景拓展  

在邊緣終端部署 DeepSeek-R1 可以推動(dòng) AI 技術(shù)在更多領(lǐng)域的應(yīng)用,如教育、開(kāi)發(fā)實(shí)驗(yàn)、智能家居等。這不僅降低了 AI 技術(shù)的使用門(mén)檻,還促進(jìn)了技術(shù)的普及。

3.隱私保護(hù)

由于數(shù)據(jù)處理完全在本地完成,邊緣終端部署可以有效避免敏感信息的外泄,尤其適合對(duì)隱私有高要求的場(chǎng)景。


二、英特爾哪吒開(kāi)發(fā)套件

英特爾哪吒開(kāi)發(fā)套件搭載了英特爾N97處理器(3.6GHz),配備64GB eMMC存儲(chǔ)和8GB LPDDR5內(nèi)存。英特爾N97處理器屬于 Intel Alder Lake-N 系列,4核,采用英特爾7代制程工藝,10納米。 E-Core 的設(shè)計(jì),專(zhuān)為輕量級(jí)辦公、教育設(shè)備和超低功耗筆記本電腦設(shè)計(jì),成本和功耗更低,更適合嵌入式設(shè)備。

讓哪吒用上DeepSeek,讓OpenVINO加速邊緣計(jì)算-AI.x社區(qū)

它具有較高的性能,通過(guò)OpenVINO? 優(yōu)化,可比 Jeston TX2 性能,1.3TOPS (FP16)

同時(shí),它又有較低的價(jià)格,Jetson TX2(8G,3480元),它只要1200元。

讓哪吒用上DeepSeek,讓OpenVINO加速邊緣計(jì)算-AI.x社區(qū)

它的功耗只有12瓦,相當(dāng)于3天3夜使用情況下,只消耗1度電都不到。

更關(guān)鍵的是!它還自帶集成顯卡,Intel UHD Graphics,我們可以在iGPU上運(yùn)行大模型。


三、具體部署方案

目前暫未看到有在英特爾哪吒開(kāi)發(fā)套件上部署 DeepSeek-R1 的介紹。為填補(bǔ)這一空白,本文介紹如何采用最新發(fā)布的OpenVINO2025.1來(lái)部署DeepSeek-R1-Distill-Qwen-7B模型。

(一)安裝OpenVINO

首先是安裝OpenVINO,參考官網(wǎng)介紹,可以采用PIP安裝,也可以下載安裝包。我這里采用PIP安裝。

讓哪吒用上DeepSeek,讓OpenVINO加速邊緣計(jì)算-AI.x社區(qū)

1、在Python下新建一個(gè)虛擬環(huán)境ov20251

python3 -m venv ov20251 

2、啟動(dòng)虛擬環(huán)境

source ov20251/bin/activate

3、安裝OpenVINO

pip install openvino

這里不指定特定版本的話(huà),就是安裝官方最新發(fā)布的2025.1版。

4、驗(yàn)證

下載完成后我們來(lái)驗(yàn)證一下是否安裝成功OpenVINO2025.1,打開(kāi)python,然后輸入以下命令,查看版本信息。

from openvino import get_version
print(get_version())

(二)安裝OpenVINO-GenAI

如果要快速和便捷地運(yùn)行大模型,Intel還準(zhǔn)備了OpenVino-Genai,可以實(shí)現(xiàn)三行代碼啟動(dòng)一個(gè)大模型對(duì)話(huà)。

pip install openvino-genai

這里不指定特定版本的話(huà),就是安裝官方最新發(fā)布的2025.1版。

這里有一個(gè)小竅門(mén), 雖然OpenVino-GenAI的使用需要配合OpenVINO運(yùn)行時(shí),但我們可以直接安裝OpenVINO-GenAI,它會(huì)自動(dòng)下載安裝相匹配版本的OpenVINO。

(三)安裝OpenCL ICD

為了在 Linux 上使用 GPU 設(shè)備進(jìn)行 OpenVINOuben推理,我們還需要安裝 OpenCL ICD

conda install ocl-icd-system


(三)編寫(xiě)大模型對(duì)話(huà)程序

做好以上準(zhǔn)備工作,接下來(lái)編寫(xiě)一個(gè)簡(jiǎn)單的對(duì)話(huà)程序,命名為chat_genai.py

import argparse
import openvino_genai
from llm_config import SUPPORTED_LLM_MODELS, DEFAULT_SYSTEM_PROMPT, DEFAULT_SYSTEM_PROMPT_CHINESE

def streamer(subword):
    print(subword, end='', flush=True)
    return False

def apply_chat_template(prompt, system_prompt, language="English"):  # 確保參數(shù)名與變量名一致
    """
    使用自定義的聊天模板格式化提示詞
    Args:
        prompt: 用戶(hù)輸入的提示
        system_prompt: 系統(tǒng)提示
        language: 語(yǔ)言選擇
    Returns:
        formatted_prompt: 格式化后的提示
    """
    messages = [
        {"role": "system", "content": system_prompt},
        {"role": "user", "content": prompt}
    ]
    
    if language == "Chinese":
        template = SUPPORTED_LLM_MODELS["Chinese"]["DeepSeek-R1-Distill-Qwen-7B"]["genai_chat_template"]
    else:
        template = SUPPORTED_LLM_MODELS["English"]["DeepSeek-R1-Distill-Qwen-7B"]["genai_chat_template"]

    formatted_prompt = ""
    for i, message in enumerate(messages):
        if i == 0:
            formatted_prompt += "<|begin of sentence|>"
        if message["role"] == "system" and message["content"]:
            formatted_prompt += message["content"]
        elif message["role"] == "user":
            formatted_prompt += f"<|User|>{message['content']}"
        elif message["role"] == "assistant":
            formatted_prompt += f"<|Assistant|>{message['content']}<|end of sentence|>"
    
    return formatted_prompt

# 為 lang.value 添加默認(rèn)值
lang_value = "English"  # 默認(rèn)語(yǔ)言設(shè)置為 English

if __name__ == "__main__":
    parser = argparse.ArgumentParser(add_help=False)
    parser.add_argument('-h',
                        '--help',
                        action='help',
                        help='Show this help message and exit.')
    parser.add_argument('-m',
                        '--model_path',
                        required=True,
                        type=str,
                        help='Required. model path')
    parser.add_argument('-l',
                        '--max_sequence_length',
                        default=256,
                        required=False,
                        type=int,
                        help='Required. maximun length of output')
    parser.add_argument('-d',
                        '--device',
                        default='CPU',
                        required=False,
                        type=str,
                        help='Required. device for inference')
    args = parser.parse_args()

    try:
        print(f"正在加載模型: {args.model_path}")
        pipe = openvino_genai.LLMPipeline(args.model_path, args.device)
        
        
        # 設(shè)置生成配置
        config = openvino_genai.GenerationConfig()
        config.max_new_tokens = args.max_sequence_length
        config.stop_strings = set()  # 修正為空集合(原代碼會(huì)匹配空字符串)
        
        print("模型加載完成,開(kāi)始聊天...\n")
        
        pipe.start_chat()
        while True:
            try:
                prompt = input('問(wèn)題:\n')
                if not prompt.strip():
                    break
                    
                system_prompt = DEFAULT_SYSTEM_PROMPT_CHINESE if lang_value == "Chinese" else DEFAULT_SYSTEM_PROMPT
                formatted_prompt = apply_chat_template(prompt, system_prompt, language=lang_value)  # 顯式指定參數(shù)名
                pipe.get_tokenizer().set_chat_template("""
{% for message in messages %}
{% if loop.first %}{{ '<|begin▁of▁sentence|>' }}{% endif %}
{% if message['role'] == 'system' and message['content'] %}{{ message['content'] }}{% endif %}
{% if message['role'] == 'user' %}{{ '<|User|>' + message['content'] }}{% endif %}
{% if message['role'] == 'assistant' %}{{ '<|Assistant|>' + message['content'] + '<|end▁of▁sentence|>' }}{% endif %}
{% if loop.last and add_generation_prompt and message['role'] != 'assistant' %}{{ '<|Assistant|>' }}{% endif %}
{% endfor %}
""")
                
                print("\n生成回答中...\n")
                pipe.generate(formatted_prompt, config, streamer)
                print('\n----------')
            except KeyboardInterrupt:
                print("\n對(duì)話(huà)被用戶(hù)中斷")
                break
            except Exception as e:
                print(f"\n錯(cuò)誤: {e}")
                continue
                
        pipe.finish_chat()
        
    except Exception as e:
        print(f"初始化失敗: {e}")

然后就可以啟動(dòng)對(duì)話(huà)了

python3 chat_genai.py --model_path /DeepSeek-R1-Distill-Qwen-7B-sym-int4-ov --max_sequence_length 4096

(四)Demo演示

以下是對(duì)話(huà)視頻的鏈接,輸出速度在每秒10個(gè)token左右。

【使用OpenVINO2025在Intel哪吒開(kāi)發(fā)板上運(yùn)行DeepSeek- R1-Qwen-7B蒸餾模型】??https://www.bilibili.com/video/BV1FERhYeEdL/?share_source=copy_web&vd_source=317251442c66d2e9cefe25184cc59493&t=8?? ??


結(jié)語(yǔ)

當(dāng)DeepSeek遇上哪吒,當(dāng)OpenVINO加速邊緣計(jì)算,這或許就是打開(kāi)第六次康波周期"寒武紀(jì)大爆發(fā)"時(shí)刻的鑰匙。


?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
已于2025-4-26 21:24:33修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦