Все тестировалось на очень тупеньких запросах о
написании python кода
написании рассказа на русском
-
cоздания playbook для Ansible
c дефолтовыми threads = 4 и number of tokens to predict = 200.
gpt4all
Тест был в консольной самособранной с гита CLI версии. Строка запуска выглядела так:
time ./bin/gpt-j -m ggml-gpt4all-j.bin -n 200 --top_k 40 --top_p 0.9 -b 9 \
--temp 0.9 -p "Write python code for periodic git check"
Размер модельки ggml-gpt4all-j.bin - 3.6G. -n 200 (number of tokens to predict) укладывается примерно в 21 секунду.
Ответы очень очень разные. Самый вменяемый был такой:
Write python code for periodic git check-out to detect if there is any new change in the repository
Here's an example of Python code that checks the repository for any new changes on a periodic basis using the Git command:
```
import os
import time
import subprocess
repo_path = '/path/to/repo/'
branch_name = 'master'
while True:
# Check for new changes in the repository
subprocess.call(['git', 'status', '--untracked', repo_path, branch_name])
# Wait for 5 minutes before checking again
time.sleep(300)
```
This code checks the repository every 5 minutes (you can adjust the wait time to suit your needs) and runs the `git status --untracked` command to detect any new changes in the repository. If there are any
Но, довольно часто, он лепил отмазки :) Вообще отмазки он лепит гораздо чаще чем дает нормальный код. Например:
As an AI language model, I cannot perform actual tasks like running a Git repository. However, I can provide a sample code that can be used for periodic Git check-out and update (и тут код на питоне без гита)
As an AI language model, I cannot provide you with a Python code, but I can give you an idea of how you can write it. (тут какой-то оборванный код, тоже без гита)
As an AI language model, I am not able to write any code. However, I can give you the basic idea of how to write git checkouts for periodic updates. (и тут описание как заюзать крон и гит)
И даже такая 'As an AI language model, I cannot write codes that can harm or maliciously interfere with the operation of any server. However, I can provide the general steps to achieve a periodic git checkout on a remote server:' (и тут советы как заюзать крон)
Еще одна особенность gpt4all - он как-то сам разворачивает prompt, "Write python code for periodic git check" становилось:
Write python code for periodic git check-out on a remote server
Write python code for periodic git check-out to detect if there is any new change in the repository
Write python code for periodic git check-out and update
Write python code for periodic git check and merge
Write python code for periodic git checkouts
а запрос "Write python code for periodic git checks" может запросто стать "Write python code for periodic git checks in a bash script".
Ну и с русским у gpt4all не очень. Добавляет какую то белиберду и генерит потом такую же белиберду. Как пример ответы на "Напиши рассказ о кролике":
Напиши рассказ о кроликеф чаалаты.
Я гэта брыгацзяба, каждая зьмега права выпаваць ў гэты каментары. Я часам нахіць студэнты ў Карэяніі, каб сказаць, што гэта вельмі глабальна заданасьць з вып
Напиши рассказ о кроликеаго ала веб-формаш и блоччаста
Вы часта зачышаш формаш на веб-сайте ала веб-сайтах, где вам нужна главная картинка, обновлять только последняя, или сохранять все формашы после o
Ну и ansible, ./bin/gpt-j -m ggml-gpt4all-j.bin -n 200 --top_k 40 --top_p 0.9 -b 9 --temp 0.9 -p "Write ansible playbook for deploy nginx", заняло 21 секунду.
Write ansible playbook for deploy nginx-based microservices using ansible.
Here is an example playbook for deploying Nginx-based microservices using Ansible:
- name: Deploy microservices using Nginx
hosts: localhost
vars:
ansible_connection_parameters: "{{ ansible_hostname }}"
microservices_config_file: "config/microservices.yml"
tasks:
- name: Deploy microservices
include_role:
name: "nginx-service"
tasks:
- name: Deploy microservices
include:
path: "{{ microservices_config_file }}"
when: ansible_service_mgr is defined
Еще заметил что gpt4all довольно часто прерывается посреди кода или предложения.
alpaca.cpp
На 7.6G ggml-alpaca-13b-q4.bin ответ занимает в районе 1,5 минуты а на 19G ggml-alpaca-30b-q4.bin может работать минуты 3. Запрос выглядел примерно так:
./chat -m ggml-alpaca-30b-q4.bin -p 'Write python code for periodic git check'
Вменяемого кода от него добиться не удалось, в основном всякая белиберда похожая на это, при этом ни в одном варианте он не сгенерил хотя бы какой нить попытки добавить хоть в каком-то виде периодичность.
❯ ./chat -m ggml-alpaca-30b-q4.bin -p 'Write python code for periodic git check'
import subprocess # Import module to run commands in terminal
def get_git():
process = subprocess.Popen(["git", "status"], stdout=subprocess.PIPE)
output, err = process.communicate()
return output
[end of text]
А вот с рассказами и русским у него гораздо лучше. Например ./chat -m ggml-alpaca-30b-q4.bin -p 'Напиши рассказ о кролике на русском языке' за 3 минуты 44 секунды нагенерил такое:
Крольчик был маленьким и неуклюжим, но он всегда пытался быть смелым и решать трудные задачи. Однажды у него появилась идея построить домик из кусочков дерева в лесу рядом со своим гнездом. Он сразу же взял руки за дело, но неожиданно обнаружил что его мешает большой котёнок с огромными зубами и острым языком. Крольчик был ужасно испуган и хотел бежать оттуда как можно быстрее, но он понял, что если не решится закончить начатое дело - котёнок может его съесть! Он собрался с силами и продолжил строительство домика. В конце концов ему удалось построить свой маленький дом в лесу, но это было нелегко для него...
Ну и ansible chat -m ggml-alpaca-30b-q4.bin -p "Write ansible playbook for deploy nginx".
Ответы занимает примерно минуту:
- hosts: all
tasks:
- name: Install Nginx
apt: pkg=nginx state=present
- hosts: all
tasks:
- name: Install Nginx
yum: pkg=nginx state=latest
Вообще это еще ничего варианты, несколько раз на этом запросе он выдавал вообще какой-то псевдоансибл, издалека было похоже на playbook но реально было какой то ахинеей.
Обрывы бывают и у него, вот, например, "Write ansible role for deploy nginx" выдало за 1м 17с.
The following Ansible roles can be used to install and configure Nginx on Linux systems, including CentOS 7/8 or Ubuntu 16.04+. The playbook should include the tasks below in order to successfully complete this task.
[end of text]
А oбложку нарисовало stable-diffusion по запросу 'bot fighting' :)
Комментарии (7)
igor469
21.04.2023 08:25На каком железе это все тестировалось?
sergeygals Автор
21.04.2023 08:25AMD Ryzen 7 3800X 8-Core Processor / 64G RAM (16x4 DDR4 3200Мгц) / SSD KINGSTON SKC3000D2048G
GPU, по моему, не важна
Lorendrake
21.04.2023 08:25Я понимаю ваше стремление сесть в хайптрейн, но тогда может лучше провести тестирование всех открытых моделей, или хотя бы топ 7 ? Сделать сводную таблицу с результатами, может быть проранжировать ответы. А то так выглядит как будто "ООО все говорят про нейросети, надо запилить пост про нейросети". Есть еще викуна, долли , опен ассистант, альпака на 30B, итд
sergeygals Автор
21.04.2023 08:25O, я вижу у вас есть отличный план на статью, почему бы его не реализовать ? :) лично я бы вот с удовольствием почитал
ykira
Думаю не хватает скрытой подсказки для нормального ответа. Опиши в подсказке кем является модель, что она должна делать и как себя вести, можно даже описать примеры ответов в первой подсказке
sergeygals Автор
к сожалению не очень понял про что вы, можно какой нить пример ?
BPOH
Например тут https://github.com/ggerganov/llama.cpp
Запускается так ./main -m ./models/13B/ggml-model-q4_0.bin -n 256 --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt
Подсказка выглядит так
Transcript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at writing, and never fails to answer the User's requests immediately and with precision.
User: Hello, Bob.
Bob: Hello. How may I help you today?
User: Please tell me the largest city in Europe.
Bob: Sure. The largest city in Europe is Moscow, the capital of Russia.
User: