完整教程:01_5分钟运行你的第一个LLM:Hugging Face入门

news/2025/9/26 9:22:54/文章来源:https://www.cnblogs.com/yfceshi/p/19112518

引言:LLM时代的快速入场券

在2025年的今天,大语言模型(LLM)已经从实验室走向了各行各业,成为开发者工具箱中不可或缺的一部分。然而,对于许多初学者来说,如何快速上手LLM仍然是一个挑战。Hugging Face作为NLP领域的领军平台,通过其Transformers库提供了一条零门槛的LLM应用路径。本文将带你在5分钟内完成从环境配置到模型运行的全过程,让你体验LLM的强大功能,为后续深入学习打下基础。

Hugging Face成立于2016年,最初以开发聊天机器人而闻名。经过近十年的发展,它已经成为NLP领域最重要的平台之一,拥有庞大的模型库和活跃的社区。截至2025年,Hugging Face模型库中已经收录了超过500,000个预训练模型,覆盖了从文本处理到计算机视觉、音频、多模态等多个领域的任务。

在本文中,我们将学习:

  • 如何安装和配置Hugging Face环境
  • 如何使用pipeline快速调用预训练模型
  • 如何加载和使用不同类型的模型
  • 如何进行简单的文本生成和分析
  • 如何优化模型运行性能

第1章:环境准备:5分钟安装配置

1.1 Python环境要求

在开始之前,我们需要确保你的系统中已经安装了Python。Hugging Face Transformers库要求Python 3.8或更高版本。在2025年,大多数系统已经预装了Python 3.10或更高版本,但我们仍然需要验证:

# 检查Python版本
import sys
print(f"Python版本: {sys.version
}")

如果你的Python版本低于3.8,建议升级到最新版本。你可以从Python官方网站下载最新版本的Python。

1.2 安装Hugging Face库

安装Hugging Face的核心库是使用其模型的第一步。我们需要安装以下几个关键库:

# 安装核心库
pip install transformers datasets
# 安装可选依赖,提供更好的性能和更多功能
pip install accelerate bitsandbytes sentencepiece

截至2025年,这些库的最新版本已经针对各种硬件进行了优化,包括支持最新的GPU架构和量化技术。特别是accelerate库,它提供了跨设备的模型并行能力,大大提升了大模型在消费级硬件上的运行效率。

1.3 验证安装

安装完成后,我们可以通过导入库并检查版本来验证安装是否成功:

import transformers
datasets
print(f"Transformers版本: {transformers.__version__
}")
print(f"Datasets版本: {datasets.__version__
}")

如果输出显示版本号而没有错误,则说明安装成功。在2025年,Transformers库的最新版本通常是5.x系列,相比早期版本,它提供了更丰富的API和更好的性能。

第2章:Pipeline入门:一行代码调用模型

2.1 什么是Pipeline?

Pipeline是Hugging Face提供的最高级别的API,它封装了模型加载、输入处理、推理和输出后处理的整个流程。使用Pipeline,你只需要一行代码就可以完成复杂的NLP任务。

Pipeline支持多种任务类型,包括但不限于:

2.2 第一个Pipeline示例:情感分析

让我们从最简单的情感分析任务开始。情感分析可以判断一段文本的情感倾向(积极或消极):

from transformers import pipeline
# 创建情感分析pipeline
classifier = pipeline("sentiment-analysis")
# 测试示例
result = classifier("I love using Hugging Face Transformers! It's amazing.")
print(result)

运行这段代码,你会看到类似以下的输出:

[{'label': 'POSITIVE', 'score': 0.999876446723938}]

这表示模型分析出文本是积极的,置信度高达99.99%。在2025年,Hugging Face的默认情感分析模型已经能够处理多语言输入,并且对各种复杂情感有更精确的识别能力。

2.3 批量处理文本

Pipeline还支持批量处理多个文本,这对于处理大量数据非常有用:

