AutoModelForCausalLMAutoTokenizerHugging Face Transformers 库 里的工具,专门用来 加载大语言模型(LLM)并进行推理


1. AutoTokenizer —— 负责把文本转换成模型能理解的格式

你输入的文本是 “你好,介绍一下你自己。”,但 LLaMA 或 Mistral 这种大模型 不能直接理解汉字或字母,它们只懂数字(token)。

AutoTokenizer 的作用

  • 把人能读的文字 → 转换成 LLM 能理解的数字(token)
  • 再把 LLM 生成的数字 → 转换回人能读的文字

例子

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B-Instruct")

text = "你好,介绍一下你自己。"
tokens = tokenizer(text, return_tensors="pt")

print(tokens)  # 看看转换后的 token

可能输出:

{'input_ids': tensor([[1, 456, 789, 300, 1200, 2]]), 'attention_mask': tensor([[1, 1, 1, 1, 1, 1]])}

👉 你能看到 每个汉字和标点都变成了一个 ID(数字),这是模型能理解的格式。


2. AutoModelForCausalLM —— 负责加载和运行大语言模型

AutoModelForCausalLM 代表 “自动加载一个因果语言模型”,它就是 LLaMA、Mistral、GPT-3 这类模型的载体

AutoModelForCausalLM 的作用

  • 加载预训练好的 LLM(比如 LLaMA-3-8B、Mistral-7B)
  • 根据输入文本,生成新的文本(进行对话、回答问题等)

例子

from transformers import AutoModelForCausalLM, AutoTokenizer

# 加载 LLaMA 3 预训练模型
model_name = "meta-llama/Meta-Llama-3-8B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# 让模型回答问题
text = "你好,介绍一下你自己。"
inputs = tokenizer(text, return_tensors="pt")  # 把文本变成 tokens
outputs = model.generate(**inputs, max_length=100)  # 让模型生成回答

# 把生成的 tokens 转换回文本
response = tokenizer.decode(outputs[0], skip_special_tokens=True)

print(response)  # 输出模型的回答

3. 总结

工具 作用(说人话)
AutoTokenizer 把人类语言转换成模型理解的 token,并在模型生成后再转回文本
AutoModelForCausalLM 加载 LLaMA/Mistral 等大模型,生成文本回答

如果你把整个过程比作 给机器人读一本书

  1. AutoTokenizer 像是翻译官,把书(文本)翻译成 模型能读的格式(token)。
  2. AutoModelForCausalLM 像是机器人,看懂了书的内容,然后给你回答。
  3. AutoTokenizer 再把机器人的回答翻译回来,变成人能读的文字。

更多推荐