
什么是 REST API?
from transformers import BertForSequenceClassification, Trainer, TrainingArguments, AutoTokenizer
# 加载
model = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)
tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
# 预处理
def preprocess(batch):
return tokenizer(batch['text'], truncation=True, padding='max_length')
dataset = dataset.map(preprocess, batched=True)
# 训练
args = TrainingArguments(output_dir='out', per_device_train_batch_size=16, epochs=3)
trainer = Trainer(model, args, train_dataset=dataset['train'], eval_dataset=dataset['test'])
trainer.train()
tokens = tokenizer.tokenize("Transformers are great for NLP tasks!")
print(tokens)
from langchain import RetrievalQA, OpenAI, FAISS
# 索引
vector_db = FAISS.from_documents(docs, OpenAIEmbeddings())
qa = RetrievalQA.from_chain_type(llm=OpenAI(), chain_type="stuff", retriever=vector_db.as_retriever())
print(qa.run("What is RAG?"))
问题 | 答题要点 |
---|---|
为什么要用预训练模型? | 节省标注,提高泛化;覆盖多任务 |
GPT与BERT的核心区别? | 自回归 vs 双向编码;生成 vs 理解 |
如何应对数据不平衡? | 过/欠采样、class weight、Focal Loss |
Transformer为什么需位置编码? | 无序列机制需显式引入顺序信息 |
评价分类模型性能哪些指标? | Accuracy、F1、AUC,并结合混淆矩阵 |
通过本文,初级工程师能全面梳理NLP面试核心考点,从预训练模型原理到文本处理基础,再到实战项目与面试真题,为拿下NLP岗Offer做好万全准备。祝你面试顺利!