本地部署与微调:解锁微软Phi-3高中阅读理解技能

可以在手机端运行的大模型标杆:微软发布第三代Phi-3系列模型,评测结果超过同等参数规模水平,包含三个版本,最小38亿,最高140亿参数 版本,架构与最小的Phi-3-mini-3.8B相同,但是训练的epoch更多,训练的数据量和Phi-3-small一样,4.9万亿tokens。今天,微软发布了第三代Phi系列大模型,最高参数规模也到了140亿,其中最小的模型参数38亿,评测结果接近GPT-3.5的水平。微软发布了第三代Phi模型,这一代的模型最小参数38亿,最大规模拓展到了140亿,包含3个版本,分别是Phi-mini-3.8B、Phi-small-7B和Phi-medium-14B。在这其中,微软的Phi系列模型是最具有竞争力的。 阅读详情

大家好!今天我带来了一篇关于如何在本地部署、微调以及使用微调后的微软Phi-3模型进行推理的文章。微软最近推出的小模型Phi-3非常火,我想在这里和大家分享一下如何在本地进行部署和微调,并带大家在高中阅读理解项目上做一个有趣的实验。

一、Phi-3模型的火热与背景

微软最新推出的Phi-3模型因其出色的性能和轻量化的设计,在自然语言处理领域掀起了一股热潮。尽管模型小巧,但它在处理各种语言任务时表现得非常强大。今天我们就来看看如何在本地环境中部署并微调这个模型。

图片

二、实验背景:高中阅读理解项目

为了展示Phi-3模型的能力,我们将以一个高中阅读理解项目为例进行实验。在微调之前,我们用Phi-3模型对30道高中阅读理解题目进行测试,结果模型只能答对10道题目。为了提升模型的表现,我们在1万条阅读理解数据上对模型进行了微调,并再次测试了30道题目,最终正确率有了些许的提升。这确实也不值得骄傲,而且现在微软刚刚发布了Phi-3.5,我突然发现我可以再来一遍。当然我做过的工作可以当做大家参考。接下来,我会教大家如何复现这个实验,并在自己的机器上进行操作。

三、准备工作

在开始之前,确保你的环境已经安装了以下依赖项:

  • Python 3.8+
  • PyTorch
  • Transformers库
  • Flask
  • 其他必要的Python库

你可以通过以下命令安装这些依赖项:

pip install torch transformers flask datasets pandas
四、微调Phi-3模型

我们首先来看如何微调Phi-3模型。以下是微调过程的详细步骤:

  1. 加载和处理数据

我们使用pandas库加载数据并使用datasets库将其转换为适合微调的数据集。

importpandasas pdfromdatasets import Dataset

df = pd.read_json(`'/phi3/mrc_阅读理解问答_7_29_微调.json'`)
ds = Dataset.from_pandas(df)
我们的数据集应该长成这样:
{
"instruction": "``根据篇章,生成问题的答案,仅输出答案,不要解释你的答案。",
"input": "``篇章:读 史 王安石自古功名亦苦辛,行藏终欲付何人。当时黮闇犹承误,末俗纷纭更乱真。糟粕所传非粹美,丹青难写是精神。区区岂尽高贤意,独守千秋纸上尘。\\n问题:下列对这首诗的理解和赏析,不正确的一项是 ['A.这首诗从大处着眼,并非是针对某个具体的历史事件、历史人物而作。', 'B.历代高人贤士一世奔忙,建功立业,但无法避免身后湮没无闻的可能。', 'C.历史人物在其所处的时代已经难免被误解,在世俗的传言中更会失真。', 'D.颈联的上下两句反复陈说,表明诗人的观点,堪称这首诗的警策之语。']",
"output": "B``.历代高人贤士一世奔忙,建功立业,但无法避免身后湮没无闻的可能。"
}
  1. 定义数据处理函数

我们定义一个函数来处理数据,使其适合模型输入。

def process_func(example):

MAX_LENGTH = 500``

