prompt课后作业 #192
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: HswOAuth/llm_course#192
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
【基础】申请国内线上大模型的apikey并进行调用
这里我选择调用的是百度千帆的ERNIE-Speed-Pro-128K模型。
百度千帆大模型
申请API
在应用接入中创建应用,选择对应的模型并创建应用获得API。
查看使用文档
写调用文件
阅读文档后,按格式改写模型输入:
模型调用
由于调用文件导入了外部库,所以我们要先进行安装:
安装完成后对调用文件进行编译:
结果如下,可以看到成功进行了APIKey的调用并输出了正确结果。
【进阶】使用中文数据微调code-llama,并测试效果
数据准备
本次微调使用的数据集:Chinese_SQL_Content
使用如下命令将数据下载到/code/dataset/datasets/sql_datasets2目录下:
huggingface-cli download jtjt520j/CSpider_sql_create_context --repo-type dataset --revision main --local-dir-use-symlinks False --local-dir /code/dataset/datasets/sql_datasets2
这里我本来想下载到dataset/datasets/sql_datasets2的,但是这个目录我不晓得为什么不能编辑。
算法准备
准备好数据集后,我们要在对应的训练算法(llama2_7b_chat_qlora_sql_e3_copy.py)中将数据集的路径也做对应修改。
模型微调
实验使用二机8卡进行,确定一台主机的IP作为master节点,这里我的主节点IP为10.244.174.187。
确定主节点后,分别使用如下命令进行微调:
注意:这里的--work-dir参数选择了训练检查点存储的位置:
NODE 1:
NODE 2:
训练ing...
训练完成。
训练后获得的模型:xtuner-homeworkdir/iter_271.pth
模型测试
模型转换
可以看到在/code目录下出现了/iter_271_hf_homework目录。
测试文件准备
对在final_test.py文件中的prompt做对应修改:
对微调后模型的位置做对应修改:
模型测试
测试1:
可以看到微调前后的模型都给出了正确答案,可能是问题太简单了,再换一个难一点的看看。
测试2:
test文件:
测试效果:
微调前:
CREATE TABLE employee (name VARCHAR, salary VARCHAR, department_id VARCHAR), CREATE TABLE department (num_employees VARCHAR, name VARCHAR, department_id VARCHAR)
微调后:
SELECT name , num_employees FROM department JOIN management ON department.department_id = management.department_id WHERE management.temporary_acting = "是"
正确答案:SELECT T1.name , T1.num_employees FROM department AS T1 JOIN management AS T2 ON T1.department_id = T2.department_id WHERE T2.temporary_acting = '是'
可以看到,很明显,训练后的模型得到的答案更接近正确答案(但是还是有点不一样,那个T1、T2我不知道是干嘛的,除了这个都差不多),而且会说中文了,证明我们使用中文数据集的微调是有效的。