一、模型来源

https://blog.csdn.net/weixin_41688410/article/details/145948449

二、加载引擎vllm

安装vllm,然后加载本地大模型,启动server

pip install vllm
vllm serve /root/autodl-tmp/DeepSeek-R1-Distill-Qwen-1___5B-merged
(open-webui) root@autodl-container-5db74b9093-c2d3b8a9:~/autodl-tmp/llm# vllm serve /root/autodl-tmp/llm/DeepSeek-R1-Distill-Qwen-1___5B-merged
INFO 03-02 17:35:35 __init__.py:207] Automatically detected platform cuda.
INFO 03-02 17:35:35 api_server.py:912] vLLM API server version 0.7.3
INFO 03-02 17:35:35 api_server.py:913] args: Namespace(subparser='serve', model_tag='/root/autodl-tmp/llm/DeepSeek-R1-Distill-Qwen-1___5B-merged', config='', host=None, port=8000, uvicorn_log_level='info', allow_credentials=False, allowed_origins=['*'], allowed_methods=['*'], allowed_headers=['*'], api_key=None, lora_modules=None, prompt_adapters=None, chat_template=None, chat_template_content_format='auto', response_role='assistant', ssl_keyfile=None, ssl_certfile=None, ssl_ca_certs=None, ssl_cert_reqs=0, root_path=None, middleware=[], return_tokens_as_token_ids=False, disable_frontend_multiprocessing=False, enable_request_id_headers=False, enable_auto_tool_choice=False, enable_reasoning=False, reasoning_parser=None, tool_call_parser=None, tool_parser_plugin='', model='/root/autodl-tmp/llm/DeepSeek-R1-Distill-Qwen-1___5B-merged', task='auto', tokenizer=None, skip_tokenizer_init=False, revision=None, code_revision=None, tokenizer_revision
...
...
INFO 03-02 17:36:09 launcher.py:31] Route: /v2/rerank, Methods: POST
INFO 03-02 17:36:09 launcher.py:31] Route: /invocations, Methods: POST
INFO:     Started server process [25218]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

加载完以后显存已经到27G
在这里插入图片描述

server起来后就一直监听,等待连接
在这里插入图片描述

对于vllm使用,在openwebui一文中有详细过程
https://editor.csdn.net/md?not_checkout=1&spm=1001.2101.3001.5352&articleId=145958666#openwebui_70

三、openai风格调用与测试

api_key是可以随便设置一个。

(venv-rtfde) (open-webui) root@autodl-container-5db74b9093-c2d3b8a9:~/autodl-tmp# cat test1.py 
from openai import OpenAI