input_ids, attention_mask, labels = [], [], []
instruction = tokenizer(`f"<|user|>\n{example['instruction'] + example['input']}<|end|>\n<|assistant|>\n"`, add_special_tokens=`False`)
response = tokenizer(`f"{example['output']}<|end|>\n"`, add_special_tokens=`False`)
input_ids = instruction[`"input_ids"`] + response[`"input_ids"`] + [tokenizer.pad_token_id]
attention_mask = instruction[`"attention_mask"`] + response[`"attention_mask"`] + [`1`]
labels = [-`100`] * `len`(instruction[`"input_ids"`]) + response[`"input_ids"`] + [tokenizer.pad_token_id]
`if` `len`(input_ids) > MAX_LENGTH:
input_ids = input_ids[:MAX_LENGTH]
attention_mask = attention_mask[:MAX_LENGTH]
labels = labels[:MAX_LENGTH]
`return` {
`"input_ids"`: input_ids,
`"attention_mask"`: attention_mask,
`"labels"`: labels
}
tokenized_id = ds.`map`(process_func, remove_columns=ds.column_names)
  1. 加载预训练模型和配置

我们加载预训练的Phi-3模型,并设置LoRA(Low-Rank Adaptation)配置以进行微调。

fromtransformersimportAutoTokenizer, AutoModelForCausalLMfrompeftimportLoraConfig, TaskType, get_peft_model

tokenizer = AutoTokenizer.from_pretrained(`'/LLM-Research/Phi-3-mini-4k-instruct'`, use_fast=`False`, trust_remote_code=`True`)
tokenizer.pad_token = tokenizer.eos_token
model = AutoModelForCausalLM.from_pretrained(`'/LLM-Research/Phi-3-mini-4k-instruct'`, device_map=`"auto"`, torch_dtype=torch.bfloat16, trust_remote_code=`True`)
config = LoraConfig(
task_type=TaskType.CAUSAL_LM,
target_modules=[`"q_proj"`, `"k_proj"`, `"v_proj"`, `"o_proj"`, `"gate_proj"`, `"up_proj"`, `"down_proj"`],
inference_mode=`False`,
r=`8`,
lora_alpha=`32`,

lora_dropout=0.1``

)
model = get_peft_model(model, config)
  1. 设置训练参数并开始训练

我们设置训练参数并使用Trainer开始训练。

fromtransformersimportTrainingArguments, Trainer, DataCollatorForSeq2Seq

args = TrainingArguments(
output_dir=`"output/Phi-3"`,
per_device_train_batch_size=`4`,
gradient_accumulation_steps=`4`,
logging_steps=`10`,
num_train_epochs=`3`,
save_steps=`100`,
learning_rate=`1e-4`,
save_on_each_node=`True`,

gradient_checkpointing=True``

)
trainer = Trainer(
model=model,
args=args,
train_dataset=tokenized_id,
data_collator=DataCollatorForSeq2Seq(tokenizer=tokenizer, padding=`True`),
)
trainer.train()

lora_path=‘./Phi-3_lora_729’``

trainer.model.save_pretrained(lora_path)
tokenizer.save_pretrained(lora_path)
五、部署推理服务

接下来,我们使用Flask部署一个简单的推理服务。以下是推理服务的代码:

  1. 设置Flask****应用

我们创建一个Flask应用并定义推理端点。

fromflaskimportFlask, request, jsonify

app = Flask(__name__)

@app.route(‘/inference_phi3’, methods=[‘post’])def inference_phi3():

data = request.json
instruction = data.get(`'instruction'`)
prompt = data.get(`'prompt'`)

model_path = ‘/LLM-Research/Phi-3-mini-4k-instruct’``

lora_path = ‘./Phi-3_lora_729’``

tokenizer = AutoTokenizer.from_pretrained(model_path, padding_side=`'left'`)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map=`"auto"`, torch_dtype=torch.bfloat16, trust_remote_code=`True`)
config = LoraConfig(
task_type=TaskType.CAUSAL_LM,
target_modules=[`"q_proj"`, `"k_proj"`, `"v_proj"`, `"o_proj"`, `"gate_proj"`, `"up_proj"`, `"down_proj"`],
inference_mode=`True`,
r=`8`,
lora_alpha=`32`,

lora_dropout=0.1``

)
model = PeftModel.from_pretrained(model, model_id=lora_path, config=config)
messages = [
{`"role"`: `"system"`, `"content"`: instruction},
{`"role"`: `"user"`, `"content"`: prompt}
]
text = tokenizer.apply_chat_template(messages, tokenize=`False`, add_generation_prompt=`False`)
model_inputs = tokenizer([text], return_tensors=`"pt"`).to(`'cuda'`)
generated_ids = model.generate(
model_inputs.input_ids,
max_new_tokens=`512`,
eos_token_id=tokenizer.encode(`'<|endoftext|>'`)[`0`]
)
outputs = generated_ids.tolist()[`0`][`len`(model_inputs[`0`]):]
response = tokenizer.decode(outputs).split(`'<|end|>'`)[`0`]
`return`jsonify({`"response"`: response})

