Pull to refresh

Comments 3

Статья об очень хорошем и полезном. Семантический поиск в 50 строк кода - это здорово. Я прям жду, чтобы этот инструмент пришел в мою IDE. Но было бы здорово, если бы Вы немного рассказали, как эта магия работает. Например:

Для обработки текста нейросети не работают напрямую с текстовой информацией. Вместо этого они преобразуют текст сначала в набор токенов (это могут быть кусочки текста от буквы до целой фразы, хотя сейчас распространен подход, в котором берут несколько букв, часто встречающихся вместе), а потом для каждого токена выдумывают случайный вектор в многомерном пространстве. Кстати, посмотреть, как фраза разваливается на токены, используемые в GPT моделях от OpenAI можно вот тут.

Соответствие токенов и этих случайных векторов нам бы лучше сохранить где-то (еще пригодится, чтобы понять, что там нейросеть нам пытается сказать, и сделать обратное преобразование из векторов в токены, а потом склеить эти токены, чтобы получился текст), поэтому все токены нумеруют (обычно в порядке убывания частоты их появления)

Случайные вектора - это как раз эмбеддинги и есть, но до того, как нейросеть обучится, они нам особой пользы не принесут. И магия нейросетей состоит в том, что после чтения всего интернета много раз, нейросеть растаскивает эти вектора в пространстве таким образом, что похожие по смыслу слова -> токены -> вектора оказываются рядом. И вот такие эмбеддинги уже полезные: по ним можно предположить, насколько два текста (текст -> токены -> эмбеддинги) схожи путем сравнения просто кучки чисел. И ровно их вы используете для поиска по кодовой базе.

Еще я бы рассказал пару слов об операции сравнения, но «поля этой книги слишком узки для неё».

за статью - еще раз спасибо!

Спасибо за отзыв! Есть уже плагин VS Code. А вот для IDE(имею ввиду только от Jet Brains) пока не видел ничего подобного.

UFO just landed and posted this here
Sign up to leave a comment.

Articles

Change theme settings