后端有点问题一直拖到现在,学长在摸鱼,我也闲着无聊先去看下。

主要是python脚本没有跑起来。

  1. 看下原来的代码在哪个地方用到python

我发现之前上传的是我有改过的,可能是因为我有部分的地方改过所以导致了用不了

服务器上面是没有安装python3.11的,所以得装一个python3.11

问了一下gpt,直接就是下了源码然后编译,目前来看还算是比较顺利

离线安装的依赖版本和本地的python版本一致

因为我电脑上的是3.12,服务器上需要的是3.11

所以之前本地打包的依赖服务器的安装不了

现在得先在本地启一个3.11的虚拟环境然后在虚拟环境下再来下载这些依赖

先是用scoop安装一下python311

scoop bucket add versions
scoop install versions/python311

然后创建一个虚拟环境

python311 -m venv py311env

然后激活虚拟环境(我用的是git bash)

source py311env/Scripts/activate

之后再下载依赖

mkdir my_pkgs
cd my_pkgs

pip download pandas scikit-learn keras numpy openpyxl matplotlib mysql-connector-python

然后打包成tar,在服务器上解压,再用pip安装

pip3 install --no-index --find-links=. pandas scikit-learn keras numpy openpyxl matplotlib mysql-connector-python

有点尴尬,忘记了电脑是windows,下的依赖只能是windows用不能给linux用

现在是打算用wsl重复一下上面的步骤

wsl上面需要还是手动编译一个python3.11

先要安装一下编译的依赖:

sudo su # 获取权限
sudo apt-get update
# 随文章进行而更新,依赖应该是全的
sudo apt-get install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget

然后就是编译安装

cd /opt
wget https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tgz # 下载python
tar -xzf Python-3.11.9.tgz
cd Python-3.11.9

# 安装编译依赖(如果有权限,可以让管理员预装)
# CentOS: yum groupinstall "Development Tools"
# Debian/Ubuntu: apt-get install build-essential

# 编译并安装到自定义目录(不要覆盖系统 Python 2.7)
sudo ./configure --prefix=/opt/python3.11 --enable-optimizations
sudo make -j$(nproc)    # 编译时间较长
sudo make install

配置环境变量:

# 加入环境变量
echo 'export PATH=/opt/python3.11/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# 验证版本
python3 --version

目前来说还算顺利

后面下载依赖的时候不知道为什么还是下的3.12的版本,可能pip直接安装是这样的?不懂,还是得建一个虚拟环境试下

创建虚拟环境失败,其实之前编译的时候有问题,但是我直接给忽略了,现在看来应该是编译出问题了,感觉wsl好像什么都没有。

问了一个gpt报错,说是因为少了依赖,先下完依赖之后再更新

还是得建一个虚拟环境,不过python的安装倒是顺利,不错。

目前好像是因为说内网的那个linux的版本比较老,一些包不支持,所以得专门下载低版本去安装希望顺利

可以先查看一下支持哪些平台

python3 -m pip debug --verbose

然后对于某一个包可以指定平台下载,例如:

pip download \
  --only-binary=:all: \
  --platform manylinux2014_x86_64 \
  --python-version 311 \
  --implementation cp \
  --abi cp311 \
  Pillow==10.0.1

目前都挺顺利的,但是到了要运行的时候发现内部少了Python 标准库模块 ctypes

应该是编译的问题,问了一下gpt说是服务器少了libffi 开发依赖
所以现在是先让那边的管理员看能不能解决,或者干脆帮忙装一下python3.11,唉。

至少可以先停一会儿了。

后面因为连不了网,他们那边也是没有解决方法,只能是我这里继续。

我查了一下linux版本是Centos7,然后网上找了一个rpm的包

https://ftp.iij.ad.jp/pub/linux/centos-vault/centos/7.7.1908/cr/x86_64/Packages/

https://ftp.iij.ad.jp/pub/linux/centos-vault/centos/7.7.1908/cr/x86_64/Packages/libffi-devel-3.0.13-19.el7.x86_64.rpm

本地安装了一下这个依赖,然后再重新编译,目前貌似没有什么问题,一切顺利

