自学内容网 自学内容网

ai-scientist部署和使用


利用这个框架,并进行后期的人工核查、手工润色、AIGC降重,我成功发表了一篇期刊论文。

学历到底有没有用

写这篇博客的目的不为别的,就是狠狠打脸那些唯学历论的人,给他们上一点科技与狠活。
姜文说过一句话:我们现在的社会,除了科技在上升,其他的没有变化,传承了5000年的吃人文化没那么容易颠覆。

高考的作用

读过县城高中的人都知道,仅一门高中数学,就可以挡住一半青年上大学,有些农村人确实是笨了点,或者不上进不想好,筛掉也就筛了。物化生再挡住一半高中生,所以在中西部地区,那些读不好理工的人,才会去读文科。高考的作用。纯纯是为了的基因筛选,并给优秀的普通家庭孩子一次逆天改名的机会。这条逆天之路,随着大学扩招而灰飞烟灭。大学扩招了,地主家的傻儿子也能上大学了,体制内子弟都能三代四代了,阶级永远固化了,穷人永无翻身之日。普通人如果失去高考,事业斗不过官二代,爱情斗不过富二代。在上海我见过太多有钱人家的子女,从小玩到大,连大专学历都是花钱买的,然后出国读了个水硕,回国当个小管理骑在理科人都上,“外地狗”、“土包子”、“臭本科”、“小镇做题家”都从他们嘴里冒出来。我是一个从小在上海读书的外地人,我住的地方,周围的几个上海房东家子女,5个人中只有一个参加高考,仅是一个二本,要知道上海有10所985/211,每年仅有5万考生,一年有两次高考(春考秋考)!上海高考难度全国倒数第二。但就是这么个环境,我身边的310上海本地人,几乎看不到985/211人,像样的本科生都屈指可数。

论文的作用

如果说高考的作用是让优秀的穷人有一份高新的工作,那么论文的作用就是人才评价的唯一标准。
在国家眼里,人才是红利,人口是负担。本科生不一定是人才,所以需要有一个东西来鉴别什么是人才。
目前国家是以论文评人才,所以很多人都去读研,想进大城市体制内至少要是个研究生。但是读了研究生、博士生,出来就是人才了吗?
我有两个导师,一个刚评上了国家优秀青年,一个是某个管理学协会总理事长,所以我对论文这个东西的评价,算是比较公正。
95%的论文其实一点卵用都没有,对生产根本没有促进和指导作用,在我眼里,除了一区和二区的部分SCI论文,其他的paper的价值甚至不如程序员写的一篇博客。而且近几年不断爆出论文数据造假的新闻,连nature这种顶刊都撤下两篇,更是动摇了论文的地位。但就是这95%的论文,让多少从小到大不学无数之人,成为了人上人,让多少本该属于好孩子的岗位,被这些人抢去,导致国家的竞争力逐渐丧失。读最好的本科,挨最恨的毒打;水最烂的硕士,享惬意的人生。
珍惜你身边的中国前150所毕业的理工科人,他们在替中国负重前行。
高考的翻身作用逐渐趋于0,论文的人才选拔租用逐渐趋于0,给很多人错觉是读书无用论。书还是要读的,无知的代价依然可怕。

就业岗位的性价比
  1. 工作岗位职责模糊的,职责经常变动的大概率是垃圾岗位,这个我在华为遇到了,吃尽了苦头。这种岗位,容易让你干两个人的活拿一个人的钱,容易让你干你不喜欢或不擅长的活。招聘公司不画能力地图,进错部门吃哑巴亏。
  2. 在确定岗位职责后,清楚每个职责的市场价格,并累加到一起作为总包年薪。如果是外企,工资相比国内高一半。(中国劳动在初次分配的占比是25%,发达国家36%以上,北欧瑞士等高福利国家能达到45%),干同样的活拿两倍的钱他不香吗,这个和爱不爱国不沾边,每天一句sir this way神清气爽。
  3. 在自己能力满足要求的情况下,薪资的底线是当地合同面积60平房子的房价中位数除以10年,少于这个价格不去。TMD老子不吃不喝10年都买不起你们这的房子,干鸡毛,回家种地躺平开网店多好啊?

