Над решением задачи галлюцинаций на текущий момент работают лучшие умы планеты, красивого решения нет но специалисты из OpenAI говорят что считанные годы и проблема будет решена.
В идеальном случае тебе действительно нужно подготовить идеальные данные. Но к сожалению, особенность нейросетей такова, что помимо верных данных, тебе нужны граничные с ними неверные. Именно неверные данные (помеченные как ошибочные, в терминах llm например спец токеном или встроенным в алгоритм механизмом, либо давать группу токенов которые текстом будут сообщать об ошибке или отсутствии информации) позволят нейронной сети давать верные ответы.
Это особенность любых нейросетей можно представить так, твои обучающие данные это точки, которые ты в слепую бросаешь на ось, а область верных утверждений это отрезок. Если ты будешь пытаться определить отрезок 'бросая' только точки внутри отрезка, алгоритм сможет проводить разделение верно/неверно в любом месте за пределом этих точек, ведь любой такой вариант будет непротиворечив. А значит когда нейросеть попадет в ситуацию, не прописанную напрямую в обучающей выборки (то чего ы и хотим добиться) она будет предлагать варианты за границей нашей реальной правды, думая что линия правды дальше