sudo yum install ./*.rpm

装好了之后,重新编译python3之后又运行了一遍脚本,然后补装了一个库,总归是可行了。

之后就是把服务重新启动一下,过一两天看下数据库的数据,如果没有问题的话,这个就解决了,可喜可贺,可喜可贺。

以微调 BERT 进行文本分类为例介绍Google Colab基本使用方式

微调模型的基本流程(以 Transformers 为例)

  1. 准备环境

    • 使用 GPU
    • 安装需要的库(如 transformersdatasetsaccelerate
  2. 加载预训练模型

    • bert-base-uncased, gpt2, llama, chatglm
  3. 准备数据集

    • 本地上传 / 从 Hugging Face 加载 / 自己合成
  4. 设置 Trainer / FineTuning 参数

    • 学习率、epoch、batch size 等
  5. 开始训练(Colab GPU 上)

    • 可以保存权重到 Google Drive
  6. 保存 / 推理 / 导出模型

0. 基本使用

打开colab

url: https://colab.research.google.com/

在导航栏点击file

image-20250701011002698

选择 New notebook in Drive ,后续会保存在你的google drive里

image-20250701012740138

或者在进入网页之后的弹窗里选择 + New notebook

image-20250701011050081

之后会自动创建一个 .ipynb 格式的文件

image-20250701011220403

之后可以在红色框住的地方输入python代码,然后点击左边的黑色开始按钮执行。

例如第一步想要安装一些微调模型必须的python库可以输入

!pip install transformers datasets accelerate

然后点击执行会有如下的反应:

image-20250701011323862

image-20250701011338649

在执行完成之后,原来的开始键旁边会有一个绿色的小勾,提示说运行完成,之后可以在下面查看运行的日志

image-20250701011531432

如果想要隐藏这个日志,可以点击开始键下面的按钮,然后选择第一个 Show/hide output

image-20250701011651038

之后就会将日志进行隐藏,如果想要查看日志,可以再次选择这个选项 Show hidden output

image-20250701011751607


之后想要运行新的python代码可以点击上方的 + Code

image-20250701011955907

点击之后在原来代码框的下方就会出现一个新的代码框

image-20250701012011915

也可以点击 + Text 然后添加一个文本框(markdown格式)作为注释或者对代码的说明

image-20250701012136463

编辑完文字之后点击别处就可以保存,如果想再次编辑只需要双击这个文本框即可

image-20250701012259024

除了在导航栏外,也可以直接将鼠标移动到代码块或者文本块下,会出现两个选项,选择想要的一项即可。

image-20250701012434625

主要代码:

1. 安装库

!pip install transformers>=4.3 datasets accelerate
!pip install --upgrade datasets fsspec

2. 加载预训练模型和 tokenizer

from transformers import AutoTokenizer, AutoModelForSequenceClassification

model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)

3. 加载数据集

from datasets import load_dataset

dataset = load_dataset("imdb")
tokenized = dataset.map(lambda x: tokenizer(x["text"], truncation=True, padding="max_length"), batched=True)
load_dataset("imdb") 中,"imdb" 是 Hugging Face Datasets 库 中的一个 内置数据集名称,表示 IMDB 电影评论数据集,是一个经典的二分类情感分析任务数据集。

4. 使用 Trainer 微调

from transformers import Trainer, TrainingArguments

args = TrainingArguments(
    output_dir="./results",
    per_device_train_batch_size=8,
    per_device_eval_batch_size=8,
    num_train_epochs=2,
    save_steps=500,
    logging_dir='./logs',
    report_to="none",
)

trainer = Trainer(
    model=model,
    args=args,
    train_dataset=tokenized["train"].shuffle().select(range(2000)),  # 小规模训练
    eval_dataset=tokenized["test"].shuffle().select(range(500)),
)

trainer.train()

使用 GPU(Colab 设置)

点击菜单栏「Runtime(运行时) → Change runtime type(更改运行时类型)」,选择 GPU 或 TPU」,训练速度可以大大提高。

数据 & 模型保存

你可以将训练过程中的模型、日志保存在 Google Drive 上:

from google.colab import drive
drive.mount('/content/drive')

# 保存模型
model.save_pretrained("/content/drive/MyDrive/bert_finetuned")
tokenizer.save_pretrained("/content/drive/MyDrive/bert_finetuned")

今天就是搬到学长的出租屋里了。
刚好今天学长也出差,接下来的一周我应该就是一个人在这里。
这几天朋友还在实验室,应该是下午在,这是我去实验室的动力。
等她回家之后,我大概就会在出租屋躺尸,好好整理整理,沉淀沉淀自己。
又是一年暑假,今年感觉自己的心态会平和很多,对很多事情都没有什么看法。我不知道这是不是开始麻木的征兆。其实我还是希望可以多去体验一些东西,但是仔细去看其实还是被一层浅浅的焦虑包裹着。
我也不知道以后会如何,先过好现在吧。
好好活着。

昨天的时候和一个朋友出去玩。是意外的。其实我是高兴的。
晚上天渐渐黑了,海河岸边的一排整齐排列的灯把水面的粼粼染成金属一般的橙色。
我和她就这样沿着这条河慢慢走着。
微风吹来,不似下午那么的热,晚上的风也变得温和,轻轻刮过面颊觉得很舒服。
广场零次的有着跳广场舞的,卖咖啡的,还有垂钓的,也有和我们一样从外面过来只是想来走走的。
不知道晚上的天津是什么味道的,我默默跟在她旁边。有时候她走的比较快,我就跟上,有时候我走的比较快,就向后去找她。有的时候不小心挨到了,鼻尖缭绕着淡淡的香味,不可名状。
我是没有什么感慨的,只是想跟着走在她旁边。
四周不知道为什么随着我们的脚步越来越静,走到头了。周围还是黄色的,灯光打在建筑上,人为的制造出了一种朦胧感。
我们停下,我看了看她,问她接下来去哪。
后来我们回去了。直到现在我才堪堪有种遗憾。
我不是很敢去想让这段意外能一直保持着,或许也是因为逐渐知道这是不可能的。
昨天的下午还有晚上,就像是我枯燥生活意外的被溅到了一滴水,还在的时候没有感觉到什么,当意识到的时候,已经蒸发了。
我幻想过这次会面,很是期待,我又害怕这种期待会让这一会面变得无味。
后来才发现原来是我期待的不够多,就这样让它流过去了。
生活回到从前那样,没有变化。但我好像回不去了。