client =OpenAI(base_url="http://localhost:8000/v1/",api_key="123")
responce =client.chat.completions.create(
    messages=[{"role":"user","content":"下列关于细胞结构和功能的叙述,正确的是(  ) A. 蓝藻细胞没有叶绿体,但能进行光合作用,其光合作用的场所是细胞质基质 B. 核糖体是蛋白质合成和加工的主要场所 C. 细胞骨架是由蛋白质纤维组成的网架结构,与细胞的运动、分裂、分化等生命活动密切相关 D. 细胞核是细胞遗传信息储存、复制和表达的主要场所"}],
    model="/root/autodl-tmp/llm/DeepSeek-R1-Distill-Qwen-1___5B-merged"
)
print(responce.choices[0])
(venv-rtfde) (open-webui) root@autodl-container-5db74b9093-c2d3b8a9:~/autodl-tmp# python test1.py 
Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='嗯,今天我在学习细胞结构和功能的时候,遇到了一道选择题,里面有四个选项,都是关于细胞结构和功能的问题。我觉得这道题主要考察我对细胞结构和功能的基本知识的理解,而且可能还涉及到对选项的分析能力。因此,我打算先回忆一下相关的知识点,再仔细分析每个选项,最后找出正确的答案。\n\n首先,我记得细胞是由细胞核和细胞器组成的,所以细胞核应该是细胞的功能中心,也就是说,细胞核应该包含细胞遗传信息的储存、复制和表达的主要场所。另外,细胞核中也还有控制细胞的分裂、分化和生长发育等生命活动的地方,而细胞器则参与细胞的许多功能。因此,细胞核不只是细胞遗传信息储存的主要场所,它在遗传信息储存、控制细胞的分裂、分化和生长发育、细胞的繁殖、和细胞间的通信等方面起着重要作用。\n\n其次,核糖体是由核糖体酶组成的复合物,它能够合成各种生物大分子,比如蛋白质、核酸和小分子物质。蛋白质是细胞 MANY功能的根源;核酸是在细胞核中以病毒状形态包裹在细胞核内,用于细胞遗传的信息的储存和传递;小分子物质如掉落 enduring物质、酶、离子等都是核糖体起作用的中介。因此,核糖体不仅仅是蛋白质合成的主要场所,也是遗传信息存储和传递的主要场所,更为释放酶和离子和其他物质也具有重要的功能。\n\n再者,细胞骨架由蛋白质纤维组成,它位于细胞膜的内部,支撑细胞膜的结构,细胞骨架实际上是细胞运动、分裂、细胞的分化和繁殖等生命的活动的的基础。因此,细胞骨架不仅是细胞分裂、运动和繁殖的基本支架,也是细胞建构本身的要素基础。\n\n最后,细胞核是在细胞的形成、分裂和发育过程中至关重要的结构部分,它是细胞遗传信息储存、控制细胞的分裂、分化和生长发育、细胞的繁殖、以及与其它细胞的通信等方面的主要场所;细胞核内包含遗传信息储存的主要场所DNA,以及控制细胞分裂和分化、细胞的生长发育、细胞之间的连接和信号传递的主要器官;细胞核内还有一些专门的功能器,如RNA绝对位点和与细胞分裂相关的ESSRNA、以及与细胞间的交流设施,这些都是细胞核重要的调控元素。\n\n有了以上的初始知识,我再来分析这道题的各个选项是否正确:\n\nA. 蓝藻细胞没有叶绿体,但能进行光合作用,其光合作用的场所是细胞质基质。 \n\n首先,蓝藻没有叶绿体,即没有叶绿体是蓝藻细胞不具备的功能。其次,蓝藻进行光合作用的场所应该是细胞质基质中,而不是光合作用的场所是细胞质基质。因此,A错误。\n\nB. 核糖体是蛋白质合成和加工的主要场所\n\n核糖体不仅仅是蛋白质合成的主要场所,是遗传信息存储和传递的主要场所,更是释放酶和离子和其他物质也具有重要的功能,因此,B错误。\n\nC. 细胞骨架是由蛋白质纤维组成的网架结构,与细胞的运动、分裂、分化等生命活动密切相关\n\n细胞骨架是由蛋白质纤维组成,它是细胞运动、分裂、细胞的分化和繁殖等生命的活动的的基础,因此,C正确。\n\nD. 细胞核是细胞遗传信息储存、复制和表达的主要场所\n\n细胞核是细胞遗传信息储存的主要场所,同时也包含控制细胞的分裂、分化和生长发育、细胞的繁殖、和细胞间的通信等方面的重要场所,因此,D错误。\n\n综上所述,正确的选项是C。\n</think>\n\nC', refusal=None, role='assistant', audio=None, function_call=None, tool_calls=[], reasoning_content=None), stop_reason=None)
(venv-rtfde) (open-webui) root@autodl-container-5db74b9093-c2d3b8a9:~/autodl-tmp# 

vllm serve端
在这里插入图片描述
openai调用端
在这里插入图片描述

四、transformer加载模型

transformers 库是由 Hugging Face 提供的,它是一个流行的开源库,用于自然语言处理(NLP)任务,特别是基于 Transformer 架构的模型。

#使用transformer加载模型
from transformers import AutoModelForCausalLM,AutoTokenizer

DEVICE = "cuda"
#加载本地模型路径为该模型配置文件所在的根目录
model_dir = "/root/autodl-tmp/llm/DeepSeek-R1-Distill-Qwen-1___5B-merged"
#使用transformer加载模型
model = AutoModelForCausalLM.from_pretrained(model_dir,torch_dtype="auto",device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_dir)

#调用模型
#定义提示词
prompt = "下列关于细胞结构和功能的叙述,正确的是(  ) A. 有内质网的细胞不一定是真核细胞 B. 有中心体的细胞一定是动物细胞 C. 有高尔基体的细胞不一定有分泌功能 D. 有核糖体的细胞一定能合成分泌蛋白"
#将提示词封装成message
message = [{"role":"system","content":"You are a helpful assistant system"},{"role":"user","content":prompt}]
#使用分词器的apply_chat_template()方法将上面定义的消息列表进行转换;tokenize=False表示此时不进行令牌化
text = tokenizer.apply_chat_template(message,tokenize=False,add_generation_prompt=True)

#将处理后的文本令牌化并转换为模型的输入张量
model_inputs = tokenizer([text],return_tensors="pt").to(DEVICE)
#输入模型得到输出
generated = model.generate(model_inputs.input_ids,max_new_tokens=512)
print(generated)

#对输出的内容进行解码还原
responce = tokenizer.batch_decode(generated,skip_special_tokens=True)
print(responce)

推理时候,gpu利用率
在这里插入图片描述
结果输出