results = classifier([
"I love using Hugging Face Transformers!",
"The weather is terrible today.",
"The movie was fantastic and the actors were amazing."
])
for i, result in enumerate(results):
print(f"文本 {i+1
}: 标签={result['label']
}, 置信度={result['score']:.4f
}")

2.4 自定义模型

默认情况下,Pipeline会使用Hugging Face推荐的模型,但你也可以指定使用特定的模型:

# 使用特定的中文情感分析模型
chinese_classifier = pipeline("sentiment-analysis", model="uer/roberta-base-finetuned-jd-binary-chinese")
result = chinese_classifier("这个产品非常好用,我很满意!")
print(result)

第3章:文本生成:创建你的第一个LLM应用

3.1 文本生成Pipeline

文本生成是LLM最常用的功能之一。Hugging Face提供了专门的文本生成Pipeline:

# 创建文本生成pipeline
generator = pipeline("text-generation")
# 生成文本
prompt = "Write a short poem about artificial intelligence."
outputs = generator(prompt, max_length=100, num_return_sequences=1)
print(outputs[0]['generated_text'])

在2025年,Hugging Face的默认文本生成模型已经是GPT系列的最新变体,能够生成高质量、连贯的文本。

3.2 控制生成参数

你可以通过多种参数控制文本生成的行为:

outputs = generator(
prompt,
max_length=100, # 生成文本的最大长度
num_return_sequences=2, # 返回多个生成结果
do_sample=True, # 使用采样而非贪婪解码
temperature=0.7, # 控制随机性,值越高越随机
top_k=50, # 只考虑概率最高的k个词
top_p=0.95 # 只考虑累积概率达到p的词
)
for i, output in enumerate(outputs):
print(f"\n生成结果 {i+1
}:\n{output['generated_text']
}")

这些参数的组合可以产生不同风格和质量的文本。在实际应用中,你可能需要根据具体需求调整这些参数。

3.3 使用大语言模型

对于更复杂的任务,你可以使用专门的大语言模型。在2025年,有许多高效的开源LLM可供选择,如Llama系列、Mistral、Gemma等:

# 使用Gemma 2模型(2025年流行的轻量级模型)
gemma_generator = pipeline(
"text-generation",
model="google/gemma-2-2b-it",
device_map="auto", # 自动分配设备
torch_dtype="auto" # 自动选择数据类型
)
response = gemma_generator(
"Explain quantum computing in simple terms for beginners.",
max_length=200,
temperature=0.3
)
print(response[0]['generated_text'])

第4章:Tokenizer详解:文本的数字化转换

4.1 什么是Tokenizer?

在使用LLM之前,我们需要将文本转换为模型可以理解的数字形式。这个过程由Tokenizer(分词器)完成。Tokenizer的主要职责包括:

  1. 将文本分割成标记(tokens)
  2. 将标记映射到唯一的整数ID
  3. 添加模型需要的特殊标记(如[CLS]、[SEP]等)
  4. 处理注意力掩码等辅助信息

4.2 使用AutoTokenizer

Hugging Face提供了AutoTokenizer类,可以根据模型名称自动加载对应的分词器:

from transformers import AutoTokenizer
# 加载分词器
checkpoint = "distilbert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
# 分词示例
text = "Hello, Hugging Face Transformers!"
tokens = tokenizer.tokenize(text)
print(f"标记化结果: {tokens
}")
# 转换为输入ID
input_ids = tokenizer.convert_tokens_to_ids(tokens)
print(f"输入ID: {input_ids
}")
# 直接处理成模型输入格式
inputs = tokenizer(
text,
padding=True, # 填充到相同长度
truncation=True, # 截断过长文本
return_tensors="pt" # 返回PyTorch张量
)
print(f"模型输入: {inputs
}")

4.3 理解特殊标记

大多数模型都使用特殊标记来表示句子的开始、结束、填充等。你可以通过以下方式查看和理解这些标记:

