C语言写的LLM训练

特斯拉前 AI 总监、OpenAI 创始团队成员 Andrej Karpathy 用 C 代码完成了 GPT-2 大模型训练过程:karpathy/llm.c: LLM training in simple, raw C/CUDA (github.com)

下载源码

git clone --recursive https://github.com/karpathy/llm.c.git

下载模型

从HF-Mirror - Huggingface 镜像站下载gpt2模型:

cd llm.c
./hfd.sh openai-community/gpt2 --tool aria2c -x 4

用CPU训练gpt2大模型

pip install -r requirements.txt
python prepro_tinyshakespeare.py
python train_gpt2.py
make train_gpt2
OMP_NUM_THREADS=16 ./train_gpt2

训练结果:

[GPT-2]
max_seq_len: 1024
vocab_size: 50257
padded_vocab_size: 50304
num_layers: 12
num_heads: 12
channels: 768
num_parameters: 124475904
train dataset num_batches: 1192
val dataset num_batches: 128
num_activations: 73347840
val loss 5.325522
step 0: train loss 5.356185 (took 2897.148828 ms)
step 1: train loss 4.301033 (took 2498.365030 ms)
step 2: train loss 4.623316 (took 2358.455841 ms)
step 3: train loss 4.600415 (took 2643.469682 ms)
step 4: train loss 4.616777 (took 2498.933979 ms)
step 5: train loss 4.231482 (took 2356.468469 ms)
step 6: train loss 3.754166 (took 2782.597088 ms)
step 7: train loss 3.652230 (took 2379.824868 ms)
step 8: train loss 4.183515 (took 2408.840079 ms)
step 9: train loss 4.199315 (took 2811.563323 ms)
val loss 4.323445
step 10: train loss 4.288396 (took 2652.485471 ms)
step 11: train loss 3.558984 (took 2501.367965 ms)
step 12: train loss 3.730804 (took 2415.376200 ms)
step 13: train loss 4.159164 (took 2824.504369 ms)
step 14: train loss 3.886458 (took 2460.975123 ms)
step 15: train loss 3.764933 (took 2421.700741 ms)
step 16: train loss 4.143034 (took 2794.475716 ms)
step 17: train loss 3.962718 (took 2374.036900 ms)
step 18: train loss 3.796120 (took 2430.497860 ms)
step 19: train loss 3.371638 (took 2699.907792 ms)
val loss 4.186637
generating:
---
I was so exceptionally drunk:
You would spake for seen'st
Threaten beyond you, 'twas so far too?<|endoftext|>STRUCTINIUS:
Scheduled since 1539 is
Welcome to Rome:
We meet the indignation of lesser nations' countenance? thank me
---
step 20: train loss 3.880942 (took 2673.638517 ms)
step 21: train loss 4.198619 (took 2409.159397 ms)
step 22: train loss 4.426098 (took 2381.811139 ms)
step 23: train loss 3.685762 (took 2630.524207 ms)
step 24: train loss 3.642307 (took 2409.535371 ms)
step 25: train loss 3.729648 (took 2419.172362 ms)
step 26: train loss 3.549645 (took 2615.432226 ms)
step 27: train loss 3.339360 (took 2397.100638 ms)
step 28: train loss 4.338965 (took 2306.472662 ms)
step 29: train loss 3.812843 (took 2489.614175 ms)
val loss 4.020430
step 30: train loss 4.028022 (took 2830.212721 ms)
step 31: train loss 4.114379 (took 2393.216771 ms)
step 32: train loss 3.575101 (took 2411.546749 ms)
step 33: train loss 4.366093 (took 2782.991834 ms)
step 34: train loss 4.516504 (took 2386.624338 ms)
step 35: train loss 4.434158 (took 2362.931890 ms)
step 36: train loss 4.097423 (took 2722.066351 ms)
step 37: train loss 3.739693 (took 2375.078001 ms)
step 38: train loss 4.612139 (took 2440.452340 ms)
step 39: train loss 3.970823 (took 2657.332781 ms)
val loss 4.016672
generating:
---
Come Kurultan,
Among the geopolitical
Coers and My scullers take one word.<|endoftext|>Shutth out of the yacht,
Sone of dejected glories
draw'd like an everlasting flame;
But: prying out, as a look in a good canopy
Fairs with
---
step 40: train loss 4.377796 (took 2752.577323 ms)

