添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Vicuna 是基于 LLaMa 微调得来的大规模语言对话模型。

本文以 Vicuna-7B 模型为例,安装和使用 Vicuna。若需使用 Vicuna-13B 模型,仅需把参数 7B 改成 13B 即可。

0. 虚拟环境

在 conda 中创建虚拟环境,python 版本要求在 3.8 以上:https://blog.csdn.net/Yu_L2/article/details/105186991

虚拟环境还要安装 torch:https://pytorch.org/get-started/previous-versions/

以及 transformers:https://huggingface.co/docs/transformers/installation

1. 克隆项目到本地

克隆 Vicuna 库到本地。

git clone https://github.com/lm-sys/FastChat.git

2.安装LLaMA

可以通过以下命令下载 LLaMA。

pip install pyllama -U
python -m llama.download --model_size 7B

【提示】模型下载速度较慢,可以通过 Ctrl+C 终止下载,再重新运行该命令继续下载。

3.转换模型

下载转换程序并运行。

python convert_llama_weights_to_hf.py --input_dir ./llama --model_size 7B --output_dir ./output/

--input_dir 后的参数表示 LLaMA 模型下载的目录,--output_dir 模型表示转换后的模型所在目录。

4.合并模型

首先需要下载 Vicuna模型的 delta 参数。

git clone https://huggingface.co/lmsys/vicuna-7b-delta-v1.1

其次把 LLaMA 参数与 Vicuna 的 delta 参数进行合并,得到 Vicuna 模型参数。

python -m fastchat.model.apply_delta
	--base-model-path ./output
	--target-model-path ./vicuna-7b
	--delta-path ./vicuna-7b-delta-v1.1

--base-model-path 参数为转换后的模型位置,--target-model-path 表示最终模型输出的位置,--delta-path 参数表示下载的delta权重位置。

【提示】如果出现关于 git lfs 相关的错误,可以在 delta 目录下执行以下命令。

git lfs pull
git lfs install

5.运行模型

模型可以在 GPU 上运行。

python -m fastchat.serve.cli --model-path ./vicuna-7b

--model-path 参数表示合并后的模型位置。

还可以通过 --num-gpus 指定 GPU 个数。

python -m fastchat.serve.cli --model-path ./vicuna-7b --num-gpus 2

若想让模型运行在CPU上,则使用--device 参数。

python -m fastchat.serve.cli --model-path ./vicuna-7b --device cpu

使用 --load-8bit 参数减小占用的内存。

python -m fastchat.serve.cli --model-path ./vicuna-7b --load-8bit
                    Vicuna 是基于 LLaMa 微调得来的大规模语言对话模型。本文以 Vicuna-7B 模型为例,安装和使用 Vicuna。若需使用 Vicuna-13B 模型,仅需把参数 7B 改成 13B 即可。
1. 准备数据集:收集用于训练的代码数据集,可以包括多种编程语言的代码片段。
2. 数据预处理:对数据集进行预处理,包括代码分词、标记化等操作,将代码转化为模型可以理解的形式。
3. 构建训练集和验证集:将数据集划分为训练集和验证集,通常采用80%的数据作为训练集,20%的数据作为验证集。
4. 模型配置:选择合适的模型架构和超参数,如网络层数、隐藏层大小、学习率等。
5. 模型训练:使用训练集对模型进行训练,通过反向传播算法不断更新模型参数,使其逐渐优化。
6. 模型评估:使用验证集评估模型的性能指标,如准确率、损失函数等。
7. 调参优化:根据验证集的评估结果,调整模型的超参数,以提高模型的性能。
8. 模型保存:在训练过程中保存模型的权重和参数,以便在需要时进行加载和使用。
需要注意的是,以上步骤是一个基本的训练过程框架,具体实施时还需要根据实际情况进行调整和优化。
    zip = zipfile.ZipFile(file_path, 'r')
    name_to_info = zip.NameToInfo
    for name, info in name_to_info.copy().items():
        real_name = name.encode('cp437').decode('gbk')
        if real_name != name:
            info.filename = real_name
            del name_to_info[name]
            name_to_info[real_name] = info
                python函数闭包
                    weixin_74827728: 
                    最后一个不是输出2吗表情包表情包
                python读取和压缩ZIP文件
                    笨蛋程序员: 
                    中文可能遇到乱码,所以都用英文。表情包
                python读取和压缩ZIP文件
                    手打丸子: 
                    为什么你们都没有遇到中文文件名乱码的问题?如果有的话,这点我觉得挺重要的,为什么都没有提到
                python 实现二叉树
                    木错熊袋: 
                    我觉得很好,至少这个顺序存储没问题。