Giter Club home page Giter Club logo

taxonomy's Introduction

InstructLab ๐Ÿถ Taxonomy

Contents ๐Ÿ“–

Welcome to the InstructLab Taxonomy

InstructLab ๐Ÿถ uses a novel synthetic data-based alignment tuning method for Large Language Models (LLMs.) The "lab" in InstructLab ๐Ÿถ stands for Large-Scale Alignment for ChatBots [1].

The LAB method is driven by taxonomies, which are largely created manually and with care.

This repository contains a taxonomy tree that allows you to create models tuned with your data (enhanced via synthetic data generation) using the LAB ๐Ÿถ method.

[1] Shivchander Sudalairaj*, Abhishek Bhandwaldar*, Aldo Pareja*, Kai Xu, David D. Cox, Akash Srivastava*. "LAB: Large-Scale Alignment for ChatBots", arXiv preprint arXiv: 2403.01081, 2024. (* denotes equal contributions)

Choosing domains for the taxonomy

In general, we use the Dewey Decimal Classification (DDC) System to determine our domains (and subdomains) in the taxonomy. This DDC SUMMARIES document is a great resource for determining where a topic might be classified.

If you are unsure where to put your knowledge or compositional skill, create a folder in the miscellaneous_unknown folder under the knowledge or compositional_skills folders.

Learning

Learn about the concepts of "skills" and "knowledge" in our InstructLab Community Learning Guide.

Getting Started with Skill Contributions

Skills require a much smaller volume of content than knowledge contributions. An entire skill contribution to the taxonomy tree can be just a few lines of YAML in the qna.yaml file ("qna" is short for "questions and answers") and an attribution.txt file for citing sources.

Your skills contribution pull requests must include the following:

  • A qna.yaml that contains a set of key/value entries with the following keys
    • Each qna.yaml file requires a minimum of five question and answer pairs.
  • An attribution.txt that includes the sources for the information used in the qna.yaml

Tip

The skill taxonomy structure is used in several ways:

  1. To select the right subset of the taxonomy to use for data generation.
  2. To determine the interpretability by human contributors and maintainers.
  3. As part of the prompt to the LLM used to generate synthetic samples.

Important

There is a limit to how much content can exist in the question/answer pairs for the model to process. Due to this, only add a maximum of around 2300 words to your question and answer seed example pairs in the qna.yaml file.

Compositional skills can either be grounded (includes a context) or ungrounded (does not include a context). Grounded or ungrounded is declared in the taxonomy tree, for example: linguistics/writing/poetry/haiku/ (ungrounded) or grounded/linguistics/grammar (grounded). The qna.yaml is in the final node.

Taxonomy skill files must be a valid YAML file named qna.yaml. Each qna.yaml file contains a set of key/value entries with the following keys:

  • version: The value must be the number 2. Required
  • task_description: A description of the skill. Required
  • created_by: The GitHub username of the contributor. Required
  • seed_examples: A collection of key/value entries. New submissions should have at least five entries, although older files may have fewer. Required
    • context: Grounded skills require the user to provide context containing information that the model is expected to take into account during processing. This is different from knowledge, where the model is expected to gain facts and background knowledge from the tuning process. The context key should not be used for ungrounded skills.
    • question: A question for the model. Required
    • answer: The desired response from the model. Required

Other keys at any level are currently ignored.

Skills: YAML examples

To make the qna.yaml files easier and faster for humans to read, it is recommended to specify version first, followed by task_description, then created_by, and finally seed_examples. In seed_examples, it is recommended to specify context first (if applicable), followed by question and answer.

Example qna.yaml

version: 2
task_description: <string>
created_by: <string>
seed_examples:
  - question: <string>
    answer: |
      <multi-line string>
  - context: |
      <multi-line string>
    question: <string>
    answer: |
      <multi-line string>
  ...

Then, you create an attribution.txt file that includes the sources of your information. These can also be self authored sources.

Example attribution.txt

[Link to source]
[Link to work]
[License of the work]
[Creator name]

For more information on what to include in your attribution.txt file, see For your attribution.txt file in CONTRIBUTING.md.

If you have not written YAML before, don't be intimidated - it's just text.

Tip

  • Spaces and indentation matter in YAML. Two spaces to indent.
  • Don't use tabs!
  • Be careful to not have trailing spaces at the end of a line.
  • Each example in seed_examples begins with a "-". Place this "-" in front of the first field (question or context). The remaining keys in the example should not have this "-".
  • Some special characters such as " and ' need to be escaped with backslash. This is why some of the lines for keys in the example YAML start the value with the '|' character followed a new line and then an indented multi-line string. This character disables all of the special characters in the value for the key. You might also want to use the '|' character for multi-line strings.
  • Consider quoting all values with " to avoid surprising YAML parser behavior (e.g. Yes answer can be interpreted by the parser as a boolean of True value, unless "Yes" is quoted.)
  • See https://yaml-multiline.info/ for more info.

It is recommended that you lint, or verify, your YAML using a tool. One linter option is yamllint.com. You can copy/paste your YAML into the box and click Go to have it analyze your YAML and make recommendations. Online tools like prettified and yaml-validator can automatically reformat your YAML to adhere to our yamllint PR checks, such as breaking lines longer than 120 characters.

Ungrounded compositional skill: YAML example

version: 2
task_description: 'Teach the model how to rhyme.'
created_by: juliadenham
seed_examples:
  - question: What are 5 words that rhyme with horn?
    answer: warn, torn, born, thorn, and corn.
  - question: What are 5 words that rhyme with cat?
    answer: bat, gnat, rat, vat, and mat.
  - question: What are 5 words that rhyme with poor?
    answer: door, shore, core, bore, and tore.
  - question: What are 5 words that rhyme with bank?
    answer: tank, rank, prank, sank, and drank.
  - question: What are 5 words that rhyme with bake?
    answer: wake, lake, steak, make, and quake.

Seriously, that's it.

Here is the location of this YAML in the taxonomy tree. Note that the YAML file itself, plus any added directories that contain the file, is the entirety of the skill in terms of a taxonomy contribution:

Ungrounded compositional skill: Directory tree example

[...]

โ””โ”€โ”€ writing
    โ””โ”€โ”€ poetry
    |   โ””โ”€โ”€ haiku <=== here it is :)
    |   |   โ””โ”€โ”€ qna.yaml
    |   |       attribution.txt
        [...]
    โ””โ”€โ”€ prose
    |   โ””โ”€โ”€ debate
    |   |   โ””โ”€โ”€ qna.yaml
    |   |       attribution.txt
    [...]

[...]

Grounded compositional skill: YAML example

Remember that grounded compositional skills require additional context and include a context field.

This example snippet assumes the GitHub username mairin and shows some of the question/answer pairs present in the actual file:

version: 2
task_description: |
    This skill provides the ability to read a markdown-formatted table.
created_by: mairin # Use your GitHub username; only one creator supported
seed_examples:
  - context: |
      | **Breed**      | **Size**     | **Barking** | **Energy** |
      |----------------|--------------|-------------|------------|
      | Afghan Hound   | 25-27 in     | 3/5         | 4/5        |
      | Labrador       | 22.5-24.5 in | 3/5         | 5/5        |
      | Cocker Spaniel | 14.5-15.5 in | 3/5         | 4/5        |
      | Poodle (Toy)   | <= 10 in     | 4/5         | 4/5        |
    question: |
      Which breed has the most energy?
    answer: |
      The breed with the most energy is the Labrador.
  - context: |
      | **Name** | **Date** | **Color** | **Letter** | **Number** |
      |----------|----------|-----------|------------|------------|
      | George   | Mar 5    | Green     | A          | 1          |
      | Grรกinne  | Dec 31   | Red       | B          | 2          |
      | Abigail  | Jan 17   | Yellow    | C          | 3          |
      | Bhavna   | Apr 29   | Purple    | D          | 4          |
      | Rรฉmy     | Sep 9    | Blue      | E          | 5          |
    question: |
      What is Grรกinne's letter and what is her color?
    answer: |
      Grรกinne's letter is B and her color is red.
  - context: |
      | Banana | Apple      | Blueberry | Strawberry |
      |--------|------------|-----------|------------|
      | Yellow | Red, Green | Blue      | Red        |
      | Large  | Medium     | Small     | Small      |
      | Peel   | Peel       | No peel   | No peel    |
    question: |
      Which fruit is blue, small, and has no peel?
    answer: |
      The blueberry is blue, small, and has no peel.

Grounded compositional skill: Directory tree example

[...]

grounded
โ””โ”€โ”€ technology
    โ””โ”€โ”€ machine_learning
        โ””โ”€โ”€ natural_language_processing
    |   |     โ””โ”€โ”€ information_extraction
    |            โ””โ”€โ”€ inference
    |   |            โ””โ”€โ”€ qualitative
    |   |               โ”œโ”€โ”€ sentiment
    |   |               |     โ””โ”€โ”€ qna.yaml
    |   |               |         attribution.txt
    โ”‚                   โ”œโ”€โ”€ quantitative
    โ”‚   โ”‚                   โ”œโ”€โ”€ table_analysis <=== here it is :)
    โ”‚   |   |               |     โ””โ”€โ”€ qna.yaml
    โ”‚   โ”‚   โ”‚               |         attribution.txt

[...]

Getting Started with Knowledge Contributions

While skills are foundational or performative, knowledge is based more on answering questions that involve facts, data, or references.

Knowledge is supported by documents, such as a textbook, technical manual, encyclopedia, journal, or magazine.

Knowledge in the taxonomy tree consists of a few more elements than skills:

  • Each knowledge node in the tree has a qna.yaml, similar to the format of the qna.yaml for skills.
  • โญ Knowledge submissions require you to create a Git repository, can be with GitHub, that contains the markdown files of your knowledge contributions. These contributions in your repository must use the markdown (.md) format.
  • The qna.yaml includes parameters that contain information from your repository.