测试

make test_gpt2
./test_gpt2

测试结果:

[GPT-2]
max_seq_len: 1024
vocab_size: 50257
padded_vocab_size: 50304
num_layers: 12
num_heads: 12
channels: 768
num_parameters: 124475904
[State]
batch_size: 4
seq_len: 64
num_activations: 73347840
-43.431503, -43.431736
-39.836239, -39.836460
-43.065804, -43.066002
-42.827946, -42.828171
-43.529419, -43.529659
-44.318279, -44.318508
-41.227291, -41.227512
-41.270660, -41.270866
-42.541286, -42.541489
-42.394890, -42.395119
OK (LOGITS), max_diff = 8.239746e-04
LOSS OK: 5.269997 5.270007
dwte
OK -0.002320 -0.002320
OK 0.002072 0.002072
OK 0.003717 0.003717
OK 0.001307 0.001307
OK 0.000632 0.000632
TENSOR OK, maxdiff = 1.707077e-04
dwpe
OK -0.005111 -0.005110
OK -0.000011 -0.000013
OK -0.003262 -0.003261
OK 0.009909 0.009908
OK 0.002146 0.002145
TENSOR OK, maxdiff = 1.203269e-05
dln1w
OK -0.007523 -0.007523
OK 0.008642 0.008644
OK 0.005025 0.005028
OK -0.011094 -0.011094
OK -0.001663 -0.001663
TENSOR OK, maxdiff = 4.264116e-04
dln1b
OK -0.038462 -0.038456
OK -0.030591 -0.030595
OK 0.010215 0.010219
OK 0.080178 0.080175
OK -0.060908 -0.060896
TENSOR OK, maxdiff = 1.597637e-04
dqkvw
OK -0.000031 -0.000031
OK -0.000025 -0.000025
OK -0.000064 -0.000064
OK 0.000074 0.000074
OK 0.000020 0.000020
TENSOR OK, maxdiff = 6.203726e-05
dqkvb
OK -0.000412 -0.000411
OK -0.000412 -0.000412
OK 0.000114 0.000114
OK -0.000565 -0.000565
OK 0.000571 0.000570
TENSOR OK, maxdiff = 3.422704e-05
dattprojw
OK 0.000080 0.000080
OK -0.000005 -0.000005
OK -0.000019 -0.000019
OK 0.000004 0.000004
OK 0.000031 0.000032
TENSOR OK, maxdiff = 2.195314e-05
dattprojb
OK 0.000470 0.000472
OK -0.009979 -0.009981
OK -0.001803 -0.001805
OK 0.037585 0.037572
OK -0.031238 -0.031231
TENSOR OK, maxdiff = 1.956336e-05
dln2w
OK -0.018318 -0.018313
OK 0.004812 0.004812
OK 0.008089 0.008089
OK -0.001469 -0.001470
OK -0.002737 -0.002737
TENSOR OK, maxdiff = 1.060128e-03
dln2b
OK -0.026374 -0.026374
OK -0.016703 -0.016702
OK 0.001072 0.001069
OK 0.034711 0.034700
OK -0.028584 -0.028578
TENSOR OK, maxdiff = 8.928776e-05
dfcw
OK 0.000440 0.000440
OK -0.000000 -0.000000
OK -0.000154 -0.000154
OK -0.000165 -0.000165
OK 0.000405 0.000405
TENSOR OK, maxdiff = 1.000613e-04
dfcb
OK 0.003291 0.003294
OK 0.002043 0.002044
OK -0.001386 -0.001386
OK 0.000386 0.000387
OK 0.001603 0.001603
TENSOR OK, maxdiff = 2.483255e-05
dfcprojw
OK 0.000680 0.000681
OK 0.000073 0.000073
OK -0.000416 -0.000416
OK -0.000060 -0.000061
OK -0.000604 -0.000604
TENSOR OK, maxdiff = 4.865497e-05
dfcprojb
OK 0.003583 0.003585
OK -0.007157 -0.007159
OK -0.001962 -0.001963
OK 0.001462 0.001462
OK 0.001217 0.001218
TENSOR OK, maxdiff = 1.481583e-05
dlnfw
OK -0.000022 -0.000022
OK 0.000810 0.000810
OK 0.001161 0.001161
OK -0.002957 -0.002957
OK 0.001145 0.001145
TENSOR OK, maxdiff = 2.471101e-05
dlnfb
OK -0.011101 -0.011100
OK 0.008009 0.008009
OK -0.004771 -0.004771
OK -0.002112 -0.002112
OK -0.005905 -0.005905
TENSOR OK, maxdiff = 4.455447e-06
step 0: loss 5.269997 (took 2538.900264 ms) OK = 1
step 1: loss 4.059699 (took 2211.700180 ms) OK = 1
step 2: loss 3.375026 (took 2289.109099 ms) OK = 1
step 3: loss 2.800780 (took 2558.251191 ms) OK = 1
step 4: loss 2.315454 (took 2279.104378 ms) OK = 1
step 5: loss 1.849150 (took 2161.919211 ms) OK = 1
step 6: loss 1.394839 (took 2540.158140 ms) OK = 1
step 7: loss 0.999173 (took 2233.801734 ms) OK = 1
step 8: loss 0.624303 (took 2302.283686 ms) OK = 1
step 9: loss 0.376687 (took 2553.011337 ms) OK = 1
overall okay: 1

