别再被云API割韭菜了
本地跑大模型,数据不出门、响应快如闪电、还不用交月费。这年头,谁还愿意把私密数据喂给云端?Ollama、vLLM这些工具,让16G内存的笔记本也能轻松驾驭7B级别的模型。自己当AI的主人,不香吗?😎
神操作一:Ollama + Python,三行代码开聊
Ollama是本地部署的“瑞士军刀”,安装简单到哭。Python官方库直接调用,连HTTP请求都省了。
import ollama
response = ollama.chat(model='qwen3:4b', messages=[
{'role': 'user', 'content': '你好啊!'}
])
print(response['message']['content'])
核心优势:自动管理模型下载和运行时,一行ollama pull qwen3:4b搞定一切。配上OpenWebUI,立刻拥有私人ChatGPT界面。
神操作二:vLLM,速度狂魔专治慢吞吞
如果你有块NVIDIA显卡,vLLM就是你的终极武器。它用PagedAttention技术,把显存利用率榨干,吞吐量比普通方案高3-5倍。
from vllm import LLM, SamplingParams
llm = LLM(model="Qwen/Qwen2.5-7B-Instruct")
sampling_params = SamplingParams(temperature=0.7, max_tokens=256)
outputs = llm.generate("解释量子纠缠", sampling_params)
for output in outputs:
print(output.outputs[0].text)
实测数据:在RTX 4090上,vLLM跑Qwen2.5-7B,每秒能生成120+个token。做批量推理或API服务,选它准没错。
神操作三:llama-cpp-python,CPU党最后的倔强
没独显?别慌!llama-cpp-python让你的老旧笔记本重获新生。它能把模型量化成4-bit,7B模型只需6GB内存就能跑。
# 安装带Metal加速的Mac版本(Windows/Linux类似)
CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python
from llama_cpp import Llama
llm = Llama(
model_path="./qwen2-7b.Q4_K_M.gguf",
n_gpu_layers=0, # CPU模式设为0
n_ctx=2048
)
output = llm("写一首关于春天的诗", max_tokens=128)
print(output["choices"][0]["text"])
关键技巧:去HuggingFace Hub下载GGUF格式的模型,认准Q4_K_M这种量化版本,体积小、速度快。
神操作四:LangChain编排,让AI自己干活
单个模型太无聊?用LangChain把它们串起来,打造自动化工作流。比如,让一个模型查资料,另一个模型写报告。
from langchain_community.llms import Ollama
from langchain_core.prompts import ChatPromptTemplate
llm = Ollama(model="qwen3:4b")
prompt = ChatPromptTemplate.from_template("用{style}风格总结:{topic}")
chain = prompt | llm
result = chain.invoke({"style": "鲁迅", "topic": "人工智能的利与弊"})
print(result)
这招特别适合做RAG(检索增强生成),把本地文档库变成AI的知识源,再也不用担心AI胡说八道了。
神操作五:Docker一键封装,开发到交付无缝衔接
写好的脚本怎么给同事用?打包成Docker镜像,一次构建,到处运行。下面是个极简的FastAPI服务化例子。
FROM python:3.11-slim
RUN pip install "vllm>=0.5.0""fastapi[all]"
COPY ./app.py /app/
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]
# app.py
from fastapi import FastAPI
from vllm import LLM, SamplingParams
app = FastAPI()
llm = LLM(model="Qwen/Qwen2.5-7B-Instruct")
@app.post("/generate")
defgenerate(prompt: str):
outputs = llm.generate(prompt, SamplingParams(max_tokens=100))
return {"text": outputs[0].outputs[0].text}
docker build -t my-llm-api . 然后 docker run -p 8000:8000 my-llm-api,一个生产级的API服务就诞生了。