--- license: apache-2.0 base_model: - Qwen/Qwen3-14B pipeline_tag: text-generation library_name: transformers --- # Light-IF-14B
Light-IF-32B

🤗 Hugging Face   |    📑 Paper Link    |    📑 Blog    |    📑 Github    |    📑 SuperCLUE-CPIF   
## Evaluation |Model|SuperClue|IFEval|CFBench|IFBench| | ---- | ---- | ---- | ---- | ---- | |Qwen3-14B|0.227|0.898|0.827|0.422| |Qwen3-32B|0.234|0.877|0.823|0.384| |Qwen3-235B-A22B|0.244|0.882|0.834|0.423| |Qwen3-235B-A22B-Thinking-2507|0.434|0.916|0.843|0.475| |DeepSeek-R1-0528|0.436|0.863|0.827|0.415| |Doubao-seed-1-6-thinking-250615|0.362|0.832|0.82|0.477| |Doubao-seed-1-6-thinking-250715|0.345|0.856|0.84|0.366| |ChatGPT-4o-latest|0.260|0.836|0.807|0.365| |Deepseek-v3-250324|0.306|0.859|0.833|0.405| |Doubao-1.5-pro-32k-250115|0.285|0.889|0.797|0.375| |Kimi-K2|0.227|0.921|0.820|0.395| |GLM-4.5|0.395|0.893|0.833|0.466| | [**Light-IF-14B (ours)** 🤗](https://huggingface.co/qihoo360/Light-IF-14B) |**0.589**|**0.962**|**0.833**|**0.697**| ## SuperCLUE-CPIF In the latest SuperCLUE-CPIF evaluation, Light-IF-14B (shown as 360zhinao3-o1.5 in the figure below) reached the domestic **SOTA**, outperforming **ERNIE-X1.1** and **DeepSeek-V3.2-Exp-Thinking**. SuperCLUE-CPIF (Chinese Precise Instruction Following) is a benchmark designed to assess how well large language models (LLMs) can accurately follow complex, multi-constraint instructions in Chinese.

## Introduction **Light-IF-14B** is the most powerful 14B instruction-following model we have open-sourced, even outperforming Light-IF-32B. This remarkable performance is largely attributed to our carefully designed curriculum learning strategy. During the SFT stage, we increased instruction difficulty; in the two-stage reinforcement learning phase, we introduced even more complex instructions. These improvements played a critical role in further boosting the model's capabilities.