(venv-rtfde) (open-webui) root@autodl-container-5db74b9093-c2d3b8a9:~/autodl-tmp# python test2.py
Sliding Window Attention is enabled but not implemented for `sdpa`; unexpected results may be encountered.
Some parameters are on the meta device because they were offloaded to the cpu.
The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.
Setting `pad_token_id` to `eos_token_id`:151643 for open-end generation.
The attention mask is not set and cannot be inferred from input because pad token is same as eos token. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.
tensor([[151646, 151646,   2610,    525,    264,  10950,  17847,   1849, 151644,
         107976, 101888, 102150, 100166,  33108,  98380,   9370, 114221,   3837,
          88991, 100146,   9909,    220,    220,   7552,    362,     13,    220,
          18830,  31843,  99178,  31139,   9370, 102150,  16530, 106507,  88051,
          71137, 102150,    425,     13,    220,  18830,  99488,  31914,   9370,
         102150, 106507, 101239, 102150,    356,     13,    220,  18830, 111063,
          74046,  31914,   9370, 102150, 107290,  18830, 103118,  98380,    422,
             13,    220,  18830,  71137, 100443,  31914,   9370, 102150, 112751,
         106726, 103118, 102835, 151645, 151648,    198, 106287,   3837, 100644,
         101049, 105607, 106336,  99593,  44793, 101888, 102150, 100166,  33108,
          98380, 105340,  33872,   3837, 106367,  20412,  36987, 107976, 101888,
         102150, 100166,  33108,  98380,   9370, 114221,   3837,  88991, 100146,
           9909,    220,    220,   7552,  33590, 101889, 102558, 100802, 109487,
           5122,     32,   5373,  18830,  31843,  99178,  31139,   9370, 102150,
          16530, 106507,  88051,  71137, 102150,  24968,     33,   5373,  18830,
          99488,  31914,   9370, 102150, 106507, 101239, 102150,  24968,     34,
           5373,  18830, 111063,  74046,  31914,   9370, 102150, 107290,  18830,
         103118,  98380,  24968,     35,   5373,  18830,  71137, 100443,  31914,
           9370, 102150, 112751, 106726, 103118, 102835,   1773, 104288,  43288,
          44793,  33872, 106161,  99222,  99349,   3837,  77288,  99998,  49828,
         104857, 101042, 100158,   3837, 103944,  99283, 101128,  88991,   3837,
          87256, 104086, 105045, 104317,   3407, 101140,   3837,  35946,  49828,
         104843, 100158, 102150, 100166,  33108,  98380, 105166, 100032,   1773,
         102150, 104625, 102150,  71137,   5373, 102150,  31548,  33108, 102150,
          99178, 107339,   3837, 102150,  99178,  99518,  67071,  71137, 100443,
          31914,   5373,  71137, 100443,  31914,   5373,  71137, 100443,  31914,
         101286,   3837, 102150,  99178,  15946,  71137, 100443,  31914,  73670,
         106726, 100646, 107151,  33108, 111068,   3837, 102150,  71137, 108695,
         108122, 101252,   3837, 100359, 102150,   9370, 104569,   5373, 110935,
           5373, 108122,  33108, 110450,  49567,  98380,   1773, 102150, 101232,
          26232, 100359, 102150,   9370, 101979,  57218, 105413,   9370, 101252,
         102403,   3837, 102150,  31548, 104149,  20412,  57218, 102150,  71137,
          71817,  27369, 101069,   3837,  29524,  99488,  31914,  26232, 101890,
         102150, 105883,   3837,  31843,  99178,  31139, 101219, 102150,  99178,
          74046,  99178,  15946, 106726,  62926, 101130, 106726,   9370, 107151,
         106726, 100008,   3837, 111063,  74046,  31914, 101219, 102150,  99178,
          74046,  99178,  15946,  57218,  31843,  99178,  31139, 110467,   3837,
          99360,  31843,  99178,  31139, 106726,   9370, 107151, 101130,  54542,
          33447,   9099,  26939, 102150, 101232,  47815,  27091,   9370, 103118,
          31548,   3837, 111063,  74046,  31914, 100775,  80443,  98380,   1773,
         103118, 102835,  20412, 102150,  31548,  98380,   9370, 107795,   3837,
          20412, 102150, 104386,   9370, 101486,  52853,   3407, 100624,   3837,
          99601, 100192, 109487,  48443,     32, 109487,  36987,  18830,  31843,
          99178,  31139,   9370, 102150,  16530, 106507,  88051,  71137, 102150,
          55807, 105788,   3837,  99519,  31843,  99178,  31139,  20412,  52129,
          71137, 102150,   9909, 101912, 100400, 110818,   7552, 102150,  31548,
           3837,     32,  88991, 104248,   3837, 102150,  73670,  20412,  88051,
          71137, 102150,   3837,  99999,     32,  32100,   3407,     33, 109487,
          36987,  18830,  99488,  31914,   9370, 102150, 106507, 101239, 102150,
          55807, 105788,   3837,  99488,  31914, 114672,  52129,  71137, 102150,
          33108,  88051,  71137, 102150,  15946,   3837,  99999,     33,  32100,
           3407,     34, 109487,  36987,  18830, 111063,  74046,  31914,   9370,
         102150, 107290,  18830, 103118,  98380,  55807,  32664,   9370,   3837,
          99519, 111063,  74046,  31914, 100775,  80443,  98380,   3837, 101043,
          18493,  57218,  31843,  99178,  31139, 110467,  33447,   3837, 101130,
          54542,  33447,   9099,  26939, 102150, 101232,  47815,  27091,   9370,
         103118,  31548,  15946,  37029,   3837,  99999,     34,  88991,   3407,
             35, 109487,  36987,  18830,  71137, 100443,  31914,   9370, 102150,
         112751, 106726, 103118, 102835,  55807, 105788,   3837, 101043, 100629,
         103118, 102835,   9370, 102150,   3837,  99306, 102410, 106726, 103118,
         102835,   3837,  68536, 101895, 102150,  18830,  71137, 100443,  31914,
          77288,  80443, 103118, 102835,   3837,  99999,     35,  32100,   3407,
          99611,  17447, 113110,   3837, 105045, 109487,  20412,     34,   8997,
         151649,    271, 105045, 109487,  20412,   5122,     34,     13,    220,
          18830, 111063,  74046,  31914,   9370, 102150, 107290,  18830, 103118,
          98380,    271, 106637,   5122, 102150]], device='cuda:0')