# 查看分词器的词汇表大小
vocab_size = tokenizer.vocab_size
print(f"词汇表大小: {vocab_size
}")
# 查看特殊标记
print(f"起始标记: {tokenizer.cls_token
}")
print(f"分隔标记: {tokenizer.sep_token
}")
print(f"填充标记: {tokenizer.pad_token
}")
print(f"掩码标记: {tokenizer.mask_token
}")
# 特殊标记的ID
print(f"起始标记ID: {tokenizer.cls_token_id
}")
print(f"填充标记ID: {tokenizer.pad_token_id
}")

在2025年,分词技术已经非常成熟,不同的模型可能使用不同的分词策略,如BPE(Byte Pair Encoding)、WordPiece、SentencePiece等。选择合适的分词器对于模型性能至关重要。

第5章:模型加载与使用:底层API详解

5.1 加载预训练模型

除了使用Pipeline,你也可以直接加载模型进行更灵活的使用:

from transformers import AutoModelForSequenceClassification
# 加载模型
model = AutoModelForSequenceClassification.from_pretrained(checkpoint)
# 查看模型结构
print(model)
# 使用模型进行推理
import torch
with torch.no_grad():
outputs = model(**inputs)
predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)
print(f"预测结果: {predictions
}")

5.2 不同类型的模型

Hugging Face提供了各种类型的模型,适用于不同的任务:

  • AutoModel: 基础模型,返回隐藏状态
  • AutoModelForSequenceClassification: 用于文本分类
  • AutoModelForTokenClassification: 用于命名实体识别
  • AutoModelForQuestionAnswering: 用于问答任务
  • AutoModelForSeq2SeqLM: 用于翻译、摘要等序列到序列任务
  • AutoModelForCausalLM: 用于文本生成

让我们看一个使用Seq2Seq模型进行翻译的例子:

from transformers import AutoModelForSeq2SeqLM
# 加载翻译模型
translation_model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-zh-en")
translation_tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-zh-en")
# 中文到英文的翻译
chinese_text = "Hugging Face是一个非常强大的自然语言处理平台。"
translation_inputs = translation_tokenizer(
chinese_text,
return_tensors="pt",
max_length=512,
truncation=True
)
with torch.no_grad():
translation_outputs = translation_model.generate(
**translation_inputs,
max_length=100,
num_beams=4,
early_stopping=True
)
translated_text = translation_tokenizer.decode(
translation_outputs[0],
skip_special_tokens=True
)
print(f"英文翻译: {translated_text
}")

5.3 模型保存与加载

你可以将训练后的模型保存到本地,以便后续使用:

# 保存模型和分词器
model.save_pretrained("./saved_model")
tokenizer.save_pretrained("./saved_model")
# 加载保存的模型和分词器
loaded_model = AutoModelForSequenceClassification.from_pretrained("./saved_model")
loaded_tokenizer = AutoTokenizer.from_pretrained("./saved_model")

第6章:性能优化:在有限资源下高效运行

6.1 量化技术

在2025年,量化技术已经成为在消费级硬件上运行大模型的标准方法。量化可以减少模型的内存占用,加速推理过程:

# 使用量化加载模型
from transformers import AutoModelForCausalLM, AutoTokenizer
quantized_model = AutoModelForCausalLM.from_pretrained(
"google/gemma-2-2b-it",
load_in_4bit=True, # 使用4位量化
bnb_4bit_compute_dtype=torch.float16 # 计算使用的精度
)
tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-2b-it")
# 测试量化模型
prompt = "Write a Python function to calculate factorial."
inputs = tokenizer(prompt, return_tensors="pt")
with torch.no_grad():
outputs = quantized_model.generate(
**inputs,
max_length=150,
temperature=0.3
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)

6.2 设备管理

合理分配设备资源对于模型性能至关重要。你可以使用device_map参数来控制模型在不同设备上的分配:

# 自动分配设备
model = AutoModelForCausalLM.from_pretrained(
"mistralai/Mistral-7B-v0.3",
device_map="auto", # 自动分配到可用设备
torch_dtype="auto", # 自动选择数据类型
load_in_8bit=True # 使用8位量化
)

在2025年,Hugging Face的device_map功能已经非常智能,可以自动将模型分割到多个GPU上,甚至混合使用CPU和GPU内存。

