AI как угроза удаленным собеседованиям на работу. ChatGPT = CheatGPT?


У меня по всей френдленте идут хиханьки-хаханьки про ChatGPT - одни восторгаются ее гениальностью, а другие тупостью. А вот я вчера осознал стремную вещь - вероятно ChatGPT уже стали использовать во время удаленных интервью на работу. Просто я дал ChatGPT тот же вопрос, который я задал кандидату во время недавнего интервью, и ChatGPT сгенерил мне код с теми же ошибками - сделал upstream ready не output, а input например, потом сделал код с gap-ами на входе, а потом просто слил, заявив что слишком много запросов.
У меня недостаточно информации для обсуждения природы GPT. В него за 6 лет вложили миллиарды и один из участников - это компания в Индии с большим количеством программистов. То есть они могли экстенсивно натаскать программу на простые вопросы типа "напиши код для декодера" и их комбинации "напиши мультплексор как комбинацию декодера и селектора". Легко угадать, что куча людей будут пытаться сбивать GPT запросами про редкие языки программирования (Algol-60, ABEL) и можно прикинуться ветошью если языка не знаешь (на мой запрос написать нечто на Snobol-4 GPT стал писать на Algol-60). В сложных вопросах GPT ведет себя как Eliza 1964-го года (см. вопрос про конвейерный PDP-11 с автоинкрементной адресацией).
Но во всем этом хайпе есть важная практическая часть, которую стоит учесть немедленно. На интервью через zoom больше нельзя давать кандидатам воспросы, на которые "на троечку" может ответить GPT, запущенная в соседнем окне. В принципе, от кандидатов можно требовать написать к собственному ответу тест и посмотреть, сможет ли он исправить косяки GPT (она делает косяки на всех вопросах кроме тривиальных и их комбинаций).
Также вариантом может быть делать coding интервью только в офисе, в комнате, отключенной от интернета, с полным обзором от интервьюера. Но после трех лет ковида это может быть трудно.
UPD: Также я заметил, что ChatGPT часто пишет в стиле, в котором писал бы программист, впервые увидевший верилог, а не проектировщик железа. Например использует initial для инициализации вместо сброса (что неверно по двум причинам: несинтезируемо для ASIC + multiple drivers). А также устаревший формат sensitivity list. То есть семантическую модель кодирования на верилоге им делал(и) программисты, которые воспринимают верилог как еще один язык программирования.