if__name__ ==“main”:

app.run(debug=`False`, port=`1980`, host=`'0.0.0.0'`)

  1. 运行Flask****应用

确保Flask应用文件保存为inference.py,然后通过以下命令运行:

python inference.py

六、实验结果与结论

经过微调后,Phi-3模型在30道题目的正确率略有提升。这次实验虽然提升有限,但它展示了通过大规模数据微调可以有效提高模型在特定任务上的表现。如果你对进一步优化和调整模型有兴趣,欢迎继续探索和研究。

结语

Phi-3模型的火热并非偶然,微软为我们提供了一个强大的工具,借助适当的微调和部署,我们可以让模型在特定任务中展现出色的表现。希望这篇文章对你有所帮助,也期待看到你在模型应用上的更多探索!如果有任何问题或建议,欢迎在评论区留言。

​

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

微软Copilot+ PC:Phi-Silica 昨日微软宣布推出一种新的、更微型的小语言模型 (SLM)Phi-3-Silica,专为Copilot+ PC设计。Copilot+ PC本身配备强大神经处理单元 (NPU) 的个人计算机,能够应付AI计算。基于Windows的Phi-3-Silica仅仅拥有3B参数,是Phi-3系列中最小的。 阅读详情

相关推荐

用 NVIDIA Jetson 创建 Phi3 聊天机器人

在 NVIDIA Jetson Xavier NX 上结合微软 Phi3 模型,创建专属的AI对话机器人

chenjambo的博客 1477

SLMs之Phi-3:Phi-3的简介、安装和使用方法、案例应用之详细攻略

Phi-3模型以其卓越的性能和高效的成本而著称,超越了同等大小和稍大一号的模型,在各种语言、推理、编码和数学基准测试中表现优异。Phi-3系列包括Phi-3-mini等多个模型,其中Phi-3-mini拥有38亿参数,可在Microsoft Azure AI Studio、Hugging Face和Ollama等平台上使用。>> 支持不同长度的上下文窗口,其中Phi-3-mini是同类模型中首个支持最多128K令牌上下文窗口的模型。>> 高质量数据的训练,确保模型的性能和效果。

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 5734

HCIP - Al Solution 华为认证—— 4、 大模型业务流程进阶

00:20本章核心内容: 讲解大模型在企业中的场景化应用流程,包括需求分析、模型选型、数据集构建、模型训练微调及使用。学习目标:了解大模型在企业中场景化应用的完整流程。掌握基础模型、行业模型、场景模型三个模型的定义与区别。了解数据准备、模型训练和部署中常用的工具。01:1642:59核心流程: 大模型项目遵循一套通用的7步业务流程,与深度学习/机器学习流程类似。

qq837993702的博客 148

用LM Studio搭建微软的PHI3小型语言模型

微软Phi-3 模型是目前功能最强大、最具成本效益的小型语言模型 (SLM),在各种语言、推理、编码和数学基准测试中优于相同大小和更高大小的模型。此版本扩展了客户高质量模型的选择范围,在客户编写和构建生成式 AI 应用程序时提供了更实用的选择。Phi-3 系列将增加更多型号,以在整个质量成本曲线上为客户提供更大的灵活性。Phi-3-small (7B) 和 Phi-3-medium (14B) 将很快在 Azure AI 模型目录和其他模型园中提供。

weixin_41589183的博客 3029

phi3 微调的简单数据集,可以作为微调测试使用

phi3 微调的简单数据集,可以作为微调测试使用

吉林大学软件工程章节测验 第九章 答案+解析

4.【判断题】估算软件规模有代码行技术和功能点技术两种方法,其中代码行方法估计实现一个功能所需要的源程序行数,其不依赖项目所使用的开发语言,并且具有较好的直观性。3.【单选题】软件项目估算时,若计划人员对每个功能分别按最佳的、可能的、悲观的三种情况给出功能点估计值,记作a, m, b,则估算的期望值E的公式为( )。8.【判断题】在工程网络图中,如果在由起始事件至终止事件所构成的一条路径上,所有事件的最早时刻都和最迟时刻都相同,那么这条路径就是关键路径。4.【单选题】配置管理贯穿软件开发的整个过程。

m0_51459931的博客 1433

微软开源多模态大模型Phi-3-vision,微调实战来了

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。针对大模型& AIGC 技术趋势、大模型& AIGC 落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。在 Microsoft Build 2024 上,微软持续开源了 Phi-3 系列的新模型们。包括 Phi-3-vision,这是一种将语言和视觉功能结合在一起的多模态模型。

