应该支付违约金。
第二十二条 用人单位为劳动者提供专项培训费用,对其进行专业技术培训的,可以与该劳动者订立协议,约定服务期。 劳动者违反服务期约定的,应当按照约定向用人单位支付违约金。违约金的数额不得超过用人单位提供的培训费用。用人单位要求劳动者支付的违约金不得超过服务期尚未履行部分所应分摊的培训费用。
按你所述情形,
首先公司约定违约金是合法的,
其次公司为培训支出了必要专项费用,正常情况下你应当支付违约金。你所说的几点理由不能免除支付违约金的义务,,,原因是即使培训有瑕疵但公司应该很容易补正,使其合法化。
但是你可以在以下情形中找出公司的过错,如果成功则可以直接解除合同,无须支付违约金,
第三十八条 用人单位有下列情形之一的,劳动者可以解除劳动合同:
(一)未按照劳动合同约定提供劳动保护或者劳动条件的
(二)未及时足额支付劳动报酬的
(三)未依法为劳动者缴纳社会保险费的
(四)用人单位的规章制度违反法律、法规的规定,损害劳动者权益的
(五)因本法第二十六条第一款规定的情形致使劳动合同无效的;
(六)法律、行政法规规定劳动者可以解除劳动合同的其他情形。 用人单位以暴力、威胁或者非法限制人身自由的手段强迫劳动者劳动的,或者用人单位违章指挥、强令冒险作业危及劳动者人身安全的,劳动者可以立即解除劳动合同,不需事先告知用人单位。