6.3 批处理优化

批处理是提高吞吐量的有效方法。你可以一次处理多个输入,充分利用GPU并行计算能力:

# 批处理示例
batch_texts = [
"What is machine learning?",
"Explain deep learning in simple terms.",
"How does a transformer model work?"
]
batch_inputs = tokenizer(
batch_texts,
padding=True,
truncation=True,
return_tensors="pt"
)
# 批量生成
with torch.no_grad():
batch_outputs = quantized_model.generate(
**batch_inputs,
max_length=100,
temperature=0.3
)
# 解码结果
for i, output in enumerate(batch_outputs):
print(f"\n回复 {i+1
}:\n{tokenizer.decode(output, skip_special_tokens=True)
}")

第7章:实际应用:构建简单的LLM应用

7.1 聊天机器人基础

让我们构建一个简单的聊天机器人,使用LLM进行对话生成:

from transformers import AutoModelForCausalLM, AutoTokenizer
# 加载对话模型
chat_model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-3-8B-Instruct",
load_in_4bit=True,
device_map="auto"
)
chat_tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3-8B-Instruct")
# 简单的聊天函数
def chat_with_llm(prompt, max_history=3):
messages = [
{
"role": "system", "content": "你是一个友好的AI助手,帮助用户回答问题。"
},
{
"role": "user", "content": prompt
}
]
# 构建对话格式
formatted_prompt = chat_tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
# 生成回复
inputs = chat_tokenizer(formatted_prompt, return_tensors="pt").to("cuda" if torch.cuda.is_available() else "cpu")
with torch.no_grad():
outputs = chat_model.generate(
**inputs,
max_new_tokens=200,
temperature=0.7,
top_p=0.9
)
response = chat_tokenizer.decode(
outputs[0][inputs.input_ids.shape[1]:],
skip_special_tokens=True
)
return response
# 测试聊天
history = []
while True:
user_input = input("用户: ")
if user_input.lower() in ["退出", "exit", "quit"]:
break
response = chat_with_llm(user_input)
history.append((user_input, response))
print(f"AI助手: {response
}")
print("-" * 50)

7.2 文本摘要生成

摘要生成是LLM的另一个强大应用。让我们使用专门的摘要模型:

from transformers import pipeline
# 创建摘要生成pipeline
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
# 长文本示例
long_text = """Hugging Face是一个在自然语言处理领域非常重要的平台。它成立于2016年,最初以开发聊天机器人而闻名。
随着时间的推移,Hugging Face逐渐成为NLP领域中最重要的平台之一,提供了大量的预训练模型和工具库。
截至2025年,Hugging Face模型库中已经收录了超过50万个预训练模型,覆盖了从文本处理到计算机视觉、
audio、多模态等多个领域的任务。Hugging Face的主要贡献在于其庞大的模型库和丰富的工具库,
这些资源极大地简化了NLP模型的开发和应用过程。通过使用Hugging Face提供的工具,
开发者和研究人员可以快速上手并应用最先进的NLP模型,而无需从零开始训练。"""
# 生成摘要
summary = summarizer(
long_text,
max_length=150,
min_length=30,
do_sample=False
)
print(f"摘要: {summary[0]['summary_text']
}")

7.3 多语言翻译应用

利用Hugging Face的多语言模型,我们可以构建一个简单的翻译应用:

from transformers import pipeline
# 创建翻译pipeline (中译英)
zh_to_en = pipeline("translation", model="Helsinki-NLP/opus-mt-zh-en")
# 创建翻译pipeline (英译中)
en_to_zh = pipeline("translation", model="Helsinki-NLP/opus-mt-en-zh")
# 中译英测试
chinese_text = "大语言模型正在改变我们与计算机的交互方式。"
english_translation = zh_to_en(chinese_text)
print(f"英文翻译: {english_translation[0]['translation_text']
}")
# 英译中测试
english_text = "Large language models are revolutionizing natural language processing."
chinese_translation = en_to_zh(english_text)
print(f"中文翻译: {chinese_translation[0]['translation_text']
}")

