部署如果只是用于简单推理或者使用webUI等这种前端去搭建RAG可以使用Ollama去下载拉取模型并运行run,配合docker可以很简单的部署并使用,由于我这里后续需要其他操作,所以使用魔搭modelscope下载然后在代码中利用接口调用部署的模型。

1、先下载魔搭社区,我们使用魔搭来拉取模型到本地。

pip install modelscope -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

2、若需全局使用,将ModelScope路径添加到~/.bashrc

echo 'export PATH="$PATH:/path/to/modelscope/bin"' >> ~/.bashrc  # 替换为实际安装路径
source ~/.bashrc

3、下载模型(示例)​

3.1这里没有指定目录下载:

modelscope download unsloth/Qwen3-14B-unsloth-bnb-4bit

若出现这报错就安装这个包 :pip install packaging

这样就开始成功安装了

注:如果没指定目录下载,后续使用mv命令移动到指定目录,如下所例:

        mv ./home/liqianxi/Qwen3-14B-unsloth-bnb-4bit  /liqianxi/model

        即从./home/liqianxi/Qwen3-14B-unsloth-bnb-4bit这个文件夹移动到 /liqianxi/model这个文件夹。

3.2指定目录去下载使用如下命令

modelscope download --model 'Qwen3-32B' --local_dir '/path/to/save/model'

4、编写代码,调用下载好的模型,测试是否成功部署:

from transformers import AutoModelForCausalLM, AutoTokenizer

# 设置模型路径

model_path = "/home/liqianxi/models/Qwen3-14B-unsloth-bnb-4bit"

# 初始化tokenizer和model

tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

model = AutoModelForCausalLM.from_pretrained(

    model_path,

    device_map="auto",

    trust_remote_code=True

).eval()

def analyze_code(code: str):

    """

    使用Qwen模型分析代码并直接打印结果

    """

    # 构建提示词

    prompt = f"""请分析以下代码的功能、输入输出、关键算法和可能的应用场景。按以下格式返回分析结果:

   

    1. 功能概述:

    2. 输入输出说明:

    3. 关键算法/逻辑:

    4. 应用场景:

    5. 潜在改进点:

   

    代码:

    {code}

    """

   

    # 使用模型生成分析结果

    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

    outputs = model.generate(**inputs, max_new_tokens=3000)

    response = tokenizer.decode(outputs[0], skip_special_tokens=True)

     

    # 打印结果

    print("\n代码分析结果:")

    print(response)

   

    return response

# 测试代码样例

test_code = """

void BRepExtrema_ExtPF::Initialize(const TopoDS_Face&    TheFace,

                                   const Extrema_ExtFlag TheFlag,

                                   const Extrema_ExtAlgo TheAlgo)

{

  // cette surface doit etre en champ. Extrema ne fait

  // pas de copie et prend seulement un pointeur dessus.

  mySurf.Initialize(TheFace, Standard_False);

  if (mySurf.GetType() == GeomAbs_OtherSurface)

    return; // protect against non-geometric type (e.g. triangulation)

  Standard_Real Tol = Min(BRep_Tool::Tolerance(TheFace), Precision::Confusion());

  Standard_Real aTolU, aTolV;

  aTolU = Max(mySurf.UResolution(Tol), Precision::PConfusion());

  aTolV = Max(mySurf.VResolution(Tol), Precision::PConfusion());

  Standard_Real U1, U2, V1, V2;

  BRepTools::UVBounds(TheFace, U1, U2, V1, V2);

  myExtPS.SetFlag(TheFlag);

  myExtPS.SetAlgo(TheAlgo);

  myExtPS.Initialize(mySurf, U1, U2, V1, V2, aTolU, aTolV);

}

"""

# 运行测试

print("开始分析代码...")

analysis_result = analyze_code(test_code)

print("\n分析完成!")

这里将这代码copy到一个文件中,如qwen_test.py文件,然后进入到这个文件夹下运行该代码:
python qwen_test.py

即可开始输出

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