Skip to content

Instantly share code, notes, and snippets.

A questão que você está levantando é muito interessante e traz à tona o problema de como as distribuições de probabilidade influenciam o desempenho de modelos como o ChatGPT, que são treinados em dados de linguagem natural, onde as palavras seguem uma distribuição de Lei de Potência (como a Lei de Zipf).

Resumo do raciocínio

  1. Distribuições de Lei de Potência: A distribuição de palavras na maioria dos idiomas segue uma Lei de Potência, com poucas palavras sendo extremamente frequentes e muitas palavras sendo raras (caudas longas).
  2. Distribuições Gaussianas: Modelos como LLMs (Large Language Models) podem estar usando distribuições Gaussianas (normalmente distribuídas) para interpolação e extrapolação, o que é caracterizado por caudas finas e uma variância finita.
  3. Potencial de erro: Como a distribuição das palavras é fortemente não-Gaussiana, argumenta-se que isso poderia levar a um "potencial de erro enorme" ao usar distribuições Gaussianas para capturar padrões de uso de palavras.

@vhogemann
vhogemann / Env.fsx
Created September 2, 2024 11:14
Quick and dirty way to fetch your BlueSky notifications using F# fsi
open System.IO
let load () =
let envFile = Path.Combine(__SOURCE_DIRECTORY__, ".env")
if File.Exists(envFile) then
File.ReadAllLines(envFile)
|> Array.map (fun line -> line.Split('='))
|> Array.map (fun parts -> parts.[0], parts.[1])
|> Map
else
@vhogemann
vhogemann / parse.cs
Last active August 2, 2024 19:42
Converte uma string em double
// Em resposta a https://x.com/zanfranceschi/status/1819413388360810601
/*
O que eu estou fazendo aqui é converter a string em um array de char usando
o método Reverse(), e fazendo cast direto de char pra int. Cada dígito vai
corresponder ao seu valor ASCII. Os números na tabela ASCII começam em 0, com o
valor decimal 48. Então eu só diminuo 48 do valor do caracter pra ter o valor
numérico de 0 até 9.
*/
double parse(string value) {

Keybase proof

I hereby claim:

  • I am vhogemann on github.
  • I am vhogemann (https://keybase.io/vhogemann) on keybase.
  • I have a public key ASA_DuDI3YD6ZS9-IW0PaaZvm-8G0teGzybzSob-JYRsbwo

To claim this, I am signing this object:

@vhogemann
vhogemann / RandomPort.fs
Last active November 15, 2023 12:03
Quick and dirty example of how to get a random open TCP/UDP port using F#
namespace Test
module RandomPort =
open System
open System.Net.NetworkInformation
let isFree port =
let props =
IPGlobalProperties.GetIPGlobalProperties()
let tcpListeners =
props.GetActiveTcpListeners()
//@ts-check
const fs = require("fs");
const axios = require("axios").default;
let bearerToken = process.env.TWITTER_BEARER_TOKEN;
const headers = { 'Authorization': `Bearer ${bearerToken}` };
const client = axios.create({baseURL : 'https://api.twitter.com/1.1/tweets/search/', headers : headers})
@vhogemann
vhogemann / keys.pipe.ts
Created May 26, 2017 11:20
Iterate over an Object keys using *ngFor
/**
* Use like *ngFor="let key of ( object | keys )"
*/
@Pipe({ name: 'keys', pure: false })
export class KeysPipe implements PipeTransform {
transform(value: any, args: any[] = null): any {
if(!value) return [];
return Object.keys(value);
}
}
@vhogemann
vhogemann / debounce.decorator.ts
Created May 26, 2017 11:14
Simple method Debouncer for typescript class methods
export function Debounce(wait: number) {
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
let timeout;
const original:Function = descriptor.value;
const debounced = function() {
const context = this;
const args = arguments;
const later = function() {
timeout = null;
original.apply(context, args);
#! /bin/bash
# String retornada pelo reg.exe em caso de update com sucesso
REG_UP_OK="The operation completed successfully"
# Checa se existe lista de hosts não atualizados
if [ -e mortos.txt ]; then
# Se existe, renomeia para tmp.txt e o utiliza...
# criando uma nova lista para as maquinas que não atualizarem
mv mortos.txt tmp.txt
HOST_LIST="tmp.txt"
else