第8章:高级功能:探索Hugging Face生态

8.1 使用Datasets库加载数据集

Hugging Face的Datasets库提供了访问大量NLP数据集的简便方法:

from datasets import load_dataset
# 加载情感分析数据集
dataset = load_dataset("imdb")
print(f"数据集结构: {dataset
}")
print(f"训练集样本数量: {
len(dataset['train'])
}")
print(f"测试集样本数量: {
len(dataset['test'])
}")
# 查看样本
print(f"\n第一个训练样本:\n{dataset['train'][0]
}")

在2025年,Datasets库已经包含了超过10,000个数据集,涵盖了各种NLP任务和语言。

8.2 使用Hub分享模型

Hugging Face Hub允许你分享自己训练的模型和数据集:

# 登录Hugging Face (需要访问令牌)
# from huggingface_hub import login
# login(token="你的访问令牌")
# 上传模型
# model.push_to_hub("你的用户名/模型名称")
# tokenizer.push_to_hub("你的用户名/模型名称")

分享模型是社区贡献的重要方式,也便于团队协作和模型部署。

8.3 使用Accelerate进行分布式训练

Accelerate库提供了简化分布式训练的功能:

from accelerate import Accelerator
# 初始化加速器
accelerator = Accelerator()
# 准备模型和优化器
# model, optimizer, training_dataloader = accelerator.prepare(
# model, optimizer, training_dataloader
# )
# 在训练循环中使用
# for epoch in range(num_epochs):
# for batch in training_dataloader:
# outputs = model(**batch)
# loss = outputs.loss
# accelerator.backward(loss)
# optimizer.step()
# optimizer.zero_grad()

在2025年,Accelerate已经支持多种分布式训练策略,包括数据并行、模型并行和流水线并行。

第9章:最佳实践与常见问题

9.1 内存优化技巧

在运行大模型时,内存管理是一个常见挑战。以下是一些优化内存使用的技巧:

  1. 使用量化技术:如前所述,4位或8位量化可以显著减少内存占用。
  2. 使用梯度检查点:这可以在训练时减少内存使用。
  3. 动态批处理:根据输入长度动态调整批处理大小。
  4. 梯度累积:在多个小批次上累积梯度,以模拟更大的批处理大小。
# 梯度累积示例
accumulation_steps = 4
for i, batch in enumerate(dataloader):
outputs = model(**batch)
loss = outputs.loss / accumulation_steps # 缩放损失
accelerator.backward(loss)
if (i + 1) % accumulation_steps == 0:
optimizer.step()
optimizer.zero_grad()

9.2 常见错误与解决方案

在使用Hugging Face库时,可能会遇到一些常见错误:

  1. 内存不足错误 (OOM)

    • 解决方案:使用量化、减少批处理大小、使用更小的模型
  2. CUDA错误

    • 解决方案:检查GPU驱动、确保PyTorch版本与CUDA兼容
  3. 模型加载错误

    • 解决方案:确认模型名称正确、网络连接正常、Hugging Face账户有访问权限
  4. 分词器错误

    • 解决方案:确保分词器与模型匹配、正确处理特殊字符

9.3 性能监控

监控模型性能对于调优和部署至关重要:

import time
import psutil
def monitor_performance(model, inputs, iterations=10):
# 内存使用监控
process = psutil.Process()
initial_memory = process.memory_info().rss / 1024 / 1024 # 初始内存使用(MB)
# 推理时间监控
total_time = 0
for _ in range(iterations):
start_time = time.time()
with torch.no_grad():
_ = model.generate(**inputs, max_length=100)
end_time = time.time()
total_time += (end_time - start_time)
avg_time = total_time / iterations
final_memory = process.memory_info().rss / 1024 / 1024 # 最终内存使用(MB)
print(f"平均推理时间: {avg_time:.4f
}秒")
print(f"内存使用增加: {final_memory - initial_memory:.2f
} MB")
# 测试监控函数
inputs = tokenizer("Hello, how are you?", return_tensors="pt")
monitor_performance(quantized_model, inputs)

