Внедрение превышения лимита токена путем объединения фрагментов и уменьшения размерностиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Внедрение превышения лимита токена путем объединения фрагментов и уменьшения размерности

Сообщение Anonymous »

Если вы хотите создавать внедрения для документов с помощью Azure OpenAI с моделью ada-002, вам следует отправить в этот API максимум 8192 токена. Если в одном документе более 8 000 токенов, то для его обработки мы должны выполнить определенные шаги, согласно моему расследованию.
  • Подготовить текст документа, очистить, нормализовать, удалить-стоп-слова, чтобы иметь возможность подсчитывать токены, как их подсчитывает Azure OpenAI ada-002.
  • Токенизировать текст документа в слова, разделив его по пробелу (" ")
  • Если токены документа превышают 8 КБ, разделите его на большее количество вложенных документов с максимальным количеством токенов 8 КБ.
  • Передайте эти вложенные документы 8 КБ из конечной точки Azure OpenAI ada-002 и получить внедрения для каждого вложенного документа.
  • Объедините эти внедрения с плавающей запятой (путем добавления) в один вектор, чтобы представить исходный документ.
  • Затем Чтобы иметь возможность находить похожие документы на основе вопросов, вектор вопроса и векторы документов должны иметь одинаковую длину, поэтому нам, очевидно, необходимо уменьшить размерность документов, которые были разделены и повторно вставлены в один вектор.
Например, если документ (10 КБ токенов) разделен на два поддокумента (8 КБ и 2 КБ), каждое вложение поддокумента будет иметь 1536 измерений, и, следовательно, весь документ будет иметь 1536 x 2 = 3072. Вопрос, который не превышает токенов 8 КБ, будет иметь 1536 и, следовательно, не может сравниваться со всеми документами.
Итак, есть ли способ правильно уменьшить их размеры? документы из 3072 тусклых обратно в 1536 тусклых?
Согласно моим исследованиям, это можно сделать с помощью PCA, я нашел следующий пример на C#, но здесь вместо этого данные [][] из []:

Код: Выделить всё

double[][] data = new double[][]
{
// ... Your combined embedding vectors here
};

// Create a new Principal Component Analysis
var pca = new PrincipalComponentAnalysis()
{
Method = PrincipalComponentMethod.Center,
Whiten = false
};

// Learn the PCA model
pca.Learn(data);

// Transform the data into the reduced dimensionality space
double[][] reducedData = pca.Transform(data, 3); // Reducing to 3 dimensions
Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/786 ... nality-red
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблема с Leetcode из-за превышения лимита памяти
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Проблема с Leetcode из-за превышения лимита памяти
    Anonymous » » в форуме C++
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Проблема с Leetcode из-за превышения лимита памяти
    Anonymous » » в форуме C++
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Как устранить ошибку превышения лимита времени в литкоде
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как устранить ошибку превышения лимита времени в литкоде
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»