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>

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

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

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

相关推荐
努力努力再努力FFF4 分钟前
医生对AI辅助诊断感兴趣,作为临床人员该怎么了解和学习?
人工智能·学习
AI医影跨模态组学17 分钟前
如何将纵向MRI深度学习特征与局部晚期直肠癌新辅助放化疗后的免疫微环境建立关联,并解释其对pCR及预后的机制
人工智能·深度学习·论文·医学·医学影像·影像组学
Empty-Filled18 分钟前
AI生成测试用例功能怎么测:一个完整实战案例
网络·人工智能·测试用例
eastyuxiao18 分钟前
设计一个基于 OpenClaw 的 AI 智能体来辅助交易
人工智能
波动几何1 小时前
因果动力学架构技能cda
人工智能
Lucas_coding1 小时前
【Claude Code Router】 Claude Code 兼容 OpenAI 格式 API, Claude code 接入本地部署模型
人工智能·python
jinanwuhuaguo1 小时前
(第二十七篇)OpenClaw四月的演化风暴:OpenClaw 2026年4月全版本更新的文明级解读
大数据·人工智能·架构·kotlin·openclaw
测试员周周1 小时前
【AI测试系统】第5篇:从 Archon 看 AI 工程化落地:为什么"确定性编排+AI 弹性智能"是终局?
人工智能·python·测试
RxGc1 小时前
微软AI Agent框架深度测评:Microsoft Agent Framework 1.0 vs OpenClaw/Claude企业级能力对比
人工智能·agent
随便写写1 小时前
第四章 智能体经典范式构建
人工智能