doberst commited on
Commit
4e4aaa8
1 Parent(s): 608eb87

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +54 -50
README.md CHANGED
@@ -1,81 +1,85 @@
1
  ---
2
- license: apache-2.0
3
- inference: false
4
  ---
5
 
6
- # slim-q-gen-phi-3
7
 
8
  <!-- Provide a quick summary of what the model is/does. -->
9
 
10
- slim-q-gen-phi-3 is a specialized function-calling model, finetuned on top of a phi-3-mini-4k base, to generate a python dictionary consisting of a single key "question".
11
 
12
- For most inference use cases, we would recommend using the quantized 'tool' version of this model - [slim-q-gen-phi-3-tool](https://huggingface.co/llmware/slim-q-gen-phi-3-tool)
13
 
14
- ### Model Description
15
 
16
- <!-- Provide a longer summary of what this model is. -->
17
 
18
- - **Developed by:** llmware
19
- - **Model type:** Dragon
20
- - **Language(s) (NLP):** English
21
- - **License:** Apache 2.0
22
- - **Finetuned from model:** Microsoft Phi-3
23
 
 
24
 
25
- ## Bias, Risks, and Limitations
 
 
 
26
 
27
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
28
 
29
- Any model can provide inaccurate or incomplete information, and should be used in conjunction with appropriate safeguards and fact-checking mechanisms.
 
30
 
 
 
31
 
32
- ## How to Get Started with the Model
 
33
 
34
- The fastest way to get started with BLING is through direct import in transformers:
 
 
35
 
36
- from transformers import AutoTokenizer, AutoModelForCausalLM
37
- tokenizer = AutoTokenizer.from_pretrained("bling-phi-2-v0", trust_remote_code=True)
38
- model = AutoModelForCausalLM.from_pretrained("bling-phi-2-v0", trust_remote_code=True)
39
 
40
- Please refer to the generation_test .py files in the Files repository, which includes 200 samples and script to test the model. The **generation_test_llmware_script.py** includes built-in llmware capabilities for fact-checking, as well as easy integration with document parsing and actual retrieval to swap out the test set for RAG workflow consisting of business documents.
41
-
42
- The dRAGon model was fine-tuned with a simple "\<human> and \<bot> wrapper", so to get the best results, wrap inference entries as:
43
-
44
- full_prompt = "<human>: " + my_prompt + "\n" + "<bot>:"
45
-
46
- The BLING model was fine-tuned with closed-context samples, which assume generally that the prompt consists of two sub-parts:
47
-
48
- 1. Text Passage Context, and
49
- 2. Specific question or instruction based on the text passage
50
-
51
- To get the best results, package "my_prompt" as follows:
52
 
53
- my_prompt = {{text_passage}} + "\n" + {{question/instruction}}
54
 
 
55
 
56
- If you are using a HuggingFace generation script:
 
 
 
 
 
 
 
 
 
57
 
58
- # prepare prompt packaging used in fine-tuning process
59
- new_prompt = "<human>: " + entries["context"] + "\n" + entries["query"] + "\n" + "<bot>:"
60
 
61
- inputs = tokenizer(new_prompt, return_tensors="pt")
62
- start_of_output = len(inputs.input_ids[0])
63
 
64
- # temperature: set at 0.3 for consistency of output
65
- # max_new_tokens: set at 100 - may prematurely stop a few of the summaries
66
 
67
- outputs = model.generate(
68
- inputs.input_ids.to(device),
69
- eos_token_id=tokenizer.eos_token_id,
70
- pad_token_id=tokenizer.eos_token_id,
71
- do_sample=True,
72
- temperature=0.3,
73
- max_new_tokens=100,
74
- )
75
 
76
- output_only = tokenizer.decode(outputs[0][start_of_output:],skip_special_tokens=True)
77
 
 
78
 
 
79
  ## Model Card Contact
80
 
81
- Darren Oberst & llmware team
 
 
 
1
  ---
2
+ license: cc-by-sa-4.0
3
+ inference: false
4
  ---
5
 
6
+ # SLIM-EXTRACT
7
 
8
  <!-- Provide a quick summary of what the model is/does. -->
9
 
10
+ **slim-extract** implements a specialized function-calling customizable 'extract' capability that takes as an input a context passage, a customized key, and outputs a python dictionary with key that corresponds to the customized key, with a value consisting of a list of items extracted from the text corresponding to that key, e.g.,
11
 
12
+ &nbsp;&nbsp;&nbsp;&nbsp;`{'universities': ['Berkeley, Stanford, Yale, University of Florida, ...'] }`
13
 
14
+ This model is fine-tuned on top of [**llmware/bling-stable-lm-3b-4e1t-v0**](https://huggingface.co/llmware/bling-stable-lm-3b-4e1t-v0), which in turn, is a fine-tune of stabilityai/stablelm-3b-4elt.
15
 
16
+ For fast inference use, we would recommend the 'quantized tool' version, e.g., [**'slim-extract-tool'**](https://huggingface.co/llmware/slim-extract-tool).
17
 
 
 
 
 
 
18
 
19
+ ## Prompt format:
20
 
21
+ `function = "extract"`
22
+ `params = "{custom key}"`
23
+ `prompt = "<human> " + {text} + "\n" + `
24
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;`"<{function}> " + {params} + "</{function}>" + "\n<bot>:"`
25
 
 
26
 
27
+ <details>
28
+ <summary>Transformers Script </summary>
29
 
30
+ model = AutoModelForCausalLM.from_pretrained("llmware/slim-extract")
31
+ tokenizer = AutoTokenizer.from_pretrained("llmware/slim-extract")
32
 
33
+ function = "extract"
34
+ params = "company"
35
 
36
+ text = "Tesla stock declined yesterday 8% in premarket trading after a poorly-received event in San Francisco yesterday, in which the company indicated a likely shortfall in revenue."
37
+
38
+ prompt = "<human>: " + text + "\n" + f"<{function}> {params} </{function}>\n<bot>:"
39
 
40
+ inputs = tokenizer(prompt, return_tensors="pt")
41
+ start_of_input = len(inputs.input_ids[0])
 
42
 
43
+ outputs = model.generate(
44
+ inputs.input_ids.to('cpu'),
45
+ eos_token_id=tokenizer.eos_token_id,
46
+ pad_token_id=tokenizer.eos_token_id,
47
+ do_sample=True,
48
+ temperature=0.3,
49
+ max_new_tokens=100
50
+ )
 
 
 
 
51
 
52
+ output_only = tokenizer.decode(outputs[0][start_of_input:], skip_special_tokens=True)
53
 
54
+ print("output only: ", output_only)
55
 
56
+ # here's the fun part
57
+ try:
58
+ output_only = ast.literal_eval(llm_string_output)
59
+ print("success - converted to python dictionary automatically")
60
+ except:
61
+ print("fail - could not convert to python dictionary automatically - ", llm_string_output)
62
+
63
+ </details>
64
+
65
+ <details>
66
 
 
 
67
 
 
 
68
 
69
+
70
+ <summary>Using as Function Call in LLMWare</summary>
71
 
72
+ from llmware.models import ModelCatalog
73
+ slim_model = ModelCatalog().load_model("llmware/slim-extract")
74
+ response = slim_model.function_call(text,params=["company"], function="extract")
 
 
 
 
 
75
 
76
+ print("llmware - llm_response: ", response)
77
 
78
+ </details>
79
 
80
+
81
  ## Model Card Contact
82
 
83
+ Darren Oberst & llmware team
84
+
85
+ [Join us on Discord](https://discord.gg/MhZn5Nc39h)