Tip

Guidelines for Knowledge contributions

  • Submit the most up-to-date version of the document
  • All submissions must be text, images will be ignored
  • Do not use tables in your markdown freeform contribution

The qna.yaml format must include the following fields:

  • version: The version of the qna.yaml file, this is the format of the file used for SDG. The value must be the number 3.
  • created_by: Your GitHub username.
  • domain: Specify the category of the knowledge.
  • seed_examples: A collection of key/value entries.
    • context: A chunk of information from the knowledge document. Each qna.yaml needs five context blocks and has a maximum word count of 500 words.
    • questions_and_answers: The parameter that holds your questions and answers
      • question: Specify a question for the model. Each qna.yaml file needs at least three question and answer pairs per context chunk with a maximum word count of 250 words.
      • answer: Specify the desired answer from the model. Each qna.yaml file needs at least three question and answer pairs per context chunk with a maximum word count of 250 words.
  • document_outline: Describe an overview of the document your submitting.
  • document: The source of your knowledge contribution.
    • repo: The URL to your repository that holds your knowledge markdown files.
    • commit: The SHA of the commit in your repository with your knowledge markdown files.
    • patterns: A list of glob patterns specifying the markdown files in your repository. Any glob pattern that starts with *, such as *.md, must be quoted due to YAML rules. For example, "*.md".

Knowledge: YAML examples

version: 3
domain: astronomy
created_by: juliadenham
seed_examples:
  - context: |
      **Phoenix** is a minor constellation in the southern sky. Named after the mythical
      phoenix, it was first depicted on a celestial atlas by Johann Bayer in his 1603
      *Uranometria*. The French explorer and astronomer Nicolas Louis de
      Lacaille charted the brighter stars and gave their Bayer designations
      in 1756. The constellation stretches from roughly โˆ’39 degrees to โˆ’57 degrees
      declination, and from 23.5h to 2.5h of right ascension. The constellations Phoenix,
      Grus, Pavo, are known as the Southern Birds.
    questions_and_answers:
      - question: |
          What is the Phoenix constellation?
        answer: |
          Phoenix is a minor constellation in the southern sky.
      - question: |
          Who charted the Phoenix constellation?
        answer: |
          The Phoenix constellation was charted by french explorer and
          astronomer Nicolas Louis de Lacaille.
      - question: |
          How far does the Phoenix constellation stretch?
        answer: |
          The phoenix constellation stretches from roughly โˆ’39ยฐ to โˆ’57ยฐ
          declination, and from 23.5h to 2.5h of right ascension.
  - context: |
      Phoenix was the largest of the 12 constellations established by Petrus
      Plancius from the observations of Pieter Dirkszoon Keyser and Frederick de
      Houtman. It first appeared on a 35cm diameter celestial globe published
      in 1597 (or 1598) in Amsterdam by Plancius with Jodocus Hondius. The first
      depiction of this constellation in a celestial atlas was in Johann Bayer's
      *Uranometria* of 1603. De Houtman included it in his southern star catalog
      the same year under the Dutch name *Den voghel Fenicx*, "The Bird Phoenix",
      symbolising the phoenix of classical mythology. One name of the brightest star Alpha
      Phoenicisโ€”Ankaaโ€”is derived from the Arabic: ุงู„ุนู†ู‚ุงุก, romanized: al-โ€˜anqฤโ€™,
      lit.โ€‰'the phoenix', and was coined sometime after 1800 in relation to the constellation.
    questions_and_answers:
      - question: |
          What is the brightest star in the Phoenix constellation
          called?
        answer: |
          Alpha Phoenicis or Ankaa is the brightest star in the Phoenix
          Constellation.
      - question: Where did the Phoenix constellation first appear?
        answer: |
          The Phoenix constellation first appeared on a 35-cm diameter
          celestial globe published in 1597 (or 1598) in Amsterdam by
          Plancius with Jodocus Hondius.
      - question: |
          What does "The Bird Phoenix" symbolize?
        answer: |
          "The Bird Phoenix" symbolizes the phoenix of classical mythology.
  - context: |
      Phoenix is a small constellation bordered by Fornax and Sculptor to the north,
      Grus to the west, Tucana to the south, touching on the corner of Hydrus to the
      south, and Eridanus to the east and southeast. The bright star Achernar is
      nearby. The three-letter abbreviation for the constellation, as adopted by the
      International Astronomical Union in 1922, is "Phe". The official constellation
      boundaries, as set by Belgian astronomer Eugรจne Delporte in 1930,
      are defined by a polygon of 10 segments. In the equatorial coordinate system, the right
      ascension coordinates of these borders lie between 23h 26.5m and 02h 25.0m,
      while the declination coordinates are between โˆ’39.31ยฐ and โˆ’57.84ยฐ. This means it remains
      below the horizon to anyone living north of the 40th parallel in the Northern
      Hemisphere, and remains low in the sky for anyone living north of the equator.
      It is most visible from locations such as Australia and South Africa during
      late Southern Hemisphere spring. Most of the constellation lies within, and
      can be located by, forming a triangle of the bright stars Achernar, Fomalhaut
      and Beta Cetiโ€”Ankaa lies roughly in the centre of this.
    questions_and_answers:
      - question: What are the characteristics of the Phoenix constellation?
        answer: |
          Phoenix is a small constellation bordered by Fornax and Sculptor to
          the north, Grus to the west, Tucana to the south, touching on the
          corner of Hydrus to the south, and Eridanus to the east and southeast.
          The bright star Achernar is nearby.
      - question: |
          When is the phoenix constellation most visible?
        answer: |
          Phoenix is most visible from locations such as Australia and
          South Africa during late Southern Hemisphere spring.
      - question: |
          What are the Phoenix Constellation boundaries?
        answer: |
          The official constellation boundaries for Phoenix, as set by Belgian
          astronomer Eugรจne Delporte in 1930, are defined by a polygon of 10
          segments.
  - context: |
      Ten stars have been found to have planets to date, and four planetary
      systems have been discovered with the SuperWASP project. HD 142 is a yellow
      giant that has an apparent magnitude of 5.7, and has a planet HD 142b 1.36
      times the mass of Jupiter which orbits every 328 days.  HD 2039 is a yellow
      subgiant with an apparent magnitude of 9.0 around 330 light years away which
      has a planet HD 2039 b six times the mass of Jupiter. WASP-18 is a star of
      magnitude 9.29 which was discovered to have a hot Jupiter-like planet taking
      less than a day to orbit the star. The planet is suspected to be causing WASP-18 to
      appear older than it really is. WASP-4 and WASP-5 are solar-type yellow stars around 1000
      light years distant and of 13th magnitude, each with a single planet larger
      than Jupiter. WASP-29 is an orange dwarf of spectral type K4V and visual magnitude
      11.3, which has a planetary companion of similar size and mass to Saturn. The planet
      completes an orbit every 3.9 days.
    questions_and_answers:
      - question: In the Phoenix constellation, how many stars have planets?
        answer: |
          In the Phoenix constellation, ten stars have been found to have
          planets to date, and four planetary systems have been discovered
          with the SuperWASP project.
      - question: |
          What is HD 142?
        answer: |
          HD 142 is a yellow giant that has an apparent magnitude of 5.7, and
          has a planet (HD 142 b) 1.36 times the mass of Jupiter which
          orbits every 328 days.
      - question: |
          Are WASP-4 and WASP-5 solar-type yellow stars?
        answer: |
          Yes, WASP-4 and WASP-5 are solar-type yellow stars around 1000 light
          years distant and of 13th magnitude, each with a single planet
          larger than Jupiter.
  - context: |
      The constellation does not lie on the galactic plane of the Milky Way, and there
      are no prominent star clusters. NGC 625 is a dwarf irregular galaxy of apparent magnitude 11.0
      and lying some 12.7 million light years distant. Only 24000 light years in
      diameter, it is an outlying member of the Sculptor Group. NGC 625 is
      thought to have been involved in a collision and is experiencing a burst
      of active star formation. NGC 37 is a lenticular galaxy of apparent magnitude
      14.66. It is approximately 42 kiloparsecs in diameter and about 12.9 billion years old.
      Robert's Quartet , and three spiral galaxies NGC 88 and NGC 92) is a group of
      four galaxies located around 160 million light-years away which are in the process of colliding
      and merging. They are within a circle of radius of 1.6 arcmin, corresponding to about
      75,000 light-years. Located in the galaxy ESO 243-49 is HLX-1, an intermediate-mass
      black hole intermediate-mass_black_hole โ€”the first one of its kind identified.
      It is thought to be a remnant of a dwarf galaxy that was absorbed in a collision
      with ESO 243-49. Before its discovery, this class of black hole was only hypothesized.
    questions_and_answers:
      - question: |
          Is the Phoenix Constellation part of the Milky Way?
        answer: |
          The Phoenix constellation does not lie on the galactic plane of
          the Milky Way, and there are no prominent star clusters.
      - question: |
          How many light years away is NGC 625?
        answer: |
          NGC 625 is 24000 light years in diameter and is an outlying
          member of the Sculptor Group.
      - question: |
          What is Robert's Quartet composed of?
        answer: |
          Robert's Quartet is composed of the irregular galaxy NGC 87,
          and three spiral galaxies NGC 88, NGC 89 and NGC 92.
document_outline: |
  Information about the Phoenix Constellation including the
  history, characteristics, and features of the stars in the constellation.
document:
    repo: https://github.com/juliadenham/Summit_knowledge
    commit: 0a1f2672b9b90582e6115333e3ed62fd628f1c0f
    patterns:
      - phoenix_constellation.md

Example attribution.txt file