相关链接

“真男人就应该用 C 编程”!大神用 1000 行 C 代码手搓了一个大模型-电子头条-EEWORLD电子工程世界

llm.c代码详细解读(一) - 知乎 (zhihu.com)

Kimi

训练大型语言模型(LLM)通常是一个复杂的过程,涉及到大量的数据预处理、模型设计、训练和优化。虽然C语言是一种强大的编程语言,但它并不是进行机器学习模型训练的常用语言。大多数深度学习框架,如TensorFlow、PyTorch等,都是用Python等高级语言编写的,因为这些语言提供了更多的抽象和库支持,可以简化模型训练的过程。

然而,如果你希望使用C语言来训练LLM,你可以考虑以下几个方面:

  1. 数学库:你需要一个能够进行复杂数学运算的库,比如BLAS、LAPACK或cuBLAS(如果使用GPU加速)。

  2. 并行计算:由于LLM通常需要大量的计算资源,因此使用并行计算技术(如OpenMP或CUDA)是非常重要的。

  3. 深度学习框架:你可能需要自己实现一个深度学习框架,或者寻找一个用C语言编写的框架。这将涉及到实现前向传播、反向传播、梯度下降等算法。

  4. 数据预处理:你需要能够加载和预处理文本数据,这可能涉及到文本清洗、分词、向量化等步骤。

  5. 模型架构:设计适合LLM的神经网络架构,如Transformer、循环神经网络(RNN)等。

  6. 优化算法:实现或集成梯度下降等优化算法,用于更新神经网络的权重。

  7. 性能分析:使用性能分析工具来优化你的代码,比如gprof或valgrind。

  8. 调试和测试:由于C语言的接近硬件的特性,调试可能会比较复杂,需要仔细设计测试用例。

  9. 内存管理:C语言需要手动管理内存,这在处理大型数据集和模型时可能会变得非常复杂。

  10. 社区和资源:与Python等语言相比,使用C语言进行深度学习开发的社区和资源可能较少,这可能会增加开发难度。