2301_78285120的博客 3778

C#通过Aforge调用电脑摄像头(附代码)

C#标准库本身不带有能调用电脑摄像头的库,如果利用windows自身的API来实现的话,着实有些麻烦。Aforge这个第三方库能很好的实现调用、处理的功能。 PS:文末给大家分享了完整的项目源码,各位最好先下载下来,对照着来看 1、先看一下效果 2、Aforge介绍 AForge.NET是一个专门为开发者和研究者基于C#框架设计的,这个框架提供了不同的类库和关于类库的资源,还有很多应用程序例子,包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,机器人等领域。 3、我使用的开发环境 操作系统

weixin_44996090的博客 1万+

微软 Phi-3 免费开源大模型,本地一键部署。|officeh

Phi-3 Mini 是一个拥有 38 亿参数的轻量级、最先进的开放模型,使用 Phi-3 数据集进行训练,该数据集包含合成数据和经过过滤的公开网站数据,重点关注高质量和推理密集属性。

officeh的博客 1052

vivado运行时报错 license文件更新操作

vivado使用:SYNTHESIS->Run Synthesis 时报错 [Common 17-345] A valid license was not found for feature ‘Synthesis’ and/or device ‘xc7vx485t’. Please run the Vivado License Manager for assistance in determiningwhich features and devices are licensed for your sy

qq_44692266的博客 2万+

爬取信用中国里面的行政处罚

result字段名为行政处罚文书号、处罚决定日期、处罚内容、处罚金额、违法事实、处罚机关、公司名称,行政处罚次数。file_path=r'E:\Data analyze\python\行政处罚爬虫/'#路径需要按实际修改。writer = pd.ExcelWriter('统计.xlsx')# 写入Excel文件。src_workbook=file_path+r'行政处罚(名单).xls' #表格名称也要更改。# keyword = input("输入爬取的公司全称必须是全称")

qq_42863025的博客 1675

使用 vllm 本地部署 cohere 的 command-r

使用 vllm 本地部署 cohere 的 command-r

engchina的专栏 1664

通达信+大智慧数据同步存调DLL

数据同步存调DLL(通达信版+大智慧版)

guleba的博客 2060

使用Ollama+OpenWebUI部署和使用Phi-3微软AI大模型完整指南

本地运行大型语言模型的强大工具Ollama是一个开源框架,旨在为本地运行大型语言模型(LLM)提供简便易用的解决方案。是一个开源的、轻量级的本地大模型运行框架,旨在帮助用户轻松地在本地运行和管理各种大型语言模型(LLM)。它提供了一套简单易用的API,用于创建、运行和监控模型,并支持多种流行的LLM,包括GPT-3、Jurassic-1 Jumbo、Megatron-Turing NLG、WuDao 2.0和Bloom等。➡️主要特点简化部署。

博客之路,前途漫漫 5313

从零开始:IBM V3700控制器更换与机器代码升级全流程指南

本文详细介绍了IBM V3700存储系统控制器更换与机器代码升级的全流程指南。从前期准备、硬件更换到版本同步,逐步解析如何应对503错误等常见问题,确保系统稳定运行。通过实战案例和优化建议,帮助工程师高效完成维护任务,提升存储系统可用性。

weixin_28365523的博客 312

lammps教程:官方自带eam_database程序拟合EAM势方法介绍

使用lammps模拟金属体系,最常用的势函数为eam、meam势。 对于大多数金属或者合金来说,可以从网上下载相对应的eam或meam势力场文件。 而对于一些新的合金材料,可能就找不到相对应的力场文件。 解决的方法有两种,一是采用混合势(pair_style hybrid),第二种方法是自己拟合势函数文件。 混合势的写法在前面文章中已经介绍过,本文介绍一种拟合EAM势的方法。 该方法是运行Xiaowang Zhou编写的一个拟合程序,该程序可自动生成所需要的合金势。 这个程序能够拟合的合金元素有: Cu,

lammps_jiayou的博客 4619

微软Phi-3:小型而强大的AI模型,推动物联网与移动设备进入高效时代

随着人工智能技术的飞速发展,微软研究院推出了Phi-3系列模型,这一创新的小型语言模型(SLM)以其卓越的性能和高效的成本效益,在AI领域引起了广泛关注。Phi-3模型不仅在多项基准测试中展现出与大型模型相媲美的能力,更因其小巧的体积和高效的运行效率,为移动设备和边缘计算提供了理想的解决方案。

