一、API 调用
(一)API 密钥配置
在调用大模型 API 时,密钥的正确配置至关重要。最初代码中 headers 里的 "Authorization": "填入token" 是错误的,没有使用实际定义的 actual_token 变量。正确的做法应该是按照 API 要求的认证格式,如常见的 Bearer Token 认证,修改为 "Authorization": f"Bearer {actual_token}"。这一步骤确保了请求能够被 API 服务器正确认证,是成功获取响应的基础。若密钥配置错误,请求会因认证失败而无法获取有效数据。
(二)请求与响应处理
- 请求构造:需要准确设置请求的
url、payload和headers。url指向具体的 API 地址,payload包含模型名称和对话消息等关键信息,headers则携带认证和内容类型等重要头信息。在构造payload时,要确保模型名称、消息内容等符合 API 要求。 - 响应解析:成功获取响应后,要根据响应的结构进行正确解析。代码中使用正则表达式提取大模型返回的 JSON 内容,但如果响应格式与预期不一致,如没有
</think>分隔符或不是预期的 JSON 格式,就会导致解析失败。因此,在代码中添加打印原始响应的日志,有助于排查解析问题。
(三)异常处理
在调用 API 的过程中,可能会遇到各种异常,如网络问题、API 不可用或响应格式错误等。最初代码中的异常处理过于简单,只是捕获所有异常并继续循环,没有提供详细的错误信息。改进后的代码在 try - except 块的 except 部分添加了打印具体异常类型和信息的功能,这有助于快速定位问题,例如是因为密钥错误、网络连接中断还是响应解析失败等原因导致调用失败。
二、模型选择
(一)选择依据
选择合适的模型是实现预期功能的关键。在本次任务中,选择了 qwen - plus 模型,这可能是基于其在语言理解和生成方面的性能,以及对列车班次相关问答任务的适配性。不同的模型在参数规模、擅长领域等方面存在差异,例如有些模型更擅长文本生成,有些则在知识问答方面表现出色。在选择模型时,需要考虑任务的特点,如文本类型、输出要求等。
(二)模型性能评估
在实际使用前,可以通过一些简单的测试用例来评估模型的性能。例如,构造一些典型的列车班次问题,观察模型的回答准确性、流畅性和完整性。同时,还要考虑模型的响应时间和资源消耗,特别是在处理大量数据时,性能较差的模型可能会导致处理速度过慢或占用过多资源。
三、LoRA 微调
(一)LoRA 微调的必要性
虽然当前模型可能在一般问答任务上有一定表现,但对于特定领域(如列车班次信息问答),可能无法达到最优效果。LoRA(Low - Rank Adaptation of Large Language Models)微调可以在不改变预训练模型整体结构的前提下,通过少量的训练数据对模型进行微调,使其更好地适应特定任务。通过 LoRA 微调,可以提高模型在列车班次相关问题上的回答准确性和专业性。
(二)微调流程
- 准备数据:收集和整理与列车班次相关的问答数据,确保数据的质量和多样性。对数据进行标注和预处理,使其符合微调的要求。
- 设置微调参数:包括学习率、训练轮数、批次大小等参数。这些参数的设置会影响微调的效果和速度,需要通过实验进行调整。
- 进行微调:使用 LoRA 方法对选定的模型进行微调,在训练过程中监控模型的性能指标,如准确率、损失值等,以评估微调的效果。
- 评估与优化:微调完成后,使用测试集对微调后的模型进行评估,根据评估结果进一步优化微调参数或调整数据,以获得更好的性能。

被折叠的 条评论
为什么被折叠?



