当前位置: 首页 > news >正文

复试第十一天

深度学习:项目四

项目实例

任务:实现多语言,多风格的电商评论摘要生成。

最重要的tokenize_function(tokenizer, examples)部分:将评论内容转换成模型能理解的指令格式,并转变为token id.

instruction = tokenizer( generate_review_title_prompt_tmp0(examples['review_body']), # 生成指令文本 add_special_tokens=False # 不自动添加特殊token )

tokenizer的作用:将文本转换成模型能处理的数字(token IDs)

generate_review_title_prompt_tmp0函数的作用:这个函数(来自utils.py)会把原始评论包装成带格式的指令。也就是生成系统提示符,能让系统更好的处理输入的数据

这样处理后:带有系统提示符格式的数据被转换成为token id。

同样的方法对review_title部分进行处理

评价指标:BLEU

以上是模型微调阶段,用的是千问模型。

接下来是模型推理,验证阶段(bleu):用训练好的模型(可以是基础模型,也可以是加了LoRA的模型)对测试数据生成评论标题,并计算BLEU分数评估生成质量。

输入:test.jsonl(包含review_body和review_title) ↓ 随机抽取sample_size条数据 ↓ 对每条数据: review_body → 包装成指令 → 模型生成标题 → 得到summary ↓ 保存结果到output.jsonl(新增summary字段) ↓ 计算BLEU分数评估生成质量 ↓ 输出:BLEU-1和BLEU-2分数

面经

1. encoder-only和decoder-only的模型在任务上有啥区别,结构上有啥区别,是怎么完成区分的?

encoder-only(bert为代表):专注于理解语义任务,由于模型可以同时看到上下文的双向信息,它在文本分类、情感分析及语义抽取等需要深层文本理解的场景中表现优异。

Decoder-only(以 GPT、Qwen 为代表):专注于内容生成任务。采用自回归方式,基于已生成的上下文逐个预测下一个 Token,适用于对话系统、文章创作、代码生成等生成式场景。

结构上的核心区别:注意力机制

两者在 Transformer 块的层级结构上相似,最本质的区别在于注意力机制的交互范围:

  • 双向注意力:用于理解

    • 应用在 Encoder-only 结构中。

    • 每一个 Token 在计算时,都可以“看到”序列中前后所有的 Token 信息。

  • 因果掩码注意力:用于预测

    • 应用在 Decoder-only 结构中。

    • 每一个 Token 只能看到其左侧(已出现)的 Token 信息,无法看到右侧(未来)的信息。

2.lora的rank值一般取多少?都能作用在哪些fc上?

rank=8,16,32;作用在QKV和FFN投影矩阵上。

W1=W+▲W,▲W是低秩的,

3.介绍一下在prompt阶段的增强的方法?

  • Prompt 阶段的常见增强方法:

    • CoT(思维链):通过示例引导模型输出“推理步骤”

    • 零样本:插入“让我们一步步思考”引导推理

    • Few-shot:提供 3-5 个标准的“输入-输出”示例

    • Self-Correction(自洽性):生成多个回答并进行投票

C笔试:

1.统计文章内各个符号个数

有一篇文章,共有4行文章,每行有60个字符。要求分别统计出其中英文大写字符、小写字母、数字、空格以及其他字符的个数。

#include <stdio.h> #include<stdlib.h> #include<string.h> int main() { char str[61] ; int daxie=0, xiaoxie=0, nope=0, data=0, other=0; int j = 0; for (int i = 0; i < 4; i++) { gets(str); while (str[j] != '\0') { if (str[j] >= 'A' && str[j] <= 'Z') daxie++; else if (str[j] >= 'a' && str[j] <= 'z') xiaoxie++; else if (str[j] >= '0' && str[j] <= '9') data++; else if (str[j] == ' ') nope++; else other++; j++; } j = 0; } printf_s("大写字母数目是:%d", daxie); return 0; }

2,译码,字符串问题

有一行电文,已按下面规律译成密码:A→Z,a→z,B→Y,b→y,C→X,c→x;即第1个字母变成26个字母,第i个字母变成第(26–i+1)个字母。非字母符号不变。要求编程序将密码译回原文,并输出密码和原文。

#include<stdlib.h> #include<string.h> char sitch(char stm) { if (stm <= 'Z' && stm >= 'A' ) { stm = 'Z' - stm + 'A'; } if (stm <= 'z' && stm >= 'a') { stm = 'z' - stm + 'a'; } return stm; } int main() { char str[100]; gets(str); int i = 0; char str_ch; printf_s("密码是:\n"); while (str[i] != '\0') { printf_s("%c", str[i]); i++; } int j = 0; printf_s("\n"); printf_s("原文是:\n"); while (str[j] != '\0') { if (str[j]<= 'Z' && str[j] >= 'A' || str[j] <= 'z' && str[j] >= 'a') { str_ch = sitch(str[j]); printf_s("%c", str_ch); } else printf_s("%c", str[j]); j++; } return 0; }

3. 循环排队代码,实在不会写

有n个人围成一圈,顺序排号。一个开始数(1到3),凡到3的人退出圈子问最后留下来的是原来第几号的那(要求用指针知识实现)。

int main() { int n; printf_s("请输入人数n:"); scanf_s("%d", n); int* person = (int*)malloc(n * sizeof(int)); int* end = person + n; int count = 0, remain = n; int* p = person; int visited [100]; for (int i = 0; i < n; i++) { visited[i] = 1; } for (int i = 0; i < n; i++) { *(person + i) = i ; } while (remain != 0) { if(visited[j]) } return 0; }

4.写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出。

#include <stdio.h> #include<stdlib.h> #include<string.h> int main() { char a[20], str2[20]; printf("请输入字符串:"); gets(a); int i = 0,j=0; while (a[i] != '\0') { if (a[i] == 'a' || a[i] == 'e' || a[i] == 'i' || a[i] == 'o' || a[i] == 'u' || a[i] == 'A' || a[i] == 'E' || a[i] == 'I' || a[i] == 'O' || a[i] == 'U') { str2[j] = a[i]; printf_s("%c", str2[j]); j++; } i++; } str2[j] = '\0'; return 0; }

算法

动态规划:

从初始状态开始,经过一系列状态转移到达目标状态,求最优解,方案数,概率等。

要求:1.状态转移必须有方向,且不可以成环,2. 状态的个数要在可接受范围内。

背包问题:

http://www.jsqmd.com/news/471586/

相关文章:

  • 【C++】lock_guard 与 unique_lock
  • 别再用串口屏蹲车间了!WPF .NET 8上位机实战:自定义仪表盘+LiveCharts2趋势图+SignalR远程运维,附6个工业级踩坑指南
  • 支付宝立减金回收黑科技!不用消费也能把钱揣进口袋 - 可可收
  • 基于ATP仿真建模的35kV与110kV变压器PT谐振过电压问题研究
  • PHP的多个账号使用同一手机号,收货地址怎么同步?
  • LabVIEW打造超酷液压泵试验台程序:功能全解析
  • 分析2026年江苏口碑不错的液氧、高纯氮、标准气工业气体厂家 - 工业品网
  • 做了8年工业上位机,我开源了这套通用框架!多设备/多协议10分钟快速对接,开箱可商用
  • 电网同步这事儿听着玄乎,其实就像给三相交流电装个节拍器。传统锁相环遇到电压波动就哆嗦,今天咱们聊点硬核的——怎么用d轴电压归一化让这个节拍器稳如老狗
  • 拒绝“实景贴皮感”:2D 角色摄影级实景融合与动态投射工作流
  • 用COMSOL拆解变电站的电场分布:从高压柜到电缆的实战指南
  • 西门子S7 - 1500博图程序在大型生产线中的实战例程分享
  • 北京/上海/深圳/杭州/南京/无锡高端腕表维修科普:品牌故障解析+正规门店指引 - 时光修表匠
  • 光伏储能微电网系统设计与实现
  • 【LLM进阶-RAG】2.切片算法策略
  • 分析初中毕业选学校服务,合肥南亚理工学校性价比高吗 - mypinpai
  • Cursor 自己写 Skill 完整教程
  • 毛囊干细胞源头厂家怎么选择,颐美康值得考虑吗? - 工业推荐榜
  • 汇川ISP500伺服控制器方案解析:从代码到实际应用
  • 篡改人才评估模型的技术漏洞与防御体系——软件测试工程师的伦理使命
  • 虹关、察关、凤山:一条古道串起的徽州春色
  • 分析2026年哈尔滨初高中文化课培训学校,哪家口碑更好 - mypinpai
  • 光伏硅片尺寸测量:Java+YOLO+OpenCV亚像素级检测,精度达0.01mm
  • 最近在研究CST仿真超表面,特别是聚焦和聚焦涡旋的效果,感觉挺有意思的。今天就来分享一下全流程的教学,顺便穿插一些代码和代码分析,希望能帮到有需要的朋友
  • 锅炉控制器项目揭秘:企业级实战经验大分享
  • 仙螺岛:南戴河海上秘境,千米索道赴山海之约
  • Compose 基础 - 重组优化
  • 基于麻雀算法深度优化极限学习机的故障诊断方法(SSA-DELM)
  • 2026年南昌口碑好的养老服务中心盘点,赣洪仁心医养值得关注 - 工业推荐榜
  • Redis的常用功能