codefuse-ai / MFTCoder

High Accuracy and efficiency multi-task fine-tuning framework for Code LLMs. This work has been accepted by KDD 2024.
Other
631 stars 67 forks source link

模型是否支持商用 #33

Closed zhangyukun230 closed 10 months ago

zhangyukun230 commented 10 months ago

模型推理的并发量大概什么级别? 目前demo中,需要专门设计prompt模版,那么针对不同语言的prompt应该如何设计? CodeGeeX2的prompt是: # language: Python\n# write a bubble sort function\n 经过codeFuse微调后却变成了< s > human\n write a python function of quick sort.\n< s >bot\n。这种内部是怎么处理的,是做了什么对应的转化么,

zhangyukun230 commented 10 months ago

CodeGeeX2的prompt是: # language: Python\n# write a bubble sort function\n 经过codeFuse微调后却变成了 human\n write a python function of quick sort.\nbot\n。这种内部是怎么处理的,是做了什么对应的转化么,

twelveand0 commented 10 months ago

模型推理的并发量大概什么级别? 目前demo中,需要专门设计prompt模版,那么针对不同语言的prompt应该如何设计? CodeGeeX2的prompt是: # language: Python\n# write a bubble sort function\n 经过codeFuse微调后却变成了< s > human\n write a python function of quick sort.\n< s >bot\n。这种内部是怎么处理的,是做了什么对应的转化么,

你说的并发推理量是什么意思,是指推理时的最大batch size吗? 如果是指batch size,这取决于你的显卡显存容量、要求的时延范围以及最大生成长度等因素,在未知这些设置的前提下,无法给出准确的数值。

推理时用的prompt格式(模版)取决于微调时的训练数据格式,MFTCoder使用要求推理时使用这种<s>human\nmy prompt xxx\n<s>bot\n或者旧版的<|role_start|>human<|role_end|>my prompt xxx\n<|role_start|>bot<|role_end|>是由于微调过程中数据是这种格式的(tokenization后);CodeGeeX2使用# language: Python\n# write a bubble sort function\n格式是由于他们微调时是以这种格式处理数据的。因此,两者不同。如果你使用其他微调过的模型进行推理,也需要在推理时相应的使用他们的格式,例如Qwen-chat是<|im_start|>user\nmy prompt xxx<|im_end|>\n<|im_start|>assistant

MTFCoder微调过程使用的数据格式可以看代码文件 preprocess_data.py

twelveand0 commented 10 months ago

模型推理的并发量大概什么级别? 目前demo中,需要专门设计prompt模版,那么针对不同语言的prompt应该如何设计? CodeGeeX2的prompt是: # language: Python\n# write a bubble sort function\n 经过codeFuse微调后却变成了< s > human\n write a python function of quick sort.\n< s >bot\n。这种内部是怎么处理的,是做了什么对应的转化么,

CodeGeeX2在处理数据时,会对每种编程语言的代码数据添加一个Programming Language Tag,格式是[语言行注释符] + language: [语言名字] ,如下是几种示例语言的PL tags PL TAG
Python # language: Python
Java // language: Java
C++ // language: C++
JS // language: JavaScript

MFTCoder对于添加额外的Programming Tag没有严格的要求,可以选择添加或不添加,只要保证遵守原则: 推理Prompt格式与微调训练数据格式一致

twelveand0 commented 10 months ago

对于你标题中问的问题,Codefuse开源的模型可以商用

twelveand0 commented 10 months ago

我将关闭这个issue,如果你有进一步的问题,可再将其打开