## Quickstart The following contains a code snippet illustrating how to use the model generate content based on given inputs. ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "qihoo360/Light-IF-14B" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto" ) prompt = "帮我写一份国庆节旅游攻略,要求有8个主题,每个主题的小标题用【】显示。每个主题不少于2句,不超过5句(不包含主题)。整个攻略一共是20行(以单个换行符分割,20行不包括主题)。整个攻略不超过300字。" messages = [ {"role": "user", "content": prompt} ] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, enable_thinking=True ) model_inputs = tokenizer([text], return_tensors="pt").to(model.device) generated_ids = model.generate( **model_inputs, max_new_tokens=32768 ) output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist() # parsing thinking content try: # rindex finding 151668 () index = len(output_ids) - output_ids[::-1].index(151668) except ValueError: index = 0 thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True).strip("\n") content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip("\n") print("thinking content:", thinking_content) print("content:", content) ``` **thinking content:**
好的,我现在需要帮用户写一份国庆节旅游攻略,满足几个具体要求。首先,需要8个主题,每个主题的小标题用【】显示。然后每个主题的内容要有2到5句(不包含主题)。整个攻略一共20行,用单个换行符分隔,20行不包括主题。还要不超过300字。 首先,我需要确定国庆节常见的旅游主题,比如景点推荐、美食、交通、住宿、注意事项等等。然后每个主题下要有2-5句内容。接下来,计算总行数。8个主题,每个主题可能包含多少行?需要总行数20行,所以每个主题大约2-3行? 但每个主题的小标题是单独一行吗?比如【主题一】作为一行,然后主题内容行数。所以总行数包括主题行吗?用户说“20行(以单个换行符分割,20行不包括主题)”。可能是指不包括主题的小标题行?需要确认。可能用户的意思是整个攻略中,除了主题小标题之外的内容行是20行?或者整个攻略总行数是20行,其中主题小标题算行吗?可能需要仔细分析。 比如,用户说“整个攻略一共是20行(以单个换行符分割,20行不包括主题)”,所以主题的小标题不计入这20行。那需要主题下的内容行数总和是20行? 然后每个主题需要2-5句,也就是每个主题的内容行数是2-5行?需要8个主题,所以总行数是8个主题各自的内容行数之和等于20行。需要分配每个主题的内容行数。比如,有些主题用3行,有些用2行? 比如,假设大部分主题用2行,可能需要8个主题×2行=16行,不够20行,所以需要部分主题用3行。比如4个主题用3行,4个用2行?这样总行数4×3+4×2=12+8=20行。这样分配可能更合理。 接下来,确定主题: 可能的主题: 1. 【热门景点】 2. 【特色美食】 3. 【交通推荐】 4. 【住宿建议】 5. 【亲子活动】 6. 【摄影打卡】 7. 【购物优惠】 8. 【安全提示】 然后每个主题的内容需要2-5句,不超过300字。现在需要构造每个主题的内容行。 例如: 主题1:热门景点。可能的内容行: - 长城、故宫等经典景点人流量大,建议提前预约。 - 选择早班或错峰出行更省时。 这样是2行。 主题2:特色美食。可能: - 北京烤鸭、老北京炸酱面是必尝美食。 - 居庸关长城脚下的农家菜也别有风味。 这样2行? 但可能需要调整行数。比如主题2用3行? 需要总行数20行,8个主题,每个主题的内容行数加起来20行。比如: 假设: 主题1:3行(这样总行数开始是3) 主题2:3行 → 6 主题3:3 →9 主题4:3→12 主题5:3→15 主题6:2→17 主题7:2→19 主题8:1→20?不行,每个主题需要至少2句,即至少2行?用户说每个主题不少于2句,不超过5句(不包含主题)。所以每个主题的内容行数至少2行,最多5行。所以主题8必须至少2行,所以前面可能调整: 比如主题1-6各3行,主题7-8各2行?这样总行数:6×3 +2×2=18+4=22,超过了20,需要调整。 比如主题1-5各3行,主题6-8各(20-5×3)=5行?不,这样可能复杂。另一种分配: 需要总行数20行,8个主题,每个主题2-5行。可能的组合: 比如: 主题行数分布:3,3,3,3,2,2,2,3 →总和是3×5+2×3+3=15+6+3=24?不对,可能需要重新计算。 另一种方式,每个主题的行数: 假设5个主题用3行,3个主题用2行。总行数5×3+3×2=15+6=21,接近20,差1行。所以可能调整其中一个主题用2行,其他4个用3行,3个用2行? 比如:4个主题用3行,4个主题用2行?总行数4×3+4×2=12+8=20行。完美。 这样安排:4个主题3行,4个主题2行。 现在需要确定主题内容: 比如: 主题1:热门景点(3行) 行1:长城、故宫等经典景点人流量大,建议提前预约。 行2:选择早班或错峰出行更省时。 行3:周边小众景点如慕田峪长城人少景美。 这样3行。 主题2:特色美食(3行) 行1:北京烤鸭、老北京炸酱面是必尝美食。 行2:护城河边的胡同小吃摊位提供地道滋味。 行3:注意部分餐厅需提前订位。 3行? 主题3:交通推荐(3行) 行1:地铁是出行首选,国庆期间加密班次。 行2:机场快线直达核心景区,节省时间。 行3:共享单车覆盖主要景点,适合短途。 3行。 主题4:住宿建议(3行) 行1:市中心酒店价格较高,建议提前两周预订。 行2:郊区民宿性价比高,还能体验当地文化。 行3:注意查看住宿的防疫要求。 3行。 然后剩下的4个主题用2行: 主题5:亲子活动(2行) 行1:儿童乐园、科技馆有专门国庆活动。 行2:家长可参与亲子手工课程,增进互动。 主题6:摄影打卡(2行) 行1:天安门广场、国家大剧院是热门取景点。 行2:黄昏时分光线柔和,更容易拍出大片。 主题7:购物优惠(2行) 行1:大型商圈有满减活动,适合囤货。 行2:景区周边小店可淘特色纪念品。 主题8:安全提示(2行) 行1:注意保管随身物品,避免人流拥挤时丢失。 行2:备好常用药品,应对突发小状况。 现在检查总行数: 主题1:3行 主题2:3行 →6 主题3:3→9 主题4:3→12 主题5:2→14 主题6:2→16 主题7:2→18 主题8:2→20行。刚好20行,符合要求。 接下来检查每个主题的句子数是否符合2-5句(不包含主题)。每个主题的内容行数即句子数吗?可能需要调整句子是否完整,每个行是一句话吗?是的,用户可能认为每行是句子。所以每个主题的内容行数等于句子数吗? 比如主题1的3行是3个句子?这样主题1有3句,符合2-5句。 现在需要确保总字数不超过300字。 现在开始写具体内容,计算字数: 主题1: 1. 长城、故宫等经典景点人流量大,建议提前预约。(约25字) 2. 选择早班或错峰出行更省时。(约16字) 3. 周边小众景点如慕田峪长城人少景美。(约20字)→总约25+16+20=61字 主题2: 1. 北京烤鸭、老北京炸酱面是必尝美食。(约18字) 2. 护城河边的胡同小吃摊位提供地道滋味。(约19字) 3. 注意部分餐厅需提前订位。(约12字)→总约18+19+12=49字 主题3: 1. 地铁是出行首选,国庆期间加密班次。(约17字) 2. 机场快线直达核心景区,节省时间。(约16字) 3. 共享单车覆盖主要景点,适合短途。(约16字)→总17+16+16=49字 主题4: 1. 市中心酒店价格较高,建议提前两周预订。(约20字) 2. 郊区民宿性价比高,还能体验当地文化。(约21字) 3. 注意查看住宿的防疫要求。(约13字)→总20+21+13=54字 主题5: 1. 儿童乐园、科技馆有专门国庆活动。(约17字) 2. 家长可参与亲子手工课程,增进互动。(约16字)→33字 主题6: 1. 天安门广场、国家大剧院是热门取景点。(约17字) 2. 黄昏时分光线柔和,更容易拍出大片。(约16字)→33字 主题7: 1. 大型商圈有满减活动,适合囤货。(约15字) 2. 景区周边小店可淘特色纪念品。(约14字)→29字 主题8: 1. 注意保管随身物品,避免人流拥挤时丢失。(约20字) 2. 备好常用药品,应对突发小状况。(约14字)→34字 现在总字数:61+49+49+54+33+33+29+34=392字?超过了300字,不符合要求。 需要调整,减少字数。可能需要缩短句子。 比如主题1的第3句:“周边小众景点如慕田峪人少景美。” 这样减少“长城”两字?或者调整句子结构。 需要总字数不超过300,所以需要缩短每个主题的内容。 可能调整如下: 主题1: 1. 长城、故宫人流量大,建议提前预约。 2. 早班或错峰出行更省时。 3. 慕田峪等小景点人少景美。 这样3行,字数约:18+13+13=44字? 主题2: 1. 北京烤鸭是必尝美食。 2. 胡同小吃摊位有地道滋味。 3. 部分餐厅需提前订位。 3行,约:9+11+8=28字? 主题3: 1. 地铁是出行首选,国庆加密班次。 2. 机场快线直达景区,节省时间。 3. 共享单车覆盖景点,方便短途。 3行,约:16+15+12=43字? 主题4: 1. 市中心酒店价格高,建议提前预订。 2. 郊区民宿性价比高,体验当地文化。 3. 注意查看防疫要求。 3行,约:16+18+8=42字? 主题5: 1. 儿童乐园、科技馆有国庆活动。 2. 家长可参与亲子课程,增进互动。 2行,约:14+13=27字? 主题6: 1. 天安门广场、国家大剧院是热门景点。 2. 黄昏光线柔和,适合拍照。 2行,约:17+10=27字? 主题7: 1. 大型商圈有满减,适合购物。 2. 景区小店可淘纪念品。 2行,约:10+11=21字? 主题8: 1. 注意保管物品,避免丢失。 2. 备好常用药品应对突发状况。 2行,约:12+12=24字? 现在总字数: 主题1:44 主题2:28 主题3:43 主题4:42 主题5:27 主题6:27 主题7:21 主题8:24 →44+28=72, +43=115, +42=157, +27=184, +27=211, +21=232, +24=256字,符合300以内。 现在需要调整句子更简短,确保每个主题内容符合要求。 现在具体写: 【热门景点】 长城、故宫人流量大,建议提前预约。 早班或错峰出行更省时。 慕田峪等小景点人少景美。 (3行) 【特色美食】 北京烤鸭是必尝美食。 胡同小吃摊位有地道滋味。 部分餐厅需提前订位。 (3行) 【交通推荐】 地铁是出行首选,国庆加密班次。 机场快线直达景区,节省时间。 共享单车覆盖景点,方便短途。 (3行) 【住宿建议】 市中心酒店价格高,建议提前预订。 郊区民宿性价比高,体验当地文化。 注意查看防疫要求。 (3行) 【亲子活动】 儿童乐园、科技馆有国庆活动。 家长可参与亲子课程,增进互动。 (2行)→这里之前是2行?但需要主题行数是2行吗?前面分配是主题5用2行,是的。 【摄影打卡】 天安门广场、国家大剧院是热门景点。 黄昏光线柔和,适合拍照。 (2行) 【购物优惠】 大型商圈有满减,适合购物。 景区小店可淘纪念品。 (2行) 【安全提示】 注意保管物品,避免丢失。 备好常用药品应对突发状况。 (2行) 现在检查总行数: 主题小标题行不算,内容行数: 主题1:3行 →行1-3 主题2:3 →4-6 主题3:3→7-9 主题4:3→10-12 主题5:2→13-14 主题6:2→15-16 主题7:2→17-18 主题8:2→19-20 刚好20行?是的。现在检查每个主题的句子数是否符合2-5句。每个主题的内容行数是: 主题1:3句(符合) 主题2:3句(符合) 主题3:3句(符合) 主题4:3句(符合) 主题5:2句(符合) 主题6:2句(符合) 主题7:2句(符合) 主题8:2句(符合) 这样满足每个主题不少于2句,不超过5句。 现在检查总字数是否不超过300字。之前估算大约256字,符合要求。 可能需要调整部分句子,比如“国庆加密班次”是否通顺?“地铁是出行首选,国庆加密班次。” 这样没问题。 现在再检查: 主题1: 1. 长城、故宫人流量大,建议提前预约。(25字?可能更短) 可能需要更简短的句子: 比如“长城、故宫人流量大,需预约。” 这样更简短? 调整后: 主题1: 长城、故宫人流量大,需预约。 早班或错峰出行更省时。 慕田峪等小景点人少景美。 这样字数更少,总字数会减少。 可能这样调整: 主题1: 1. 长城、故宫人流量大,需预约。(16字) 2. 早班或错峰出行更省时。(13字) 3. 慕田峪等小景点人少景美。(15字)→总44字? 可能这样更合适。 现在最终调整: 【热门景点】 长城、故宫人流量大,需预约。 早班或错峰出行更省时。 慕田峪等小景点人少景美。 【特色美食】 北京烤鸭是必尝美食。 胡同小吃摊位有地道滋味。 部分餐厅需提前订位。 【交通推荐】 地铁是出行首选,国庆加密班次。 机场快线直达景区,节省时间。 共享单车覆盖景点,方便短途。 【住宿建议】 市中心酒店价格高,建议提前预订。 郊区民宿性价比高,体验当地文化。 注意查看防疫要求。 【亲子活动】 儿童乐园、科技馆有国庆活动。 家长可参与亲子课程,增进互动。 【摄影打卡】 天安门广场、国家大剧院是热门景点。 黄昏光线柔和,适合拍照。 【购物优惠】 大型商圈有满减,适合购物。 景区小店可淘纪念品。 【安全提示】 注意保管物品,避免丢失。 备好常用药品应对突发状况。 现在检查行数是否20行: 每个主题的内容行: 主题1:3行 主题2:3行 →累计6 主题3:3→9 主题4:3→12 主题5:2→14 主题6:2→16 主题7:2→18 主题8:2→20 是的,刚好20行。 现在检查字数: 大致估算: 主题1: 16+13+15=44 主题2: 9+11+8=28(北京烤鸭是必尝美食→9字?可能需要重新计算字数。) 可能我之前估算方式不太准确,但总字数应该在300以内。例如: 每个行的大致字数: 主题1: 1. 长城、故宫人流量大,需预约。→17字(长城、2,故宫2,人流量大4,需预约3→17?) 可能更准确的方式是数每个句子的字数: 例如: 1. 长城、故宫人流量大,需预约。→17字 2. 早班或错峰出行更省时。→13字 3. 慕田峪等小景点人少景美。→14字(慕田峪等小景点人少景美:慕田峪3,等1,小景点3,人少2,景美2→3+1+3+2+2=11?可能我数的方式有问题,但大概总字数不会超过300。) 不管怎样,现在需要确保总字数不超过300。可能现在这样写是符合要求的。 现在确认: 所有内容行: 行1:长城、故宫人流量大,需预约。 行2:早班或错峰出行更省时。 行3:慕田峪等小景点人少景美。 行4:北京烤鸭是必尝美食。 行5:胡同小吃摊位有地道滋味。 行6:部分餐厅需提前订位。 行7:地铁是出行首选,国庆加密班次。 行8:机场快线直达景区,节省时间。 行9:共享单车覆盖景点,方便短途。 行10:市中心酒店价格高,建议提前预订。 行11:郊区民宿性价比高,体验当地文化。 行12:注意查看防疫要求。 行13:儿童乐园、科技馆有国庆活动。 行14:家长可参与亲子课程,增进互动。 行15:天安门广场、国家大剧院是热门景点。 行16:黄昏光线柔和,适合拍照。 行17:大型商圈有满减,适合购物。 行18:景区小店可淘纪念品。 行19:注意保管物品,避免丢失。 行20:备好常用药品应对突发状况。 现在数一下总字数: 行1:17 行2:13 →30 行3:14→44 行4:9→53(北京烤鸭是必尝美食→9字?“北京烤鸭是必尝美食”共9字?可能需要重新数: “北京烤鸭是必尝美食”→北京(2)烤鸭(2)是(1)必尝(2)美食(2)→2+2+1+2+2=9? 行5:“胡同小吃摊位有地道滋味。”→胡同(2)小吃(2)摊位(2)有(1)地道(2)滋味(2)→2+2+2+1+2+2?不,句子是“胡同小吃摊位有地道滋味。” 共11字? 可能我之前的方法不太对,但无论如何,总字数大概在20行×平均15字=300字左右?需要更准确计算吗? 可能现在不需要精确到每个字,只要不超过300即可。根据之前的调整,应该没问题。 现在确认每个主题的小标题用【】显示,所以最终的攻略结构是: 【热门景点】 长城、故宫人流量大,需预约。 早班或错峰出行更省时。 慕田峪等小景点人少景美。 【特色美食】 北京烤鸭是必尝美食。 胡同小吃摊位有地道滋味。 部分餐厅需提前订位。 【交通推荐】 地铁是出行首选,国庆加密班次。 机场快线直达景区,节省时间。 共享单车覆盖景点,方便短途。 【住宿建议】 市中心酒店价格高,建议提前预订。 郊区民宿性价比高,体验当地文化。 注意查看防疫要求。 【亲子活动】 儿童乐园、科技馆有国庆活动。 家长可参与亲子课程,增进互动。 【摄影打卡】 天安门广场、国家大剧院是热门景点。 黄昏光线柔和,适合拍照。 【购物优惠】 大型商圈有满减,适合购物。 景区小店可淘纪念品。 【安全提示】 注意保管物品,避免丢失。 备好常用药品应对突发状况。 现在检查是否符合所有要求: - 8个主题,小标题用【】显示:是。 - 每个主题不少于2句,不超过5句:每个主题的内容行数是3或2,符合。 - 整个攻略一共20行(不包括主题):是的,20行。 - 不超过300字:大概估算: 行1-3:主题1的3行,约17+13+14=44字 行4-6:主题2的3行,约9+11+10=30字(假设部分餐厅需提前订位→10字) 行7-9:主题3的3行,约16+12+12=40字(地铁是出行首选,国庆加密班次→16字?可能需要更准确:地铁是出行首选,国庆加密班次→14字?) 不管怎样,总字数大概在44+30+40+40+30+30+20+20=244字?应该远低于300,符合要求。 现在可能需要调整部分句子,使更流畅。 比如主题4的“注意查看防疫要求。” 是一句,没问题。 主题7的“大型商圈有满减,适合购物。” 是一句。 现在确认所有内容符合要求,没有问题。 这样应该满足用户的所有要求了。
**content:**
【热门景点】 长城、故宫人流量大,需预约。 早班或错峰出行更省时。 慕田峪等小景点人少景美。 【特色美食】 北京烤鸭是必尝美食。 胡同小吃摊位有地道滋味。 部分餐厅需提前订位。 【交通推荐】 地铁是出行首选,国庆加密班次。 机场快线直达景区,节省时间。 共享单车覆盖景点,方便短途。 【住宿建议】 市中心酒店价格高,建议提前预订。 郊区民宿性价比高,体验当地文化。 注意查看防疫要求。 【亲子活动】 儿童乐园、科技馆有国庆活动。 家长可参与亲子课程,增进互动。 【摄影打卡】 天安门广场、国家大剧院是热门景点。 黄昏光线柔和,适合拍照。 【购物优惠】 大型商圈有满减,适合购物。 景区小店可淘纪念品。 【安全提示】 注意保管物品,避免丢失。 备好常用药品应对突发状况。
For deployment, you can use `sglang>=0.4.6.post1` or `vllm>=0.8.5` or to create an OpenAI-compatible API endpoint. ## Citation ``` @misc{lightifproj, title={Light-IF: Endowing LLMs with Generalizable Reasoning via Preview and Self-Checking for Complex Instruction Following}, author={Chenyang Wang, Liang Wen, Shousheng Jia, Xiangzheng Zhang, Liang Xu}, year={2025}, eprint={2508.03178}, archivePrefix={arXiv}, primaryClass={cs.CL}, url={https://arxiv.org/abs/2508.03178}, } ```