['You are a helpful assistant system<|User|>下列关于细胞结构和功能的叙述,正确的是(  ) A. 有内质网的细胞不一定是真核细胞 B. 有中心体的细胞一定是动物细胞 C. 有高尔基体的细胞不一定有分泌功能 D. 有核糖体的细胞一定能合成分泌蛋白<|Assistant|><think>\n嗯,今天老师给我们布置了一道关于细胞结构和功能的选择题,题目是:“下列关于细胞结构和功能的叙述,正确的是(  )”,然后给了四个选项:A、有内质网的细胞不一定是真核细胞;B、有中心体的细胞一定是动物细胞;C、有高尔基体的细胞不一定有分泌功能;D、有核糖体的细胞一定能合成分泌蛋白。我觉得这道题不算太难,但还是得仔细分析一下,确保自己理解正确,再做出正确的判断。\n\n首先,我得回忆一下细胞结构和功能的基本知识。细胞是由细胞核、细胞器和细胞质组成的,细胞质又由核糖体、核糖体、核糖体组成,细胞质中核糖体可以合成各种蛋白质和核酸,细胞核储存遗传物质,控制细胞的生长、分裂、遗传和繁殖等功能。细胞膜能控制细胞的内部与外部的物质流动,细胞器的作用是与细胞核进行信息交流,如中心体能推动细胞前进,内质网是在细胞质基质中合成并加工合成的蛋白质合成机构,高尔基体是在细胞质基质中与内质网相遇,把内质网合成的蛋白质加工处理后 placed到细胞膜外面的分泌器,高尔基体本身没有功能。分泌蛋白是细胞器功能的产物,是细胞表面的标志物。\n\n那么,现在来看选项:\n\nA选项:“有内质网的细胞不一定是真核细胞”。不对,因为内质网是原核细胞(比如蓝藻)细胞器,A正确的情况下,细胞可以是真核细胞,所以A错误。\n\nB选项:“有中心体的细胞一定是动物细胞”。不对,中心体存在于原核细胞和真核细胞中,所以B错误。\n\nC选项:“有高尔基体的细胞不一定有分泌功能”。对的,因为高尔基体本身没有功能,只有在与内质网相遇后,加工处理后 placed到细胞膜外面的分泌器中使用,所以C正确。\n\nD选项:“有核糖体的细胞一定能合成分泌蛋白”。不对,只有具有分泌蛋白的细胞,才有可能合成分泌蛋白,而有些细胞有核糖体但没有分泌蛋白,所以D错误。\n\n综上所述,正确的选项是C。\n</think>\n\n正确的选项是:C. 有高尔基体的细胞不一定有分泌功能\n\n解析:细胞']
(venv-rtfde) (open-webui) root@autodl-container-5db74b9093-c2d3b8a9:~/autodl-tmp# 
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