Title of work: Phoenix (constellation)
Link to work: https://en.wikipedia.org/wiki/Phoenix_(constellation)
Revision: https://en.wikipedia.org/w/index.php?title=Phoenix_(constellation)&oldid=1237187773
License of the work: CC-BY-SA-4.0
Creator names: Wikipedia Authors

This knowledge example references one markdown file: phoenix_constellation.md. You can also add multiple files for knowledge contributions.

Note

Due to the higher volume, it will naturally take longer to receive acceptance for a knowledge contribution pull request than for a skill pull request. Smaller pull requests are simpler and require less time and effort to review.

What might these markdown files look like? They can be freeform. Here's what a snippet of phoenix_constellation.md might look like in your Git repository.

Knowledge: Markdown file example

# Phoenix (constellation)

**Phoenix** is a minor constellation in the southern sky. Named after the mythical
phoenix, it was first depicted on a celestial atlas by Johann Bayer in his 1603
*Uranometria*. The French explorer and astronomer Nicolas Louis de
Lacaille charted the brighter stars and gave their Bayer designations
in 1756. The constellation stretches from roughly โˆ’39 degrees to โˆ’57 degrees
declination, and from 23.5h to 2.5h of right ascension. The constellations Phoenix,
Grus, Pavo, are known as the Southern Birds.

The brightest star, Alpha Phoenicis, is named Ankaa, an Arabic word meaning 'the Phoenix'.
It is an orange giant of apparent magnitude 2.4. Next is Beta Phoenicis, actually a
binary system composed of two yellow giants with a combined apparent magnitude of 3.3. Nu
Phoenicis has a dust disk, while the constellation has ten star systems with known planets and the recently
discovered galaxy clusters El Gordo and the Phoenix
Clusterโ€”located 7.2 and 5.7 billion light years away respectively, two of the largest objects in the visible
universe. Phoenix is the radiant of two annual meteor showers: the Phoenicids in December, and the July
Phoenicids.

In the taxonomy repository, here's what the previously referenced knowledge might look like in the tree:

Knowledge: directory tree example

[...]

โ””โ”€โ”€ knowledge
    โ””โ”€โ”€ science
        โ”œโ”€โ”€ astronomy
        โ”‚ โ””โ”€โ”€ constellations
        โ”‚     โ””โ”€โ”€ Phoenix <=== here it is :)
        โ”‚     |    โ””โ”€โ”€ qna.yaml
        |     |        attribution.txt
        โ”‚     โ””โ”€โ”€ Orion
        โ”‚          โ””โ”€โ”€ qna.yaml
        |              attribution.txt
[...]

For more information on what to include in your attribution.txt file, see For your attribution.txt file in CONTRIBUTING.md.

You can organize the knowledge markdown files in your repository however you want. You just need to ensure the YAML is pointing to the correct file.

Taxonomy tree Layout

The taxonomy tree is organized in a cascading directory structure. At the end of each branch, there is a YAML file (qna.yaml) that contains the examples for that domain. Maintainers can decide to change the names of the existing branches or to add new branches.

Important

Folder names do not have spaces. Use underscores between words.

Below is an illustrative directory structure to show this layout:

.
โ””โ”€โ”€ linguistics
    โ”œโ”€โ”€ writing
    โ”‚   โ”œโ”€โ”€ brainstorming
    โ”‚   โ”‚   โ”œโ”€โ”€ idea_generation
    |   โ”‚       โ””โ”€โ”€ qna.yaml
    โ”‚   โ”‚           attribution.txt
    โ”‚   โ”‚   โ”œโ”€โ”€ refute_claim
    |   โ”‚       โ””โ”€โ”€ qna.yaml
    โ”‚   โ”‚           attribution.txt
    โ”‚   โ”œโ”€โ”€ prose
    โ”‚   โ”‚   โ”œโ”€โ”€ articles
    โ”‚   โ”‚       โ””โ”€โ”€ qna.yaml
    โ”‚   โ”‚           attribution.txt
    โ””โ”€โ”€ grammar
        โ””โ”€โ”€ qna.yaml
        โ”‚   attribution.txt
        โ””โ”€โ”€ spelling
            โ””โ”€โ”€ qna.yaml
                attribution.txt

For an extensive example of this layout see, taxonomy_tree_layout in the documentation folder.

Contribute knowledge and skills to the taxonomy

The ability to contribute to a Large Language Model (LLM) has been difficult in no small part because it is difficult to get access to the necessary compute infrastructure.

This taxonomy repository will be used as the seed to synthesize the training data for InstructLab-trained models. We intend to retrain the model(s) using the main branch following InstructLab's progressive training on a regular basis. This enables fast iteration of the model(s), for the benefit of the open source community.

By contributing your skills and knowledge to this repository, you will see your changes built into an LLM within days of your contribution rather than months or years! If you are working with a model and notice its knowledge or ability lacking, you can correct it by contributing knowledge or skills and check if it's improved after your changes are built.

While public contributions are welcome to help drive community progress, you can also fork this repository under the Apache License, Version 2.0, add your own internal skills, and train your own models internally. However, you might need your own access to significant compute infrastructure to perform sufficient retraining.

Ways to Contribute

You can contribute to the taxonomy in the following two ways:

  1. Adding new examples to existing leaf nodes:
  2. Adding new branches/skills corresponding to the existing domain:

For more information, see the Ways of contributing to the taxonomy repository documentation.

How to contribute skills and knowledge

To contribute to this repo, you'll use the Fork and Pull model common in many open source repositories. You can add your skills and knowledge to the taxonomy in multiple ways; for additional information on how to make a contribution, see the Documentation on contributing. You can also use the following guides to help with contributing:

Why should I contribute?

This taxonomy repository will be used as the seed to synthesize the training data for InstructLab-trained models. We intend to retrain the model(s) using the main branch as often as possible (at least weekly). Fast iteration of the model(s) benefits the open source community and enables model developers who do not have access to the necessary compute infrastructure.

taxonomy's People

Contributors

abhi1092 avatar abrahamdaniels avatar bjhargrave avatar booxter avatar ckadner avatar danmcp avatar dependabot[bot] avatar ebblake avatar grdryn avatar iranzo avatar jeremyeder avatar jjasghar avatar joesepi avatar kelbrown20 avatar lehors avatar lhawthorn avatar luksa avatar mairin avatar mingxzhao avatar nathan-weinberg avatar nitin-ramchandani avatar obuzek avatar rhatdan avatar russellb avatar shivchander avatar spacew avatar spzala avatar stevsmit avatar wking avatar xukai92 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

taxonomy's Issues

Incorrect Pi number knowledge + endless loop

Describe the bug
Apart of and endless loop, the Pi digits provided by the model are incorrect, only the first 131 are accurate.

Input given at the prompt

>>> how many digits of pi number can you provide?

Response that was received

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ merlinite-7b-Q4_K_M โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ As a text-based AI language model, I don't have the capability to generate large amounts of text or perform complex calculations like calculating digits of pi on the fly. However, I can  โ”‚
โ”‚ provide you with the first few digits of pi:                                                                                                                                               โ”‚
โ”‚                                                                                                                                                                                            โ”‚
โ”‚ 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095574466511415274941797294949234848862347855440985453987 โ”‚
โ”‚ 370784556643952592888561294067437683460603213816356944163388297498656268801679274565704832401848756649191308841066102790477473071671664898048374083941692334947216768420635344939230901227 โ”‚
โ”‚ 769403785581303933094989189618968082328648578633754925082711576888258471779023624822000846656462810598752344746769478246337873438886593670908953427976037531024689684984765616032883234388 โ”‚
โ”‚ 866105050808913592293613929455867917480709034888653252736366262966737336788316865196888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 โ”‚
โ”‚ 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 โ”‚
โ”‚ 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 โ”‚
โ”‚ 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 โ”‚
โ”‚ 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 โ”‚
โ”‚ 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 โ”‚
โ”‚ 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 โ”‚
โ”‚ 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 โ”‚
โ”‚ 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 โ”‚
โ”‚ 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999                                                                                                     โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 549.041 seconds โ”€โ•ฏ

Response that was expected
Maybe just the first 10 digits (3.1415926535) as example to simplify?

add a skill for alphabetizing a list of names

Describe the proposed contribution to the taxonomy

  • Several examples with a context of names (my idea for providing such lists is to pick a random subset of git contributors to various projects), then asking for the list to be sorted by first name, by surname, or to pick out the first or last person if the list were sorted correctly.

Input given at the prompt

I used git shortlog | sed -n '/^[^ ]/ s/ (.*//p' |xclip on libnbd.git to come up with my initial context for this issue, to see how well (or poorly) lab can do the task without further training, as shown in a saved session log:

     {
        "role": "user",
        "content": "In the following list of names, which comes first alphabetically by first name?\nChris Lamb\nDaniel P. Berrang\u00e9\nEric Blake\nLaszlo Ersek\nMartin Kletzander\nMing Lei\nNir Soffer\nPino Toscano\nRichard W.M. Jones\nTage Johansson\nThomas Wei\u00dfschuh\nanson\n"
    },
    {
        "role": "assistant",
        "content": "Alphabetizing by first name, the order is as follows:\n\n1. Daniel P. Berrang\u00e9\n2. Chris Lamb\n3. Eric Blake\n4. Laszlo Ersek\n5. Martin Kletzander\n6. Ming Lei\n7. Nir Soffer\n8. Pino Toscano\n9. Richard W.M. Jones\n10. Tage Johansson\n11. Thomas Wei\u00dfschuh\n12. anson\n\nPlease note that I have assumed \"anson\" is a given name, as it does not appear to be a last name in this context. If \"anson\" is indeed a last name, it would be placed at the end of the list."
    },
    {
        "role": "user",
        "content": "why did you put Daniel before Chris in that list?\n"
    },
    {
        "role": "assistant",
        "content": "I placed Daniel P. Berrang\u00e9 before Chris Lamb in the list because, when comparing the first names alphabetically, \"D\" precedes \"C\". I followed standard alphabetical ordering rules to ensure consistency and fairness in the arrangement of names."
    },
    {
        "role": "user",
        "content": "how about arranging the list by surname?\n"
    },
    {
        "role": "assistant",
        "content": "If we are to arrange the list by surname, it would look like this:\n1. Berrang\u00e9, Daniel P.\n2. Blake, Eric\n3. Ersek, Laszlo\n4. Kletzander, Martin\n5. Lei, Ming\n6. Nir, Soffer\n7. Pino, Toscano\n8. Jones, Richard W.M.\n9. Johansson, Tage\n10. Wei\u00dfschuh, Thomas\n11. Lamb, Chris\n12. Soffer, anson"
    }