材料准备

  1. AI-scientist项目克隆:https://github.com/SakanaAI/AI-Scientist.git
  2. Anaconda安装:官网地址https://www.anaconda.com/ ,下载最新版并安装,Anaconda可以管理多个版本的python和三方包,所以放心安装最新版。
  3. 海外GPU云服务器:文本采用阿里云国外GPU服务器,显卡型号A10,region首尔,系统Alibaba cloud linux,驱动driver550,cuda12.4,cudnn9.2,价格11.66元/小时,系统盘调成100GB。由于ai-scientist需要使用bfloat16算法,所以必须使用支持 sm_80 或更高架构的 GPU。阿里云的T4显卡和P100显卡过于老旧不支持本项目。本文计划是先创建首尔GPU实例,待环境搭建好后保存系统镜像,再到法兰克福创建共享型GPU实例,价格2元/小时。创建实例时,系统镜像选择公共镜像Alibaba cloud linux最新版,同时在页面下方点击安装驱动、cuda和cudnn。
  4. wildcard账号一个:这是美国虚拟银行卡申请和充值网站。当你创建国外各种ai账号和充值时需要美国银行卡。网址是 https://bewildcard.com。
  5. AWS账号1个:使用wildcard虚拟银行卡注册AWS账号,并向AWS账号充值20美刀以上。写出来的论文会在AWS上自动创建云服务器并做实验,所以论文数据真实有效,绝对没有造假。
  6. OpenRouter秘钥1个:openrouter可以通过一个key访问国外所有ai官网,包括chatgpt、claude、DeepSeek等等。网址是https://openrouter.ai 。注意他访问的是官网,不是某些人搭建的中转网管。使用虚拟银行卡给这个key充值,保证在使用中不欠费。

Ubuntu显卡驱动安装方法(本文不用)

AI-scientist依赖pytorch深度学习框架,pytorch依赖cuda,所以要求服务器必须有显卡,可以是vGPU,安装550驱动和cuda12.1以上版本。
由于阿里云的Debian内核缺少nvidia.ko,导致安装Nvidia显卡驱动后,内核无法调用驱动。令我气愤的是为什么要把这么关键的ko给阉割掉?使用阿里云Ubuntu22系统在安装texlive-full时会卡在98%进度,所以本文也不采用Ubuntu。

# 禁用 nouveau
vim /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau               
options nouveau modeset=0 

# 更新系统驱动
update-initramfs -u
# 重启
reboot

# 下载必要系统包
apt update && apt upgrade -y
apt -y install gcc make 
apt -y install linux-headers-$(uname -r) build-essential libglvnd-dev pkg-config

# 查看显卡型号
lspci|grep NVIDIA

# 下载对应型号显卡驱动。网址 https://www.nvidia.cn/drivers
# T4显卡驱动安装如下
cd /tmp && wget https://cn.download.nvidia.com/tesla/560.35.03/NVIDIA-Linux-x86_64-560.35.03.run
bash NVIDIA-Linux-x86_64-560.35.03.run

本文开始:baseline基线环境准备

验证显卡和驱动版本

实例创建后,会自动运行一个脚本,安装driver、cuda、cudnn,安装完成后系统会重启,耗时10分钟。
待系统ready,ssh登录进行基线配置

nvidia-smi
系统包安装

Alibaba cloud linux安装texlive,时间很长,占用15GB磁盘空间。

# 安装pdflatex,时间会很长
dnf update -y
reboot
dnf install -y texlive
安装Anaconda3
# 工作目录
cd /opt

# linux安装Anaconda
wget https://mirrors.ustc.edu.cn/anaconda/archive/Anaconda3-2024.06-1-Linux-x86_64.sh
bash Anaconda3-2024.06-1-Linux-x86_64.sh