总的来说,使用C语言训练LLM是一个具有挑战性的任务,需要深入的编程知识、数学背景和机器学习经验。如果你是一个初学者或者没有足够的资源,可能需要考虑使用更高级的语言和现成的深度学习框架。

如果你有特定的需求或者想要了解更多关于这个话题的信息,请提供更多的细节,我会尽力帮助你。

找到了第 1 篇资料:OpenAI创始大神手搓千行C代码训练GPT,附PyTorch迁移教程

找到了第 2 篇资料:“真男人就应该用 C 编程”!用 1000 行 C 代码手搓了一个大 ...

找到了第 3 篇资料:OpenAI 创始大神手搓千行 C 代码训练 GPT,附 PyTorch ...

找到了第 4 篇资料:颠覆LLM训练方法!Karpathy仅凭1000行C语言代码、一台 ...

找到了第 5 篇资料:llm.c代码详细解读(一) - 知乎

找到了第 6 篇资料:“真男人就应该用 C 编程”!用 1000 行 C 代码手搓了一个大 ...

找到了第 7 篇资料:颠覆LLM训练方法!Karpathy仅凭1000行C语言代码、一台 ...

找到了第 8 篇资料:探索 Karpathy 的 `llm.c`: 一个轻量级语言模型工具 - CSDN博客

找到了第 9 篇资料:纯C语言手搓GPT-2,前OpenAI、特斯拉高管新项目火了_澎湃 ...

根据提供的搜索结果,Andrej Karpathy,这位特斯拉前AI总监和OpenAI的创始成员,开发了一个名为llm.c的项目,该项目使用纯C语言训练大型语言模型(LLM),如GPT-2。这个项目的特点和步骤可以总结如下:

  1. 项目简介llm.c是一个用C语言编写的简单项目,旨在提供一个低级别的接口来训练大型语言模型。它不需要依赖庞大的库如PyTorch或Python,从而显著减少了依赖库的体积。

  2. 代码量和效率:Karpathy仅用大约1000行简洁的C代码完成了GPT-2模型的训练。这种方法不仅减少了依赖,还能与PyTorch的参考实现相匹配,并且可以立即编译和运行。

  3. 内存管理:在项目的开始阶段,所有需要的内存被一次性分配,训练过程中内存占用保持不变,数据批次在不同批次之间动态流动。

  4. 核心实现:关键在于手动实现每个单独层的前向传播和反向传播,并将它们串联起来。这包括编码器、matmul、自注意力、gelu、残差、softmax和交叉熵损失等。

  5. CUDA移植:Karpathy正在将这些层逐层移植到CUDA上,以提高效率,使其接近PyTorch的性能,同时减少依赖。

  6. 项目优势

    • 代码简洁性:使用更少的代码完成模型训练,降低了复杂度。
    • 独立性:不依赖外部库,使得部署和运行更加轻便快捷。
    • 高效性:直接使用C/CUDA进行编程,提高计算效率和训练速度。
  7. 社区反馈:项目发布后迅速获得社区的积极响应,许多人对使用C语言进行深度学习训练表示出了兴趣。

  8. 开源和教程:Karpathy将llm.c项目开源在GitHub上,并提供了从PyTorch迁移到C语言的教程。

  9. 未来发展:Karpathy计划发布视频进行更详细的讲解,并探索使用SIMD指令加速CPU版本,以及支持更现代的架构如Llama2和Gemma。

  10. 实践指南:项目还提供了快速开始的指南,包括数据集的下载和tokenize,使用预训练权重进行模型初始化,以及如何用原始C语言进行模型训练。

通过这些步骤和特点,我们可以看出llm.c项目是一个创新的尝试,它展示了即使在不使用主流深度学习框架的情况下,也能高效地进行LLM的训练。这对于希望减少依赖、提高性能或者对深度学习底层实现感兴趣的开发者来说,是一个宝贵的资源。

