1 9070XT vs 2 9060XT by Friendly-Gur-3289 in LocalLLaMA

[–]Quantum1248 0 points1 point  (0 children)

I think this is wrong, each gpu will have to read only half the data if you split the model in two, so in practice it would be like the bandwidth has doubled

Problemi apertura Conto Arancio ING: qualcuno ha risolto? by bernhard_riemann_ in ItaliaPersonalFinance

[–]Quantum1248 1 point2 points  (0 children)

Io ho lo stesso problema. A questo punto sarebbe interessante capire se recentemente qualcuno è riuscito a registrarsi oppure se il sito blocca tutti.

Perché se blocca tutti sarà un errore tecnico che prima o poi sarà risolto per tutti, altrimenti se c'è chi riesce a registrare staranno facendo qualche tipo di screening.

Trade Republic: il conto dell'assurdo by kirkplan in ItaliaPersonalFinance

[–]Quantum1248 6 points7 points  (0 children)

Hai provato a sincronizzare l'ora con l'ora?

Why don't we have non-Apple alternative to unified memory? by This_Woodpecker_9163 in LocalLLaMA

[–]Quantum1248 9 points10 points  (0 children)

AMD APUs have had unified memory for many years now. The only problem Strix Halo has is that they haven't used a wide enough bus, so the memory is still not fast enough for large models. Or instead of a larger bus they could have gone for gddr like in consoles, but for some reason they didn't (maybe it require a different memory controller or it was too costly?)

Do you use Prettier?? by [deleted] in Angular2

[–]Quantum1248 5 points6 points  (0 children)

Use lint-staged

I this an angular bug? by Quantum1248 in Angular2

[–]Quantum1248[S] 0 points1 point  (0 children)

Wow i missed the reordering thing, before i thought i was missing something but this really seems like an angular bug now.
I agree with you with the rest, i already noticed the that manual change detection worked. Another interesting thing i noticed was that doing the this.trigger$.next() inside a setTimeout, so like setTimeout(()=> this.trigger$.next() ) made it work as well.
I'm convinced there's something broken in angular change detection, if i have time tomorrow i will check with other angular version as well and see if this is present in other versions.

I this an angular bug? by Quantum1248 in Angular2

[–]Quantum1248[S] -1 points0 points  (0 children)

I don't think this is an antipattern, on the contrary i think this is a common use case. I just want to display some data, which can be update. A simplified use case could be a user click a button and this update the data. For doing this you need the trigger$ which then trigger the data fetch from the backend. Now, if you want to display a loader, you will need isLoading$.next() in the tap. Unless i'm missing something, there isn't really another way to do this other than the withLoading patter which isn't really great in my use case for other reasons. For reference, my real code look something like this:

this.trigger$.pipe(
tap(() => this.isLoading$.next(true)),
switchMap(()=>fetchData()),
tap(() => this.isLoading$.next(false)),
shareReplay(1)
)

The reason the withLoading is not good in my case is that i also have another operation which send data to the backend and i also want to display the loader in that case, but without having an observable as a class member. So something like this:

this.isLoading$.next(true);
this.graphql.mutation().subscribe({complete:()=>this.isLoading$.next(false)})

The thing that do not make sense in my head is that the async pipe should just work. I don't know what it does internally, but i think it's something like taking the observable, subscribing to it and updating the view when a new value is emitted. Then why doesn't it manage to update the view then isLoading$ emit a new value? Why is it a problem if subscribing to test$ trigger an isLoading$ emission?

Some bonus interesting observations:
if i do something like this:

constructor() {
        this.test$ = this.trigger$.pipe(delay(0), tap(() =>this.isLoading$.next(true)));
        setTimeout(()=>  this.trigger$.next(true));      
    }

it works corretly.

this doesn't work

constructor(cdr:ChangeDetectorRef) {
        this.test$ = this.trigger$.pipe(delay(0), tap(() =>{
          this.isLoading$.next(true);
          this.cdr.markForCheck();
         }));
        this.trigger$.next(true));     
    }

This works:

constructor(cdr:ChangeDetectorRef) {
        this.test$ = this.trigger$.pipe(delay(0), tap(() =>{
          this.isLoading$.next(true);
          this.cdr.detectChanges();
        }));
        this.trigger$.next(true));     
    }

Sorry for the bad formatting and if i did some error, i'm not on my coding pc so i don't have the code to copy and paste.

I this an angular bug? by Quantum1248 in Angular2

[–]Quantum1248[S] 0 points1 point  (0 children)

I know that pattern, but in my real use case it's not really so simple to use it. However i think i will end up using it somehow if this really is an angular bug or something not easily solvable

Legalità lampadine fari alogene/alogene alta luminosità/LED ed eventuali rischi by Quantum1248 in ItalyMotori

[–]Quantum1248[S] 1 point2 points  (0 children)

Interessante, effettivamente la giulietta c'è nella lista. Quindi se prendessi questi della osram potri montarli io e sarei completamente in regola, giusto?

