Hello-Agents task2 大语言模型基础

参考链接:hello-agents/docs/chapter3 at main · datawhalechina/hello-agents

N-gram模型(马尔科夫假设)---词出现的概念与前面有关的n-1个词有关。

局限性:数据稀疏性---没出现就没关系吗? 泛化能力---坤哥和太美啥关系?

词向量化:一个语义空间,每个点就是一个词,这个点就是向量,该向量称为词向量(词嵌入)语义相关的词在空间上也挨着近。下个词出现的概率与前n-1个词向量有关。

局限性:上下问能力受限,受限于前n-1个词向量

RNN:通过记录隐藏状态向量,拥有短暂的记忆。

局限性:长时间向后传播时,就会梯度爆炸或消失。

LSTM:引入细胞状态和一些门控制机制,来顺畅传递信息与决定哪些输入或输出。

局限性:按顺序进行处理。

Transformer

编码器:理解句子,生成向量

解码器:参考前文生成句子,并咨询编码器理解句子

自注意力:提出权重的概念,QKV,在整个序列中动态聚合相关信息。前馈网络的作用从这些聚合后的信息中提取更高阶的特征

Decode-Only

GPT的核心,预测下一个最有可能出现的词。自回归的工作模式。掩码注意力确保不会先看后面的词。

优势:简单易用可扩展,适合生成式任务。

提示工程

可以通过零样本,单/少量样本让模型进行输出。(自学习,给一个例子自己扩展,多个几个例子自己举一反三)

指令调优也是一种微调的手段,目前是引导,规范,约束模型生成正常目标的方法,可以提示(nice to meet your,下一句你要按套路回答);cosplay,cot(一步一步来)

分词器相关操作查看代码就可以,很详细。这里贴出自己的代码

改动点:1.下载改为https://hf-mirror.com/ 2.模型改为qwen3:0.6b

修改下载链接和生效参考

https://zhuanlan.zhihu.com/p/1940410590507037577

完整代码

python 复制代码
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

# 指定模型ID
model_id = "Qwen/Qwen3-0.6B"

# 设置设备,优先使用GPU
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Using device: {device}")


# 加载分词器
tokenizer = AutoTokenizer.from_pretrained(model_id)

# 加载模型,并将其移动到指定设备
model = AutoModelForCausalLM.from_pretrained(model_id).to(device)

print("模型和分词器加载完成!")

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "冰雪大世界在哪个城市"}
]

# 使用分词器的模板格式化输入
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

# 编码输入文本
model_inputs = tokenizer([text], return_tensors="pt").to(device)

print("编码后的输入文本:")
print(model_inputs)

# 使用模型生成回答
# max_new_tokens 控制了模型最多能生成多少个新的Token
generated_ids = model.generate(
    model_inputs.input_ids,
    max_new_tokens=512
)

# 将生成的 Token ID 截取掉输入部分
# 这样我们只解码模型新生成的部分
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]

# 解码生成的 Token ID
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

print("\n模型的回答:")
print(response)

输出

bash 复制代码
Using device: cuda
模型和分词器加载完成!
编码后的输入文本:
{'input_ids': tensor([[151644,   8948,    198,   2610,    525,    264,  10950,  17847,     13,
         151645,    198, 151644,    872,    198, 106957,  26288,  99489,  18493,
         104673,  99490, 151645,    198, 151644,  77091,    198]],
       device='cuda:0'), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
         1]], device='cuda:0')}
The attention mask is not set and cannot be inferred from input because pad token is same as eos token. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.

模型的回答:
<think>
好的,用户问的是"冰雪大世界在哪个城市"。首先,我需要确定用户指的是哪个著名的冰雪大世界。在中国,最著名的冰雪大世界应该是在哈尔滨。不过,用户可能没有明确说出,所以需要确认是否还有其他可能。

接下来,我应该考虑用户可能的背景。可能是游客、学生,或者对冰雪运动感兴趣的人。用户可能想知道具体的地点,或者有其他问题需要解答。需要确保回答准确,并且提供足够的信息帮助用户解决问题。

此外,用户可能没有意识到冰雪大世界的存在,所以需要明确指出哈尔滨是正确的答案。同时,可以补充其他可能的地点,但保持回答简洁。要避免提供错误的信息,确保用户得到正确的答案。
</think>

中国的著名冰雪大世界位于**哈尔滨市**。

最后说下模型的选择,一般是基于:成本,安全与隐私,能力,生态链,微调等这些考虑选择。

同时幻觉是模型自带的属性,模型一直都会自己以为自己行的。解决的话可以从数据层,推理层,模型架构方向考虑改进。

相关推荐
EkihzniY1 小时前
AI+OCR:解锁数字化新视界
人工智能·ocr
东哥说-MES|从入门到精通2 小时前
GenAI-生成式人工智能在工业制造中的应用
大数据·人工智能·智能制造·数字化·数字化转型·mes
铅笔侠_小龙虾2 小时前
深度学习理论推导--梯度下降法
人工智能·深度学习
kaikaile19952 小时前
基于遗传算法的车辆路径问题(VRP)解决方案MATLAB实现
开发语言·人工智能·matlab
lpfasd1233 小时前
第1章_LangGraph的背景与设计哲学
人工智能
Aevget3 小时前
界面组件Kendo UI for React 2025 Q3亮点 - AI功能全面提升
人工智能·react.js·ui·界面控件·kendo ui·ui开发
桜吹雪3 小时前
LangChain.js/DeepAgents可观测性
javascript·人工智能
&&Citrus3 小时前
【杂谈】SNNU公共计算平台:深度学习服务器配置与远程开发指北
服务器·人工智能·vscode·深度学习·snnu
乌恩大侠3 小时前
Spark 机器上修改缓冲区大小
人工智能·usrp
STLearner3 小时前
AI论文速读 | U-Cast:学习高维时间序列预测的层次结构
大数据·论文阅读·人工智能·深度学习·学习·机器学习·数据挖掘