第10章:未来展望:Hugging Face生态的发展趋势

10.1 模型架构的演进

在2025年,LLM架构继续快速演进。Hugging Face平台上最流行的模型包括:

10.2 工具链的完善

Hugging Face生态系统的工具链也在不断完善:

  • Transformers库:持续优化的模型接口,支持更多模型类型和硬件平台
  • Datasets库:不断扩充的数据集集合,支持更多格式和任务
  • Accelerate库:改进的分布式训练支持,降低大规模训练门槛
  • PEFT (Parameter-Efficient Fine-Tuning):高效的参数微调技术,如LoRA、QLoRA等

10.3 社区与协作

Hugging Face的社区在2025年已经发展成为NLP领域最大的开源社区之一:

结论:开启你的LLM之旅

通过本文的学习,你已经掌握了使用Hugging Face快速上手LLM的基本方法。从环境配置到模型加载,从简单应用到性能优化,你现在拥有了在5分钟内运行LLM的能力。

Hugging Face的Transformers库为我们提供了一个强大而灵活的工具,让复杂的NLP技术变得平易近人。在2025年,随着模型性能的不断提升和工具链的持续完善,使用LLM解决实际问题变得更加简单和高效。

接下来,你可以尝试以下方向继续深入学习:

  1. 探索更多类型的模型和任务
  2. 学习提示工程,提升模型输出质量
  3. 尝试微调预训练模型以适应特定任务
  4. 构建更复杂的LLM应用系统

记住,实践是学习的最佳方式。立即动手,用5分钟运行你的第一个LLM,开启你的AI之旅吧!

附录:常用资源与参考

A.1 官方资源

A.2 常用模型推荐

  • 文本分类distilbert-base-uncased-finetuned-sst-2-english
  • 文本生成gpt2, google/gemma-2-2b-it, meta-llama/Llama-3-8B-Instruct
  • 翻译Helsinki-NLP/opus-mt-zh-en(中译英), Helsinki-NLP/opus-mt-en-zh(英译中)
  • 摘要facebook/bart-large-cnn

A.3 进一步学习

在2025年的今天,大语言模型已经成为人工智能领域的核心技术之一。通过Hugging Face这个强大的平台,你可以轻松访问和应用这些前沿技术,为你的项目和研究增添强大动力。立即行动,探索AI的无限可能!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

codeforces 1504 div3

codeforces 1504 div3codeforces 1054 div3 D 就是枚举最后答案的所有可能就好了,aba,bab ... 赛时没想到怎么算花费,结果在这题上码死了, 这种花费真心不擅长算,只知道批处理,子数组思维,没有动态的思路,这个就…

React 基础核心概念(8 个)——从入门到能写业务组件(上)| 葡萄城技术团队

React 基础核心概念(8 个)——从入门到能写业务组件(上) 前言:为什么要先掌握这些基础概念? 对国内开发者来说,React 是开发中后台系统、电商前端、移动端 H5 的“刚需技能”。但很多人刚学就陷入“会写 JSX 却…

2 day - when

第二天嘿嘿 从今天开始应用一些方法 法一、链式时延协议(嘿嘿这个时延还有协议真的很容易让人联想到计网,很喜欢计网老师) 有两条任务链为主链和辅助链。启用时,可以启用辅助链,预约一个信号:摘下眼镜并给小号发…

玄武建设局网站网页设计方案

NoSQL数据库:数据的一致性 读取一致性 强一致性 在任何时间访问集群中任一结点,得到的数据结果一致; 用户一致性 对同一用户,访问集群期间得到的数据一致; 解决用户一致性:使用粘性会话,将会话…

可以将自己做的衣服展示的网站网站的流量建设

文章目录 0 前言1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径,图像尺寸,数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…

网站怎么更新数据重庆网架加工厂

