
一、ollama1.1 docker 方式1.1.1 ollama启动1拉取镜像dockerpull ollama/ollama2启动dockerrun-d--restartalways--gpusall-v/home/docker/ollama:/root/.ollama-p11434:11434--nameollama ollama/ollama# -v 是存储挂载之后你使用ollama下载的模型权重都会保存早本地/home/docker/ollama路径下3启动完成后您可以通过访问 http://您的IP地址:11434/api/tags 来查看当前已下载的大模型列表。同时通过访问 http://您的IP地址:11434/api/version 可以获取当前安装的 Ollama 版本信息。请注意在上述 URL 中请将 您的IP地址 替换为您实际的服务器 IP 地址或域名。对于 Ollama 0.3.0 及以上版本用户能够配置更多的高级选项如多并发处理能力和模型后台运行的最大时长等。这些功能可以通过执行特定的命令来实现。curlhttp://ip:11434/api/generate-d{model:qwen2:7b,keep_alive: -1}# 将qwen2:7b模型一直保持在后台1.1.2 Open WebUI1拉取 Open WebUI 镜像dockerpull openwebui/open-webui2运行 Open WebUI 服务dockerrun-d-p8080:8080 --add-hosthost.docker.internal:host-gateway-vopen-webui:/app/backend/data--nameopen-webui--restartalways ghcr.io/open-webui/open-webui:main3访问 Open WebUI打开浏览器访问 http://ip:8080就能打开以上页面了。这个是配置刚刚ollama的服务保存之后就可以在下面的模型模块看到已有的模型在模型管理模块中您可以下载所需的模型请注意模型名称必须准确无误。为了方便查找和选择合适的模型您可以访问 Ollama 模型库。完成模型下载后您就可以开始与模型进行对话了。如果您想探索更多功能建议搜索有关 Open WebUI 的使用教程那里有详细的指南和技巧可以帮助您更好地利用这一工具。二、huggingface、modelscope2.1 huggingface方式Hugging Face 是一个非常流行的开源平台提供了大量的预训练模型和工具使得开发者和研究人员可以轻松地使用和微调各种深度学习模型。本文将介绍如何在 Hugging Face 上运行大模型并提供一些实用的技巧和注意事项。前提条件1Python建议使用 Python 3.7 或更高版本。2Transformers 库这是 Hugging Face 提供的核心库包含了大量预训练模型。3Torch 或 TensorFlow根据您的需求选择其中一个深度学习框架。由于官网需要科学上网的方式才能访问所以推荐使用国内的镜像 https://hf-mirror.com对应的每个大模型下都会有如何调用的方法代码默认的是使用官网下载大模型我们可以直接使用以上的镜像网址在网页上进行下载还有一种方式直接使用命令的形式下载配置方法如下pipinstall-Uhuggingface_hub pipinstallhuggingface-cliexportHF_ENDPOINThttps://hf-mirror.com# 配置加速镜像huggingface-cli download --resume-download Qwen/Qwen2.5-1.5B-Instruct --local-dir /home/models/Qwen2.5-1.5B-Instruct新版hf download FunAudioLLM/SenseVoiceSmall --local-dir /data/zhx/pre_model/SenseVoiceSmall2.2 modelscope方式modelscope也是一个模型库和huggingface的区别就是modelscope是国内开发的模型没有huggingface全面但是大模型都会有。使用方法一致官网提供了调用方法三、vllmvllm 是一个用于高效运行和微调大型语言模型的框架。它提供了强大的功能和灵活的接口使得开发者和研究人员可以轻松地管理和使用各种大模型。本文将详细介绍如何使用 VLLM 运行大模型并提供一些实用的技巧和注意事项。1配置环境vllm对环境要求比较高需要高版本的cuda(12以上)以下是我之前文章的片段2模型下载使用 2.1 的方式下载想要运行的模型。3运行使用命令的形式运行启动大模型服务vllm serve Qwen/Qwen2.5-1.5B-Instruct --trust-remote-codepython-mvllm.entrypoints.api_server--modelmodel_name_or_pathpython-mvllm.entrypoints.api_server--modelgpt2--host0.0.0.0--port8080--tensor-parallel-size2出现显卡精度与模型不对应时可以使用 --dtype half 来支撑调用importrequestsimportjson# Endpoint URLurlhttp://localhost:8000/v1/chat/completions# Headersheaders{Content-Type:application/json,}# Payloadpayload{messages:[{role:system,content:You are a helpful assistant.},{role:user,content:Tell about Bitcoin.},],model:Qwen/Qwen2.5-1.5B-Instruct,stream:False,max_tokens:2048,stop:None,frequency_penalty:0,presence_penalty:0,temperature:0.6,top_p:0.90}responserequests.post(url,headersheaders,datajson.dumps(payload))resultresponse.json()contentresult[choices][0][message][content]print(content)使用代码的形式运行fromvllmimportLLM,SamplingParamsdefgenerate_text(model_path,prompts): 使用 vllm 从指定模型生成文本 :param model_path: 模型的路径或名称 :param prompts: 用于生成文本的提示列表 :return: 生成的文本结果 # 定义采样参数sampling_paramsSamplingParams(temperature0.8,# 控制生成文本的随机性值越大越随机top_p0.95,# 采样时考虑的概率阈值max_tokens256# 生成的最大 token 数量)try:# 创建 LLM 对象指定模型路径、数据类型、GPU 内存利用率和最大模型长度llmLLM(modelmodel_path,dtypehalf,# 使用 float16 数据类型避免 Bfloat16 不支持的问题gpu_memory_utilization0.9,# 提高 GPU 内存利用率max_model_len51424# 限制最大模型长度以适应 KV 缓存)# 调用生成方法outputsllm.generate(prompts,sampling_params)# 处理生成的结果results[]foroutputinoutputs:promptoutput.prompt generated_textoutput.outputs[0].text result{prompt:prompt,generated_text:generated_text}results.append(result)returnresultsexceptExceptionase:print(f生成文本时出现错误:{e})return[]if__name____main__:# 示例提示列表sample_prompts[介绍一下人工智能的发展历程,推荐几部经典的科幻电影,简述中国古代四大发明的意义]# 替换为你实际的模型路径或名称model_path/home/ws/store/zhx/pre_model/DeepSeek-R1-Distill-Qwen-1.5B# 调用生成函数generated_resultsgenerate_text(model_path,sample_prompts)# 打印生成的结果forresultingenerated_results:print(f提示:{result[prompt]})print(f生成的文本:{result[generated_text]})print(-*50)代码启动服务fromvllm.entrypoints.api_serverimportappimportuvicornif__name____main__:model_namegpt2# 配置参数config{model:model_name,host:0.0.0.0,port:8080,tensor_parallel_size:2}uvicorn.run(app,**config)