大模型技术知识点:Agent

大模型Agent指的是基于大规模语言模型(Large Language Model, LLM)的自主智能体。这种智能体能够通过理解和生成自然语言来进行复杂的决策和任务执行,具备一定的自主性和交互能力。大模型Agent能够处理和理解大量的文本信息,通过预训练和任务适应,实现对特定领域问题的解答和操作。

基于大模型训练Agent主要涉及到模型微调(Fine-tuning)、指令微调(Instruction Tuning)、工具调用以及多智能体协作等技术。训练Agent的步骤:

  1. 选择基础模型:首先,需要选择一个预训练的大模型作为基础,例如LLaMA、GPT-3等。

  2. 数据准备:根据应用场景准备训练数据,这些数据应包括用户指令、Agent执行的动作、工具调用等。

  3. 模型微调:使用准备好的数据对基础模型进行微调,以适应特定的任务和工具。

  4. 指令微调:通过指令微调技术,让模型更好地理解和执行复杂的指令。

  5. 工具调用:训练模型学会调用外部工具,如API、数据库等,以增强其解决问题能力。

  6. 多智能体协作:如果需要,训练模型与其他智能体协作完成任务。

代码示例:

以下示例使用了伪代码,假设使用的是Python和PyTorch框架。

`   <table width="866"><tbody><tr style="background-color: transparent;border-top: none;"><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 导入必要的库</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;"><span style="color: rgb(166, 38, 164);line-height: 23px;">import</span> torch</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;"><span style="color: rgb(166, 38, 164);line-height: 23px;">from</span> torch <span style="color: rgb(166, 38, 164);line-height: 23px;">import</span> nn</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;"><span style="color: rgb(166, 38, 164);line-height: 23px;">from</span> transformers <span style="color: rgb(166, 38, 164);line-height: 23px;">import</span> AutoModelForSeq2SeqLM, AutoTokenizer, Seq2SeqTrainingArguments, Seq2SeqTrainer</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="6" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="6" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 选择模型和分词器</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="7" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="7" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">model_name = <span style="color: rgb(80, 161, 79);line-height: 23px;">"path_to_your_pretrained_model"</span></span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="8" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="8" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">tokenizer = AutoTokenizer.from_pretrained(model_name)</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="9" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="9" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">model = AutoModelForSeq2SeqLM.from_pretrained(model_name)</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="10" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="10" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="11" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="11" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 准备数据(简化表示)</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="12" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="12" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">train_data = [</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="13" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="13" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">{<span style="color: rgb(80, 161, 79);line-height: 23px;">"input"</span>: <span style="color: rgb(80, 161, 79);line-height: 23px;">"Translate this sentence to Chinese"</span>, <span style="color: rgb(80, 161, 79);line-height: 23px;">"output"</span>: <span style="color: rgb(80, 161, 79);line-height: 23px;">"翻译这个句子到中文"</span>},</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="14" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="14" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># ... 更多数据</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="15" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="15" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">]</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="16" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="16" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="17" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="17" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 微调参数</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="18" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="18" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">training_args = Seq2SeqTrainingArguments(</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="19" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="19" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">output_dir=<span style="color: rgb(80, 161, 79);line-height: 23px;">"./results"</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="20" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="20" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">num_train_epochs=<span style="color: rgb(152, 104, 1);line-height: 23px;">3</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="21" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="21" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">per_device_train_batch_size=<span style="color: rgb(152, 104, 1);line-height: 23px;">4</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="22" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="22" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">warmup_steps=<span style="color: rgb(152, 104, 1);line-height: 23px;">500</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="23" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="23" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">weight_decay=<span style="color: rgb(152, 104, 1);line-height: 23px;">0.01</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="24" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="24" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">logging_dir=<span style="color: rgb(80, 161, 79);line-height: 23px;">'./logs'</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="25" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="25" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">)</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="26" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="26" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="27" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="27" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 准备数据加载器</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="28" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="28" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">train_loader = ...  <span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;"># 你需要根据实际情况准备数据加载器</span></span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="29" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="29" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="30" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="30" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 定义损失函数</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="31" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="31" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">loss_fn = nn.CrossEntropyLoss()</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="32" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="32" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="33" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="33" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 训练模型</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="34" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="34" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">trainer = Seq2SeqTrainer(</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="35" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="35" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">model=model,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="36" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="36" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">args=training_args,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="37" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="37" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">train_dataset=train_loader,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="38" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="38" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">tokenizer=tokenizer,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="39" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="39" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">compute_metrics=...  <span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;"># 根据你的需求定义计算指标</span></span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="40" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="40" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">)</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="41" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="41" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="42" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="42" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">trainer.train()</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="43" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="43" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="44" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="44" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 保存模型</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="45" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="45" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">trainer.save_model(<span style="color: rgb(80, 161, 79);line-height: 23px;">"./fine_tuned_model"</span>)</span></td></tr></tbody></table>   `

