如何在Hugging Face中为Bloom模型传入系统消息与文件提示词
适配Bloom模型实现OpenAI双输入逻辑方案
OpenAI的process_gpt函数通过ChatCompletion接口支持系统消息(system_msg)和用户文件提示词(file_prompt)的双输入结构,但Bloom是纯文本生成模型,无内置角色消息机制,需通过手动拼接提示词实现等价逻辑,具体方案如下:
核心思路
Bloom模型依赖纯文本提示进行续写,需将OpenAI的双角色消息转化为单一提示文本,明确告知模型系统指令与用户需求。
实现步骤
- 调整函数参数:让
process_bloom接收system_msg和file_prompt两个输入参数 - 拼接提示文本:将系统指令与用户提示词组合成符合生成逻辑的文本,示例格式可参考:
{system_msg} 用户输入:{file_prompt} 请生成可解析为知识图谱的输出: - 修正异常处理:修复原代码中异常打印和错误返回的语法问题
修改后的完整代码
def process_bloom(system_msg, file_prompt): try: # 拼接双输入为Bloom可识别的提示文本 prompt = f"{system_msg}\n\n用户输入:{file_prompt}\n\n请生成可解析为知识图谱的输出:" generator = pipeline('text-generation', model=model, tokenizer=tokenizer) # 与OpenAI逻辑对齐,设置temperature=0保证输出确定性 nlp_results = generator( prompt, max_length=2000, temperature=0, truncation=True ) nlp_results = nlp_results[0]['generated_text'] # 可选:提取生成结果中对应输出部分(若提示格式导致前缀包含输入文本) # nlp_results = nlp_results.split("请生成可解析为知识图谱的输出:")[-1].strip() return nlp_results except Exception as e: print(f'Error processing bloom: {e}') return '{"error": "Failed to process bloom"}'
补充说明
- 提示文本格式可根据Bloom模型的微调习惯调整,确保模型能正确识别系统指令与用户需求的边界
- 生成参数(如
max_length、temperature)可与OpenAI的设置对齐,保持输出风格一致 - 若生成结果包含提示前缀,可通过字符串分割提取纯输出内容
内容的提问来源于stack exchange,提问作者mchd
相关产品推荐
相关产品推荐