ChatGPT

用C语言编写一个大型语言模型(LLM)如GPT-3或BERT等的训练框架是非常具有挑战性的,但理论上是可能的。以下是如果你决定用C语言开发LLM训练框架可能需要考虑的几个方面:
1. **数学计算库** - 你需要高效的线性代数库来支持大量的矩阵运算,因为神经网络的训练需要大量的矩阵乘法、向量加法等操作。你也可能需要实现或利用现有的自动微分库来进行梯度的计算。
2. **并行计算** - 训练大型模型需要大量计算资源,通常需要GPU或TPU等硬件加速。在C语言中,为了最大化硬件性能,你可能需要使用CUDA或OpenCL等来编程这些硬件。
3. **数据处理** - 在训练之前需要对大量的数据进行预处理,这可能包括文本的标记化、编码、批处理等。C语言处理这些任务可能不像Python那么方便,但仍然是可以做到的。
4. **分布式计算** - 由于模型和数据的规模可能很大,训练过程可能需要在多个节点上分布式运行。实现有效的分布式计算和通信是另一大挑战。
5. **内存管理** - C语言不像一些高级语言如Python具有自动垃圾收集机制,你需要手动管理内存的分配和释放,这在处理大规模数据集时尤其重要。
6. **模型架构** - 实现模型的各个层次,如Transformer层、注意力机制、前馈网络等,需要深入理解这些结构并使用C语言准确实现它们。
7. **优化算法** - 实现各种优化算法(如Adam、SGD等)并且确保它们在大规模数据集上能够稳定运行。
尽管有以上挑战,使用C语言可以带来性能上的优势,因为它能提供更接近硬件层面的控制。然而,现代的深度学习框架(如TensorFlow、PyTorch等)大多是用C++编写底层计算代码,并提供Python接口以方便使用、迭代和社区贡献。因此,如果没有非常充分的理由,通常建议使用现成的框架进行LLM训练。如果需要性能优化,你可以考虑在现有框架的基础上进行定制,而不是完全从头开始用C语言编写。

讯飞星火

LLM(Language Model)是一种基于深度学习的自然语言处理模型,通常使用神经网络进行训练。在C语言中,我们可以使用一些深度学习库来实现LLM的训练,例如FAIR的FastText库。以下是一个简单的C语言实现LLM训练的示例:

首先,安装FastText库。在终端中输入以下命令:

git clone https://github.com/facebookresearch/fastText.git
cd fastText
mkdir build
cd build
cmake ..
make
make install

准备训练数据。创建一个名为train.txt的文件,其中包含用于训练LLM的文本数据。每行表示一个文本样本,用空格分隔单词。例如:

我 爱 北京 天安门
你 好 世界

