ToolkitX
知识库工具箱

大语言模型

LLM 原理、Prompt 工程、微调入门

25min·进阶

01. 大语言模型原理

大语言模型(LLM)是基于 Transformer 架构的大规模预训练语言模型。 核心概念: - Transformer 架构:自注意力机制 - 预训练:在大规模语料上学习语言模式 - 微调(Fine-tuning):适应特定任务 - 提示工程(Prompt Engineering):引导模型输出 代表模型: - GPT 系列:自回归生成 - BERT 系列:双向编码 - LLaMA:开源大模型 - ChatGLM:中文优化
python
# Transformer 自注意力机制简化实现
import torch
import torch.nn as nn

class SelfAttention(nn.Module):
def __init__(self, embed_size, heads):
    super(SelfAttention, self).__init__()
    self.embed_size = embed_size
    self.heads = heads
    self.head_dim = embed_size // heads

    self.values = nn.Linear(self.head_dim, self.head_dim, bias=False)
    self.keys = nn.Linear(self.head_dim, self.head_dim, bias=False)
    self.queries = nn.Linear(self.head_dim, self.head_dim, bias=False)
    self.fc_out = nn.Linear(heads * self.head_dim, embed_size)

def forward(self, values, keys, queries, mask):
    N = queries.shape[0]
    value_len, key_len, query_len = values.shape[1], keys.shape[1], queries.shape[1]

    # 分头
    values = values.reshape(N, value_len, self.heads, self.head_dim)
    keys = keys.reshape(N, key_len, self.heads, self.head_dim)
    queries = queries.reshape(N, query_len, self.heads, self.head_dim)

    # 注意力分数
    energy = torch.einsum("nqhd,nkhd->nhqk", [queries, keys])
    attention = torch.softmax(energy / (self.embed_size ** (1/2)), dim=3)

    # 加权求和
    out = torch.einsum("nhqk,nvhd->nqhd", [attention, values]).reshape(
        N, query_len, self.heads * self.head_dim
    )

      return self.fc_out(out)

02. Prompt Engineering

提示工程是设计有效提示(Prompt)以引导 LLM 生成期望输出的技术。 提示技巧: - 角色设定:让模型扮演特定角色 - 少样本学习:提供示例 - 思维链:引导模型逐步推理 - 结构化输出:指定输出格式
text
# Prompt 示例

# 1. 角色设定
prompt1 = """
你是一位资深的 Python 开发专家。请解释以下代码的功能:

def fibonacci(n):
if n <= 1:
    return n
return fibonacci(n-1) + fibonacci(n-2)
"""

# 2. 少样本学习
prompt2 = """
将以下中文翻译成英文:

中文:我喜欢编程
英文:I like programming

中文:今天天气很好
英文:The weather is nice today

中文:机器学习很有趣
英文:
"""

# 3. 思维链
prompt3 = """
请一步步分析以下问题:

问题:一个水池有两个进水管,A管单独注满需要6小时,B管单独注满需要4小时。
两管同时打开,多久能注满水池?

请按以下步骤分析:
1. 确定A管的注水速率
2. 确定B管的注水速率
3. 计算同时注水的总速率
4. 计算注满时间
"""

03. LLM 应用开发

LLM 应用开发的核心是将大模型集成到实际应用中。 主要技术栈: - API 调用:OpenAI API、Claude API - 本地部署:Ollama、vLLM - 应用框架:LangChain、LlamaIndex - 向量数据库:ChromaDB、Milvus
python
from openai import OpenAI

client = OpenAI(api_key="your-api-key")

# 基本对话
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
    {"role": "system", "content": "你是一个有帮助的助手。"},
    {"role": "user", "content": "什么是机器学习?"}
],
temperature=0.7,
max_tokens=500
)

print(response.choices[0].message.content)

# 流式响应
stream = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "写一首关于编程的诗"}],
stream=True
)

for chunk in stream:
if chunk.choices[0].delta.content:
      print(chunk.choices[0].delta.content, end="")

知识测验

1/5正确 0

Transformer 架构的核心机制是什么?

下一节

AI Agent

下一节