AI入门学习

目录

资料:

一.统一前置安装

1.进入虚拟环境

2.安装torch和transformers

[2.1:NVIDIA GPU,先装 CUDA 版 torch:](#2.1:NVIDIA GPU,先装 CUDA 版 torch:)

[2.2:安装:transformers:HuggingFace 官方库](#2.2:安装:transformers:HuggingFace 官方库)

二.名词解释:

[三.Hugging Face 注册 + 模型下载配置](#三.Hugging Face 注册 + 模型下载配置)

1、官网注册账号

[2、生成 Access Token](#2、生成 Access Token)

[3.点击 New token 新建令牌:](#3.点击 New token 新建令牌:)

[4.复制生成的 Token(一长串字符,类似 hf_xxxxxxx),先存好,等下要用](#4.复制生成的 Token(一长串字符,类似 hf_xxxxxxx),先存好,等下要用)

四、hf本地终端登录

[1.打开你的 Anaconda Prompt,先激活你之前的虚拟环境:](#1.打开你的 Anaconda Prompt,先激活你之前的虚拟环境:)

[2.安装 Hugging Face CLI](#2.安装 Hugging Face CLI)

3.执行登录,本地登录(终端执行)命令:

[五、transformers 库:跑通最简文本生成(调用现有模型)](#五、transformers 库:跑通最简文本生成(调用现有模型))

[六、本地跑通 轻量小 LLM(Qwen-1_8B-Chat)](#六、本地跑通 轻量小 LLM(Qwen-1_8B-Chat))

[七、模型加载 / 推理 / 本地缓存保存](#七、模型加载 / 推理 / 本地缓存保存)

[1. 模型自动缓存位置](#1. 模型自动缓存位置)

[2. 手动保存模型到本地](#2. 手动保存模型到本地)

3.从本地离线加载(无网络也能用)

[八、多轮上下文 AI 对话脚本](#八、多轮上下文 AI 对话脚本)


资料:

15分钟弄懂Token和Embedding -- 详解LLM与RAG的数据处理机制

大模型来自面试的一些体会和分享

Transformers 快速上手中文

一.统一前置安装

1.进入虚拟环境

2.安装torch和transformers

2.1:NVIDIA GPU,先装 CUDA 版 torch:

复制代码
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu126

安装完验证:

复制代码
python -c "import torch; print(torch.cuda.is_available())"

安装成功显示:

2.2:安装:transformers:HuggingFace 官方库

accelerate:加速模型加载、自动适配 CPU/GPU

sentencepiece:多语言分词

复制代码
pip install transformers sentencepiece accelerate

二.名词解释:

model :负责思考、计算、生成文字(神经网络权重)

Tokenizer 分词器 :负责把中文切成模型能看懂的符号 (词典、规则)。因为模型看不懂汉字 / 英文,需要先切成小 token→转数字 ID,才能输入模型。

**token:**一个个字词的编号

词表大小(Vocab Size):一个tokenizer认识所有的token数量,最小的词表是gpt-2

转化token的过程属于数据的预处理

常见的tokenizer库有(内部算法不同,功能相同):OpenAI的tiktoken和谷歌的WordPiece

**Embedding 向量:**把文字→稠密数字向量,用来做:相似度对比、RAG 检索、语义匹配。是大语言模型的一部分。

Ps:向量的每个数字的意思不是人工定义的

tokenizer:文字转化成token

Embedding:token转化成向量

LLM的Embedding与RAG的Embedding:

LLM模型和RAG模型:

  • LLM模型:大语言模型,类似词语接龙
  • RAG:检索增强生成,类似算命的

区别:

1.知识来源

LLM:靠训练背诵 RAG:实时检索外部资料

2.时效性

LLM:陈旧固定 RAG:随时更新

3.准确率

LLM:易幻觉 RAG:有据可依、更准

4.适用场景

LLM:通用对话、创作、简单推理 RAG:知识库问答、企业资料、最新资讯

总结:LLM 是 会说话的大脑,RAG 是给大脑配一本实时查阅的参考书。

三.Hugging Face 注册 + 模型下载配置

1、官网注册账号

浏览器,访问:

复制代码
https://huggingface.co/join

2、生成 Access Token

1.登录 Hugging Face 后,点击右上角你的头像 → 选择 Settings(设置)

2.在左侧菜单找到 Access Tokens(访问令牌),点进去

3.点击 New token 新建令牌:

  • 给令牌起个名字(比如 first-token
  • 权限选择:Read(只读)
  • 点击 Generate token 生成

4.复制生成的 Token(一长串字符,类似 hf_xxxxxxx),先存好,等下要用

四、hf本地终端登录

1.打开你的 Anaconda Prompt,先激活你之前的虚拟环境:

2.安装 Hugging Face CLI

复制代码
pip install huggingface_hub

检查:

复制代码
hf --version

3.执行登录,本地登录(终端执行)命令:

复制代码
hf auth login

如果登录过了,显示:

五、transformers 库:跑通最简文本生成(调用现有模型)

调用推理模型distilgpt2:

python 复制代码
from transformers import pipeline

#文本生成
generator =pipeline(
    task="text-generation",
    model="distilgpt2",
    device=-1
)

# 简单推理
res=generator(
    "人工智能未来发展是",
    max_length=50,
    do_sample=True
)
print(res[0]["generated_text"])

pipeline:HF 一键调用各类 AI 能力(文本生成、翻译、摘要), 官方通用接口(所有模型都能用)

device=-1:纯 CPU 运行

分析效果差的原因:

1.模型本身的局限性:

  • distilgpt2 是 GPT-2 的轻量版,参数量只有 1.2 亿,是个非常基础的英文模型
  • 没有经过中文训练,对中文理解和生成能力极差,只能随机拼字,所以会出现乱码、重复的 "菌菌菌";
  • 它本身也不是为 "高质量续写" 设计的,哪怕是英文任务,也很容易生成无意义文本。

2.代码里的参数冲突 & 过时写法

  • max_length=50 和默认的 max_new_tokens=256 冲突,max_new_tokens 会覆盖 max_length,但设置混乱会影响生成稳定性;
  • generation_config 和 do_sample/max_length 混用,属于过时写法,新版本不推荐;
  • 没有设置中文专用的参数,比如 pad_token_id,导致 tokenizer 处理中文时容易出问题。

3.采样参数没调好,生成太 "随机"

  • do_sample=True 开启了随机采样,但你没控制 temperaturetop_ktop_p,默认参数对弱模型来说太 "放飞",容易生成无意义的重复字符;
  • 弱模型需要更 "保守" 的采样策略,才能减少乱码和重复。

4.环境和 tokenizer 的适配问题

环境和 tokenizer 的适配问题 GPT2 的 tokenizer 对中文支持很差,会把中文拆成零散的 token,模型很难学到连贯的中文语法,自然生成不出通顺的句子。

六、本地跑通 轻量小 LLM(Qwen-1_8B-Chat)

python 复制代码
from transformers import AutoTokenizer,AutoModelForCausalLM,pipeline
model_name="Qwen/Qwen1.5-1.8B-Chat"

# 加载分词器+模型
# from_pretrained:从 HF 下载 / 加载本地模型
tokenizer=AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name).to("cpu")
# 构建文本生成pipeline
generator=pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    device=-1
)

#对话调用
prompt="简单介绍一下什么是猫"

response=generator(
    prompt,
    max_new_tokens=300,# 最大生成新token长度
    temperature=0.7,# 随机性:越低回答越严谨,越高越有创意
    top_p=0.9, # 核采样,控制生成多样性
    do_sample=True# 随机采样模式
)
print("ai回答:",response[0]["generated_text"])

成功运行 Qwen 小模型、本地输出问答结果。

解释:

1.为什么会把 "猫" 变成 "猫科动物"?

Qwen1.5-1.8B-Chat 模型的正常 "语义扩展",模型理解的是 "介绍猫",但它的训练数据里 "猫" 和 "猫科动物" 是高度相关的概念,所以在生成时自动把话题扩展成了更宽泛的 "猫科动物"

2.pipeline("text-generation") 是做「文本续写」的,它的逻辑是:你给一段开头(prompt),模型在后面接着写下去。

3.do_sample

  • do_sample=True启用随机采样,模型会根据词的概率分布随机选择下一个词,生成结果更流畅、多样、自然,但每次运行结果不同。
  • do_sample=False禁用采样,使用贪心搜索,每次都选概率最大的词,生成结果固定、重复、不自然。

七、模型加载 / 推理 / 本地缓存保存

1. 模型自动缓存位置

下载一次后,下次不用重复下:

2. 手动保存模型到本地

python 复制代码
# 保存到本地文件夹
# 保存模型:1.权重文件(.bin / .safetensors)2.模型配置
model.save_pretrained("./qwen-local-model")
# 保存分词器:1.词汇表2.分词规则3.特殊符号配置
tokenizer.save_pretrained("./qwen-local-model")

3.从本地离线加载(无网络也能用)

python 复制代码
model = AutoModelForCausalLM.from_pretrained("./qwen-local-model", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("./qwen-local-model", trust_remote_code=True)

八、多轮上下文 AI 对话脚本

python 复制代码
from text_G import generator
from transformers import AutoTokenizer,AutoModelForCausalLM,pipeline
# 模型
model_name="Qwen/Qwen1.5-1.8B-Chat"
# 加载分词器+模型
tokenizer=AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name).to("cpu")

# 构建pipeline
generator=pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    device=-1,
    temperature=0.7,
    top_p=0.9,
    do_sample=True
)
# 多轮对话
history = []
print("输入exit退出对话")
while True:
    user_input=input("用户:")
    if user_input=="exit":
        break
    # 把历史对话+当前问题 拼在一起
    prompt = "\n".join(history) + "\n" + user_input
    # 生成回答
    output=generator(prompt)[0]["generated_text"]
    # 输出完整内容
    print("ai回答:",output.strip())
    # 更新历史
    history.append(user_input)
    # 只存新生成的回答
    history.append(output[len(prompt):])

实现连续多轮聊天

相关推荐
晶台光耦2 小时前
领时代·智未来 | 晶台光耦亮相2026北京车展
人工智能·光耦·光耦应用
深海鱼在掘金2 小时前
深入浅出 LangChain —— 第十二章:实战二 - 代码助手 Agent
人工智能·langchain·agent
2zcode2 小时前
原创文档:基于MATLAB深度学习与传统机器学习的脑肿瘤MRI图像分类系统
深度学习·机器学习·分类
这张生成的图像能检测吗2 小时前
(论文速读)基于多模态融合学习的航空发动机叶片损伤检测与测量
人工智能·深度学习·神经网络·计算机视觉·三维测量
深海鱼在掘金2 小时前
深入浅出 LangChain —— 第十三章:实战三 - 企业知识库问答
人工智能·langchain·agent
nervermore9903 小时前
4. 人工智能学习-预训练模型
人工智能
互联网推荐官3 小时前
上海物联网应用开发公司推荐:五家真实工程能力横向比较
人工智能·软件工程
IT_陈寒3 小时前
Java的HashMap竟然不是线程安全的?刚在生产环境踩了坑
前端·人工智能·后端
战族狼魂3 小时前
五一期间AI最新资讯概览
人工智能