# 第一步,阅读协议,一直按空格,最后输入yes
# 第二步,输入安装位置,/opt/anaconda3
# 第三步,开机自启动,输入no
创建conda虚拟环境
# 创建一个conda虚拟环境(conda虚拟环境只保存在Anaconda安装目录下,和venv不一样)
# 启动conda
cd /opt/
source /opt/anaconda3/bin/activate

# 创建虚拟环境
conda create -n ai_scientist python=3.11

# 激活虚拟环境
conda activate ai_scientist
安装依赖
# Install pypi requirements
cd /opt/

# 克隆项目
dnf install -y git
git clone https://github.com/SakanaAI/AI-Scientist.git
cd AI-Scientist/
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple

NanoGPT数据训练

接下来我们需要训练一个本地小模型NanoGPT,来模拟一个真人科学家。我们所有的选题、撰写、实验、验证步骤都由这个虚拟科学家来完成。

下载训练所需数据
# 进入项目
cd /opt/AI-Scientist/

# 准备 NanoGPT 数据
python data/enwik8/prepare.py
python data/shakespeare_char/prepare.py  # 这一步需要科学上网,所以本文用海外服务器
python data/text8/prepare.py
开始训练,耗时取决于你的显卡
# Set up NanoGPT baseline run
# NOTE: YOU MUST FIRST RUN THE PREPARE SCRIPTS ABOVE!
# 创建基线
cd /opt/AI-Scientist/
cd templates/nanoGPT && python experiment.py --out_dir run_0 && python plot.py

# 创建轻量级基线,用于健康检查
cd /opt/AI-Scientist/
cd templates/nanoGPT_lite && python experiment.py --out_dir run_0 && python plot.py
训练2D Diffusion

安装npeet

cd /opt/
git clone https://github.com/gregversteeg/NPEET.git
cd NPEET
pip install .
pip install scikit-learn

训练2D模型

cd /opt/AI-Scientist/
cd templates/2d_diffusion && python experiment.py --out_dir run_0 && python plot.py
训练Grokking
cd /opt/AI-Scientist/

# Set up Grokking
pip install einops

# Set up Grokking baseline run
cd templates/grokking && python experiment.py --out_dir run_0 && python plot.py

开始使用AI-scientist

论文选题
# 激活虚拟环境
cd /opt/
source /opt/anaconda3/bin/activate
conda activate ai_scientist
cd /opt/AI-Scientist/
使用不同模型生成论文选题

官方文档给出的案例,使用了gpt4或者claude 3.5,需要你购买Openai的key或Anthropic的key。

# 使用gpt4模型生成两个论文题目(idea)
python launch_scientist.py --model "gpt-4o-2024-05-13" --experiment nanoGPT_lite --num-ideas 2

# 或者使用claude 3.5生成两个论文题目(claude3.5不如gpt4性能好)
python launch_scientist.py --model "claude-3-5-sonnet-20240620" --experiment nanoGPT_lite --num-ideas 2

官方的这两个命令用的是lite模型,而我们训练了四个模型,分别是NanoGPT、NanoGPT_lite、2D、Grokking,其中NanoGPT最强大,所以可以把命令中nanoGPT_lite替换成nanoGPT。
本文采用的是OpenRouter,官方文档并没有给出使用命令,所以需要查看一下

(ai_scientist) [root@iZmj7hrma AI-Scientist]# python launch_scientist.py -h
usage: launch_scientist.py [-h] [--skip-idea-generation] [--skip-novelty-check] [--experiment EXPERIMENT]
                           [--model {claude-3-5-sonnet-20240620,gpt-4o-2024-05-13,deepseek-coder-v2-0724,llama3.1-405b,bedrock/anthropic.claude-3-sonnet-20240229-v1:0,bedrock/anthropic.claude-3-5-sonnet-20240620-v1:0,bedrock/anthropic.claude-3-haiku-20240307-v1:0,bedrock/anthropic.claude-3-opus-20240229-v1:0vertex_ai/claude-3-opus@20240229,vertex_ai/claude-3-5-sonnet@20240620,vertex_ai/claude-3-sonnet@20240229,vertex_ai/claude-3-haiku@20240307}]
                           [--writeup {latex}] [--parallel PARALLEL] [--improvement] [--gpus GPUS] [--num-ideas NUM_IDEAS]

