大模型原理简介与 ChatGLM3、Llama3.1 本地部署指南
人工智能三大流派及大模型定义,详细阐述了 ChatGLM3-6B 和 Llama3.1 的本地环境搭建、依赖安装及推理代码实现。涵盖从基础理论到实际部署的全流程,帮助开发者快速上手大模型应用开发。

人工智能三大流派及大模型定义,详细阐述了 ChatGLM3-6B 和 Llama3.1 的本地环境搭建、依赖安装及推理代码实现。涵盖从基础理论到实际部署的全流程,帮助开发者快速上手大模型应用开发。

从 1950 年图灵提出'图灵测试'以来,人类对人工智能的探索从未停止。人工智能的发展主要经历了三个学派:
符号主义强调逻辑推理和形式化方法,通过逻辑规则和算法解决问题。擅长解决可明确定义的问题,如最短路径规划、下棋、定理证明。 弊端:
行为主义强调可观察的行为而非内部状态。智能行为在与环境交互中展现,借鉴控制论原理,用于移动机器人、自动驾驶。 弊端:
连接主义模仿人脑机制,特别是神经网络结构。强调信息分布式存储和处理,通过学习和适应改进性能,应用于图像识别、语音识别、自然语言处理。 弊端:
大模型定义: 属于连接主义学派下的自然语言分支,受神经元启发,模拟人类学习方式,通过经验学习产生智能行为。参数规模巨大(如 6B 代表 60 亿参数),是衡量模型能力的重要指标。
ChatGLM3 是智谱 AI 和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6B 在保留对话流畅、部署门槛低特性的基础上,引入了更强大的基础模型和完整的功能支持。
建议配置如下:
安装 Anaconda
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.0.0-Linux-x86_64.sh
bash Anaconda3-5.0.0-Linux-x86_64.sh
source ~/.bashrc
创建虚拟环境
conda create -n chatglm3 python=3.11
conda activate chatglm3
安装项目依赖 从 GitHub 克隆代码并安装依赖:
git clone https://github.com/THUDM/ChatGLM3.git
cd ChatGLM3
pip install -r requirements.txt
进入 basic_demo 目录,修改 cli_demo.py 中的模型路径指向本地下载的模型文件。以下是完整的推理脚本示例:
import torch
from transformers import AutoTokenizer, AutoModel
model_name_or_path = "./chatglm3-6b" # 替换为实际路径
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True)
model = AutoModel.from_pretrained(model_name_or_path, device_map="auto", trust_remote_code=True).half()
messages = [
{"role": "user", "content": "你好,请介绍一下你自己。"}
]
response, history = model.chat(tokenizer, messages=messages, history=None)
print(response)
执行测试后,若输出正常回复,则部署成功。
Llama 3.1 由 Meta 发布,包含 8B、70B 和 405B 三种尺寸。其中 8B 版本适合个人开发者本地部署,原生支持 8 种语言,上下文窗口达 128k。
配置与 ChatGLM3 类似,建议使用 Python 3.12 以获得更好的兼容性。
从 Hugging Face 或 ModelScope 下载模型权重。需确保有访问权限(部分模型需申请)。
创建一个独立的 Python 脚本 llamachat.py 进行测试:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "meta-llama/Meta-Llama-3.1-8B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.float16,
device_map="auto",
use_cache=True
)
prompt = "Write a poem about artificial intelligence."
messages = [{"role": "user", "content": prompt}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
为了便于集成,可以使用 vllm 或 llama-cpp-python 将模型封装为 OpenAI 兼容接口。以下是一个简单的 FastAPI 服务示例:
from fastapi import FastAPI
from pydantic import BaseModel
import uvicorn
app = FastAPI()
class ChatRequest(BaseModel):
message: str
@app.post("/chat")
async def chat(req: ChatRequest):
# 此处调用上述加载的 model 进行推理
return {"reply": "Inference result here..."}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
本文详细介绍了人工智能三大流派及大模型的基本原理,并提供了 ChatGLM3-6B 和 Llama3.1-8B 的本地部署全流程指南。涵盖了环境搭建、依赖安装、代码编写及 API 封装等关键步骤。后续章节将深入探讨大模型的微调技术与行业应用开发。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online