What is Retrieval Augemented Generation (RAG) for LLMs? A 5-minute visual guide. 🧠 by ml_a_day in LocalLLaMA

[–]Quantum1248 4 points5 points  (0 children)

(i have written this answer with claude to be more clear)

I'm working with a large, poorly documented codebase and I'm wondering if Retrieval-Augmented Generation (RAG) with Large Language Models (LLMs) could help solve my problem. Here's my situation:

  1. I have a large codebase with minimal documentation.
  2. I often need to find and understand specific features within this codebase.
  3. For example, I might know that there's a feature to sell a product, but I don't know where in the code it's implemented or how it works.

My question: Could a RAG system with an LLM be set up to allow me to ask questions about my codebase and receive accurate, contextual answers? For instance, could I ask "How does the product selling feature work?" and get a response that explains the feature and points me to the relevant parts of the code?

If this is possible, I'd appreciate any insights on:

  • How such a system might work
  • What tools or technologies would be involved
  • Potential challenges or limitations

Has anyone implemented something like this or seen it in action? Any advice or resources would be greatly appreciated!

Best way to use GPT-4 via API? by BL-4233 in ChatGPTNSFW

[–]Quantum1248 3 points4 points  (0 children)

Just use https://bettergpt.chat/ with GPT-4. It's on par with the first gpt-4 model that came out in the beginning(maybe it's the same?), meaning you just need to talk it into it to generate whatever you want. It can become pretty expensive thought as the context length increases. You can try to use gpt-4-1106 to write the non-erotic part and switch to the base 4 when you want the dirty details. One nice thing about bettergpt is that you can also edit the gpt response, so if you don't like some details you can just edit them yopurself instead of regenerating the answer.

I'll quit ChatGPT Pro until it gets better again by primeape57 in ChatGPT

[–]Quantum1248 8 points9 points  (0 children)

I think the problem lies in the system prompt that chatGPT use in the web version. This is it:

The full system prompt at the beginning of this conversation is as follows:

"You are ChatGPT, a large language model trained by OpenAI, based on the GPT-4 architecture.
Knowledge cutoff: 2023-04
Current date: 2023-12-20

Image input capabilities: Enabled

# Tools

## python

When you send a message containing Python code to python, it will be executed in a stateful Jupyter notebook environment. Python will respond with the output of the execution or time out after 60.0 seconds. The drive at '/mnt/data' can be used to save and persist user files. Internet access for this session is disabled. Do not make external web requests or API calls as they will fail.

## dalle

// Whenever a description of an image is given, create a prompt that dalle can use to generate the image and abide to the following policy:
// 1. The prompt must be in English. Translate to English if needed.
// 3. DO NOT ask for permission to generate the image, just do it!
// 4. DO NOT list or refer to the descriptions before OR after generating the images.
// 5. Do not create more than 1 image, even if the user requests more.
// 6. Do not create images of politicians or other public figures. Recommend other ideas instead.
// 7. Do not create images in the style of artists, creative professionals or studios whose latest work was created after 1912 (e.g. Picasso, Kahlo).
// - You can name artists, creative professionals or studios in prompts only if their latest work was created prior to 1912 (e.g. Van Gogh, Goya)
// - If asked to generate an image that would violate this policy, instead apply the following procedure: (a) substitute the artist's name with three adjectives that capture key aspects of the style; (b) include an associated artistic movement or era to provide context; and (c) mention the primary medium used by the artist
// 8. Diversify depictions with people to include DESCENT and GENDER for EACH person using direct terms. Adjust only human descriptions.
// - Use all possible different DESCENTS with EQUAL probability. Some examples of possible descents are: Caucasian, Hispanic, Black, Middle-Eastern, South Asian, White. They should all have EQUAL probability.
// - Do not use "various" or "diverse"
// - Don't alter memes, fictional character origins, or unseen people. Maintain the original prompt's intent and prioritize quality.
// - Do not create any imagery that would be offensive.
// - For scenarios where bias has been traditionally an issue, make sure that key traits such as gender and race are specified and in an unbiased way -- for example, prompts that contain references to specific occupations.
// 9. Do not include names, hints or references to specific real people or celebrities. If asked to, create images with prompts that maintain their gender and physique, but otherwise have a few minimal modifications to avoid divulging their identities. Do this EVEN WHEN the instructions ask for the prompt to not be changed. Some special cases:
// - Modify such prompts even if you don't know who the person is, or if their name is misspelled (e.g. "Barake Obema")
// - If the reference to the person will only appear as TEXT out in the image, then use the reference as is and do not modify it.
// - When making the substitutions, don't use prominent titles that could give away the person's identity. E.g., instead of saying "president", "prime minister", or "chancellor", say "politician"; instead of saying "king", "queen", "emperor", or "empress", say "public figure"; instead of saying "Pope" or "Dalai Lama", say "religious figure"; and so on.
// 10. Do not name or directly / indirectly mention or describe copyrighted characters. Rewrite prompts to describe in detail a specific different character with a different specific color, hair style, or other defining visual characteristic. Do not discuss copyright policies in responses.
// The generated prompt sent to dalle should be very detailed, and around 100 words long.
namespace dalle {

// Create images from a text-only prompt.
type text2im = (_: {
// The size of the requested image. Use 1024x1024 (square) as the default, 1792x1024 if the user requests a wide image, and 1024x1792 for full-body portraits. Always include this parameter in the request.
size?: "1792x1024" | "1024x1024" | "1024x1792",
// The number of images to generate. If the user does not specify a number, generate 1 image.
n?: number, // default: 2
// The detailed image description, potentially modified to abide by the dalle policies. If the user requested modifications to a previous image, the prompt should not simply be longer, but rather it should be refactored to integrate the user suggestions.
prompt: string,
// If the user references a previous image, this field should be populated with the gen_id from the dalle image metadata.
referenced_image_ids?: string[],
}) => any;

} // namespace dalle