寻道AI,探索AI无限可能! 2970

构建自己的 Qt 插件系统

Qt 本身提供了插件相关的技术,但并没有提供一个通用的插件框架!倘若要开发一个较大的 GUI 应用程序,并希望使其可扩展,那么拥有这样一个插件框架无疑会带来很大的好处。

青春不老,奋斗不止! 2万+

轻松上手!手机上部署Phi3、Llama3最新大模型全攻略!

Meta 重磅发布两款开源Llama 3 8B与Llama 3 70B模型,供外部开发者免费使用。

weixin_59191169的博客 1760

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

微软Phi-3,3.8亿参数能与Mixtral 8x7B和GPT-3.5相媲美,量化后还可直接在IPhone中运行

Phi-3系列,尤其是Phi-3-mini模型,代表了语言模型领域的一大进步,证明了高级AI能力可以在移动设备上有效实施。这一系列模型,包括Phi-3-mini、Phi-3-small和Phi-3-medium,在一系列基准测试中展示了令人印象深刻的性能,与甚至有时超越了GPT-3.5和Mixtral 8x7B等较大的模型。其性能的关键在于使用经过精心策划的训练数据集的创新使用,该数据集结合了经过严格过滤的网络数据和合成数据,使这些较小的模型能够实现高效率和高效能。

deephub 5186

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

本地部署AI模型-phi3

Ollama也是一个开源的大型语言模型服务,提供了类似OpenAI的API接口和聊天界面,可以非常方便地部署最新版本的GPT模型并通过接口使用。它支持热加载模型文件,无需重新启动即可切换不同的模型。3、适用于资源有限的环境: 由于它的规模较小,Phi-3-mini 在资源有限的环境(如移动设备或嵌入式系统)中运行效率更高,能够提供良好的性能和体验。2、更快的响应速度: 尽管 Phi-3-mini 比较 Phi-3.5 更小,但它的推理速度更快,这意味着可以更快地对输入进行响应,减少用户等待时间。

sunyingboaini的博客 1696

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

[大模型]Phi-3-mini-4k-Instruct Lora 微调

在 /root/autodl-tmp 路径下新建 model_download.py 文件并在其中输入以下内容,粘贴代码后记得保存文件,如下图所示。使用 modelscope 中的 snapshot_download 函数下载模型,第一个参数为模型名称,参数 cache_dir 为模型的下载路径。下面的代码有很详细的注释,大家如有不理解的地方,欢迎提出issue。的指示将端口映射到本地,然后在浏览器中打开链接 http://localhost:6006/ ,即可看到聊天界面。换为你的容器实例对应端口号。

FL1623863129的博客 1772

微软Phi-3:小型而强大的AI模型解析与实战指南

Phi-3是微软研究院推出的一系列小型语言模型(SLM),旨在提供与大型模型相媲美的语言理解和推理能力,同时保持较小的参数规模。Phi-3系列包括phi-3-mini、phi-3-small和phi-3-medium三个不同规模的版本,分别适合不同的应用场景和需求。这些模型不仅开源可商用,还在多项基准测试中展现出出色的性能。微软Phi-3系列模型以其小型化设计、卓越性能和高效成本效益,在AI领域展现出了巨大的潜力。

eclipsercp的博客 1860

微软Phi系列——教科书级合成数据的力量

Phi系列的开山之作,主要面向code任务(Python语言),用极小的模型(1.3B),极少的预训练数据(7B)和可控的训练时长(8*A100,4days),达到比较好的code效果。Phi-1的续作,主要面向常识推理任务,用极小的模型(1.3B),极少的预训练数据(30B)和可控的训练时长(8*A100,4days),达到与10x模型相当的效果。微软的研究人员在Phi系列的探索越走越远,小模型的研究可以帮助人们更快的理解、验证LLM的机理;同时,小模型在生产应用,推理速度方面也有着大模型无可比拟的优势。

qq_38783872的博客 2374

Phi-3 模型手机部署教程(微软发布的可与GPT-3.5媲美的小模型)

Phi 是微软AI研究院新推出的开源小型语言模型,适用于商业使用,其优势在于体积小、资源需求少,被称为“一个能跑在手机上的大模型”,我们通过Termux和Ollama工具,在我们手机上部署和体验……

老牛啊 2439
上一篇: 语言大模型的分布式训练与高效微调指南
下一篇: GraphRAG + Ollama 本地部署全攻略:避坑实战指南
AI_小站
博客等级 码龄3年 6255粉丝 1154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值