编写C语言代码来训练LLM。创建一个名为llm_train.c的文件,然后将以下代码粘贴到文件中:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "fasttext.h"int main(int argc, char **argv) {if (argc != 2) {printf("Usage: %s <train_data>
", argv[0]);return 1;}const char *train_data = argv[1];const char *model_output = "model";const int epoch = 5;const int lr = 0.1;const int dim = 100;const int ws = 5;const int minCount = 1;const int neg = 5;const int wordNgrams = 1;const int loss = ns::sampled_softmax;const double label = '__label__';printf("Training LLM with FastText...
");FastText ft;ft.setTrainMethod(loss);ft.setDimension(dim);ft.setWindowSize(ws);ft.setMinCount(minCount);ft.setNegativeSamples(neg);ft.setWordNgrams(wordNgrams);ft.setLearningRate(lr);ft.train(train_data, epoch, model_output);printf("Model saved to %s.bin
", model_output);return 0;
}

编译并运行代码。在终端中输入以下命令:

gcc -o llm_train llm_train.c -I../src -L../build -lfasttext -lm -pthread -O3
./llm_train train.txt

训练完成后,模型将保存为model.bin文件。可以使用FastText提供的其他工具来评估和测试模型。

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

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

相关文章

springboot+vue+elementui实现校园互助平台大作业、毕业设计

目录 一、项目介绍 二、项目截图 管理后台 1.登录&#xff08;默认管理员账号密码均为&#xff1a;admin&#xff09; 2. 用户管理 ​编辑 3.任务管理 互助单&#xff08;学生发布&#xff09; 行政单&#xff08;教师发布&#xff09; ​编辑 审核&#xff08;退回需…

springboot 引入第三方bean

如何进行第三方bean的定义 参数进行自动装配

rancher/elemental 构建不可变IOS(一)

一、什么是elemental Elemental 是 Rancher 的一个变种&#xff0c;专注于提供一个更轻量级的 Kubernetes 发行版。它旨在提供简化的部署和管理体验&#xff0c;同时保持 Kubernetes 的灵活性和强大功能。Elemental 通常针对较小的部署场景或资源受限的环境&#xff0c;例如测…

数据结构链表

数据结构链表 链表 1&#xff09;链表的概念及结构: 链表是一种物理存储结构上非连续存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的引用链接次序实现的。 2&#xff09;实际中链表的结构非常多样&#xff0c;以下情况组合起来就有8种链表结构&#xff1a; 单向、双向…

信息系统项目管理师——项目工具

直方图散点图蒙特卡洛分析 PERT分析 因果图 控制图 帕累托图 持续改进 偏差分析 鱼骨图 工作绩效报告可以包含挣值图表和信息、趋势线和预测、储备燃尽图、缺陷直方图、合同绩效信息以及风险概述信息。可表现为仪表指示图、热点报告、信号灯图或其他形式。 干系人参与度评估矩…

服务器数据恢复—ESXi虚拟机中MySQL数据库数据恢复案例

服务器数据恢复环境&#xff1a; 某品牌EVA某型号存储中部署VMware ESXi虚拟化平台&#xff0c;数据盘&#xff08;精简模式&#xff09;快照数据盘&#xff0c;虚拟机中有mysql数据库。 服务器故障&#xff1a; 机房意外断电导致该存储中的一台VMware虚拟机无法启动&#xff0…

【iOS】方法交换(Method Swizzling)

文章目录 前言一、原理与注意用法注意要点Method Swizzing涉及的相关API 二、应用场景与实践1.统计VC加载次数并打印2.防止UI控件短时间多次激活事件3.防崩溃处理&#xff1a;数组越界问题4.防KVO崩溃 总结 前言 上文讲到了iOS的消息发送机制&#xff0c;在消息机制中我们了解…

【3dmax笔记】023:阵列工具(移动+一维+二维+三维)

文章目录 一、阵列工具二、案例演示 一、阵列工具 【阵列】命令将显示【阵列】对话框&#xff0c;使用该对话框可以基于当前选择创建对象阵列。 菜单栏&#xff1a;【工具】菜单 > 【阵列】 二、案例演示 首先&#xff0c;画一个物体&#xff0c;如茶壶&#xff0c;如下图…

鸿蒙 DevEcoStudio:组件实例(页面及组件生命周期函数)

【使用onPageshow等生命周期函数】 在entry/src/main/ets/pages路径下创建Page1.ets: import router from ohos.router Entry Component struct Page1 {State message: string Hello WorldState show: booleantrueaboutToAppear(){console.log(Page1组件创建实例)}aboutToDisa…

中国教育界的泰斗级人物颜廷利:一位在多个领域具有深远影响的学者

**中国教育界的泰斗级人物颜廷利教授是一位在多个领域都有着深远影响的学者**。 山东籍文化名人颜廷利教授是一位世界级的哲学大师&#xff0c;他在学术界拥有多项创造性的成果。他不仅是国际十大姓名学专家排行榜上的佼佼者&#xff0c;颜廷利还被评为颜氏家族十大杰出名人教育…

在Windows 11环境下,生成自签名证书

在Windows 11环境下&#xff0c;使用上述命令生成自签名证书时&#xff0c;需要注意的是Windows命令行不直接支持<(command)这样的进程替换语法。因此&#xff0c;您需要稍微调整方法来实现相同的目标。下面是分步骤的操作指南&#xff1a; ### 1. 安装OpenSSL 确保您已经…

python分析预测退休后养老金金额

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.总结 一.前言 养老金,也称为退休金或退休费,是一种主要的社会养老保险待遇。它旨在保障职工退休后的基本生活需要,根据劳动者对社会所作的贡献和所具备的享受养老保险资格或退休条件,按月或一次…

【Word】写论文,参考文献涉及的上标、尾注、脚注 怎么用

一、功能位置 二、脚注和尾注区别 1.首先脚注是一个汉语词汇&#xff0c;论文脚注就是附在论文页面的最底端&#xff0c;对某些内容加以说明&#xff0c;印在书页下端的注文。脚注和尾注是对文本的补充说明。 2.其次脚注一般位于页面的底部&#xff0c;可以作为文档某处内容的…

从招标到合作:如何筛选与企业需求匹配的6sigma咨询公司

在市场竞争激烈的环境中&#xff0c;领军企业需要不断改进和创新才能在行业中保持竞争优势。为了解决产品质量、生产流程和客户满意度等方面的挑战&#xff0c;许多企业选择与6sigma咨询公司合作&#xff0c;推动企业的全面变革和持续发展。下面是企业在选择合作伙伴时通常会经…

GPT-3

论文&#xff1a;Language Models are Few-Shot Learners&#xff08;巨无霸OpenAI GPT3 2020&#xff09; 摘要 最近的工作表明&#xff0c;通过对大量文本进行预训练&#xff0c;然后对特定任务进行微调&#xff0c;在许多NLP任务和基准方面取得了实质性进展。虽然这种方法…

【LLama】Llama3 的本地部署与lora微调(基于xturn)

系列课程代码文档&#xff08;前2节课可跳过&#xff09;&#xff1a;https://github.com/SmartFlowAI/Llama3-Tutorial 课程视频&#xff1a;https://space.bilibili.com/3546636263360696/channel/series XTuner &#xff1a;https://github.com/InternLM/xtuner/blob/main/R…

如何完美解决Outlook大文件传送问题,提升办公协作效率?

在日常工作中&#xff0c;邮件是一种常用的通信方式&#xff0c;经常用来发送各类文件&#xff0c;比如报告和文档、合同和协议、财务报表、营销资料、设计文件等。但有时文件会比较大&#xff0c;因此Outlook大文件传送时&#xff0c;会遇到附件大小受限的情况。常用的解决发送…

Leetcode—724. 寻找数组的中心下标【简单】

2024每日刷题&#xff08;129&#xff09; Leetcode—724. 寻找数组的中心下标 实现代码 class Solution { public:int pivotIndex(vector<int>& nums) {int sum accumulate(nums.begin(), nums.end(), 0);int prefix 0;for(int i 0; i < nums.size(); i) {i…

ai写作工具推荐:如何用AI人工智能进行写作

AI写作工具&#xff1a;提升创作效率的秘密武器 在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的方方面面&#xff0c;包括写作。AI写作工具&#xff0c;就是利用人工智能技术&#xff0c;帮助我们进行文本生成、语言优化等工作的工…

[综合应用]dns nfs httpd php mysql

第一步&#xff1a;搭建三台主机 主机名称 Ip地址 角色 503A 192.168.68.10 Mysql从 503B 192.168.68.11 Mysql从&#xff0c;nfs服务端&#xff0c;dns服务端 503Cmysql 192.168.68.12 MySQL主&#xff0c;web客户端 第二步&#xff1a;在503B上配置DNS 2.1 下载…