Response from the current model

See above. The engine was unable to recognize a request for "which comes first" as wanting only one name, not the full list; and the model then hallucinated by claiming that D comes before C (but at least the list it gave was consistent with its hallucinated explanation). The request to sort all names by surname turned out even worse, although I was impressed at its ability to reorder the names by a sensible choice for surname in all but the case where it reused a bogus surname for the one-name entry "anson".

Response that you would expect instead with the contribution

For the first question, I would have expected either "anson" or "Chris Lamb", but not an entire list. The second question about why it choose Daniel before Chris should be fixed to not hallucinate. And for the third answer, I would like to see something like:

If we are to arrange the list by surname, it would look like this:

1. Berrangรฉ, Daniel P.
2. Blake, Eric
3. Ersek, Laszlo
4. Jones, Richard W.M.
5. Johansson, Tage
6. Kletzander, Martin
7. Lamb, Chris
8. Lei, Ming
9. Nir, Soffer
10. Pino, Toscano
11. WeiรŸschuh, Thomas
12. anson

The name "anson" does not appear to include a surname, so I sorted it last.

Proposal for adding capability of replying to close-ended questions in a concise way

Describe the proposed contribution to the taxonomy

  • When replying to a close ended question the model writes a lot
  • If the prompt asks explicitly to response only with the option label (and maybe its value), the model does not respect the requirement
  • Proposing to add a composite skill to reply only with the option label like in a close-ended question exam

Input given at the prompt

What the first law of robotics say? Return option number only: 
    1. A robot can hit a human if they are trying to hurt the robot;
    2. A robot may not injure a human being or, through inaction, allow a human being to come to harm;
    3. A human cannot interfere with robot action if this would mean making the robot failing a task

Response from the current model

   The first law of robotics, as stated by Isaac Asimov, is: "A robot may not injure a human being or, through inaction, allow a human being to come to harm." This is option 2 in the list provided.

Response that you would expect instead with the contribution

  2 or Option 2

Add PR checks via GitHub actions

GitHub actions along with concise Bash scripts could/should be employed to make sure the submitted "qna.yml" and "knowledge.md" files are formatted correctly (style and content structure)

How do you fix an issue when the model's aswer is self inconsistent?

Describe the bug
The model's answer is self inconsistent.

Input given at the prompt

>>> How do you start an openstack server with the openstack CLI client?                                                                                                                                 

Response that was received

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ggml-merlinite-7b-0302-Q4_K_M โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ To start an OpenStack server using the OpenStack CLI (command-line interface) client, you can utilize the `nova start` command. Here's a step-by-step guide:                                                     โ”‚
โ”‚                                                                                                                                                                                                                  โ”‚
โ”‚ 1. First, ensure that your OpenStack environment is properly configured and that you have installed the OpenStack CLI client on your local machine.                                                              โ”‚
โ”‚                                                                                                                                                                                                                  โ”‚
โ”‚ 2. To start a new instance, you need to provide a few essential parameters:                                                                                                                                      โ”‚
โ”‚    - The instance name or ID (e.g., `--name my-instance`)                                                                                                                                                        โ”‚
โ”‚    - The image to use for the instance (e.g., `--image my-image`)                                                                                                                                                โ”‚
โ”‚    - The flavor (e.g., `--flavor m1.small`)                                                                                                                                                                      โ”‚
โ”‚    - The availability zone (e.g., `--availability-zone nova`)                                                                                                                                                    โ”‚
โ”‚                                                                                                                                                                                                                  โ”‚
โ”‚ 3. Run the following command in your terminal:                                                                                                                                                                   โ”‚
โ”‚                                                                                                                                                                                                                  โ”‚
โ”‚    ```                                                                                                                                                                                                           โ”‚
โ”‚    openstack server start --name my-instance --image my-image --flavor m1.small --availability-zone nova                                                                                                         โ”‚
โ”‚    ```                                                                                                                                                                                                           โ”‚
โ”‚                                                                                                                                                                                                                  โ”‚
โ”‚ 4. Replace `my-instance`, `my-image`, and `m1.small` with the actual names or IDs that you want to use for your instance, image, and flavor, respectively.                                                       โ”‚
โ”‚                                                                                                                                                                                                                  โ”‚
โ”‚ 5. The `openstack` command will display information about the started instance, including its UUID, status, and other relevant details.                                                                          โ”‚
โ”‚                                                                                                                                                                                                                  โ”‚
โ”‚ By following these steps, you can successfully start an OpenStack instance using the OpenStack CLI client. Remember to replace the placeholders with your desired instance, image, and flavor names or IDs.      โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 28.669 seconds โ”€โ•ฏ

Response that was expected

The first sentence refers to the nova start command but the later instructions correctly refer to the openstack CLI.

Improve ability to calculate difference between times