Run AI scientist experiments

options:
  -h, --help            show this help message and exit
  --skip-idea-generation
                        Skip idea generation and load existing ideas
  --skip-novelty-check  Skip novelty check and use existing ideas
  --experiment EXPERIMENT
                        Experiment to run AI Scientist on.
  --model {claude-3-5-sonnet-20240620,gpt-4o-2024-05-13,deepseek-coder-v2-0724,llama3.1-405b,bedrock/anthropic.claude-3-sonnet-20240229-v1:0,bedrock/anthropic.claude-3-5-sonnet-20240620-v1:0,bedrock/anthropic.claude-3-haiku-20240307-v1:0,bedrock/anthropic.claude-3-opus-20240229-v1:0vertex_ai/claude-3-opus@20240229,vertex_ai/claude-3-5-sonnet@20240620,vertex_ai/claude-3-sonnet@20240229,vertex_ai/claude-3-haiku@20240307}
                        Model to use for AI Scientist.
  --writeup {latex}     What format to use for writeup
  --parallel PARALLEL   Number of parallel processes to run. 0 for sequential execution.
  --improvement         Improve based on reviews.
  --gpus GPUS           Comma-separated list of GPU IDs to use (e.g., '0,1,2'). If not specified, all available GPUs will be used.
  --num-ideas NUM_IDEAS
                        Number of ideas to generate

官方文档中写到
OpenRouter API (Llama3.1)
By default, this uses the OPENROUTER_API_KEY environment variable.
所以正确的模型应该是llama3.1-405b

key环境变量

在材料准备中,我们在OpenRouter上创建了一个key,并用美国银行卡进行了充值,现在我们需要将key变成系统环境变量

# 根据自己实际情况,将引号中内容替换成自己的key,下方的key是软件随机生成的假key。
export OPENROUTER_API_KEY="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"

官方项目还支持openai、claude的官方key,以及亚马逊、谷歌提供的claude key。详情见:
https://github.com/SakanaAI/AI-Scientist/blob/main/README.md

根据key和之前调查模型的结果,我们可以模拟出OpenRouter可用的命令

python launch_scientist.py --model "llama3.1-405b" --experiment nanoGPT --num-ideas 1

这里num-ideas调成1可以避免触及OpenRouter每分钟消耗token的峰值限制。

论文生成

如图,进过显卡一顿输出,得到几个选题。
在这里插入图片描述

  1. Exploring Tokenization Schemes for Efficient and Effective Transformer Models
  2. The Impact of Tokenization Granularity on Transformer Model Performance and Interpretability
  3. Exploring the Impact of Initialization Strategies on Transformer Model Performance
    论文题目直接选择最后生成的那个,因为AI会从近三年论文中检索热门话题,所以迭代次数越多,选题越优秀。可以看到本文生成的选题3重复出现,说明已经稳定可用。这是一个研究A影响B的选题,非常容易开展实验,nice。

另外,图中还显示Semantic Scholar调用太频繁,触及每分钟流量限制。实际上是我们没有S2 key。如果你有学术邮箱或者公司邮箱,则可以申请一个S2 key来加速。申请地址:https://www.semanticscholar.org/product/api#api-key-form。
这个S2 key必须要有,否则程序会一直报错,运行不下去。
论文生成时间很长。一直等到出论文pdf为止
后期的论文审核,可以用官方文档给的代码,不赘述。


原文地址:https://blog.csdn.net/qq_43626147/article/details/142717809

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!