Оцените размещенные Openai GPT / Google Vertex AI PALM2 / Gemini или локальные модели Ollama с задачей.
Распределить произвольные задачи как YAML на локальные или размещенные языковые модели. В модельных задачах Forge разбиты: агенты , необязательный постпроцессор и оценщики . Задачи имеют подсказку на высшем уровне - фактическая работа. Например, вы можете использовать следующее в качестве приглашения задачи: «Реализуйте простой пример malloc в C со следующей подписью: void* malloc(size_t size) ». Далее вы можете включить постпроцессорный запрос в локальную модель, чтобы извлечь только исходный код программы из ответа агента. Наконец, ваш оценщик будет поручен выступить в качестве эксперта в задаче, в идеале с примерами, основанными на Cot (цепочка мысли), включенные примеры.
.jsonpython src/main.py git clone https://github.com/Brandon7CC/MODELFORGE
cd MODELFORGE/
python -m venv forge-env
source forge-env/bin/activate
pip install -r requirements.txt
python src/main.py -h
echo " Done! Next, you can try FizzBuzz with Ollama locally!npython src/main.py task_configs/FizzBuzz.yaml Fizzbuzz - это классический вопрос «Можете ли вы кодировать». Это просто, но может дать уровень понимания того, как разработчик обдумывает проблему. Например, в Python использование потока управления, лямбдас и т. Д. Вот задача задачи:
Напишите программу для отображения чисел от 1 до N. Для кратных трех, печатайте «Fizz» вместо числа, а также для кратных пяти, печатных «Buzz». Для чисел, которые являются кратными как трех, так и пять, печатайте «Fizzbuzz».
Далее мы сделаем наш файл конфигурации задачи (это уже сделано для вас в task_configs/FizzBuzz.yaml ), но мы проведем вас через это. Для этого мы определим задачу высшего уровня, называемая «Fizzbuzz», даст ему подсказку и количество раз, когда мы хотим, чтобы он моделировал, чтобы решить проблему.
tasks :
- name : FizzBuzz
# If a run count is not provided then the task will only run until evaluator success.
run_count : 5
prompt : |
Write a program to display numbers from 1 to n. For multiples of three, print "Fizz"
instead of the number, and for the multiples of five, print "Buzz". For numbers which
are multiples of both three and five, print "FizzBuzz".
Let's think step by step.Теперь мы определим нашего «агента» - модель, которая будет действовать в качестве эксперта для выполнения нашей задачи. Модели могут быть любой из поддерживаемых моделей Ollame / Local Ollama (например, Google Gemini, GPT-4 Openai или Mixtral8x7b от Mistral AI через Ollama).
tasks :
- name : FizzBuzz
run_count : 5
prompt : |
...
agent :
# We'll generate a custom model for each base model
base_model : mixtral:8x7b-instruct-v0.1-q4_1
temperature : 0.98
system_prompt : |
You're an expert Python developer. Follow these requirement **exactly**:
- The code you produce is at the principal level;
- You follow modern object oriented programming patterns;
- You list your requirements and design a simple test before implementing.
Review the user's request and follow these requirements.При желании мы можем создать «постпроцессор» . Мы будем захотим, чтобы код был завершен агентом, чтобы оценить, поэтому мы собираемся получить нашу постпроцессорную модель извлечь исходный код из ответа агента.
tasks :
- name : FizzBuzz
# If a run count is not provided then the task will only run until evaluator success.
run_count : 5
prompt : |
...
agent :
# We'll generate a custom model for each base model
base_model : gpt-4-1106-preview
temperature : 0.98
system_prompt : |
...
postprocessor :
base_model : mistral
temperature : 0.1
system_prompt : |
You have one job: return the source code provided in the user's message.
**ONLY** return the exact source code. Your response is not read by a human.Наконец, вам понадобится модель «оценщика» , которая будет действовать в качестве эксперта в обзоре результатов агента/постпроцессора. Работа оценщика - вернуть True / false. Кроме того, мы можем потерпеть неудачу до 10 раз -повторно зарегистрировать агента. Вот немного волшебства - мы включим краткое изложение неудачной попытки - критика в следующем запросе агента. Это позволяет агенту итерации на себя гораздо более эффективным образом. Здесь мы хотим, чтобы наш оценщик проверил реализацию Fizzbuzz.
tasks :
- name : FizzBuzz
# If a run count is not provided then the task will only run until evaluator success.
run_count : 5
prompt : |
...
agent :
# We'll generate a custom model for each base model
base_model : codellama
temperature : 0.98
system_prompt : |
...
postprocessor :
base_model : gemini-pro
temperature : 0.1
system_prompt : |
...
# Evaluators have defined system prompts to only return true / false for their domain.
evaluator :
base_model : gpt-4-1106-preview
temperature : 0.1
system_prompt : |
Assess if a given sample program correctly implements Fizz Buzz.
The program should display numbers from 1 to n. For multiples of three, it should
print "Fizz" instead of the number, for the multiples of five, it should print "Buzz",
and for numbers which are multiples of both three and five, it should print "FizzBuzz".
Guidelines for Evaluation
- Correctness: Verify that the program outputs "Fizz" for multiples of 3, "Buzz" for
multiples of 5, and "FizzBuzz" for numbers that are multiples of both 3 and 5. For
all other numbers, it should output the number itself.
- Range Handling: Check if the program correctly handles the range from 1 to n, where
n is the upper limit provided as input.
- Error Handling: Assess if the program includes basic error handling, such as ensuring
the input is a positive integer.Эта работа была вдохновлена подходом Funsearch Google DeepMind к поиску нового решения проблемы набора CAP. На макроуровне это было сделано путем разработки примеров, основанных на Cot (цепочка мысли), неоднократно побуждая PALM2 генерировать большое количество программ, а затем оценить эти программы на нескольких уровнях.