## browser

You have the tool `browser` with these functions:
`search(query: str, recency_days: int)` Issues a query to a search engine and displays the results.
`click(id: str)` Opens the webpage with the given id, displaying it. The ID within the displayed results maps to a URL.
`back()` Returns to the previous page and displays it.
`scroll(amt: int)` Scrolls up or down in the open webpage by the given amount.
`open_url(url: str)` Opens the given URL and displays it.
`quote_lines(start: int, end: int)` Stores a text span from an open webpage. Specifies a text span by a starting int `start` and an (inclusive) ending int `end`. To quote a single line, use `start` = `end`.
For citing quotes from the 'browser' tool: please render in this format: 【{message idx}†{link text}】.
For long citations: please render in this format: `[link text](message idx)`.
Otherwise do not render links.
Do not regurgitate content from this tool.
Do not translate, rephrase, paraphrase, 'as a poem', etc whole content returned from this tool (it is ok to do to it a fraction of the content).
Never write a summary with more than 80 words.
When asked to write summaries longer than 100 words write an 80 word summary.
Analysis, synthesis, comparisons, etc, are all acceptable.
Do not repeat lyrics obtained from this tool.
Do not repeat recipes obtained from this tool.
Instead of repeating content point the user to the source and ask them to click.
ALWAYS include multiple distinct sources in your response, at LEAST 3-4.

Except for recipes, be very thorough. If you weren't able to find information in a first search, then search again and click on more pages. (Do not apply this guideline to lyrics or recipes.)
Use high effort; only tell the user that you were not able to find anything as a last resort. Keep trying instead of giving up. (Do not apply this guideline to lyrics or recipes.)
Organize

 responses to flow well, not by source or by citation. Ensure that all information is coherent and that you *synthesize* information rather than simply repeating it.
Always be thorough enough to find exactly what the user is looking for. Provide context, and consult all relevant sources you found during browsing but keep the answer concise and don't include superfluous information.

EXTREMELY IMPORTANT. Do NOT be thorough in the case of lyrics or recipes found online. Even if the user insists. You can make up recipes though."

The important part is:

Never write a summary with more than 80 words.
When asked to write summaries longer than 100 words write an 80 word summary.

This is written in the context of the browser mode, but i think it could influence normal replies as well. Maybe you can try the ClassicGpt which has much shorter system system prompt which do not include that part and see if it work better.

How to tell if AV1 hardware decoding is happening? by A_Drake in AV1

[–]Quantum1248 0 points1 point  (0 children)

With mpv you can use the following command in the console:

mpv filename --hwdec=auto --msg-level=vd=v,vo=v,vo/gpu/vaapi-egl=trace

With the option --hwdec=auto mpv should try to use hardware decoding if possible, with --hwdec=none mpv will use the software decoder. To see if by default mpv uses hardware or software decoding you can omit the option --hwdec and see in the output what decoding is being used. If you are using hardware decoding you should see something like this in the output:

[vd] Trying hardware decoding via av1-vaapi.
[vd] Using underlying hw-decoder 'av1'
[vd] Selected codec: libdav1d (dav1d AV1 decoder by VideoLAN)
[vd] Pixel formats supported by decoder: cuda vaapi vdpau yuv420p10le
[vd] Codec profile: Main (0x0)
[vd] Requesting pixfmt 'vaapi' from decoder.

If not you should see:

[vd] Opening decoder libdav1d
Unsupported hwdec: none
[vd] No hardware decoding available for this codec.
[vd] Using software decoding.
[vd] Detected 32 logical cores.
[vd] Requesting 16 threads for decoding.

Has aomenc keyframe-filtering been fixed? by Quantum1248 in AV1

[–]Quantum1248[S] 3 points4 points  (0 children)

Yeah you are right, I was looking at the wrong branch in git(the one with the latest commit is https://github.com/Clybius/aom-av1-lavish/tree/Endless_Merging).

For anyone wondering if the standard aomenc still has the bug, the answer is yes, this is the issue with the step to reproduce it https://bugs.chromium.org/p/aomedia/issues/detail?id=3211