Search
Write a publication
Pull to refresh
19
0
Send message

Возможно, я не совсем корректно сформулировал, что именно хочу от трактовки.
Меня интересовало, почему в описываемых случаях веса не корректируются самостоятельно из проблемной зоны в нужную, а зависают в проблемной зоне, если принудительно не заменить знаки весов на противоположные.
Рассуждения и тесты привели к тому, что при коррекции необходимо учитывать соответствующие параметры объектов. Написал об этом отдельно здесь.

оказалось, что неправильно заказал сервер и не хватало памяти
перезаказал сервер, чтобы было 8 ГБ
и все заработало (!)

все сделал, как указано в основной части статьи
вроде бы прошло без ошибок
закончил командой
wget https://huggingface.co/Sosaka/Alpaca-native-4bit-ggml/resolve/main/ggml-alpaca-7b-q4.bin
./chat

на панели

main: seed = 1716499122
llama_model_load: loading model from 'ggml-alpaca-7b-q4.bin' - please wait ...
llama_model_load: ggml ctx size = 6065.34 MB
Segmentation fault (core dumped)
root@cv3815137:~/alpaca.cpp#

и чат не начинается
что не так?

"ruGPT-3-XL - модель генерации текста. Она не училась отвечать на вопросы и исполнять инструкции."

Примеры для исследования такие:
1. придумай 10 названий для историй
2. придумай начальные фразы для 10 историй
3. придумай историю о том, как две маленькие девочки пошли в лес
4. Автомобили нужны для того, чтобы

если ruGPT-3-XL как "модель генерации текста" - не для таких заданий,
то для чего тогда?

Спасибо за статью )

если просто копировать код,
то при дообучении (Fine-tuning) появлялась ошибка на этапе training_args
после сверки с исходной документацией (https://github.com/ai-forever/ru-gpts)
была применена версия transformers==4.24.0
и все заработало (13.06.2023)

Спасибо за статью )

Colab по приведенной ссылке
https://colab.research.google.com/github/sberbank-ai/ru-gpts/blob/master/examples/ruGPT3_generation_example.ipynb

выдает ошибку на этапе
!pip3 install transformers==2.8.0

ошибка такая:

Building wheels for collected packages: tokenizers, sacremoses error: subprocess-exited-with-error

× Building wheel for tokenizers (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
Building wheel for tokenizers (pyproject.toml) ... error
ERROR: Failed building wheel for tokenizers
Building wheel for sacremoses (setup.py) ... done
Created wheel for sacremoses: filename=sacremoses-0.0.53-py3-none-any.whl size=895241 sha256=617956bc9914a734482cba0b84ef9e9cd84230fdebdffe0639cae5cc59fe822a
Stored in directory: /root/.cache/pip/wheels/00/24/97/a2ea5324f36bc626e1ea0267f33db6aa80d157ee977e9e42fb
Successfully built sacremoses
Failed to build tokenizers
ERROR: Could not build wheels for tokenizers, which is required to install pyproject.toml-based projects

Соответственно, ошибки выдаются и на этапе !sh setup.sh



"использовались ли LR scheduler, нормалицазии, регуляризации, аугментации и т.п."

Нет, не использовались.
Специально все применялось самое распространенное или по умолчанию для понимания изначальной ситуации

def main_function(batchsize, epochs):
  input_shape = x_train[0].shape
  model = tf.keras.models.Sequential()
  model.add(tf.keras.layers.Flatten(input_shape=input_shape))
  model.add(tf.keras.layers.Dense(NEURONS, activation='relu'))
  model.add(tf.keras.layers.Dense(10, activation='softmax'))

  model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

  history = model.fit(x_train, y_train, batch_size=batchsize, epochs=epochs, validation_split=0.2, verbose = 0)
  res = model.evaluate(x_test, y_test, verbose=0) 
  return res

И вот эта функция вызывалась из нескольких вложенных циклов по количеству повторов, размеру батча, количеству нейронов.

Данная статья не концентрируется на вопросе – откуда берется вариативность. В общем случае это и так понятно. Из-за рандомности инициации весов, рандомности подбора состава батча и прочее.

Также статья не направлена на решение задачи снижения вариативности, в большинстве случаев процесс будет совпадать со штатной оптимизацией – комбинирование шага обучения, dropout и прочее. В статье речь не об этом.

Цель статьи – обратить внимание на размеры этой вариативности.

«Ну узнал я, что вариативность по метрике аккуратность 1%, как это мне поможет сделать более лучшую модель?»

Практическое применение как раз и заключается в понимании размера вариативности. Если известно, что вариативность достигает 1%, а при коррекции параметров точность улучшилась на 0,3% - это означает, что коррекция параметров практически не повлияла на результат. Он попадает в те же рамки, как если повторно запустить обучение без коррекции параметров. Нельзя сказать, что мы сделали вот так, и модель улучшилась на 0,3%. Нет, ничего не произошло, никакого улучшения. А вот если точность улучшилась на 2%, то в эту сторону уже стоит смотреть внимательно и оптимизировать в этом направлении.

Понимаю так:

С валидационной выборкой идет работа в процессе обучения, если от этого есть какая-то обратная связь. Например, уменьшаем шаг обучения, если 10 эпох на валидационной выборке нет улучшений. Или сохраняем набор коэффициентов, дающий лучший результат на валидационной выборке за этот процесс обучения.

А уже потом прогоняем через итоговый набор коэффициентов всю тестовую выборку, которую сеть ни разу не видела. И очень может быть, что на валидационной выборке точность близка к 100% или близко к ней, а на тестовой сильно меньше, например, 95%. А во многих классах задач важен не результат на валидационной выборке, который сетьможет шлифануть и до 100%, но перейти в переобученность, а важна обобщающая способность, то есть как сеть будет работать с похожими, но не известными ей данными заданного формата, и это как раз и проверяется на тестовой выборке.

Спасибо за комментарий и ссылки )

Целью статьи не является достижение высочайшей точности FNN c одним скрытым слоем для распознавания изображений набора MNIST.
Понятно, что многослойные и предобученные CNN, а также ансамбли и расширение датсета дают более высокую точность для распознавания изображений.
Цель статьи - анализ влияния на точность изменений количества нейронов скрытого слоя и размеров батча. То есть в какой мере на точность влияют изменения количества нейронов скрытого слоя и размеров батча, а в какой видимое изменение точности является просто следствием разброса, вызванного рандомностью инициации весов и рандомностью каждого батча.

Information

Rating
Does not participate
Registered
Activity