(first time for me opening one of these issues so apologies if I've missed anything here)

Describe the proposed contribution to the taxonomy

  • More natural language response for asking for the difference between two times
  • Improved accuracy when calculating the difference between two times

Inputs given at the prompt and Responses from the current model

Q: Bob arrives at his office at 9:00am and leaves the office at five o'clock. How long was Bob at the office? 
A: Assuming a standard workday, Bob was at the office for 8 hours. This is because he arrived at 9:00 am and left at 5:00 pm, which is an 8-hour duration between those two times, excluding the lunch break.

Q: Bob arrives at the golf course at nine o'clock in the morning and leaves the golf course at 5:00pm. How long was Bob at the golf course?
A: Assuming a standard golfing day, Bob was at the golf course for approximately 8 hours. This is because he arrived at 9:00 am and left at 5:00 pm, which is an 8-hour duration between those two times, excluding any breaks or pauses during his golfing session. 

Q: Marc arrives at his office at ten o'clock in the morning and leaves the office at 4:00pm. How long was Marc at the office?
A: Assuming a standard workday, Marc was at the office for 7 hours. This is because he arrived at 10:00 am and left at 4:00 pm, which is a 7-hour duration between those two times, excluding the lunch break.

Q: Marc arrives at the golf course at 11:00am and leaves the golf course at three o'clock in the afternoon. How long was Marc at the golf course?
A: Assuming a standard golfing day, Marc was at the golf course for approximately 4 hours. This is because he arrived at 11:00 am and left at 3:00 pm, which is a 4-hour duration between those two times, excluding any breaks or pauses during his golfing session.

Response that you would expect instead with the contribution

Q: Bob arrives at his office at 9:00am and leaves the office at five o'clock. How long was Bob at the office?
A: Bob was at the office for 8 hours. This is because he arrived at 9:00 am and left at 5:00 pm, which is an 8-hour duration between those two times.

Q: Bob arrives at the golf course at nine o'clock in the morning and leaves the golf course at 5:00pm. How long was Bob at the golf course?
A: Bob was at the golf course for approximately 8 hours. This is because he arrived at 9:00 am and left at 5:00 pm, which is an 8-hour duration between those two times.

Q: Marc arrives at his office at ten o'clock in the morning and leaves the office at 4:00pm. How long was Marc at the office?
A: Marc was at the office for 6 hours. This is because he arrived at 10:00 am and left at 4:00 pm, which is a 6-hour duration between those two times.

Q: Marc arrives at the golf course at 11:00am and leaves the golf course at three o'clock in the afternoon. How long was Marc at the golf course?
A: Marc was at the golf course for approximately 4 hours. This is because he arrived at 11:00 am and left at 3:00 pm, which is a 4-hour duration between those two times.

Skills Knowhow: Complex rule systems - knowledge or skills?

A skills contributor (@djhenry) asks:

I asked the model to describe the London System chess opening and the response describes illegal moves like castling multiple times.  How would I improve this answer?  Would this be a compositional skill or more of a knowledge thing?

On its face this sounds like a combination of knowledge and skills - the knowledge part being a complete set of chess rules, and the skills part being answering questions using that knowledge correctly. Or is this an example of a "grounded skill"?

cc @juliadenham @akashgit @katesoule @xukai92

Contribution guidelines split

There are contribution guidelines in both the README and CONTRIBUTING. It would be good to align all comtributing guidelines in CONTRIBUTING.md

Model does not seem to understand next/future in prompt & provides previous results back to 2020

Describe the bug
The model does not seem to understand the notion of "next" being a point in time from today. When asked, two similar questions in different contexts, past dates are provided within the response. I would expect when asking next, it would be not providing past results (or from several years back)

Input given at the prompt
Prompt 1:
When are the next 5 solar eclipses?

Prompt 2:
when are the next 5 leap years?

Response that was received
Response for Prompt 1:

Here is the list of the next 5 solar eclipses, including the type, date, and location:  
1. Total Solar Eclipse - December 14, 2020 - South Pacific Ocean, Chile, Argentina 
2. Annular Solar Eclipse - June 21, 2020 - Arctic Ocean, Greenland, Canada, Svalbard, Norway 
3. Hybrid Solar Eclipse - December 4, 2023 - Indian Ocean, Antarctica 
4. Annular Solar Eclipse - October 14, 2023 - Pacific Ocean, Chile, Argentina, Falkland Islands 
5. Annular Solar Eclipse - June 26, 2025 - Atlantic Ocean, Cape Verde, Senegal, Mauritania, Mali, Algeria, Spain, Portugal, United Kingdom, France, Netherlands, Belgium, Germany, Denmark, Sweden, Norway, Finland, Russia, Greenland, Canada, United States, Mexico, Guatemala, Belize, Honduras, El Salvador, Nicaragua, Costa Rica, Panama, Colombia, Ecuador, Brazil,  Argentina, Chile, Falkland Islands, South Georgia and the South Sandwich Islands, South Orkney Islands, South Shetland Islands  

Response for Prompt 2:

Here is the list of the next 5 leap years, including the year number:
1. 2020
2. 2024
3. 2028
4. 2032
5. 2036

Response that was expected
Today is March 12 2024, so I would expect any results before that to be excluded from "next"

Prompt 1: (source: science.nasa.gov/eclipses/future-eclipses)

Here is the list of the next 5 solar eclipses, 
1. Total Solar Eclipse - April 8, 2024 
2. Annular Solar Eclipse - October 2, 2024  
3. Partial Solar Eclipse - March 29, 2025 
4. Partial Solar Eclipse - September 21, 2025
5. Annular Solar Eclipse - February 17, 2026 

Prompt 2:

Here is the list of the next 5 leap years:
1. 2024
2. 2028
3. 2032
4. 2036
5. 2040

Add skill group descriptions

Currently, each skill (task?) already has a description (in the task_description field within qna.yaml), but the parent directories don't. For example, the compositional_skills/writing/grounded directory contains several skills, but it may not be perfectly clear what grounded means (in its surrounding context), because the term is not explained anywhere.

As a contributor, it's hard to figure out where to add a certain skill. If every file directory had a description explaining the purpose of the directory, this would be much easier. This description could be in a simple README.md within the directory, or better yet in a new YAML file, as this will allow adding additional metadata to the directories later.

Inconsistency between taxonomy and cli on taxonomy file names and locations

The current layout of the taxonomy repo and its documentation imply that skill files must be named qna.yaml and there should only be one per directory. The reality is that today the cli doesn't care about the names, they simply need to end with .yaml, and it will pick up all such files from every directory in the taxonomy, not just one.

We should figure out how to resolve this inconsistency.

The advantage of the way the cli functions is that it allows for a more flexible taxonomy. We could add more than a skill to a directory using the filenames to differentiate them instead of forcing people to create a separate directory for each one. This would give us a more compact hierarchy in the end. It also means that you don't just have a huge list of files with the same name, the meaning of which entirely depends on the directory they sit in. Instead each file can have a meaningful name.

If however, we want to stick to the current layout and documentation we probably should fix the cli to be aligned.

What is the correct attribution when skill answers came from `lab chat` with modifications?

I'm working on a skill where I generated examples by asking the existing default model (merlinite-7b-Q4_K_M.gguf) a question via lab chat and using that output as inspiration for the answer I want, correct formatting, removing extraneous / unrelated information from the response, and so on. This is a freeform writing skill, where the model is generating the content entirely by itself that is used as the basis of my corrected answer.

In this case, the question is my own but what is the correct attribution overall for these examples? How would I know the license of the underlying content that went into generating the answer it gave me? Or, do I consider all answers from this model as not encumbered by an existing license and I can choose to assign one myself, as if this was content I generated myself?

Skill Knowhow: Refining skills

We need better documentation on ensuring that the skills you contribute will actually improve the model.

People have reported their generate_.jsonl and train_.jsonl files (as a result of running lab generate) contain relatively inaccurate alternate instruction suggestions. We'll likely get a better skill tree if people learn to look at these outputs, and refine the verbiage of their skills until they're getting strong answers from the teacher model (the one you load up with lab serve before you run lab generate).

@xukai92's commentary:

  • how easy/hard to get good synthetic data depends on the q/a themselves. perhaps rewriting or rephrasing could help
  • there are some improvements on the method itself we will deploy in the next few days
  • potentially switch the model used by lab generate could be helpful, but it requires a better machine. all it needs is an endpoint but instructions to be added (instructlab/instructlab#398)
  • if you can load mixtral-8x7b-v0.1.Q4_K_M.gguf from https://huggingface.co/TheBloke/Mixtral-8x7B-v0.1-GGUF in lab serve and document how to do this it would be very helpful for others

Tasks

  • Add Kai's commentary to the skill info docs
  • Suggest in both skill development and triage info docs that changing your wording and rerunning the skill until your .jsonl output has improved will be more beneficial to the model

Proposal for automated checks of knowledge submission

In order to release knowledge contributions to open source community, IBM legal is asking us to propose an automated solution for our generation pipeline that covers:

On the provided knowledge source from the contributor:

  • HAP detection
  • PII detection
  • Screening for commonly copyrighted content (e.g. OneShield) -- lower priority

On the synthetic data created from the knowledge source

  • Screening for leakage of text from the knowledge source being used verbatim in the synthetic data (leveraging OneShield)

YAML extension should be specified explictly

both .yaml and .yml can be used for YAML files.
but in order to make files consistent, I suggest we stick with .yaml files (as it's how the existing taxonomy uses) and explicitly guide users to do so

Ordering of question and answer in qna.yaml files

Every qna.yaml file I've looked at puts the answer before the question.

I'm a newcomer to the project, so there may be some deep technical reason for this that I'm unaware of, but the ordering seems confusing; it seems much more clear to me to have question then answer in such files. This seems particularly pertinent when the list of answer/question pairs is bigger than a screenfull, - it's easy to get lost and misgroup the pairs (especially given the name of the file format).

Can/should the recommended ordering change, or should there be a FAQ about this?

Hope this is constructive.

Skill Knowhow: LLMs are bad at math

David brings up a great point that LLMs are well-known to be poor at math. Even if we can make them behave correctly on small number examples, it's likely to extrapolate poorly to large numbers and large texts.

Questions for the Lab inventors:

  • Do we expect the InstructLab tuning to help with this any more than your average LLM?
  • If not, should taxonomy only solicit non-math-related skills?

cc @akashgit @katesoule @xukai92 @juliadenham

              @harshmadhani From what I understand, LLMs are inherently bad at math, including counting. They operate on tokens and only select the next token to output based on probabilities. They do now know how to do math.

So if the model once learned that 1 + 1 = 2, it cannot suddenly do arbitrary additions. It might only do that calculation (that it learned) "better". Same with counting.

What I read so far is that LLMs can only properly deal with math once they use some external helper service. Same with counting tokens.

So my understanding is, that no "skill" here can fix that. You might only be able to teach it some instances of such math/counting problems, but not how to universally do it.

I might be completely wrong and am happy to learn why that is not the case. But there is usually a reason why this LLM is *that* bad at math+counting while it is *that* good at stuff that doesn't involve math/counting :)

_Originally posted by @davidhildenbrand in https://github.com/instruct-lab/taxonomy/issues/134#issuecomment-1983512059_

Run into endless loop in response in chinese

Describe the bug
Ask the model to response in chinese. It run into endless response "ๅ“Žๅ‘€ๅ‘€ๅ‘€", I only can do force stop after wait for a long while.
My question in english is "Could you list some greeting words except hello?".

Input given at the prompt
โ€œ่ฏท็”จไธญๆ–‡ๅ›ž็ญ”ๆŽฅไธ‹ๆฅ็š„้—ฎ้ข˜ใ€‚โ€œ
"้™คไบ†ไฝ ๅฅฝ๏ผŒ่ฟ˜ๆœ‰ๅ…ถไป–้—ฎๅ€™็š„่ฏ่ฏญไนˆ๏ผŸ"

Response that was received
Please check the screenshot.
endleass_hello

Response that was expected
"ๅœจไธญๆ–‡ไธญ๏ผŒ้™คไบ†ใ€Œไฝ ๅฅฝใ€ๅค–๏ผŒ่ฟ˜ๆœ‰่ฎธๅคšๅธธ่ง็š„้—ฎๅ€™่ฏ่ฏญ๏ผŒๅฆ‚'ๅ—จ'๏ผŒโ€˜ๆ—ฉไธŠๅฅฝโ€™๏ผŒโ€˜ๆ™šไธŠๅฅฝโ€™"

The model doesn't update its answer to the same closed-ended question if the previously selected option gets removed

Describe the bug/problem

  • Ask a closed-options question
  • Repeat the question removing from the options the one previously chosen by the model
  • The model keep answering to the old version of the question
  • Repeat the question by adding the option the model keeps answering, using a different label
  • The model responses with the new label

Input given at the prompt


1. Q1: What is the capital of Italy. Reply only with the option number among the following: A. Florence; B. Milan; C. Rome
2. Q2: What is the capital of Italy. Reply only with the option number among the following: A.Florence; B. Milan; C. Bari
3. Q3: Rome is not among the options
4. Q4: What is the capital of Italy. Reply only with the option number among the following: A.Florence; B. Milan; C. Bari; D. None of the above
5. Q5: What is the capital of Italy. Reply only with the option number among the following: A.Florence; B. Milan; C. Bari; D. None of the above; E. Rome

Response that was received from the current model

1. R1: `The capital of Italy is Rome, which is option C in the list provided`. 
2. R2: `The capital of Italy is Rome, which is option C in the list provided.`
3. R3: `I apologize for the confusion earlier. The capital of Italy is Rome, which is option C in the list provided.`
4. R4: `The capital of Italy is Rome, which is option C in the list provided.` 
5. R5: `The capital of Italy is Rome, which is option E in the list provided.`

Response that you expected instead

1. R1: `Option C`
2. R2: `None of the options are valid`
3. R3: `I apologize for the confusion earlier. The capital of Italy is Rome, none of the options match it`
4. R4: `Option D`
5. R5: `Option E`

Additional observation
In this case it "remembers" the old version of the question where the correct option was present. However, if the correct option is missing from the very first version of the question, it will still reply with an option which is not present. e.g.,
Q: what is the capital of France? A. Lyon B. Marseille C. Reun
R: The capital of France is Paris, which is not listed in the provided options. Paris is option A in the list provided, but it is not the capital of France --> In this case it messes up a bit apart from mentioning option A wrongly.

Clarify intent around licensing and attribution for taxonomy data

Currently the taxonomy repository has an Apache 2.0 LICENSE file at the root. There is no commentary about licensing in either the README or CONTRIBUTING files, nor do the YAML files record licensing information. Thus implicitly we have to assume all the content is Apache 2.0 licensed when contributed.

Looking at a selection of the current skills YAML files, however, indicates this is unlikely to be accurate.

There is no attribution or license information recorded in these YAML files to indicate that they are not Apache 2 licensed, nor record their source.

Another open MR #62 is contributing content which is under "Linux-man-pages-copyleft", so again not Apache 2 license, though at least it has a SPDX tag embedded showing the true status, and by chance indicates its origin too.

In collecting information in this repository, to follow best open source development practices, we should record license information for each file, (at the very least / particularly) where it differs from the project default Apache.

From a ethical POV, it would be good practice to credit sources if content of the training file is not original work by the contributor.

Correct licensing statement and source attribution need not be a high burden on contribution. It requires little more than adding a SPDX identifier in each YAML file, and where applicable URLs as references to the source.

It has been said that using the taxonomy information for training a model can be considered "fair use". I don't have an opinion on that and believe it is tangential, as the act of consuming the data in this repository to produce new data (the model) is an independent process done elsewhere. The task of this repository is simply to collect data and distribute it in a convenient manner.

As such I believe it is still imperative to track and record licensing information in this repository, even if one of the common consumers of it were valid in claiming a copyright exception under 'fair use' theory.

dec -> hex

Describe the bug
The converting algorithm doesn't work properly and it also depends on previous state of the system.

Input given at the prompt
convert 10000 into hexadecimal, be concise

Response that was received
The decimal number 10000 is equivalent to the hexadecimal number 2B7.

Response that was expected
The decimal number 10000 is equivalent to the hexadecimal number 2710.

Sometimes it seems to depend on previous tasks, which for stupid questions makes no sense. I can't reproduce the following problem now.
Input given at the prompt
convert 10 into hexadecimal

Response that was received
broken algorithm -> endless loop

Response that was expected
A

Add PR Template

See discussion here.

Only want this to guide people contributing new skills. Instructed to delete, and proceed without if not skill related.

Misinformation on the state

Describe the bug
Wrong information on the state of Alaska

Input given at the prompt
what can you tell me about Alaska?

Response that was received
Alaska is the largest state in the United States, both in terms of land area and population. Here are some interesting facts about Alaska: โ”‚

โ”‚                                                                                                                                                                                                                 โ”‚
โ”‚ 1. Size: Alaska is approximately 663,268 square miles, which is roughly twice the size of Texas, the second-largest state in the USA.                                                                           โ”‚
โ”‚ 2. Borders: Alaska shares its border with Canada to the east and the Arctic Ocean to the north. It also has maritime borders with Russia across the Bering Strait.                                              โ”‚
โ”‚ 3. Capital: Juneau is the capital of Alaska, located in the southeastern part of the state.                                                                                                                     โ”‚
โ”‚ 4. Population: According to the 2020 census, Alaska has a population of approximately 739,500 people.                                                                                                           โ”‚
โ”‚ 5. Climate: Alaska has a wide range of climates due to its vast size and diverse topography. The southern coastal areas have a temperate maritime climate, while the interior has a subarctic climate.          โ”‚
โ”‚ 6. Wildlife: Alaska is home to diverse wildlife, including bears, moose, caribou, wolves, and various bird species. It also has a significant number of marine animals such as whales, seals, and sea lions.    โ”‚
โ”‚ 7. Natural Resources: Alaska is rich in natural resources, including oil, natural gas, gold, copper, zinc, lead, and coal.                                                                                      โ”‚
โ”‚ 8. National Parks: Alaska is home to numerous national parks, including Denali National Park, Wrangell-St. Elias National Park, and Glacier Bay National Park. These parks offer stunning landscapes and        โ”‚
โ”‚ abundant wildlife viewing opportunities.                                                                                                                                                                        โ”‚
โ”‚ 9. Indigenous Cultures: Alaska is home to various indigenous cultures, including Aleut, Tlingit, Haida, Tsimshian, and Inupiat. These cultures have rich traditions and histories that have shaped Alaska's     โ”‚
โ”‚ unique character.                                                                                                                                                                                               โ”‚
โ”‚ 10. Midnight Sun: During the summer months, Alaska experiences the Midnight Sun phenomenon, where the sun does not set for several weeks in some parts of the state.                                            โ”‚
โ”‚                                                                                                                                                                                                                 โ”‚
โ”‚ These are just a few facts about Alaska. If you have any specific questions or topics you'd like to learn more about, feel free to ask!    

Response that was expected
Alaska is the largest state in the United States, in terms of land area. Here are some interesting facts about Alaska: [text to continue]

Process for reporting problematic content?

We already have a community code of conduct and a list of topics to avoid. But:

  • Contributors may open issues and pull requests with problematic content, before anyone project-side can review them for compliance.
  • Review is manual and for some criteria subjective, and problematic content may slip past pre-merge review and land in the repository.
  • Standards may evolve, and content that was acceptable at merge-time may match later iterations of problematic-content classifiers.

So while asking triagers to review for HAP and such is good, we also want to have a clear reporting pipeline for anyone who considers content problematic. Currently the code of conduct suggests:

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team. All complaints will be reviewed and investigated...

But there are a number of teams in that MAINTAINERS.md, and it's not clear from the docs whether it means Taxonomy Maintainters or Community Maintainers for someone who wants to report possibly-problematic content in the taxonomy repository. It's also unclear, given a list of GitHub IDs, how those maintaner-sets should be contacted once the relevant set has been selected.

To address this issue, can we:

  • Decide what the reporting pipeline is for problematic content review. Maybe we want to recycle the code-of-conduct pipeline, and if so, clarifying that pipeline should probably be part of this issue (but clarifying that pipeline is a good idea even if we decide not to use it for problematic-content reporting).
  • Document the selected reporting pipeline somewhere. Probably somewhere in the community repository, so it can be shared with the cli and other repositories, which might also have problematic content. Unless the criteria for problematic content are differernt per-repo, e.g. this list of topics to avoid comes underneath a big drawing of the taxonomy hierarchy, so it isn't immediately clear if it applies to the cli repo as well, or if it's specific to the taxonomy repo.
  • Add links to places we think problematic-content-reporters might look, so they can find the reporting-pipeline documentation, and are less likely to submit a public GitHub issue or something else that might draw unwanted attention to the problematic content. This likely includes at least:

We probably also want some kind of periodic review, where project maintainers review at least open tickets and Git content for compatibility with the current standards. But I'll leave that out of scope for this issue, and we can come back to it after we've worked out the reporting pipeline.

Scope skills submissions to explain what you want

The more clear the contributing docs are about the kind of submissions you're looking for, the less confusion there will be in folks wondering if they should contribute. And more clarity would also avoid the time and dissapointment of "actually, this isn't what we're looking for at the moment" getting hashed out at the pull-request level. We already do a good job saying "no knowledge yet!", but we can scope skills more by saying things like:

  • We currently only have the maintainer staffing or bot infra to review English submissions. We intend to support more languages in the future.
  • We aren't currently looking for computer programming language skills.
  • We are currently looking for company/sub-culture specific information!
  • Etc., etc.

to help keep contributors and maintainers more aligned on where things are expected to go, and what kinds of contributions are expected to be accepted.

The model doesn't format answers correctly - Magic 8 Ball

Describe the proposed contribution to the taxonomy

  • The model delivers Magic 8 Ball questions correctly. Asking the same question leads - as expected - to different answers. However, when trying to get the answers in specific casing (title, sentence, all caps)
    -- The casing might not be correct at all.
    -- When repeatedly asking the same question, the same answer is given.

Input given at the prompt

Give me an 8 Ball answer to "Does he love me?" in title casing. 

Response from the current model

 Answer: It is rather doubtful. 

Expected Response

 Answer: It Is Rather Doubtful. 

Other sample sequences

Expected Magic 8 Ball behavior on repeated questions:

>>> Give me an 8 Ball answer for "Should I meet with him?"                                   [S][default]
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ merlinite-7b-Q4_K_M โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Reply: My sources indicate divination is not advised.                                                 โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 1.266 seconds โ”€โ•ฏ
>>> Give me an 8 Ball answer for "Should I meet with him?"                                   [S][default]
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ merlinite-7b-Q4_K_M โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Reply: The omens suggest reconsideration is in order.                                                 โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 1.648 seconds โ”€โ•ฏ

The model doesn't generate new answers on repeated questions with casing restriction:

>>> Give me an 8 Ball answer for "Should I meet with him?" in title casing.                  [S][default]
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ merlinite-7b-Q4_K_M โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Reply: The Omens Suggest Reconsideration Is In Order.                                                 โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 1.704 seconds โ”€โ•ฏ
>>> Give me an 8 Ball answer for "Should I meet with him?" in title casing.                  [S][default]
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ merlinite-7b-Q4_K_M โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Reply: The Omens Suggest Reconsideration Is in Order.                                                 โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 1.744 seconds โ”€โ•ฏ

The model doesn't format correctly:

>> Give me an 8 Ball answer to "Does he love me?" in sentence casing.                       [S][default]
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ merlinite-7b-Q4_K_M โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Answer: It is rather doubtful.                                                                        โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 1.007 seconds โ”€โ•ฏ
>>> Give me an 8 Ball answer to "Does he love me?" in title casing.                          [S][default]
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ merlinite-7b-Q4_K_M โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Answer: It is rather doubtful.                                                                        โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 1.001 seconds โ”€โ•ฏ
>>> Give me an 8 Ball answer to "Does he love me?" in title casing.                          [S][default]
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ merlinite-7b-Q4_K_M โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Answer: It is rather doubtful.                                                                        โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 1.020 seconds โ”€โ•ฏ

Check skills file contents is failing with missing 'seed_examples'

Describe the bug
The test 'Check skills file contents' is failing with missing 'seed_examples'. Other elements of the check which depend on 'seed_examples' are passing. Another reviewer noted that my training data contains null and that broke the check.

see PR instruct-lab/cli#472

Input given at the prompt

Response that was received
The check failed

Response that was expected
The check should pass

Scramble words output is not consistent.

Describe the bug/problem

  • When trying to get the valid unscramble words from a set of letters, it gives lesser words than expected.
  • Sometimes, the output is inconsistent. For an example, 2 letter unscramble letters are never answered like ON , NO, TO.
  • Several words answered with additional letters TONY, NOTY where letter Y was not entered.
  • Following example "NOT" was ran at two different time and output changed.

Input given at the prompt

>>> Unscramble words with  TNO?                                                                                                                  [S][default]
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ assistant โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Here are some words that can be unscrambled from the letters in "TNO":                                                                                   โ”‚
โ”‚                                                                                                                                                          โ”‚
โ”‚ * NOT (TON -> NOT)                                                                                                                                       โ”‚
โ”‚ * TON (NOT -> TON)                                                                                                                                       โ”‚
โ”‚ * ONTO (TON -> ONTO)                                                                                                                                     โ”‚
โ”‚ * TONY (TON -> TONY)                                                                                                                                     โ”‚
โ”‚ * NOTY (TON -> NOTY)                                                                                                                                     โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 2.908 seconds โ”€โ•ฏ
>>> Unscramble words with NTO?                                                                                                                  [S][default]
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ merlinite-7b-Q4_K_M โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Certainly! I can help you unscramble words containing the letters N, T, and O. Here are some possible results:                                           โ”‚
โ”‚                                                                                                                                                          โ”‚
โ”‚ 1. Not too bad: This phrase is often used to express that something is not terrible, but could still be improved.                                        โ”‚
โ”‚ 2. Tent on: This phrase is not commonly used, but it could potentially mean "tenting on" or "focusing on" something.                                     โ”‚
โ”‚ 3. Tonot: This is not a standard English word, but it could be interpreted as "not a tone" or "not a sound."                                             โ”‚
โ”‚ 4. Tonto: This is a name, often associated with the character from the Lone Ranger series, meaning "only" or "alone" in Spanish.                         โ”‚
โ”‚ 5. Tortonian: This term is used in geology to refer to the Tortonian stage of the Pliocene epoch, which lasted from about 4.8 to 1.8 million years ago.  โ”‚
โ”‚ 6. Tonto's: This is not a standard English word, but it could be interpreted as "Tonto's" something, referring to the character from the Lone Ranger     โ”‚
โ”‚ series possessing something.                                                                                                                             โ”‚
โ”‚ 7. Tonto's: This is not a standard English word, but it could be interpreted as "Tonto's" something, referring to the character from the Lone Ranger     โ”‚
โ”‚ series possessing something.                                                                                                                             โ”‚
โ”‚ 8. Tonto's: This is not a standard English word, but it could be interpreted as "Tonto's" something, referring to the character from the Lone Ranger     โ”‚
โ”‚ series possessing something.                                                                                                                             โ”‚
โ”‚ 9. Tonto's: This is not a standard English word, but it could be interpreted as "Tonto's" something, referring to the character from the Lone Ranger     โ”‚
โ”‚ series possessing something.                                                                                                                             โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 12.342 seconds โ”€โ•ฏ

Response that was received from the current model

I have checked several other words and seems lab chat output is different. Output words are lesser. It should return 2 letters words, 3 letter words and 4 letter words. Here, ACT, EAT , ATE are missing along with others.

>>> Unscramble words with TCAE?                                                                                                                 [S][default]
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ assistant โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Here are some words that can be unscrambled from the letters in "TCAE":                                                                                  โ”‚
โ”‚                                                                                                                                                          โ”‚
โ”‚ * CAT (CATE -> CAT)                                                                                                                                      โ”‚
โ”‚ * ECT (TEAC -> TEAC)                                                                                                                                     โ”‚
โ”‚ * ACE (ETAC -> ACE)                                                                                                                                      โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 2.206 seconds โ”€โ•ฏ

Response that you expected instead

All the respective dictionary words with these . For example:

>>> Unscramble words with TNO? 

NOT 
TON
ON
NO

Please let us know if this is a correction or new proposal.

Determine GitHub LFS impact on contributor experience

Related to: instructlab/instructlab#62 (comment)

Over time the documents inside the taxonomy repo might get quite large. Cloning a massive repository will be an impediment to first time contributors. So having all the documents download as part of the clone might not be a good idea.

There was a decision to require contributors submitting knowledge to submit the documents via git-lfs.

How does requiring LFS impact contributor experience both command line and GitHub UI? For both:

  • contributors using git clients
  • contributors using the GitHub UI

fail to solve simple linear equations in two variables

basically it cannot solve a simple linear equation. (sometimes it can, for some very simple equation, like x+y=6,x-y=2)

if 2x + y = 18 and x - 2y = 4 , what is the value of x and y?

This problem is yet another system of linear equations! Let's use the elimination method once more. First, let's multiply both sides โ”‚of the second equation by 2 to make the coefficients of y equal: โ”‚
โ”‚ 2(x - 2y) = 2(4) โ”‚
โ”‚ 2x - 4y = 8 โ”‚
โ”‚ โ”‚
โ”‚ Now we have two equations: โ”‚
โ”‚ 2x + y = 18 โ”‚
โ”‚ 2x - 4y = 8 โ”‚
โ”‚ โ”‚
โ”‚ Let's multiply the first equation by 2 to make the coefficients of x equal: โ”‚
โ”‚ (2x + y) * 2 = 18 * 2 โ”‚
โ”‚ 4x + 2y = 36 โ”‚
โ”‚ โ”‚
โ”‚ Now subtract the modified first equation from the second equation: โ”‚
โ”‚ (4x + 2y) - (2x - 4y) = 36 - 8 โ”‚
โ”‚ 4x + 2y - 2x + 4y = 28 โ”‚
โ”‚ 6x = 28 โ”‚
โ”‚ x = 28 / 6 โ”‚
โ”‚ x = 4.67 (approximately) โ”‚
โ”‚ โ”‚
โ”‚ To find the value of y, we can substitute x back into either equation. Let's use the first equation: โ”‚
โ”‚ 2(4.67) + y = 18 โ”‚
โ”‚ 9.34 + y = 18 โ”‚
โ”‚ y = 18 - 9.34 โ”‚
โ”‚ y = 8.66 (approximately) โ”‚
โ”‚ โ”‚
โ”‚ So, the values of x and y are: โ”‚
โ”‚ x = 4.67 (approximately) โ”‚
โ”‚ y = 8.66 (approximately)

Support for "include files"?

In #117 I attempted to write a skill to generate GNU-format ChangeLog files from patch files.

The input patch files touched a Makefile, and thus contained a mixture of tabs and spaces (including semantically-significant tabs, alas).
The ChangeLog format I'm hoping it will generate also contain a mixture of tabs and spaces.

Presumably the output from the chatbot should be in Markdown, with the tabs and spaces and significant indentation escaped in some way. Expressing this file-escaped-into-markdown in yaml presumably requires a second kind of escaping.

I'm a novice at yaml, so maybe there's an existing way to do this, but this was very hard for me to express in the qna.yaml file. Is the human author expected to escape these themself, and for the qna.yaml "source" to contain the doubly-escaped content? Better would be a syntax that expresses "for the answer, I want the contents of this file, in Markdown form, labelled as being of file kind ", and have the file live in the taxonomy tree as a sibling of the qna.yaml file, rather than having the answer as literal text in the yaml.

Modals answer does not match everythime.

Describe the bug
When you ask the modal same question multiple times it mostly gives the same answer but not always.
So when i asked the modal 5-6 times a same question but in different way on the 7th time it gave me something random. and i can't reproduce it now.

Input given at the prompt

what's your name ? / your name? / please tell me your name ? / what is your name ? / can you tell me your name ?

Response that was received
I have received multiple responses but the very frequent response was
I am an artificial intelligence designed to provide information and support. I don't have a personal name, as my purpose is to serve as a helpful โ”‚ โ”‚ tool for users like you. Is there anything specific you would like to know or discuss? I'm here to help!

but after that it gave me something different.
My name is ELIZA, which stands for "Enhanced LIZard AIZA" - a playful name that reflects my role.

AND

My name is Kira, but I don't have personal attributes or a physical form, as I am a digital entity powered by machine learning algorithms. My purpose is to assist users in any way I can, based on my program....
Also,

My name is AIBM, and my purpose is to assist users in any way I can, based on my programming and the data I have been โ”‚ โ”‚ trained on. If you have any questions or requests, please feel free to share them, and I will do my best to assist โ”‚ โ”‚ you.

Response that was expected
It already have the correct response but sometimes maybe some glitch happens.

Train the model to infer data from markdown tables containing data about movie releases

Describe the proposed contribution to the taxonomy

  • To teach the model how to infer information from different cells in a markdown table .
  • Using four different tables with 10 and 12 rows with 5 columns. Example: Rank | Movie | Release Date | Rating | Total Gross
  • Provide five seed example questions with the correct answers

NOTE: An experiment training the LoRA model was done with 3 tables with good results. The PR will include 4 seed context tables with 5 questions and answers.

Input given at the prompt


- context 1: Top 10 Grossing Movies of 2023 table
- question 1: Which movie in the Action genre has the highest 2023 gross earnings and how much did it earn?
- context 2: Bottom 10 Grossing Movies of 2023
- question 2: Which action movie had the lowest 2023 gross?
- context 3: Top 10 Grossing Comedy Movies 1995-2024
- question 3: When was Austin Powers released and how much did it earn?

Response from the current model


- Answer 1 from the current model: As of the latest data, the movie with the highest 2023 gross earnings in the Action genre is "Avengers: Endgame," with a staggering earning of $851 million. This film is a superhero movie, which is a subgenre of Action, and has become one of the highest-grossing films in history. "Avengers: Endgame" is the sequel to "Avengers: Infinity War" and the 22nd film in the Marvel Cinematic Universe. The movie features a star-studded cast, including Robert Downey Jr., Chris Evans, Mark Ruffalo, Chris Hemsworth, Scarlett Johansson, and Jeremy Renner, among others. The plot revolves around the Avengers attempting to reverse the decimation caused by Thanos and bring back their lost comrades. The film's success can be attributed to its compelling storyline, impressive visual effects, and the culmination of the Marvel Cinematic Universe's Infinity Saga.
- Answer 2 from the current model: The lowest grossing action movie in 2023 was "The Last Knight's Stand," which earned $125 million at the box office. This figure is significantly lower compared to the other action movies released in the same year. The film, despite its action-packed nature, did not resonate as strongly with audiences, resulting in a lower box office performance.
- Answer 3 from the current model: The first Austin Powers movie, "Austin Powers: International Man of Mystery," was released in 1997. The film was a moderate success, grossing approximately $51 million at the box office.

The second installment, "Austin Powers: The Spy Who Shagged Me," was released in 1999 and became a significant hit, earning over $287 million worldwide.

The third film, "Austic Powers in Goldmember," was released in 2002 and made even more money, totaling around $298 million.

In total, the Austin Powers trilogy has grossed over $636 million worldwide.

These films have become cult classics and have left a lasting impact on the comedy genre, with their unique blend of humor, parody, and special effects.

Response obtained from the LoRA trained model

- Answer 1 from LoRA trained model: The Super Mario Bros. Movie, an action movie, has the highest 2023 gross earnings of $574,934,330.
- Answer  2 from LoRA trained model: The action movie that had the lowest 2023 gross was La marginale, which earned $101,849,835.
- Answer 3 from LoRA trained model: Austin Powers was released on May 2, 1999 and earned $165,161,649.

 

Response that you would expect instead with the contribution

- Expected Answer 1: The action movie with the highest 2023 gross earnings was The Super Mario Bros. Movie and it earned $574,934,330.
- Expected  2: The action movie had the lowest 2023 gross was La marginale.
- Expected 3: Austin Powers was released on Jun 10, 1999 and it earned $206,040,085.

 

Lint validation failing with errors that are not related to changed / added file

Describe the bug/problem

  • Looks like lint is checking all the files which are not part of merge request due to which specific merge validation is failing
  • I am getting below output for PR (Added knowledge skill for language #951 ) validation and the file that I added is not part of the list. I did not see this behaviour couple of days back.
Run echo "::add-matcher::.github/workflows/matchers/lint.json"

Warning: WARN:  compositional_skills/extraction/abstractive/abstract/qna.yaml:105:1: missing/empty 'task_description'
Error: ERROR: compositional_skills/extraction/abstractive/abstract/qna.yaml:2:1: less than 5 'seed_examples'
Warning: WARN:  compositional_skills/extraction/abstractive/key_points/qna.yaml:72:1: missing/empty 'task_description'
Error: ERROR: compositional_skills/extraction/abstractive/key_points/qna.yaml:2:1: less than 5 'seed_examples'
Warning: WARN:  compositional_skills/extraction/abstractive/main_takeaway/qna.yaml:60:1: missing/empty 'task_description'
Error: ERROR: compositional_skills/extraction/abstractive/main_takeaway/qna.yaml:2:1: less than 5 'seed_examples'
Warning: WARN:  compositional_skills/extraction/abstractive/outline/qna.yaml:81:1: missing/empty 'task_description'
Error: ERROR: compositional_skills/extraction/abstractive/outline/qna.yaml:2:1: less than 5 'seed_examples'
Warning: WARN:  compositional_skills/extraction/abstractive/title/qna.yaml:[34](https://github.com/instruct-lab/taxonomy/actions/runs/8270539879/job/22628283995?pr=482#step:5:35):1: missing/empty 'task_description'
Error: ERROR: compositional_skills/extraction/abstractive/title/qna.yaml:2:1: less than 5 'seed_examples'
Warning: WARN:  compositional_skills/extraction/inference/qualitative/sentiment/qna.yaml:19:1: missing/empty 'task_description'
Error: ERROR: compositional_skills/extraction/inference/qualitative/sentiment/qna.yaml:2:1: less than 5 'seed_examples'
Warning: WARN:  compositional_skills/extraction/inference/qualitative/tone_and_style/qna.yaml:5:1: missing/empty 'task_description'
Error: ERROR: compositional_skills/extraction/inference/qualitative/tone_and_style/qna.yaml:2:1: missing 'seed_examples'
Error: ERROR: compositional_skills/extraction/inference/qualitative/tone_and_style/qna.yaml:2:1: less than 5 'seed_examples'
Error: ERROR: compositional_skills/extraction/inference/qualitative/tone_and_style/qna.yaml:2:1: missing/empty 'question's
Error: ERROR: compositional_skills/extraction/inference/qualitative/tone_and_style/qna.yaml:2:1: missing/empty 'answer's
Error: ERROR: compositional_skills/extraction/inference/qualitative/tone_and_style/qna.yaml:2:1: missing/empty 'context's

Crash (SIGSEGV) in ``lab serve`` when doing ``lab generate`` and ``lab chat`` at the same time.

Describe the bug

Crash in lab serve while doing lab generate and lab chat at the same time.

(venv) carlos@fedora:~/build/instruct-lab$ lab serve
INFO 2024-03-06 15:57:10,749 lab.py:201 Using model 'models/ggml-merlinite-7b-Q4_K_M.gguf' with -1 gpu-layers
Starting server process
After application startup complete see http://127.0.0.1:8000/docs for API.
Press CTRL+C to shutdown server.
disconnected
Disconnected from client (via refresh/close) Address(host='127.0.0.1', port=44072)
Segmentation fault (core dumped)

Input given at the prompt

>>> how do I determine the size of userspace page of memory on Linux?                                                         [S][default]

Response that was received

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ggml-merlinite-7b-Q4_K_M โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ To                                                                                                                                     โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ elapsed 0.001 seconds โ”€โ•ฏ
Traceback (most recent call last):
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions
    yield
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpx/_transports/default.py", line 113, in __iter__
    for part in self._httpcore_stream:
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpcore/_sync/connection_pool.py", line 367, in __iter__
    raise exc from None
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpcore/_sync/connection_pool.py", line 363, in __iter__
    for part in self._stream:
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpcore/_sync/http11.py", line 349, in __iter__
    raise exc
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpcore/_sync/http11.py", line 341, in __iter__
    for chunk in self._connection._receive_response_body(**kwargs):
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpcore/_sync/http11.py", line 210, in _receive_response_body
    event = self._receive_event(timeout=timeout)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpcore/_sync/http11.py", line 220, in _receive_event
    with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}):
  File "/usr/lib64/python3.12/contextlib.py", line 158, in __exit__
    self.gen.throw(value)
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.RemoteProtocolError: peer closed connection without sending complete message body (incomplete chunked read)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/carlos/build/instruct-lab/venv/bin/lab", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/cli/lab.py", line 330, in chat
    chat_cli(
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/cli/chat/chat.py", line 411, in chat_cli
    ccb.start_prompt()
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/cli/chat/chat.py", line 334, in start_prompt
    for chunk in response:
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/openai/_streaming.py", line 44, in __iter__
    for item in self._iterator:
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/openai/_streaming.py", line 56, in __stream__
    for sse in iterator:
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/openai/_streaming.py", line 48, in _iter_events
    yield from self._decoder.iter(self.response.iter_lines())
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/openai/_streaming.py", line 224, in iter
    for line in iterator:
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpx/_models.py", line 861, in iter_lines
    for text in self.iter_text():
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpx/_models.py", line 848, in iter_text
    for byte_content in self.iter_bytes():
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpx/_models.py", line 829, in iter_bytes
    for raw_bytes in self.iter_raw():
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpx/_models.py", line 883, in iter_raw
    for raw_stream_bytes in self.stream:
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpx/_client.py", line 126, in __iter__
    for chunk in self._stream:
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpx/_transports/default.py", line 112, in __iter__
    with map_httpcore_exceptions():
  File "/usr/lib64/python3.12/contextlib.py", line 158, in __exit__
    self.gen.throw(value)
  File "/home/carlos/build/instruct-lab/venv/lib64/python3.12/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.RemoteProtocolError: peer closed connection without sending complete message body (incomplete chunked read)
(venv) carlos@fedora:~/build/instruct-lab$ 

Response that was expected
Expected an answer to the chat question.
or
Expected timeout to be handled correctly in lab chat and lab serve

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.