python复制代码


请注意,实际操作时,你需要根据实际情况调整代码,包括数据处理、模型选择、参数设置等。

注意事项:

  • 合规性:在中国地区进行模型训练和部署时,要确保符合相关法律法规,包括数据安全、模型备案等。

  • 计算资源:大模型训练需要大量计算资源,应合理规划。

  • 工具调用:实际使用中,需要编写额外的逻辑来处理模型对外部工具的调用。

通过以上步骤,你就可以基于大模型训练出一个适用于特定场景的Agent。当然,这个过程需要深入的理解和实践,上述代码仅作为入门级示例。

实践项目:构建一个财务报告分析的大模型Agent

项目概述:在这个项目中,我们将构建一个能够自动分析财务报告并提取关键信息的AI Agent。这个Agent将使用自然语言处理(NLP)技术来理解财务报告的内容,并从中提取诸如收入、利润、成本和趋势等关键数据。

我们将使用Python和预训练的NLP模型(如BERT或GPT-3)来完成这个项目。以下是项目的基本步骤和示例代码。

步骤1:环境准备

确保安装了以下库:

`p``ip install transformers torch numpy pandas   `

python复制代码


步骤2:数据准备

这里我们假设已经有了一些财务报告的文本数据,我们将使用Pandas来加载数据。

`   <table width="866"><tbody><tr style="background-color: transparent;border-top: none;"><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;"><span style="color: rgb(166, 38, 164);line-height: 23px;">import</span> pandas <span style="color: rgb(166, 38, 164);line-height: 23px;">as</span> pd</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 假设数据存储在一个CSV文件中,列名包含报告文本</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">data_path = <span style="color: rgb(80, 161, 79);line-height: 23px;">'financial_reports.csv'</span></span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">reports_df = pd.read_csv(data_path)</span></td></tr></tbody></table>   `

python复制代码


步骤3:模型选择

我们选择使用Hugging Face的Transformers库来加载预训练的模型。

`   <table width="866"><tbody><tr style="background-color: transparent;border-top: none;"><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;"><span style="color: rgb(166, 38, 164);line-height: 23px;">from</span> transformers <span style="color: rgb(166, 38, 164);line-height: 23px;">import</span> AutoModelForTokenClassification, AutoTokenizer</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 加载预训练模型和分词器</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">model_name = <span style="color: rgb(80, 161, 79);line-height: 23px;">'bert-base-uncased'</span>  <span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;"># 或者使用'gpt3'等</span></span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">model = AutoModelForTokenClassification.from_pretrained(model_name)</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="6" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="6" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">tokenizer = AutoTokenizer.from_pretrained(model_name)</span></td></tr></tbody></table>   `

python复制代码


步骤4:数据预处理

对财务报告文本进行预处理,以便模型可以接收。

`   <table width="866"><tbody><tr style="background-color: transparent;border-top: none;"><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;"><span style="color: rgb(166, 38, 164);line-height: 23px;">def</span> <span style="color: rgb(64, 120, 242);line-height: 23px;">preprocess_text</span>(<span style="color: rgb(247, 205, 122);line-height: 23px;">text</span>):</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 这里可以根据实际情况进行更复杂的预处理</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;"><span style="color: rgb(166, 38, 164);line-height: 23px;">return</span> text</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">reports_df[<span style="color: rgb(80, 161, 79);line-height: 23px;">'processed_text'</span>] = reports_df[<span style="color: rgb(80, 161, 79);line-height: 23px;">'text'</span>].apply(preprocess_text)</span></td></tr></tbody></table>   `

python复制代码


步骤5:模型训练

由于我们使用的是预训练模型,这一步可能不是必须的,但如果我们需要对特定领域进行微调,以下是示例代码:

`   <table width="866"><tbody><tr style="background-color: transparent;border-top: none;"><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;"><span style="color: rgb(166, 38, 164);line-height: 23px;">from</span> transformers <span style="color: rgb(166, 38, 164);line-height: 23px;">import</span> Trainer, TrainingArguments</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 定义训练参数</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">training_args = TrainingArguments(</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">output_dir=<span style="color: rgb(80, 161, 79);line-height: 23px;">'./results'</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="6" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="6" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">num_train_epochs=<span style="color: rgb(152, 104, 1);line-height: 23px;">3</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="7" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="7" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">per_device_train_batch_size=<span style="color: rgb(152, 104, 1);line-height: 23px;">16</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="8" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="8" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">per_device_eval_batch_size=<span style="color: rgb(152, 104, 1);line-height: 23px;">64</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="9" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="9" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">warmup_steps=<span style="color: rgb(152, 104, 1);line-height: 23px;">500</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="10" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="10" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">weight_decay=<span style="color: rgb(152, 104, 1);line-height: 23px;">0.01</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="11" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="11" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">logging_dir=<span style="color: rgb(80, 161, 79);line-height: 23px;">'./logs'</span>,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="12" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="12" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">)</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="13" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="13" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="14" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="14" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 初始化Trainer</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="15" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="15" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">trainer = Trainer(</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="16" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="16" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">model=model,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="17" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="17" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">args=training_args,</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="18" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="18" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">train_dataset=train_dataset,  <span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;"># 假设你已经准备好了训练数据集</span></span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="19" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="19" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">eval_dataset=val_dataset      <span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;"># 假设你已经准备好了验证数据集</span></span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="20" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="20" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">)</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="21" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="21" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="22" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="22" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 训练模型</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="23" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="23" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">trainer.train()</span></td></tr></tbody></table>   `