华子目录 概念工作流程工作图流程(按行处理) awk程序执行方式1.通过命令行执行awk程序实例 2.awk命令调用脚本执行实例 3.直接使用awk脚本文件调用实例 awk命令的基本语法格式BEGIN模式与END模式实例awk的输出 记录和域(记录表示数据行&#…

机械网站开发铁路局招聘正式工4000人

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

协会网站建设计划书工商局网站怎么做股东实名认证

1. 题目 给定一个整数序列&#xff1a;a1, a2, …, an&#xff0c;一个132模式的子序列 ai, aj, ak 被定义为&#xff1a;当 i < j < k 时&#xff0c;ai < ak < aj。 设计一个算法&#xff0c;当给定有 n 个数字的序列时&#xff0c;验证这个序列中是否含有132模…

网站主持人制作网站代言人asp 网站开发 软件

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

实用指南:轻松玩转Swagger API文档神器

实用指南:轻松玩转Swagger API文档神器pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

记录java调用eclipse cdt 解析c++文件

环境: jdk1.8 eclipse cdt 9.11.1 需求: java 解析c++中的类,属性类型,属性名称,函数,函数参数,返回值。 注意点: 如果你是外网编码,移植依赖和代码到内网的时候 运行可能出现 class not found xxxx , 这…

Chormium 密码管理器表单结构体说明(基于Chromium138)

这个结构体(struct PasswordForm)是 Chromium 浏览器(以及所有基于 Chromium 的浏览器,例如 Chrome、Edge 等)中密码管理器用来存储和管理单个登录凭证(即一组用户名和密码)的核心数据结构。它不仅包含了用户名…

为什么人工智能选择Python?深入解析AI界的胶水语言

在人工智能(AI)的黄金时代,Python几乎"统治"了整个领域。从深度学习到机器学习,从学术研究到工业应用,Python无处不在。 但为什么是Python?为什么不是性能更强的C++、生态成熟的Java,或者其他现代语言…

惠安网站建设报价网站开发工程师招聘要求

有很多网友在问&#xff1a;TPlink路由器端口映射怎么设置&#xff1f;因为不懂端口映射的原理&#xff0c;所以无从下手&#xff0c;下面小编就给大家分享TPlink云路由器界面端口映射设置方法&#xff0c;帮助大家快速入门TP路由器端口映射设置方法。 1.登录路由器管理界面&a…

咸宁网站设计windows 上wordpress

上一篇中 我们详细讲了内存溢出 内存泄漏 还有相关的案例。 这篇博客中我们主要了解一下GC调优。 有些新手可能会有一点 疑问—— 这两者不是一回事吗&#xff1f;&#xff1f; 其实说一回事 也没错 因为GC调优本质上还是针对 堆上的内存 只不过前面我们关注的侧重点在于 不合…

模版网站有源代码吗注册公司代理费用多少钱

【vs2019】window10环境变量设置 【先赞后看养成习惯】求关注点赞收藏&#x1f60a; 安装VS2019时建议默认安装地址&#xff0c;最好不要改动&#xff0c;不然容易出问题 以下是安装完VS2019后环境变量的设置情况&#xff0c;C:\Program Files (x86)\Microsoft Visual Studi…

1 day(20250925) - when

第一天,好像时间还可利用的地方很多,其实是效率和时长都有待提升。 哇要做的事情都蛮复杂和多的,其实没那么难对吧,不过太多了,想要迈大步就变得不可能实现,而且迈大步总感觉会错过一些细节,不能够有底气。但是…

12分钟讲解Python核心理念

https://segmentfault.com/a/1190000047277781 12分钟讲解Python核心理念 本内容是对 Every Python Concept Explained in 12 Minutes 内容的翻译与整理。 Python之禅(The zen of Python) 当你在Python解释器中输入i…

【重要】什么是 PEP 8 规范

PEP 8 是 Python 官方的代码风格指南,全称为 Python Enhancement Proposal 8(Python 增强提案 8),旨在通过统一编码规范提升代码的可读性、一致性和可维护性。以下是其核心内容与重要性: 一、PEP 8 的核心规范代码…