python复制代码


步骤6:模型评估

评估模型在测试集上的表现。

`trainer.evaluate(test_dataset)  # 假设你已经准备好了测试数据集   `

python复制代码


步骤7:模型推断

使用模型进行推断,提取财务报告中的关键信息。

`   <table width="866"><tbody><tr style="background-color: transparent;border-top: none;"><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;"><span style="color: rgb(166, 38, 164);line-height: 23px;">def</span> <span style="color: rgb(64, 120, 242);line-height: 23px;">extract_key_info</span>(<span style="color: rgb(247, 205, 122);line-height: 23px;">text</span>):</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">inputs = tokenizer(text, return_tensors=<span style="color: rgb(80, 161, 79);line-height: 23px;">"pt"</span>, padding=<span style="color: rgb(1, 132, 187);line-height: 23px;">True</span>, truncation=<span style="color: rgb(1, 132, 187);line-height: 23px;">True</span>)</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">outputs = model(**inputs)</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 根据模型输出解析关键信息,这里需要具体实现</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 例如,可以根据标签获取对应的实体</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="6" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="6" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;"><span style="color: rgb(166, 38, 164);line-height: 23px;">return</span> parsed_info</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="7" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="7" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="8" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="8" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 在预处理后的报告中应用推断函数</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="9" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="9" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">reports_df[<span style="color: rgb(80, 161, 79);line-height: 23px;">'key_info'</span>] = reports_df[<span style="color: rgb(80, 161, 79);line-height: 23px;">'processed_text'</span>].apply(extract_key_info)</span></td></tr></tbody></table>   `

python复制代码


步骤8:结果分析

对提取的关键信息进行分析,这里以简单的统计为例。

`   <table width="866"><tbody><tr style="background-color: transparent;border-top: none;"><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="1" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 假设提取的信息是DataFrame的列表</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="2" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">infos = reports_df[<span style="color: rgb(80, 161, 79);line-height: 23px;">'key_info'</span>].tolist()</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="3" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><br></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="4" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="color: rgb(160, 161, 167);font-style: italic;line-height: 23px;font-size: 12px;"># 分析收入信息</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="5" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;">incomes = [info[<span style="color: rgb(80, 161, 79);line-height: 23px;">'income'</span>] <span style="color: rgb(166, 38, 164);line-height: 23px;">for</span> info <span style="color: rgb(166, 38, 164);line-height: 23px;">in</span> infos <span style="color: rgb(166, 38, 164);line-height: 23px;">if</span> <span style="color: rgb(80, 161, 79);line-height: 23px;">'income'</span> <span style="color: rgb(166, 38, 164);line-height: 23px;">in</span> info]</span></td></tr><tr style="background-color: transparent;border-top: none;"><td data-line-number="6" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;color: rgb(110, 110, 127);vertical-align: top;text-align: right;"><br></td><td data-line-number="6" style="padding: 0px;border-width: initial;border-style: none;border-color: initial;"><span style="font-size: 12px;"><span style="color: rgb(193, 132, 1);line-height: 23px;">print</span>(<span style="color: rgb(80, 161, 79);line-height: 23px;">f"Average Income: <span style="color: rgb(228, 86, 73);line-height: 23px;">{<span style="color: rgb(193, 132, 1);line-height: 23px;">sum</span>(incomes) / <span style="color: rgb(193, 132, 1);line-height: 23px;">len</span>(incomes)}</span>"</span>)</span></td></tr></tbody></table>   `

python复制代码


请注意,以上代码是一个简化的示例,实际项目中需要根据财务报告的格式和内容进行详细调整。模型的选择、训练和推断都需要根据实际情况来设计标签、数据集和解析逻辑。

此外,由于财务报告通常包含大量专业术语和特定格式,可能需要大量的领域知识和数据来训练一个有效的模型。在实践中,可能还需要考虑实体识别、关系提取和数值计算等复杂任务。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值